CRITICAL: Ensures production reliability at scale - Add aws-sdk-client-mock for S3 testing without AWS resources - Create comprehensive test suite for ALL S3 operations - Test statistics persistence, recovery, and partitioning - Test rate limiting, throttling, and retry logic - Test concurrent operations from multiple services - Test data integrity with checksums - Test batch operations and performance optimizations - Simulate millions of records for scale testing - Ensure backward compatibility with legacy formats Also: Remove deprecated addSmart() method (functionality merged into add()) These tests are critical for production deployments where S3 is the primary storage backend for scaled systems handling millions of records.
270 lines
9.2 KiB
JSON
270 lines
9.2 KiB
JSON
{
|
|
"name": "@soulcraft/brainy",
|
|
"version": "1.1.1",
|
|
"description": "Multi-Dimensional AI Database - Vector similarity, graph relationships, metadata facets with HNSW indexing and OPFS storage",
|
|
"main": "dist/index.js",
|
|
"module": "dist/index.js",
|
|
"types": "dist/index.d.ts",
|
|
"type": "module",
|
|
"bin": {
|
|
"brainy": "./bin/brainy.js"
|
|
},
|
|
"sideEffects": [
|
|
"./dist/setup.js",
|
|
"./dist/utils/textEncoding.js",
|
|
"./src/setup.ts",
|
|
"./src/utils/textEncoding.ts"
|
|
],
|
|
"browser": {
|
|
"fs": false,
|
|
"fs/promises": false,
|
|
"path": "path-browserify",
|
|
"crypto": "crypto-browserify",
|
|
"./dist/cortex/cortex.js": "./dist/browserFramework.js"
|
|
},
|
|
"exports": {
|
|
".": {
|
|
"browser": "./dist/browserFramework.js",
|
|
"node": "./dist/index.js",
|
|
"import": "./dist/index.js",
|
|
"types": "./dist/index.d.ts"
|
|
},
|
|
"./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"
|
|
},
|
|
"./browserFramework": {
|
|
"import": "./dist/browserFramework.js",
|
|
"types": "./dist/browserFramework.d.ts"
|
|
},
|
|
"./universal": {
|
|
"import": "./dist/universal/index.js",
|
|
"types": "./dist/universal/index.d.ts"
|
|
},
|
|
"./universal/uuid": {
|
|
"import": "./dist/universal/uuid.js",
|
|
"types": "./dist/universal/uuid.d.ts"
|
|
},
|
|
"./universal/crypto": {
|
|
"import": "./dist/universal/crypto.js",
|
|
"types": "./dist/universal/crypto.d.ts"
|
|
},
|
|
"./universal/fs": {
|
|
"import": "./dist/universal/fs.js",
|
|
"types": "./dist/universal/fs.d.ts"
|
|
},
|
|
"./universal/path": {
|
|
"import": "./dist/universal/path.js",
|
|
"types": "./dist/universal/path.d.ts"
|
|
},
|
|
"./universal/events": {
|
|
"import": "./dist/universal/events.js",
|
|
"types": "./dist/universal/events.d.ts"
|
|
}
|
|
},
|
|
"engines": {
|
|
"node": ">=24.4.0"
|
|
},
|
|
"scripts": {
|
|
"prebuild": "echo 'Prebuild step - no version generation needed'",
|
|
"build": "tsc",
|
|
"build:browser": "npm run build && vite build --config vite.browser.config.ts",
|
|
"build:framework": "tsc",
|
|
"start": "node dist/framework.js",
|
|
"prepare": "npm run build",
|
|
"test": "vitest run",
|
|
"test:memory": "node --max-old-space-size=4096 --expose-gc ./node_modules/vitest/vitest.mjs run",
|
|
"test:watch": "vitest",
|
|
"test:ui": "vitest --ui",
|
|
"test:fast": "vitest run --reporter=dot --silent",
|
|
"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",
|
|
"test:report:json": "vitest run --reporter json",
|
|
"test:error-handling": "vitest run tests/error-handling.test.ts",
|
|
"test:edge-cases": "vitest run tests/edge-cases.test.ts",
|
|
"test:storage": "vitest run tests/storage-adapter-coverage.test.ts",
|
|
"broadcast:server": "npm run build && node dist/scripts/start-broadcast-server.js",
|
|
"broadcast:local": "npm run build && node dist/scripts/start-broadcast-server.js",
|
|
"broadcast:cloud": "npm run build && node dist/scripts/start-broadcast-server.js --cloud",
|
|
"claude:jarvis": "npm run build && node dist/scripts/claude-jarvis.js",
|
|
"claude:picasso": "npm run build && node dist/scripts/claude-picasso.js",
|
|
"test:environments": "vitest run tests/multi-environment.test.ts",
|
|
"test:specialized": "vitest run tests/specialized-scenarios.test.ts",
|
|
"test:performance": "vitest run tests/performance.test.ts",
|
|
"test:install": "vitest run tests/package-install.test.ts",
|
|
"test:docker": "vitest run tests/custom-models-path.test.ts",
|
|
"test:extraction": "node tests/auto-extraction.test.js",
|
|
"extract-models": "node scripts/extract-models.js",
|
|
"test:comprehensive": "npm run test:error-handling && npm run test:edge-cases && npm run test:storage && npm run test:environments && npm run test:specialized",
|
|
"test:release": "npm run build && vitest run tests/release-validation.test.ts tests/regression.test.ts tests/unified-api.test.ts tests/core.test.ts --reporter=verbose",
|
|
"test:1.0": "vitest run tests/unified-api.test.ts tests/cli.test.ts --reporter=verbose",
|
|
"_generate-pdf": "node dev/scripts/generate-architecture-pdf.js",
|
|
"_release": "standard-version",
|
|
"_release:patch": "standard-version --release-as patch",
|
|
"_release:minor": "standard-version --release-as minor",
|
|
"_release:major": "standard-version --release-as major",
|
|
"_release:dry-run": "standard-version --dry-run",
|
|
"_github-release": "node scripts/create-github-release.js",
|
|
"_changelog:check": "echo 'Changelog is now automatically generated from commit messages'",
|
|
"_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",
|
|
"_deploy": "npm run build && npm publish",
|
|
"_workflow": "node scripts/release-workflow.js",
|
|
"_workflow:patch": "node scripts/release-workflow.js patch",
|
|
"_workflow:minor": "node scripts/release-workflow.js minor",
|
|
"_workflow:major": "node scripts/release-workflow.js major",
|
|
"_workflow:dry-run": "npm run build && npm test && npm run _release:dry-run",
|
|
"_dry-run": "npm pack --dry-run",
|
|
"download-models": "node scripts/download-models.cjs"
|
|
},
|
|
"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/soulcraftlabs/brainy",
|
|
"bugs": {
|
|
"url": "https://github.com/soulcraftlabs/brainy/issues"
|
|
},
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "git+https://github.com/soulcraftlabs/brainy.git"
|
|
},
|
|
"files": [
|
|
"dist/**/*.js",
|
|
"dist/**/*.d.ts",
|
|
"!dist/framework.js",
|
|
"!dist/framework.js.map",
|
|
"!dist/framework.min.js",
|
|
"!dist/framework.min.js.map",
|
|
"LICENSE",
|
|
"README.md",
|
|
"brainy.png",
|
|
"scripts/download-models.cjs",
|
|
"OFFLINE_MODELS.md"
|
|
],
|
|
"devDependencies": {
|
|
"@rollup/plugin-commonjs": "^28.0.6",
|
|
"@rollup/plugin-node-resolve": "^16.0.1",
|
|
"@rollup/plugin-replace": "^6.0.2",
|
|
"@rollup/plugin-terser": "^0.4.4",
|
|
"@types/express": "^5.0.3",
|
|
"@types/jsdom": "^21.1.7",
|
|
"@types/node": "^20.11.30",
|
|
"@types/prompts": "^2.4.9",
|
|
"@types/uuid": "^10.0.0",
|
|
"@types/ws": "^8.18.1",
|
|
"@typescript-eslint/eslint-plugin": "^8.0.0",
|
|
"@typescript-eslint/parser": "^8.0.0",
|
|
"@vitejs/plugin-basic-ssl": "^2.1.0",
|
|
"@vitest/coverage-v8": "^3.2.4",
|
|
"@vitest/ui": "^3.2.4",
|
|
"aws-sdk-client-mock": "^4.1.0",
|
|
"aws-sdk-client-mock-jest": "^4.1.0",
|
|
"buffer": "^6.0.3",
|
|
"crypto-browserify": "^3.12.1",
|
|
"eslint": "^9.0.0",
|
|
"express": "^5.1.0",
|
|
"happy-dom": "^18.0.1",
|
|
"jsdom": "^26.1.0",
|
|
"process": "^0.11.10",
|
|
"puppeteer": "^22.15.0",
|
|
"standard-version": "^9.5.0",
|
|
"tslib": "^2.6.2",
|
|
"typescript": "^5.4.5",
|
|
"vite": "^7.1.1",
|
|
"vitest": "^3.2.4"
|
|
},
|
|
"dependencies": {
|
|
"@aws-sdk/client-s3": "^3.540.0",
|
|
"@huggingface/transformers": "^3.1.0",
|
|
"@smithy/node-http-handler": "^4.1.1",
|
|
"boxen": "^7.1.1",
|
|
"chalk": "^5.3.0",
|
|
"cli-table3": "^0.6.3",
|
|
"commander": "^11.1.0",
|
|
"dotenv": "^16.4.5",
|
|
"inquirer": "^12.9.1",
|
|
"ora": "^8.0.1",
|
|
"prompts": "^2.4.2",
|
|
"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"
|
|
}
|
|
}
|
|
}
|