open-index/open-npm huggingface dataset:
npm package: @golamrabbitonmoy/object-memory-core
Description: Shared randomization, scoring, and anti-cheat package for the object memory game.
Author: Nifty Coders Private Limited
Latest version: 1.1.0

# @niftycoders/object-memory-core

Shared npm-compatible package for the object memory game.

It extracts the three SOW-critical parts from the current HTML prototype into reusable runtime-agnostic modules:

- deterministic session randomization
- shared score calculation
- event recording and anti-cheat validation

## Install

```bash
npm i @golamrabbitonmoy/object-memory-core
```

## Main exports

```ts
import {
  generateSession,
  recreateSessionFromMetadata,
  ScoreEngine,
  createEventRecorder,
  validateEventLog,
} from '@golamrabbitonmoy/object-memory-core';
```

## Example

```ts
import {
  generateSession,
  ScoreEngine,
  createEventRecorder,
  validateEventLog,
} from '@golamrabbitonmoy/object-memory-core';

const session = generateSession({
  seed: 123456,
  difficulty: {
    id: '2x2',
    label: '2×2',
    cols: 2,
    rows: 2,
    memorizeTimeSec: 5,
  },
  objectPool: [
    { id: 'apple', label: 'Apple', value: '🍎' },
    { id: 'book', label: 'Book', value: '📘' },
    { id: 'chair', label: 'Chair', value: '🪑' },
    { id: 'clock', label: 'Clock', value: '🕒' },
  ],
});

const recorder = createEventRecorder(session.seed);
recorder.markMemorizeStart();
recorder.markMemorizeEnd();
recorder.logPlacement(0, session.placementByCell[0]);
recorder.logPlacement(1, session.placementByCell[1]);
recorder.logPlacement(2, session.placementByCell[2]);
recorder.logPlacement(3, session.placementByCell[3]);
recorder.logCheck();

const antiCheat = validateEventLog({
  events: recorder.getEvents(),
  metadata: session.metadata,
  memorizeTimeSec: session.difficulty.memorizeTimeSec,
});

const earned = ScoreEngine.calculate({
  correct: 4,
  total: 4,
  timeBonus: 3,
  round: 1,
  cellCount: 4,
  streakBonus: 0,
});
```

## Notes

- This package is intentionally UI-free, so it can run in browser game code and in backend TypeScript validation.
- The package uses object ids, not UI indexes, so backend validation stays stable even if tray ordering changes.
- The current HTML game can be migrated by replacing inline `GameRandomizer`, `ScoreEngine`, and `AntiCheat` with imports from this package.
npm package: @golassie/mx-web-widget-sdk
Description: MX Web Widget SDK
Latest version: 0.0.13-patched

Modified from the original MX Web Widget SDK. Fixes the types issue.

# MX Web Widget SDK

The purpose of this project is to help simplify your integration experience.
Giving you as few steps as possible to get up and running with an MX web
widget. Please refer to our [Web Widget SDK documentation][sdk_docs] to get
started.

[sdk_docs]: https://docs.mx.com/connect/guides/sdk#web "Web Widget SDK"
npm package: @golavr/ng-config
Description: Configuration library for Angular handling environments in continuous delivery.
Author: Golan Avraham
Latest version: 0.1.0

# ng-config

Configuration library for Angular handling environments in continuous delivery systems. 

## Why using ng-config?
Angular comes with built-in mechanism of environment files but this mechanism requires you to build for each environment. This approach doesn't fit to modern development paradigm which advocate for `build once - deploy anywhere`.

## Getting started

### Installation

```
npm install @golavr/ng-config --save
```

### Create files

1. Create `assets/configs` folder.
2. Create `assets/configs/env.json` file.
3. Create `assets/configs/config.json` file.
4. Create `assets/configs/config.prod.json` file.
5. Add more `assets/configs/config.$$$.json` files to support all environments.

You should have this folder structure:
```
- assets
    - configs
        - config.json
        - config.prod.json
        - env.json
```

> Note: Library depends on the above folder and file names.

### env.json file

Open `assets/configs/env.json` and add this content:
```json
{
  "env": "prod"
}
```
In continues delivery system you should edit the `env` value to target the selected environment.

