- **Tests**: Added new `statistics-storage.test.ts` to validate statistics storage functionality across scenarios including saving, retrieving, time-based partitioning, and backward compatibility. Ensured tests dynamically handle missing environment variables by skipping S3-related tests when credentials are unavailable. - **Docs**: Enhanced `statistics.md` with detailed explanations of scalability improvements, including adaptive flush timing, batched updates, and time-based partitioning. Improved readability and structure. - **Storage**: Updated all storage adapters to integrate time-based partitioning and maintain backward compatibility with legacy statistics storage formats. - **Dependencies**: Added `dotenv` to support environmental variable management for storage adapter tests. **Purpose**: Strengthen system reliability by adding comprehensive test coverage for statistics storage, improve scalability documentation, and ensure consistency across storage adapters with robust implementations.
195 lines
5.7 KiB
JSON
195 lines
5.7 KiB
JSON
{
|
|
"name": "@soulcraft/brainy",
|
|
"version": "0.20.0",
|
|
"description": "A vector graph database using HNSW indexing with Origin Private File System storage",
|
|
"main": "dist/unified.js",
|
|
"module": "dist/unified.js",
|
|
"types": "dist/unified.d.ts",
|
|
"type": "module",
|
|
"sideEffects": [
|
|
"./dist/setup.js",
|
|
"./dist/utils/textEncoding.js",
|
|
"./src/setup.ts",
|
|
"./src/utils/textEncoding.ts"
|
|
],
|
|
"exports": {
|
|
".": {
|
|
"import": "./dist/unified.js",
|
|
"types": "./dist/unified.d.ts"
|
|
},
|
|
"./min": {
|
|
"import": "./dist/unified.min.js"
|
|
},
|
|
"./setup": {
|
|
"import": "./dist/setup.js",
|
|
"types": "./dist/setup.d.ts"
|
|
},
|
|
"./types/graphTypes": {
|
|
"import": "./dist/types/graphTypes.js",
|
|
"types": "./dist/types/graphTypes.d.ts"
|
|
},
|
|
"./types/augmentations": {
|
|
"import": "./dist/types/augmentations.js",
|
|
"types": "./dist/types/augmentations.d.ts"
|
|
},
|
|
"./utils/textEncoding": {
|
|
"import": "./dist/utils/textEncoding.js",
|
|
"types": "./dist/utils/textEncoding.d.ts"
|
|
},
|
|
"./dist/utils/textEncoding.js": {
|
|
"import": "./dist/utils/textEncoding.js",
|
|
"types": "./dist/utils/textEncoding.d.ts"
|
|
},
|
|
"./dist/setup.js": {
|
|
"import": "./dist/setup.js",
|
|
"types": "./dist/setup.d.ts"
|
|
}
|
|
},
|
|
"engines": {
|
|
"node": ">=24.4.0"
|
|
},
|
|
"scripts": {
|
|
"prebuild": "echo 'Prebuild step - no version generation needed'",
|
|
"build": "BUILD_TYPE=unified rollup -c rollup.config.js",
|
|
"build:browser": "BUILD_TYPE=browser rollup -c rollup.config.js",
|
|
"start": "node dist/unified.js",
|
|
"demo": "npm run build && npm run build:browser && npx http-server -o /demo/index.html",
|
|
"version": "echo 'Version updated in package.json'",
|
|
"version:patch": "npm version patch",
|
|
"version:minor": "npm version minor",
|
|
"version:major": "npm version major",
|
|
"lint": "eslint --ext .ts,.js src/",
|
|
"lint:fix": "eslint --ext .ts,.js src/ --fix",
|
|
"format": "prettier --write \"src/**/*.{ts,js}\"",
|
|
"check:format": "prettier --check \"src/**/*.{ts,js}\"",
|
|
"check:style": "node scripts/check-code-style.js",
|
|
"prepare": "npm run build",
|
|
"deploy": "npm run build && npm publish && node scripts/create-github-release.js",
|
|
"dry-run": "npm pack --dry-run",
|
|
"test": "vitest run",
|
|
"test:watch": "vitest",
|
|
"test:ui": "vitest --ui",
|
|
"test:node": "vitest run tests/environment.node.test.ts tests/core.test.ts tests/vector-operations.test.ts tests/tensorflow-patch.test.ts",
|
|
"test:browser": "vitest run tests/environment.browser.test.ts --environment jsdom",
|
|
"test:core": "vitest run tests/core.test.ts",
|
|
"test:coverage": "vitest run --coverage",
|
|
"test:size": "vitest run tests/package-size-limit.test.ts",
|
|
"test:all": "npm run build && vitest run"
|
|
},
|
|
"keywords": [
|
|
"vector-database",
|
|
"hnsw",
|
|
"opfs",
|
|
"origin-private-file-system",
|
|
"embeddings",
|
|
"graph-database",
|
|
"streaming-data"
|
|
],
|
|
"author": "David Snelling (david@soulcraft.com)",
|
|
"license": "MIT",
|
|
"private": false,
|
|
"publishConfig": {
|
|
"access": "public"
|
|
},
|
|
"homepage": "https://github.com/soulcraft-research/brainy",
|
|
"bugs": {
|
|
"url": "https://github.com/soulcraft-research/brainy/issues"
|
|
},
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "git+https://github.com/soulcraft-research/brainy.git"
|
|
},
|
|
"files": [
|
|
"dist/unified.js",
|
|
"dist/unified.min.js",
|
|
"dist/brainy.js",
|
|
"dist/brainy.min.js",
|
|
"dist/**/*.d.ts",
|
|
"dist/types/",
|
|
"dist/augmentations/",
|
|
"dist/examples/",
|
|
"dist/hnsw/",
|
|
"dist/mcp/",
|
|
"dist/storage/",
|
|
"dist/utils/",
|
|
"LICENSE",
|
|
"README.md",
|
|
"brainy.png"
|
|
],
|
|
"devDependencies": {
|
|
"@rollup/plugin-commonjs": "^25.0.7",
|
|
"@rollup/plugin-json": "^6.1.0",
|
|
"@rollup/plugin-node-resolve": "^15.2.3",
|
|
"@rollup/plugin-replace": "^5.0.5",
|
|
"@rollup/plugin-typescript": "^11.1.6",
|
|
"@types/jsdom": "^21.1.7",
|
|
"@types/node": "^20.11.30",
|
|
"@types/uuid": "^10.0.0",
|
|
"@typescript-eslint/eslint-plugin": "^7.4.0",
|
|
"@typescript-eslint/parser": "^7.4.0",
|
|
"@vitest/coverage-v8": "^3.2.4",
|
|
"@vitest/ui": "^3.2.4",
|
|
"dotenv": "^17.2.1",
|
|
"eslint": "^8.57.0",
|
|
"happy-dom": "^18.0.1",
|
|
"jsdom": "^26.1.0",
|
|
"puppeteer": "^22.5.0",
|
|
"rollup": "^4.13.0",
|
|
"rollup-plugin-terser": "^7.0.2",
|
|
"tslib": "^2.6.2",
|
|
"typescript": "^5.4.5",
|
|
"vitest": "^3.2.4"
|
|
},
|
|
"dependencies": {
|
|
"@aws-sdk/client-s3": "^3.540.0",
|
|
"@tensorflow-models/universal-sentence-encoder": "^1.3.3",
|
|
"@tensorflow/tfjs": "^4.22.0",
|
|
"@tensorflow/tfjs-backend-cpu": "^4.22.0",
|
|
"@tensorflow/tfjs-backend-webgl": "^4.22.0",
|
|
"@tensorflow/tfjs-converter": "^4.22.0",
|
|
"@tensorflow/tfjs-core": "^4.22.0",
|
|
"buffer": "^6.0.3",
|
|
"uuid": "^9.0.1"
|
|
},
|
|
"prettier": {
|
|
"arrowParens": "always",
|
|
"bracketSameLine": true,
|
|
"bracketSpacing": true,
|
|
"htmlWhitespaceSensitivity": "css",
|
|
"printWidth": 80,
|
|
"proseWrap": "preserve",
|
|
"semi": false,
|
|
"singleQuote": true,
|
|
"tabWidth": 2,
|
|
"trailingComma": "none",
|
|
"useTabs": false
|
|
},
|
|
"eslintConfig": {
|
|
"root": true,
|
|
"extends": [
|
|
"eslint:recommended",
|
|
"plugin:@typescript-eslint/recommended"
|
|
],
|
|
"parser": "@typescript-eslint/parser",
|
|
"plugins": [
|
|
"@typescript-eslint"
|
|
],
|
|
"rules": {
|
|
"@typescript-eslint/no-explicit-any": "off",
|
|
"no-unused-vars": "off",
|
|
"@typescript-eslint/no-unused-vars": [
|
|
"warn",
|
|
{
|
|
"args": "after-used",
|
|
"argsIgnorePattern": "^_"
|
|
}
|
|
],
|
|
"semi": "off",
|
|
"@typescript-eslint/semi": [
|
|
"error",
|
|
"never"
|
|
],
|
|
"no-extra-semi": "off"
|
|
}
|
|
}
|
|
}
|