{"_id":"@apisorcery/cli","_rev":"5-c7b9ddeddff943d182f95b8d8e5c285a","name":"@apisorcery/cli","dist-tags":{"latest":"1.5.2"},"versions":{"1.4.0":{"name":"@apisorcery/cli","version":"1.4.0","author":{"name":"Mark He"},"license":"MIT","_id":"@apisorcery/cli@1.4.0","maintainers":[{"name":"markhe","email":"heoo547627@126.com"}],"bin":{"apisorcery":"output/bin/apisorcery.js","apisorcery-mcp":"output/bin/mcp.js"},"dist":{"shasum":"20db70f967da5cf1564e508eb6e5c22bceac8af5","tarball":"https://registry.npmjs.org/@apisorcery/cli/-/cli-1.4.0.tgz","fileCount":32,"integrity":"sha512-B1hQTOQ7WGT6oER1fu7/vSElIGjoU0X+KOeJtITYUkjxxjaza8gtoLD4CMVJMfVw5mIA3JNR7iHpJpxplXuJZg==","signatures":[{"sig":"MEYCIQCbi3P2XyYtbzppa73KtezcjNNJgeXepaOfTTaKT7KzwAIhANkXtsVHYKvoqhgu4C4gZ40GJmuscQ/jStXQeT08TPWc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":621018},"$schema":"https://json.schemastore.org/package.json","engines":{"node":">=22.0.0"},"gitHead":"f97710394853ea63a0c01c8fe6fa7ba240d164be","scripts":{"test":"jest --coverage","build":"tsup","login":"npm login --registry=https://registry.npmjs.org/","npmjs":"npm run build:prod && npm publish --registry=https://registry.npmjs.org/","unnpmjs":"npm unpublish --registry=https://registry.npmjs.org/","build:qa":"API_SERVER_URL=http://localhost:9012 npm run build && npm run obfuscate","build:dev":"API_SERVER_URL=http://0.0.0.0:9011 npm run build && npm run obfuscate","obfuscate":"javascript-obfuscator dist/ --output output/  --string-array-encoding rc4","build:prod":"API_SERVER_URL=https://apisorcery.com/front-api npm run build && rm -rf output/ && npm run obfuscate"},"_npmUser":{"name":"markhe","email":"heoo547627@126.com"},"_npmVersion":"10.9.2","description":"Auto API","directories":{},"_nodeVersion":"22.17.1","dependencies":{"got":"11.8.6","fs-extra":"5.0.0","@types/fs-extra":"5.0.4","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.5.0","tslint":"5.11.0","ts-jest":"^29.2.5","ts-node":"^10.9.2","typescript":"^5.6.2","@types/jest":"29.2.6","@types/node":"^22.5.5","javascript-obfuscator":"^4.1.1"},"_npmOperationalInternal":{"tmp":"tmp/cli_1.4.0_1779107851953_0.6049850794620675","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"@apisorcery/cli","version":"1.4.1","author":{"name":"Mark He"},"license":"MIT","_id":"@apisorcery/cli@1.4.1","maintainers":[{"name":"markhe","email":"heoo547627@126.com"}],"bin":{"apisorcery":"output/bin/apisorcery.js","apisorcery-mcp":"output/bin/mcp.js"},"dist":{"shasum":"b2719889795414c7a317c8ea02183cd343439992","tarball":"https://registry.npmjs.org/@apisorcery/cli/-/cli-1.4.1.tgz","fileCount":32,"integrity":"sha512-46PuxSnnas93G6JfL3u48otx4B8maEHjmSCxJEBdDUpo9mSGrr5NnTA8KOzSGwG+Nim2yshGYgw9O8yvuCSD1w==","signatures":[{"sig":"MEUCIHIYUlF91H3wOOHA8Q3dVIlrfHIfpjW+tIA+yvhlcb0gAiEAycxargbt72AxJnn8051PmdqiLE5DTbfnYMqWKgFlvTs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":616272},"$schema":"https://json.schemastore.org/package.json","engines":{"node":">=22.0.0"},"gitHead":"5e22b2c1a6d8a366ef8c77db9530db52ac08397e","scripts":{"test":"jest --coverage","build":"tsup","login":"npm login --registry=https://registry.npmjs.org/","npmjs":"npm run build:prod && npm publish --registry=https://registry.npmjs.org/","unnpmjs":"npm unpublish --registry=https://registry.npmjs.org/","build:qa":"API_SERVER_URL=http://localhost:9012 npm run build && npm run obfuscate","build:dev":"API_SERVER_URL=http://0.0.0.0:9011 npm run build && npm run obfuscate","obfuscate":"javascript-obfuscator dist/ --output output/  --string-array-encoding rc4","build:prod":"API_SERVER_URL=https://apisorcery.com/front-api npm run build && rm -rf output/ && npm run obfuscate"},"_npmUser":{"name":"markhe","email":"heoo547627@126.com"},"_npmVersion":"10.9.2","description":"Auto API","directories":{},"_nodeVersion":"22.17.1","dependencies":{"got":"11.8.6","fs-extra":"5.0.0","@types/fs-extra":"5.0.4","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.5.0","tslint":"5.11.0","ts-jest":"^29.2.5","ts-node":"^10.9.2","typescript":"^5.6.2","@types/jest":"29.2.6","@types/node":"^22.5.5","javascript-obfuscator":"^4.1.1"},"_npmOperationalInternal":{"tmp":"tmp/cli_1.4.1_1787310379979_0.01840758101691553","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"@apisorcery/cli","version":"1.5.0","author":{"name":"Mark He"},"license":"MIT","_id":"@apisorcery/cli@1.5.0","maintainers":[{"name":"markhe","email":"heoo547627@126.com"}],"bin":{"apisorcery":"output/bin/apisorcery.js","apisorcery-mcp":"output/bin/mcp.js"},"dist":{"shasum":"0594d8421f28fe44aac767db916fe05471251544","tarball":"https://registry.npmjs.org/@apisorcery/cli/-/cli-1.5.0.tgz","fileCount":32,"integrity":"sha512-VaNnrRYDDdaNgN9ipb3JEdlxhx7xVcuZ1vAz1pXwhZrdOakasA7meQwsz5mDli++XP9n7jYfSWl4o/8JbWCK1w==","signatures":[{"sig":"MEUCIHdUgJpl8+sTCThs7pUdnaUC7LfMUjYcJ3NcKWfCm29YAiEAwmrnpBA4tVcuP3OCVxSdThuoszBJLFEtJB64R25r1Qk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":618431},"$schema":"https://json.schemastore.org/package.json","engines":{"node":">=22.0.0"},"gitHead":"9b459f963a88a2d3a4d7135f95f3e0dd1fbca124","scripts":{"test":"jest --coverage","build":"tsup","login":"npm login --registry=https://registry.npmjs.org/","npmjs":"npm run build:prod && npm publish --registry=https://registry.npmjs.org/","unnpmjs":"npm unpublish --registry=https://registry.npmjs.org/","build:qa":"API_SERVER_URL=http://localhost:9012 npm run build && npm run obfuscate","build:dev":"API_SERVER_URL=http://0.0.0.0:9011 npm run build && npm run obfuscate","obfuscate":"javascript-obfuscator dist/ --output output/  --string-array-encoding rc4","build:prod":"API_SERVER_URL=https://apisorcery.com/front-api npm run build && rm -rf output/ && npm run obfuscate"},"_npmUser":{"name":"markhe","email":"heoo547627@126.com"},"_npmVersion":"10.9.2","description":"Auto API","directories":{},"_nodeVersion":"22.17.1","dependencies":{"got":"11.8.6","fs-extra":"5.0.0","@types/fs-extra":"5.0.4","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.5.0","tslint":"5.11.0","ts-jest":"^29.2.5","ts-node":"^10.9.2","typescript":"^5.6.2","@types/jest":"29.2.6","@types/node":"^22.5.5","javascript-obfuscator":"^4.1.1"},"_npmOperationalInternal":{"tmp":"tmp/cli_1.5.0_1789118791111_0.11832581592937763","host":"s3://npm-registry-packages-npm-production"}},"1.5.1":{"name":"@apisorcery/cli","version":"1.5.1","author":{"name":"Mark He"},"license":"MIT","_id":"@apisorcery/cli@1.5.1","maintainers":[{"name":"markhe","email":"heoo547627@126.com"}],"bin":{"apisorcery":"output/bin/apisorcery.js","apisorcery-mcp":"output/bin/mcp.js"},"dist":{"shasum":"23d48aa703d2582538c7da59fa8ef40767892044","tarball":"https://registry.npmjs.org/@apisorcery/cli/-/cli-1.5.1.tgz","fileCount":32,"integrity":"sha512-ayMohK3/NGp/Yfko5M6fGB1ch+4P1ad83S/qKIUO2mrSIleSzuQStTTceBtGVEIwiu46aH/5s86dIC9xgchQ2g==","signatures":[{"sig":"MEUCIQCuXBGw4XfV5wJFqlUQXBHlWAf87plMirSG7H4UeY5KugIgFl9SNrbOivWjJ+O7bKt2+3elgwATjPgZQ7WeAFMluUU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDQJ9vQOGvdvitH4UZgBfNQ9iyJS3P0tFsHOcWTSu4N3QIgSBiIpfDnx/z7MsG27S59G0Oysl+5iJmJaVwONJ1O6Iw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":621074},"$schema":"https://json.schemastore.org/package.json","engines":{"node":">=22.0.0"},"gitHead":"3ac44bff2aea9e46850b2e0ebe596aa37b7cc94b","scripts":{"test":"jest --coverage","build":"tsup","login":"npm login --registry=https://registry.npmjs.org/","npmjs":"npm run build:prod && npm publish --registry=https://registry.npmjs.org/","unnpmjs":"npm unpublish --registry=https://registry.npmjs.org/","build:qa":"API_SERVER_URL=http://localhost:9012 npm run build && npm run obfuscate","build:dev":"API_SERVER_URL=http://0.0.0.0:9011 npm run build && npm run obfuscate","obfuscate":"javascript-obfuscator dist/ --output output/  --string-array-encoding rc4","build:prod":"API_SERVER_URL=https://apisorcery.com/front-api npm run build && rm -rf output/ && npm run obfuscate"},"_npmUser":{"name":"markhe","email":"heoo547627@126.com"},"_npmVersion":"10.9.2","description":"Auto API","directories":{},"_nodeVersion":"22.17.1","dependencies":{"got":"11.8.6","fs-extra":"5.0.0","@types/fs-extra":"5.0.4","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.5.0","tslint":"5.11.0","ts-jest":"^29.2.5","ts-node":"^10.9.2","typescript":"^5.6.2","@types/jest":"29.2.6","@types/node":"^22.5.5","javascript-obfuscator":"^4.1.1"},"_npmOperationalInternal":{"tmp":"tmp/cli_1.5.1_1789463370113_0.9244260779999374","host":"s3://npm-registry-packages-npm-production"}},"1.5.2":{"_id":"@apisorcery/cli@1.5.2","bin":{"apisorcery":"output/bin/apisorcery.js","apisorcery-mcp":"output/bin/mcp.js"},"dist":{"shasum":"91472925a34bec1e550c9044b4a2c55f7806b05e","tarball":"https://registry.npmjs.org/@apisorcery/cli/-/cli-1.5.2.tgz","fileCount":32,"integrity":"sha512-cYEC0nmtZiQdOoV65i+woDuFLKoKZjD78Kk2JsQwtDymg/pSkKs1jqBnkiIcIQpW5KQ5OI+xgXLBCeg+jjLu9g==","signatures":[{"sig":"MEUCIB6YhQ7LY/jsZGB1xz4p2W0wk2VYw4yXmlgZMtdQ58BnAiEA77On/LMbYS7Zp8uMkg5K9jyfIHOsPwBAI93axBXQ+js=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIE3GuUBtUkyFy0VHZzv/kr51Wnd52vCgF99HUDKJcn6zAiEA8b8yGfMh0uTNW3liTkIHZ20uF1hGJW3D6Khy6h/GLJQ="}],"unpackedSize":629712},"name":"@apisorcery/cli","author":{"name":"Mark He"},"$schema":"https://json.schemastore.org/package.json","engines":{"node":">=22.0.0"},"gitHead":"1bac43620f4692f5e109c72a117eb9daeedf4fe9","license":"MIT","scripts":{"test":"jest --coverage","build":"tsup","login":"npm login --registry=https://registry.npmjs.org/","npmjs":"npm run build:prod && npm publish --registry=https://registry.npmjs.org/","unnpmjs":"npm unpublish --registry=https://registry.npmjs.org/","build:qa":"API_SERVER_URL=http://localhost:9012 npm run build && npm run obfuscate","build:dev":"API_SERVER_URL=http://0.0.0.0:9011 npm run build && npm run obfuscate","obfuscate":"javascript-obfuscator dist/ --output output/  --string-array-encoding rc4","build:prod":"API_SERVER_URL=https://apisorcery.com/front-api npm run build && rm -rf output/ && npm run obfuscate"},"version":"1.5.2","_npmUser":{"name":"markhe","email":"heoo547627@126.com"},"_npmVersion":"10.9.2","description":"Auto API","directories":{},"maintainers":[{"name":"markhe","email":"heoo547627@126.com"}],"_nodeVersion":"22.17.1","dependencies":{"got":"11.8.6","fs-extra":"5.0.0","@types/fs-extra":"5.0.4","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.5.0","tslint":"5.11.0","ts-jest":"^29.2.5","ts-node":"^10.9.2","typescript":"^5.6.2","@types/jest":"29.2.6","@types/node":"^22.5.5","javascript-obfuscator":"^4.1.1"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/cli_1.5.2_1789573558101_0.2034015904098212"}}},"time":{"created":"2026-05-18T12:37:31.869Z","modified":"2026-09-16T15:45:58.380Z","1.4.0":"2026-05-18T12:37:32.159Z","1.4.1":"2026-08-21T11:06:20.111Z","1.5.0":"2026-09-11T09:26:31.257Z","1.5.1":"2026-09-15T09:09:30.199Z","1.5.2":"2026-09-16T15:45:58.211Z"},"author":{"name":"Mark He"},"license":"MIT","description":"Auto API","maintainers":[{"name":"markhe","email":"heoo547627@126.com"}],"readme":"# @apisorcery/cli\n\n## Installation\n\nUsing npm:\n\n```shell [npm]\n\nnpm i @apisorcery/cli -g\nnpm i @apisorcery/cli --save-dev\n```\n\n## Usage\n\n### Initialization\n\n```shell [npm]\n// Initialize in a Dart project\napisorcery init -l dart\n\n// Initialize in a TypeScript project\napisorcery init -l ts\n\n// Initialize in a ArkTS project\napisorcery init -l arkTs\n\n// Initialize in a Uniapp project\napisorcery init -l uniapp\n```\n\nThis command will generate the ApiSorcery configuration file [.apisorceryrc.json] in the project root directory.\nTaking a Dart project as an example, the content is as follows:\n\n```json [.apisorceryrc.json]\n{\n  \"application\": {\n    \"framework\": \"vue\",\n    \"language\": \"ts\",\n    \"outputDir\": \"./src/apis/auto\"\n  },\n  \"servers\": [\n    {\n      \"code\": \"demo\",\n      \"source\": \"https://apisorcery.com/demo-api/swagger-json\",\n      \"version\": 3,\n    }\n  ]\n}\n```\n\n### Register Device\n\n```shell [npm]\napisorcery register --token xxx\n//Or\napisorcery register -t xxx\n```\n\n### Generate API\n\n```shell [npm]\napisorcery generate\n```\n\nThis command will generate the following content:\n\n```shell [npm]\n### % apisorcery generate\nStarting to parse configuration file\nConfiguration file path: /Users/markhe/Code/hk-business/ruoqing/examples/autoapi_example_flutter/.apisorceryrc.json\nApplication name: DemoApplication\nApplication target framework: react\nApplication target language: dart\nApplication API output directory: ./lib/apis/auto\nConfiguration file parsing completed: 1 services found\n\n----------------------------------------\nStarting to process service #1\n----------------------------------------\n\nStarting service configuration validation\nService code: demo\nService name: DemoService\nService source: https://apisorcery.com/demo-api/swagger-json\nService configuration validation completed\n\nStarting to clean service output files\nOriginal output directory: /Users/markhe/Code/hk-business/ruoqing/examples/autoapi_example_flutter/lib/apis/auto/demo\nKeep base file due to strategy 'once': /Users/markhe/Code/hk-business/ruoqing/examples/autoapi_example_flutter/lib/apis/auto/demo/base.dart\nKeep HttpClient files due to strategy 'once': /Users/markhe/Code/hk-business/ruoqing/examples/autoapi_example_flutter/lib/apis/auto/demo/httpClient\nService output files cleanup completed\n\nStarting to fetch Swagger file\nSwagger file fetching completed\n\nStarting to parse Swagger file\nSwagger file parsing completed\n\nStarting to generate Model files\nStarting to generate custom classes\nStarting to generate request parameter classes\nStarting to generate response parameter classes\nStarting to generate schema classes\nStarting to output model file\nOutput file path: /Users/markhe/Code/hk-business/ruoqing/examples/autoapi_example_flutter/lib/apis/auto/demo/model.dart\nModel files generation completed\n\nStarting to generate Base files\nOutput file path: /Users/markhe/Code/hk-business/ruoqing/examples/autoapi_example_flutter/lib/apis/auto/demo/base.dart\nBase file already exists and strategy is 'once', skip\nBase files generation completed\n\nStarting to generate HttpClient files\nAll HttpClient files already exists and strategy is 'once', skip\nHttpClient files generation completed\n\nStarting to generate API files\nOutput directory: /Users/markhe/Code/hk-business/ruoqing/examples/autoapi_example_flutter/lib/apis/auto/demo\nStarting to generate API class: ApiUser\nStarting to generate API class: ApiFile\nAPI files generation completed\n\n----------------------------------------\nService #1 processing completed\n----------------------------------------\n\nStarting to generate model.g.dart files for all services\nResolving dependencies in `/Users/markhe/Code/hk-business/ruoqing/examples/autoapi_example_flutter`...\nDownloading packages...\nGot dependencies in `/Users/markhe/Code/hk-business/ruoqing/examples/autoapi_example_flutter`.\nBuilding package executable...\nBuilt build_runner:build_runner.\n[INFO] Generating build script completed, took 196ms\n[INFO] Reading cached asset graph completed, took 69ms\n[INFO] Checking for updates since last build completed, took 569ms\n[INFO] Running build completed, took 14.0s\n[INFO] Caching finalized dependency graph completed, took 90ms\n[INFO] Succeeded after 14.2s with 843 outputs (1697 actions)\nmodel.g.dart files generation completed\n\nAll auto-generation tasks completed, thanks for using!\n```\n","readmeFilename":"README.md"}