> Note: you can replace `prod` with other environment `$$$` as long as you have `assets/configs/config.$$$.json` file for it.

## How to use?

Lets set two configuration values for demonstration purpose.

Open `assets/configs/config.json` file and add:
```json
{
    "baseValue": "other configurations will inherit this value",
    "overrideValue": "base"
}
```

Open `assets/configs/config.prod.json` file and add:
```json
{
    "overrideValue": "prod"
}
```

Create interface reflecting the configuration:

```typescript
export interface MyConfig {
  baseValue: string;
  overrideValue: string;
}
```

Inject it and use it:

```typescript
import { Component } from '@angular/core';
import { ConfigService } from 'ng-config';
import { MyConfig } from './my-config';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  constructor(config: ConfigService) {
    config.get<MyConfig>().subscribe(conf => console.log(conf.overrideValue));
  }
}
```

## How does it work?

Each request will read config values during the call, so changes can be made to config files while the app is running.
The returned config object will be composed from `config.json` and will be overridden with env config.
In continues delivery system you need to edit `env.json` and set which env config (`config.prod.json`) will be selected at runtime.
You can have multiple env config files like `config.integration.json` etc.
npm package: @golcl/components
Description: LCL Vue3 组件仓库
Latest version: 0.0.5

组件仓库
发布命令：
1、切换到 Git bash
2、发包命令：sh publish.sh
注意： 发包不成功尝试以下命令：
1、npm login --registry=https://registry.npmjs.org/
2、npm publish --access public
npm package: @golcl/eslint-config
Description: Reusable ESLint flat config for Vue and TypeScript projects
Author: lcl
Latest version: 0.0.3

# @golcl/eslint-config

这是一个可独立发布到 npm 的 ESLint Flat Config 包，目的是让其他项目直接安装后即可复用同一套格式化和风格规则。

## 能不能独立发布后直接复用

可以。

发布到 npm 后，其他项目只需要安装这个包和必要的 peerDependencies，然后在项目根目录放一个 `eslint.config.mjs` 即可使用，不需要再复制整份规则实现。

## 安装

```bash
pnpm add -D @golcl/eslint-config eslint eslint-plugin-format typescript vue-eslint-parser
```

如果你使用 npm：

```bash
npm install -D @golcl/eslint-config eslint eslint-plugin-format typescript vue-eslint-parser
```

## 最简使用方式

在目标项目根目录创建 `eslint.config.mjs`：

```js
import golclEslint from "@golcl/eslint-config";

export default golclEslint();
```

如果不是 Vue 项目：

```js
import golclEslint from "@golcl/eslint-config";

export default golclEslint({ vue: false });
```

或者直接把templates/eslint.config.mjs文件复制到项目根目录

## 复制文件到项目的.vscode目录下

需要复制的文件：

- `templates/vscode-settings.json`
- `templates/vscode-extensions.json`

## 发布到 npm

第一次发布前先确认：

- 你已经登录 npm
- 你有 `@golcl` 这个 scope 的发布权限
- 包名没有冲突
- `package.json` 里的 `repository`、`homepage`、`bugs` 已替换成你自己的真实仓库地址

执行发布：

```bash
npm publish --access public --registry https://registry.npmjs.org/
```

或者：

```bash
npm run publish:npm
```

如果你希望自动升级一个 patch 版本再发布：

```bash
npm run release:patch
```

这个脚本会按顺序执行：

- 检查 npm 登录状态
- 执行 `npm pack --dry-run` 校验打包内容
- 自动执行 `npm version patch --no-git-tag-version`
- 发布到 npm

如果发布失败，版本号可能已经被提升，你可以按需要手动调整回去。

## 注意事项

- 这套配置基于 ESLint 9 Flat Config，不要和 ESLint 8 混用。
- 如果目标项目里还有 `.eslintrc`、`.eslintrc.cjs`、`.eslintrc.js`，建议删除或迁移，不要和 `eslint.config.mjs` 混用。
- 如果你没有 `@golcl` 这个 npm scope 的权限，请把 `package.json` 里的 `name` 改成你自己的包名再发布。
- 当前项目里的仓库地址字段先写的是占位值，发布前请改成你自己的真实仓库地址。