{ "name": "apicity", "version": "0.1.0", "description": "Standalone AI provider packages — @apicity/openai, @apicity/xai, @apicity/fal, @apicity/google, @apicity/kimicoding, @apicity/kie, @apicity/anthropic, @apicity/fireworks, @apicity/alibaba, @apicity/binance, @apicity/dropbox, @apicity/elevenlabs, @apicity/s3, @apicity/b2, @apicity/free-media-upload, @apicity/x, @apicity/meta, @apicity/polymarket, @apicity/youtube, @apicity/dolthub, @apicity/simplefunctions, @apicity/telegram, @apicity/openligadb, @apicity/openf1, @apicity/thesportsdb, @apicity/cost, and @apicity/mcp-server", "type": "module", "engines": { "node": ">=18.12.0", "pnpm": ">=10.0.0" }, "packageManager": "pnpm@10.30.3", "workspaces": [ "packages/*/*", "examples/*" ], "scripts": { "build": "pnpm run gen:examples && pnpm -r --filter './packages/**' run build && pnpm run doc-gen", "build:dolthub": "pnpm --filter @apicity/dolthub run build", "build:dropbox": "pnpm --filter @apicity/dropbox run build", "build:google": "pnpm --filter @apicity/google run build", "build:openai": "pnpm --filter @apicity/openai run build", "build:kimicoding": "pnpm --filter @apicity/kimicoding run build", "build:zaicoding": "pnpm --filter @apicity/zaicoding run build", "build:kie": "pnpm --filter @apicity/kie run build", "build:xai": "pnpm --filter @apicity/xai run build", "build:fal": "pnpm --filter @apicity/fal run build", "build:fireworks": "pnpm --filter @apicity/fireworks run build", "build:anthropic": "pnpm --filter @apicity/anthropic run build", "build:alibaba": "pnpm --filter @apicity/alibaba run build", "build:binance": "pnpm --filter @apicity/binance run build", "build:openligadb": "pnpm --filter @apicity/openligadb run build", "build:openf1": "pnpm --filter @apicity/openf1 run build", "build:elevenlabs": "pnpm --filter @apicity/elevenlabs run build", "build:s3": "pnpm --filter @apicity/s3 run build", "build:b2": "pnpm --filter @apicity/b2 run build", "build:x": "pnpm --filter @apicity/x run build", "build:meta": "pnpm --filter @apicity/meta run build", "build:youtube": "pnpm --filter @apicity/youtube run build", "build:telegram": "pnpm --filter @apicity/telegram run build", "build:thesportsdb": "pnpm --filter @apicity/thesportsdb run build", "build:polymarket": "pnpm --filter @apicity/polymarket run build", "build:simplefunctions": "pnpm --filter @apicity/simplefunctions run build", "build:free-media-upload": "pnpm --filter @apicity/free-media-upload run build", "build:cost": "pnpm --filter @apicity/cost run build", "build:mcp-server": "pnpm --filter @apicity/mcp-server run build", "gen:examples": "node scripts/extract-har-examples.mjs", "gen:examples:check": "node scripts/extract-har-examples.mjs --check", "gen:examples:report": "node scripts/extract-har-examples.mjs --report", "doc-gen": "node scripts/doc-gen.mjs", "doc-gen:openai": "node scripts/doc-gen.mjs openai", "doc-gen:xai": "node scripts/doc-gen.mjs xai", "doc-gen:dolthub": "node scripts/doc-gen.mjs dolthub", "doc-gen:dropbox": "node scripts/doc-gen.mjs dropbox", "doc-gen:google": "node scripts/doc-gen.mjs google", "doc-gen:anthropic": "node scripts/doc-gen.mjs anthropic", "doc-gen:fireworks": "node scripts/doc-gen.mjs fireworks", "doc-gen:fal": "node scripts/doc-gen.mjs fal", "doc-gen:kimicoding": "node scripts/doc-gen.mjs kimicoding", "doc-gen:alibaba": "node scripts/doc-gen.mjs alibaba", "doc-gen:binance": "node scripts/doc-gen.mjs binance", "doc-gen:openligadb": "node scripts/doc-gen.mjs openligadb", "doc-gen:openf1": "node scripts/doc-gen.mjs openf1", "doc-gen:elevenlabs": "node scripts/doc-gen.mjs elevenlabs", "doc-gen:s3": "node scripts/doc-gen.mjs s3", "doc-gen:b2": "node scripts/doc-gen.mjs b2", "doc-gen:kie": "node scripts/doc-gen.mjs kie", "doc-gen:polymarket": "node scripts/doc-gen.mjs polymarket", "doc-gen:free-media-upload": "node scripts/doc-gen.mjs free-media-upload", "doc-gen:youtube": "node scripts/doc-gen.mjs youtube", "doc-gen:telegram": "node scripts/doc-gen.mjs telegram", "doc-gen:thesportsdb": "node scripts/doc-gen.mjs thesportsdb", "doc-gen:x": "node scripts/doc-gen.mjs x", "doc-gen:meta": "node scripts/doc-gen.mjs meta", "doc-gen:simplefunctions": "node scripts/doc-gen.mjs simplefunctions", "clean": "rm -rf packages/provider/*/dist", "typecheck": "pnpm -r --filter './packages/**' exec tsc --noEmit -p tsconfig.json", "lint": "pnpm run format:check && pnpm run lint:eslint && node scripts/check-endpoint-comments.mjs && node scripts/check-orphan-recordings.mjs && node scripts/check-test-timers.mjs", "lint:eslint": "node --max-old-space-size=4096 ./node_modules/eslint/bin/eslint.js . --cache --cache-location node_modules/.cache/eslint/", "lint:fix": "node --max-old-space-size=4096 ./node_modules/eslint/bin/eslint.js . --cache --cache-location node_modules/.cache/eslint/ --fix", "lint:endpoints": "node scripts/check-endpoint-comments.mjs", "lint:signatures": "node scripts/check-endpoint-signatures.mjs", "lint:signatures:fix": "node scripts/apply-sigok-comments.mjs", "lint:timers": "node scripts/check-test-timers.mjs", "endpoint-map": "node scripts/endpoint-map.mjs", "endpoint-comments:apply": "node scripts/apply-endpoint-comments.mjs", "format": "prettier --write .", "format:check": "prettier --check .", "test": "vitest --config tests/vitest.integration.ts", "test:run": "vitest run --config tests/vitest.integration.ts", "test:provider": "node scripts/test-provider.mjs", "test:ui": "vitest --ui --config tests/vitest.integration.ts", "test:integration": "vitest run --config tests/vitest.integration.ts", "test:integration:record-missing": "node tests/record.mjs --mode=record-missing", "test:integration:record": "node tests/record.mjs --mode=record", "test:coverage": "vitest run --config tests/vitest.integration.ts --coverage", "harness": "npx tsx tests/harness-serve.ts tests/recordings/", "harness:compare": "npx tsx tests/harness-serve.ts --compare tests/recordings/", "harness:report": "npx tsx tests/harness-report.ts", "harness:telegram": "npx tsx tests/harness-telegram.ts", "harness:screenshot": "mkdir -p tests/fixtures/harness-generated && npx tsx tests/harness-report.ts --out-dir tests/fixtures/harness-generated && npx tsx tests/harness-screenshot.ts tests/fixtures/harness-generated/harness-report.html tests/fixtures/harness-generated/harness-report.png", "harness:screenshot:media": "mkdir -p tests/fixtures/harness-generated && npx tsx tests/harness-report.ts --out-dir tests/fixtures/harness-generated --media-only && npx tsx tests/harness-screenshot.ts tests/fixtures/harness-generated/harness-report.html tests/fixtures/harness-generated/harness-report-media.png", "harness:voice": "op run --env-file=.env -- npx tsx tests/voice-harness.ts", "dev:record": "node tests/record.mjs --mode=record-missing", "dev:rerecord": "node tests/record.mjs --mode=record", "dev:preflight": "pnpm run format && pnpm run typecheck && pnpm run lint && pnpm run test:run", "dev:preflight:provider": "node scripts/preflight-provider.mjs", "ci:local": "pnpm run audit && pnpm run build && pnpm run lint && pnpm run test:run", "audit": "pnpm audit --audit-level=moderate", "check:op": "op run --env-file=.env -- node scripts/check-op.mjs", "compare:video": "pnpm run build:cost --silent && node scripts/compare-video-cost.mjs", "compare:image": "pnpm run build:cost --silent && node scripts/compare-image-cost.mjs" }, "devDependencies": { "@eslint/js": "^9.39.4", "@pollyjs/adapter-fetch": "^6.0.6", "@pollyjs/core": "^6.0.6", "@pollyjs/persister-fs": "^6.0.6", "@types/node": "^20.19.42", "@vitest/coverage-v8": "^4.1.0", "@vitest/ui": "^4.1.0", "eslint": "^9.39.4", "eslint-config-prettier": "^9.0.0", "eslint-plugin-prettier": "^5.5.6", "globals": "^14.0.0", "playwright": "^1.60.0", "prettier": "^3.8.4", "ts-morph": "^28.0.0", "typescript": "^5.0.0", "typescript-eslint": "^8.61.0", "viem": "^2.52.2", "vitest": "^4.1.0", "zod": "^4.4.3" }, "overrides": { "glob": "13.0.6", "vite": "6.4.3" }, "pnpm": { "overrides": { "minimatch@<10.2.3": "10.2.3", "rollup@<4.59.0": "4.59.0", "esbuild@>=0.17.0 <0.28.1": "0.28.1", "flatted@<3.4.2": "3.4.2", "picomatch@<4.0.4": "4.0.4", "brace-expansion@<5.0.5": "5.0.5", "path-to-regexp@<0.1.13": "0.1.13", "lodash-es@<=4.17.23": "4.18.0", "glob@<=10.5.0": "13.0.6", "vite@<6.4.3": "6.4.3", "postcss@<8.5.10": "8.5.10", "ip-address@<10.1.1": "10.1.1", "fast-uri": "3.1.2", "hono@<4.12.25": "4.12.25", "js-yaml@<=4.1.1": "4.2.0", "brace-expansion@>=5.0.0 <5.0.6": ">=5.0.6", "qs@<6.15.2": "6.15.2", "ws@>=8.0.0 <8.21.0": "8.21.0" } }, "keywords": [ "ai", "kimicoding", "kimi", "k2p5", "anthropic", "chat", "streaming", "embeddings", "openai", "fal", "fal-ai", "google", "gemini", "alibaba", "dashscope", "qwen", "elevenlabs", "sound-effects", "tmpfiles", "typescript" ], "author": "Justin Tanner", "license": "MIT", "repository": "github:justintanner/apicity" }