{"_id":"zentao-api","_rev":"31-e54c89669e0ec6aea05219aa05535549","name":"zentao-api","dist-tags":{"latest":"0.7.2"},"versions":{"0.1.0":{"name":"zentao-api","version":"0.1.0","keywords":["ZenTao","API","Client","SDK"],"author":{"name":"Catouse","email":"catouse@gmail.com"},"license":"MIT","_id":"zentao-api@0.1.0","maintainers":[{"name":"catouse","email":"catouse@gmail.com"}],"homepage":"https://github.com/catouse/zentao-api#readme","bugs":{"url":"https://github.com/catouse/zentao-api/issues"},"dist":{"shasum":"f524dfc14b6688b73d972675649f3a00367e9bd0","tarball":"https://registry.npmjs.org/zentao-api/-/zentao-api-0.1.0.tgz","fileCount":24,"integrity":"sha512-6wqyHgemU2wOHzvTaM5cFWofGgw56d9fn27oKnEz7iO9LWx4AXpb3wetFqlkY9glGU8BNgDl8wOQ82iNaHe/KQ==","signatures":[{"sig":"MEUCIGg1uBMVqx0zpUjGlW5NhEfiY6kg06iR9YdNVUNRMbf3AiEArsQY+414+FHKA2x7vEOdujkSVkIEjRusZ3UBzptlxuU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":911701,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgTGCmCRA9TVsSAnZWagAAcNQP/jRilM/JEkjNXJU+2+gx\nJ92yIcay2IzKCmor5F/Tbw58kA9DTw2nJMWb/VqLR8ocgRJPiNdd2FyZz6Cv\nhv3yYBpxZ2cRBiEfJ/DCYjRriIOOn8GTlcVW8C8vV6L/qjq72IIYDcUYA0jN\nSYmNlra4AQLxE4RRIui0JVAGEgNC7JOSbEdYle3kkkIitY1d2s58hHpVgQie\nMEhFI06bUf2E2sK9nC5Vg58SUc+IDFw0sUBS6SnIvhayjoh68bjqBKjLZ82l\nFFfHN19VNDzmqf4wlR2PRBgS6PZdUnfCsF8QLCXAnREG9kUGyPqt1LVNTk+T\n+UYhxXN2/efuuZeE5xvcUU8t0/zArzJkyBIrLQEBueGeQgEZVNAoWEYk9cpE\nFha5MbK8mhpfzJDmgnQKKPnMjplDqPuY8exIylLSJX4w5/+70ec2lLsd0aJH\nfp6NaoUuGAH1FgXFNoOXY6F+kqkyoOrLa00T8aFpBOonJf9y4S6YSVa2AZJQ\nGYnRgXxTF5NXVcbqVk0diikbaukiSJVw3JsAa78nOZjUShTdlsfx0kJxO+Mh\nwqP9si06XqYD8pUOoBGCMkyo9Unn09krqeEEc8aHq8zlvcoyhooEgLueYZLF\nbycQpd3gu8hS1bmqa3EZLh68EvuErEfITjLsDrDoMTomPFOX9rORId+9DpP+\nzz3M\r\n=CERX\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","husky":{"hooks":{"pre-commit":"tsdx lint"}},"module":"dist/zentao-api.esm.js","engines":{"node":">=10"},"gitHead":"5574144bf6c0883c35350ef9be6689a3bbfe1e8a","scripts":{"doc":"typedoc --out docs/ --theme default --excludePrivate --excludeProtected --excludeExternals src/","lint":"tsdx lint","size":"size-limit","test":"tsdx test","build":"tsdx build","start":"tsdx watch","analyze":"size-limit --why","prepare":"tsdx build"},"typings":"dist/index.d.ts","_npmUser":{"name":"catouse","email":"catouse@gmail.com"},"prettier":{"semi":true,"useTabs":false,"tabWidth":4,"printWidth":80,"singleQuote":true,"trailingComma":"es5","bracketSpacing":false},"repository":{"url":"git+https://github.com/catouse/zentao-api.git","type":"git"},"size-limit":[{"path":"dist/zentao-api.cjs.production.min.js","limit":"10 KB"},{"path":"dist/zentao-api.esm.js","limit":"10 KB"}],"_npmVersion":"6.14.11","description":"JavaScript client libary for ZenTao SDK http://www.zentao.net/book/api/setting-369.html","directories":{},"resolutions":{"**/jest":"^26.6.3","**/ts-jest":"^26.5.3","**/typescript":"^4.2.3","**/@typescript-eslint/parser":"^4.17.0","**/@typescript-eslint/eslint-plugin":"^4.17.0"},"_nodeVersion":"14.15.3","dependencies":{"md5":"^2.3.0","axios":"^0.21.1","kleur":"^4.1.4","form-data":"^4.0.0","configstore":"^5.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsdx":"^0.14.1","husky":"^5.1.1","tslib":"^2.1.0","typedoc":"^0.20.30","@types/md5":"^2.3.0","size-limit":"^4.9.2","typescript":"^4.2.3","@types/configstore":"^4.0.0","@typescript-eslint/parser":"^4.17.0","@size-limit/preset-small-lib":"^4.9.2","@typescript-eslint/eslint-plugin":"^4.17.0"},"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/zentao-api_0.1.0_1615618214317_0.34306978310443514","host":"s3://npm-registry-packages"}},"0.2.0-beta.1":{"name":"zentao-api","version":"0.2.0-beta.1","keywords":["zentao","禅道","api","sdk","browser"],"author":"Sun Hao <sunhao@chandao.com>","license":"MIT","_id":"zentao-api@0.2.0-beta.1","maintainers":[{"name":"catouse","email":"catouse@gmail.com"}],"dist":{"shasum":"aed3476da62fb05a46c8fcbeb940b98e8b25ed85","tarball":"https://registry.npmjs.org/zentao-api/-/zentao-api-0.2.0-beta.1.tgz","fileCount":32,"integrity":"sha512-FUXrgTP1zXuouIXsRcXhCtkYix9+3lxARpna+bBeVtRbzBB29srTAvUmzI3OEiQCLNGNrdO8AV9vO6aHnAbGZQ==","signatures":[{"sig":"MEQCIHDVf9B2zT//cv1j8xER1qTpuWxX4JOhM/SwBQydoJZeAiBDQKHq+QggABsQx/S+Qt3zghcQNNUcazDiC+BxhyA3kQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":304794},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","shasum":"aed3476da62fb05a46c8fcbeb940b98e8b25ed85","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./browser":"./dist/browser/zentao-api.global.js","./package.json":"./package.json"},"scripts":{"test":"bun test","build":"rm -rf dist && tsc -p tsconfig.json && bun run scripts/build-browser.ts","check":"bun run test:coverage && bun run typecheck && bun run typecheck:tests && bun run registry:check && bun run build && bun run smoke:node && bun run smoke:package","test:real":"bun ./tests/real-env-runner.ts","typecheck":"tsc --noEmit","smoke:node":"node scripts/smoke-node.mjs","smoke:package":"bun run scripts/smoke-package.ts","test:coverage":"bun test --coverage","prepublishOnly":"bun run check","registry:check":"bun run scripts/update-registry.ts --check","typecheck:tests":"tsc -p tsconfig.test.json --noEmit"},"_npmUser":{"name":"catouse","email":"catouse@gmail.com"},"_integrity":"sha512-FUXrgTP1zXuouIXsRcXhCtkYix9+3lxARpna+bBeVtRbzBB29srTAvUmzI3OEiQCLNGNrdO8AV9vO6aHnAbGZQ==","repository":{"url":"https://github.com/catouse/zentao-api.git","type":"git"},"_npmVersion":"10.8.3","description":"Browser and Node.js SDK for ZenTao API","directories":{},"_nodeVersion":"24.3.0","dependencies":{"turndown":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.13","typescript":"^5.7.0","@types/node":"^24.10.0","@types/turndown":"^5.0.5"},"_npmOperationalInternal":{"tmp":"tmp/zentao-api_0.2.0-beta.1_1778417174417_0.37073731832412093","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-beta.2":{"name":"zentao-api","version":"0.2.0-beta.2","keywords":["zentao","禅道","api","sdk","browser"],"author":"Sun Hao <sunhao@chandao.com>","license":"MIT","_id":"zentao-api@0.2.0-beta.2","maintainers":[{"name":"catouse","email":"catouse@gmail.com"}],"dist":{"shasum":"735385f9c7053baf4bd2b8c9e4062312ca0f92fc","tarball":"https://registry.npmjs.org/zentao-api/-/zentao-api-0.2.0-beta.2.tgz","fileCount":34,"integrity":"sha512-FUP3Ckb3zrbDsXN+fyhl3lq/vJzPCYRcKzY1wa78PASVpYyFrWC7k+QnfGWnW8JIKPcRTp5PfwJdW8YLC735og==","signatures":[{"sig":"MEQCIAw84tUtFEi1bACGyiDL3OA3elo/Eh+Q6IP/qjbFlv7dAiBvyY2pKqJdnfJWRZppZb2hJddIA4zDxNgT+DGGNPqjvQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":333473},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","shasum":"735385f9c7053baf4bd2b8c9e4062312ca0f92fc","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./browser":"./dist/browser/zentao-api.global.js","./package.json":"./package.json"},"scripts":{"test":"bun test","build":"rm -rf dist && tsc -p tsconfig.json && bun run scripts/build-browser.ts","check":"bun run test:coverage && bun run typecheck && bun run typecheck:tests && bun run registry:check && bun run build && bun run smoke:node && bun run smoke:package","docs:dev":"bun run docs:generate && vitepress dev docs","test:real":"bun ./tests/real-env-runner.ts","typecheck":"tsc --noEmit","docs:build":"bun run docs:generate && vitepress build docs","smoke:node":"node scripts/smoke-node.mjs","docs:preview":"bun run docs:build && vitepress preview docs","docs:generate":"bun run docs:reference && bun run docs:zentao-api","smoke:package":"bun run scripts/smoke-package.ts","test:coverage":"bun test --coverage","docs:reference":"typedoc","prepublishOnly":"bun run check","registry:check":"bun run scripts/update-registry.ts --check","docs:zentao-api":"bun run scripts/generate-zentao-api-docs.ts","typecheck:tests":"tsc -p tsconfig.test.json --noEmit"},"_npmUser":{"name":"catouse","email":"catouse@gmail.com"},"_integrity":"sha512-FUP3Ckb3zrbDsXN+fyhl3lq/vJzPCYRcKzY1wa78PASVpYyFrWC7k+QnfGWnW8JIKPcRTp5PfwJdW8YLC735og==","repository":{"url":"https://github.com/catouse/zentao-api","type":"git"},"_npmVersion":"10.8.3","description":"Browser and Node.js SDK for ZenTao API","directories":{},"_nodeVersion":"24.3.0","dependencies":{"turndown":"^7.2.0"},"_hasShrinkwrap":false,"devDependencies":{"typedoc":"^0.28.19","vitepress":"^1.6.4","@types/bun":"^1.3.13","typescript":"^5.7.0","@types/node":"^24.10.0","@types/turndown":"^5.0.5","typedoc-plugin-markdown":"^4.11.0","typedoc-vitepress-theme":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/zentao-api_0.2.0-beta.2_1778507194677_0.8531013545413098","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"zentao-api","version":"0.2.0","keywords":["zentao","禅道","api","sdk","browser"],"author":"Sun Hao <sunhao@chandao.com>","license":"MIT","_id":"zentao-api@0.2.0","maintainers":[{"name":"catouse","email":"catouse@gmail.com"}],"dist":{"shasum":"c6be797708ef1047ba95e9a192ae8ead1d0b5e40","tarball":"https://registry.npmjs.org/zentao-api/-/zentao-api-0.2.0.tgz","fileCount":34,"integrity":"sha512-aN9wmG/6x6YFG8i9lE2IkHTRv3rviIqmmpPwyuh5+oDDno07GUrL/ampdDVpqVs9mThbJZRIFMrqBASvxMkDjg==","signatures":[{"sig":"MEQCIG615qYrcSsOB1wBcJjWRuLzHXkq9J7ZdVBiNko1e8l0AiAt8tnJJ9PCIL1ngAZy+qF5fs1lDYtTjPcd2Yfm+vDocQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":365303},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","shasum":"c6be797708ef1047ba95e9a192ae8ead1d0b5e40","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","browser":"./dist/browser.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./package.json":"./package.json","./browser/global":"./dist/browser/zentao-api.global.js"},"scripts":{"test":"bun test","build":"rm -rf dist && tsc -p tsconfig.json && bun run scripts/build-browser.ts","check":"bun run test:coverage && bun run typecheck && bun run typecheck:tests && bun run registry:check && bun run build && bun run smoke:node && bun run smoke:package","docs:dev":"bun run docs:generate && vitepress dev docs","test:real":"bun ./tests/real-env-runner.ts","typecheck":"tsc --noEmit","docs:build":"bun run docs:generate && vitepress build docs","smoke:node":"node scripts/smoke-node.mjs","docs:preview":"bun run docs:build && vitepress preview docs","docs:generate":"bun run docs:reference && bun run docs:zentao-api","smoke:package":"bun run scripts/smoke-package.ts","test:coverage":"bun test --coverage","docs:reference":"typedoc","prepublishOnly":"bun run check","registry:check":"bun run scripts/update-registry.ts --check","docs:zentao-api":"bun run scripts/generate-zentao-api-docs.ts","typecheck:tests":"tsc -p tsconfig.test.json --noEmit"},"_npmUser":{"name":"catouse","email":"catouse@gmail.com"},"_integrity":"sha512-aN9wmG/6x6YFG8i9lE2IkHTRv3rviIqmmpPwyuh5+oDDno07GUrL/ampdDVpqVs9mThbJZRIFMrqBASvxMkDjg==","repository":{"url":"https://github.com/easysoft/zentao-api","type":"git"},"_npmVersion":"10.8.3","description":"Browser and Node.js SDK for ZenTao API","directories":{},"sideEffects":["./dist/browser-global.js","./dist/browser/zentao-api.global.js"],"_nodeVersion":"24.3.0","_hasShrinkwrap":false,"devDependencies":{"typedoc":"^0.28.19","vitepress":"^1.6.4","@types/bun":"^1.3.13","typescript":"^5.7.0","@types/node":"^24.10.0","typedoc-plugin-markdown":"^4.11.0","typedoc-vitepress-theme":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/zentao-api_0.2.0_1779712988221_0.7368572745290416","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"zentao-api","version":"0.2.1","keywords":["zentao","禅道","api","sdk","browser"],"author":"Sun Hao <sunhao@chandao.com>","license":"MIT","_id":"zentao-api@0.2.1","maintainers":[{"name":"catouse","email":"catouse@gmail.com"}],"dist":{"shasum":"03b03cc2df4960bf28fa13a142cd923831b9a4d5","tarball":"https://registry.npmjs.org/zentao-api/-/zentao-api-0.2.1.tgz","fileCount":34,"integrity":"sha512-ZodGG+8sWgM6l3CTpAfV9wsCQs4qqGZMOMslgz9dzC5cZVdCPxBFaNs8ItR/cZIBnNhGvlfSWUg05x+GCpCt1w==","signatures":[{"sig":"MEUCIQCLWJPAg24y+lmPsdFD16QuGFDPGJmcwXZyXJK4Gq98BgIgPQnCYUXoyb1SXR9MXTDhlYupc3Z0Te/IVQuVaRufDOc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":365805},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","shasum":"03b03cc2df4960bf28fa13a142cd923831b9a4d5","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","browser":"./dist/browser.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./package.json":"./package.json","./browser/global":"./dist/browser/zentao-api.global.js"},"scripts":{"test":"bun test","build":"rm -rf dist && tsc -p tsconfig.json && bun run scripts/build-browser.ts","check":"bun run test:coverage && bun run typecheck && bun run typecheck:tests && bun run registry:check && bun run build && bun run smoke:node && bun run smoke:package","docs:dev":"bun run docs:generate && vitepress dev docs","test:real":"bun ./tests/real-env-runner.ts","typecheck":"tsc --noEmit","docs:build":"bun run docs:generate && vitepress build docs","smoke:node":"node scripts/smoke-node.mjs","docs:preview":"bun run docs:build && vitepress preview docs","docs:generate":"bun run docs:reference && bun run docs:zentao-api","smoke:package":"bun run scripts/smoke-package.ts","test:coverage":"bun test --coverage","docs:reference":"typedoc","prepublishOnly":"bun run check","registry:check":"bun run scripts/update-registry.ts --check","docs:zentao-api":"bun run scripts/generate-zentao-api-docs.ts","typecheck:tests":"tsc -p tsconfig.test.json --noEmit"},"_npmUser":{"name":"catouse","email":"catouse@gmail.com"},"_integrity":"sha512-ZodGG+8sWgM6l3CTpAfV9wsCQs4qqGZMOMslgz9dzC5cZVdCPxBFaNs8ItR/cZIBnNhGvlfSWUg05x+GCpCt1w==","repository":{"url":"https://github.com/easysoft/zentao-api","type":"git"},"_npmVersion":"10.8.3","description":"Browser and Node.js SDK for ZenTao API","directories":{},"sideEffects":["./dist/browser-global.js","./dist/browser/zentao-api.global.js"],"_nodeVersion":"24.3.0","_hasShrinkwrap":false,"devDependencies":{"typedoc":"^0.28.19","vitepress":"^1.6.4","@types/bun":"^1.3.13","typescript":"^5.7.0","@types/node":"^24.10.0","typedoc-plugin-markdown":"^4.11.0","typedoc-vitepress-theme":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/zentao-api_0.2.1_1782204681993_0.04994404498690019","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"zentao-api","version":"0.3.0","keywords":["zentao","禅道","api","sdk","browser"],"author":"Sun Hao <sunhao@chandao.com>","license":"MIT","_id":"zentao-api@0.3.0","maintainers":[{"name":"catouse","email":"catouse@gmail.com"}],"dist":{"shasum":"a7b35eb0391ecd40cf8b3c87ef506fc402adcf6f","tarball":"https://registry.npmjs.org/zentao-api/-/zentao-api-0.3.0.tgz","fileCount":42,"integrity":"sha512-Er0aa73GZxbYTOSmN8mmWH+ru/sCclQheHh6gw/Nd6toUuqtM/kdXosNkN0rkShs55Bz2dgnVeV5VQGh8/GE+A==","signatures":[{"sig":"MEUCIQDuKvER/yL+7QzzJM5sPqagyaHSq5wrAyBuGmr1liYoswIgKxW7d0/ZsQGQeAafRrf9s4N1utm67pMflndO2stTwZY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":384958},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","shasum":"a7b35eb0391ecd40cf8b3c87ef506fc402adcf6f","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","browser":"./dist/browser.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./package.json":"./package.json","./browser/global":"./dist/browser/zentao-api.global.js"},"scripts":{"test":"bun test","build":"rm -rf dist && tsc -p tsconfig.json && bun run scripts/build-browser.ts","check":"bun run test:coverage && bun run typecheck && bun run typecheck:tests && bun run registry:check && bun run build && bun run smoke:node && bun run smoke:package","docs:dev":"bun run docs:generate && vitepress dev docs","test:real":"bun ./tests/real-env-runner.ts","typecheck":"tsc --noEmit","docs:build":"bun run docs:generate && vitepress build docs","smoke:node":"node scripts/smoke-node.mjs","docs:preview":"bun run docs:build && vitepress preview docs","docs:generate":"bun run docs:reference && bun run docs:zentao-api","smoke:package":"bun run scripts/smoke-package.ts","test:coverage":"bun test --coverage","docs:reference":"typedoc","prepublishOnly":"bun run check","registry:check":"bun run scripts/update-registry.ts --check","docs:zentao-api":"bun run scripts/generate-zentao-api-docs.ts","typecheck:tests":"tsc -p tsconfig.test.json --noEmit"},"_npmUser":{"name":"catouse","email":"catouse@gmail.com"},"_integrity":"sha512-Er0aa73GZxbYTOSmN8mmWH+ru/sCclQheHh6gw/Nd6toUuqtM/kdXosNkN0rkShs55Bz2dgnVeV5VQGh8/GE+A==","repository":{"url":"https://github.com/easysoft/zentao-api","type":"git"},"_npmVersion":"10.8.3","description":"Browser and Node.js SDK for ZenTao API","directories":{},"sideEffects":["./dist/browser-global.js","./dist/browser/zentao-api.global.js"],"_nodeVersion":"24.3.0","_hasShrinkwrap":false,"devDependencies":{"typedoc":"^0.28.19","vitepress":"^1.6.4","@types/bun":"^1.3.13","typescript":"^5.7.0","@types/node":"^24.10.0","typedoc-plugin-markdown":"^4.11.0","typedoc-vitepress-theme":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/zentao-api_0.3.0_1782557896159_0.20393251423959313","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"zentao-api","version":"0.3.1","keywords":["zentao","禅道","api","sdk","browser"],"author":"Sun Hao <sunhao@chandao.com>","license":"MIT","_id":"zentao-api@0.3.1","maintainers":[{"name":"catouse","email":"catouse@gmail.com"}],"dist":{"shasum":"de7dbb98d2cca0e1e6201e452cf1cbd6d59423a8","tarball":"https://registry.npmjs.org/zentao-api/-/zentao-api-0.3.1.tgz","fileCount":42,"integrity":"sha512-GJ0uWiLQ5cT+w5Bt8nBfF2WCFaXFVe50q26MrI8VIbhm3YfMpDmPqpxSugp+giNOLLxWuHWCk9ndNk7DdIkJ+g==","signatures":[{"sig":"MEYCIQCNRuyaQ8BJsPedCu8Z072jlbAj6X+Vu9gk7SsY5nK0zAIhAKfcmgFZrhC8KT7pLZdr/Bi/R+PX6A256gjrw/Nw8c7p","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":741835},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","shasum":"de7dbb98d2cca0e1e6201e452cf1cbd6d59423a8","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","browser":"./dist/browser.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./package.json":"./package.json","./browser/global":"./dist/browser/zentao-api.global.js"},"scripts":{"test":"bun test","build":"rm -rf dist && tsc -p tsconfig.json && bun run scripts/build-browser.ts","check":"bun run test:coverage && bun run typecheck && bun run typecheck:tests && bun run registry:check && bun run build && bun run smoke:node && bun run smoke:browser && bun run smoke:package","docs:dev":"bun run docs:generate && vitepress dev docs","test:real":"bun ./tests/real-env-runner.ts","typecheck":"tsc --noEmit","docs:build":"bun run docs:generate && vitepress build docs","smoke:node":"node scripts/smoke-node.mjs","docs:preview":"bun run docs:build && vitepress preview docs","docs:generate":"bun run docs:reference && bun run docs:zentao-api","smoke:browser":"bun run scripts/smoke-browser-bundler.ts","smoke:package":"bun run scripts/smoke-package.ts","test:coverage":"bun test --coverage","docs:reference":"typedoc","prepublishOnly":"bun run check","registry:check":"bun run scripts/update-registry.ts --check","docs:zentao-api":"bun run scripts/generate-zentao-api-docs.ts","typecheck:tests":"tsc -p tsconfig.test.json --noEmit"},"_npmUser":{"name":"catouse","email":"catouse@gmail.com"},"_integrity":"sha512-GJ0uWiLQ5cT+w5Bt8nBfF2WCFaXFVe50q26MrI8VIbhm3YfMpDmPqpxSugp+giNOLLxWuHWCk9ndNk7DdIkJ+g==","repository":{"url":"https://github.com/easysoft/zentao-api","type":"git"},"_npmVersion":"10.8.3","description":"Browser and Node.js SDK for ZenTao API","directories":{},"sideEffects":["./dist/browser-global.js","./dist/browser/zentao-api.global.js"],"_nodeVersion":"24.3.0","_hasShrinkwrap":false,"devDependencies":{"typedoc":"^0.28.19","vitepress":"^1.6.4","@types/bun":"^1.3.13","typescript":"^5.7.0","@types/node":"^24.10.0","typedoc-plugin-markdown":"^4.11.0","typedoc-vitepress-theme":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/zentao-api_0.3.1_1782561795570_0.5145719888106788","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"zentao-api","version":"0.3.2","keywords":["zentao","禅道","api","sdk","browser"],"author":"Sun Hao <sunhao@chandao.com>","license":"MIT","_id":"zentao-api@0.3.2","maintainers":[{"name":"catouse","email":"catouse@gmail.com"}],"dist":{"shasum":"e5b423170582ce7de6b03a0db1a588ccc09502c0","tarball":"https://registry.npmjs.org/zentao-api/-/zentao-api-0.3.2.tgz","fileCount":62,"integrity":"sha512-1oV37meJstcyagJUnkZUsTsZcPz98xbV7dwFJ1p8XfR3f8yguyHn0mO/oVbT/HvLpF8wEbPlPE5zl6eNmtgwYQ==","signatures":[{"sig":"MEYCIQCXky2MCBG3doqS17YE/oVMnDC0CB9AFkqjcOnFebgbyQIhAOkDDmsW6wwOWidgHV19Rxv+7uWkDaD/0EmuaIuQAAsV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":763094},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","shasum":"e5b423170582ce7de6b03a0db1a588ccc09502c0","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","browser":"./dist/browser.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./package.json":"./package.json","./browser/global":"./dist/browser/zentao-api.global.js"},"scripts":{"test":"bun test","build":"rm -rf dist && tsc -p tsconfig.json && bun run scripts/build-browser.ts","check":"bun run test:coverage && bun run typecheck && bun run typecheck:tests && bun run registry:check && bun run build && bun run smoke:node && bun run smoke:browser && bun run smoke:package","docs:dev":"bun run docs:generate && vitepress dev docs","test:real":"bun ./tests/real-env-runner.ts","typecheck":"tsc --noEmit","docs:build":"bun run docs:generate && vitepress build docs","smoke:node":"node scripts/smoke-node.mjs","docs:preview":"bun run docs:build && vitepress preview docs","docs:generate":"bun run docs:reference && bun run docs:zentao-api","smoke:browser":"bun run scripts/smoke-browser-bundler.ts","smoke:package":"bun run scripts/smoke-package.ts","test:coverage":"bun test --coverage","docs:reference":"typedoc","prepublishOnly":"bun run check","registry:check":"bun run scripts/update-registry.ts --check","docs:zentao-api":"bun run scripts/generate-zentao-api-docs.ts","typecheck:tests":"tsc -p tsconfig.test.json --noEmit"},"_npmUser":{"name":"catouse","email":"catouse@gmail.com"},"_integrity":"sha512-1oV37meJstcyagJUnkZUsTsZcPz98xbV7dwFJ1p8XfR3f8yguyHn0mO/oVbT/HvLpF8wEbPlPE5zl6eNmtgwYQ==","repository":{"url":"https://github.com/easysoft/zentao-api","type":"git"},"_npmVersion":"10.8.3","description":"Browser and Node.js SDK for ZenTao API","directories":{},"sideEffects":["./dist/browser-global.js","./dist/browser/zentao-api.global.js"],"_nodeVersion":"24.3.0","_hasShrinkwrap":false,"devDependencies":{"typedoc":"^0.28.19","vitepress":"^1.6.4","@types/bun":"^1.3.13","typescript":"^5.7.0","@types/node":"^24.10.0","typedoc-plugin-markdown":"^4.11.0","typedoc-vitepress-theme":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/zentao-api_0.3.2_1782728903490_0.3360054785485287","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"zentao-api","version":"0.3.3","keywords":["zentao","禅道","api","sdk","browser"],"author":"Sun Hao <sunhao@chandao.com>","license":"MIT","_id":"zentao-api@0.3.3","maintainers":[{"name":"catouse","email":"catouse@gmail.com"}],"dist":{"shasum":"f88ba8527f8b99e0f0c7644289743a8e7727f97c","tarball":"https://registry.npmjs.org/zentao-api/-/zentao-api-0.3.3.tgz","fileCount":62,"integrity":"sha512-16IYS/avADbGX+/oIRgzbhaw68hi9j1hIvH7WamHddmFIOcohEXxv75Y+QBibB4mjwLfascRmXf2Jgyk8qRtcQ==","signatures":[{"sig":"MEUCIQCEJVffrbOVxdlgXWWS1x5IABgaJPeAAybgJLc34vsLUgIgKd+LK8vtpNi1D6GutycLuJsnYWlaLAViZopGR3cB3V0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":768239},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","shasum":"f88ba8527f8b99e0f0c7644289743a8e7727f97c","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","browser":"./dist/browser.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./package.json":"./package.json","./browser/global":"./dist/browser/zentao-api.global.js"},"scripts":{"test":"bun test","build":"rm -rf dist && tsc -p tsconfig.json && bun run scripts/build-browser.ts","check":"bun run test:coverage && bun run typecheck && bun run typecheck:tests && bun run registry:check && bun run build && bun run smoke:node && bun run smoke:browser && bun run smoke:package","docs:dev":"bun run docs:generate && vitepress dev docs","test:real":"bun ./tests/real-env-runner.ts","typecheck":"tsc --noEmit","docs:build":"bun run docs:generate && vitepress build docs","smoke:node":"node scripts/smoke-node.mjs","docs:preview":"bun run docs:build && vitepress preview docs","docs:generate":"bun run docs:reference && bun run docs:zentao-api","smoke:browser":"bun run scripts/smoke-browser-bundler.ts","smoke:package":"bun run scripts/smoke-package.ts","test:coverage":"bun test --coverage","docs:reference":"typedoc","prepublishOnly":"bun run check","registry:check":"bun run scripts/update-registry.ts --check","docs:zentao-api":"bun run scripts/generate-zentao-api-docs.ts","typecheck:tests":"tsc -p tsconfig.test.json --noEmit"},"_npmUser":{"name":"catouse","email":"catouse@gmail.com"},"_integrity":"sha512-16IYS/avADbGX+/oIRgzbhaw68hi9j1hIvH7WamHddmFIOcohEXxv75Y+QBibB4mjwLfascRmXf2Jgyk8qRtcQ==","repository":{"url":"https://github.com/easysoft/zentao-api","type":"git"},"_npmVersion":"10.8.3","description":"Browser and Node.js SDK for ZenTao API","directories":{},"sideEffects":["./dist/browser-global.js","./dist/browser/zentao-api.global.js"],"_nodeVersion":"24.3.0","_hasShrinkwrap":false,"devDependencies":{"typedoc":"^0.28.19","vitepress":"^1.6.4","@types/bun":"^1.3.13","typescript":"^5.7.0","@types/node":"^24.10.0","typedoc-plugin-markdown":"^4.11.0","typedoc-vitepress-theme":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/zentao-api_0.3.3_1782813686259_0.8468068601959517","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"zentao-api","version":"0.4.0","keywords":["zentao","禅道","api","sdk","browser"],"author":"Sun Hao <sunhao@chandao.com>","license":"MIT","_id":"zentao-api@0.4.0","maintainers":[{"name":"catouse","email":"catouse@gmail.com"}],"dist":{"shasum":"b64bf095e4d0cad3327b8bf555b0c548d108b864","tarball":"https://registry.npmjs.org/zentao-api/-/zentao-api-0.4.0.tgz","fileCount":62,"integrity":"sha512-JgNyG1yMVQ+/GqF5C6FwD4WbTbw7aw4q7RY/dUz9RQ1lRTaZRP4Yp21edyfN3BuWzv0+Hidtn0dUvGbXwBu2QA==","signatures":[{"sig":"MEQCIFhMfj5hXK5lJL/LdVv2BJQPkocwr1+tGWYhED3Yw8mbAiAjXT3leRb2ZKuK0fE3c7CS+nMSBkAAJa7uSU2d2KkedA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":767905},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","shasum":"b64bf095e4d0cad3327b8bf555b0c548d108b864","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","browser":"./dist/browser.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./package.json":"./package.json","./browser/global":"./dist/browser/zentao-api.global.js"},"scripts":{"test":"bun test","build":"rm -rf dist && tsc -p tsconfig.json && bun run scripts/build-browser.ts","check":"bun run test:coverage && bun run typecheck && bun run typecheck:tests && bun run registry:check && bun run build && bun run smoke:node && bun run smoke:browser && bun run smoke:package","docs:dev":"bun run docs:generate && vitepress dev docs","test:real":"bun ./tests/real-env-runner.ts","typecheck":"tsc --noEmit","docs:build":"bun run docs:generate && vitepress build docs","smoke:node":"node scripts/smoke-node.mjs","docs:preview":"bun run docs:build && vitepress preview docs","docs:generate":"bun run docs:reference && bun run docs:zentao-api","smoke:browser":"bun run scripts/smoke-browser-bundler.ts","smoke:package":"bun run scripts/smoke-package.ts","test:coverage":"bun test --coverage","docs:reference":"typedoc","prepublishOnly":"bun run check","registry:check":"bun run scripts/update-registry.ts --check","docs:zentao-api":"bun run scripts/generate-zentao-api-docs.ts","typecheck:tests":"tsc -p tsconfig.test.json --noEmit"},"_npmUser":{"name":"catouse","email":"catouse@gmail.com"},"_integrity":"sha512-JgNyG1yMVQ+/GqF5C6FwD4WbTbw7aw4q7RY/dUz9RQ1lRTaZRP4Yp21edyfN3BuWzv0+Hidtn0dUvGbXwBu2QA==","repository":{"url":"https://github.com/easysoft/zentao-api","type":"git"},"_npmVersion":"10.8.3","description":"Browser and Node.js SDK for ZenTao API","directories":{},"sideEffects":["./dist/browser-global.js","./dist/browser/zentao-api.global.js"],"_nodeVersion":"24.3.0","_hasShrinkwrap":false,"devDependencies":{"typedoc":"^0.28.19","vitepress":"^1.6.4","@types/bun":"^1.3.13","typescript":"^5.7.0","@types/node":"^24.10.0","typedoc-plugin-markdown":"^4.11.0","typedoc-vitepress-theme":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/zentao-api_0.4.0_1784601657774_0.4202917769443715","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"zentao-api","version":"0.4.1","keywords":["zentao","禅道","api","sdk","browser"],"author":"Sun Hao <sunhao@chandao.com>","license":"MIT","_id":"zentao-api@0.4.1","maintainers":[{"name":"catouse","email":"catouse@gmail.com"}],"dist":{"shasum":"7c715254801a9b4a3121bb9d6a554b7deaa7388d","tarball":"https://registry.npmjs.org/zentao-api/-/zentao-api-0.4.1.tgz","fileCount":62,"integrity":"sha512-KjSs5rOzaQD9CcPGkXOHqCJPQGGJ4F8fWfp5MfCzyGk3I/GKatW3XfRo8QPFqSvXPGxBMKFKHpnPbaCFZTnHKA==","signatures":[{"sig":"MEQCIEP+eeiqFj5it0Xc2AtkO1VrBCrrGmKzlnnxLgso3wm2AiBqhITKsahSipdjtEZgrOa3Dxp4ZtYz63dv/wiJWWdsxA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":770074},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","shasum":"7c715254801a9b4a3121bb9d6a554b7deaa7388d","engines":{"bun":">=1.0.0","node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","browser":"./dist/browser.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./package.json":"./package.json","./browser/global":"./dist/browser/zentao-api.global.js"},"scripts":{"test":"bun test","build":"rm -rf dist && tsc -p tsconfig.json && bun run scripts/build-browser.ts","check":"bun run test:coverage && bun run typecheck && bun run typecheck:tests && bun run registry:check && bun run build && bun run smoke:node && bun run smoke:browser && bun run smoke:package","docs:dev":"bun run docs:generate && vitepress dev docs","test:real":"bun ./tests/real-env-runner.ts","typecheck":"tsc --noEmit","docs:build":"bun run docs:generate && vitepress build docs","smoke:node":"node scripts/smoke-node.mjs","docs:preview":"bun run docs:build && vitepress preview docs","docs:generate":"bun run docs:reference && bun run docs:zentao-api","smoke:browser":"bun run scripts/smoke-browser-bundler.ts","smoke:package":"bun run scripts/smoke-package.ts","test:coverage":"bun test --coverage","docs:reference":"typedoc","prepublishOnly":"bun run check","registry:check":"bun run scripts/update-registry.ts --check","docs:zentao-api":"bun run scripts/generate-zentao-api-docs.ts","typecheck:tests":"tsc -p tsconfig.test.json --noEmit"},"_npmUser":{"name":"catouse","email":"catouse@gmail.com"},"_integrity":"sha512-KjSs5rOzaQD9CcPGkXOHqCJPQGGJ4F8fWfp5MfCzyGk3I/GKatW3XfRo8QPFqSvXPGxBMKFKHpnPbaCFZTnHKA==","repository":{"url":"https://github.com/easysoft/zentao-api","type":"git"},"_npmVersion":"10.8.3","description":"Browser and Node.js SDK for ZenTao API","directories":{},"sideEffects":["./dist/browser-global.js","./dist/browser/zentao-api.global.js"],"_nodeVersion":"24.3.0","_hasShrinkwrap":false,"packageManager":"bun@1.3.13","devDependencies":{"typedoc":"^0.28.19","vitepress":"^1.6.4","@types/bun":"^1.3.13","typescript":"^5.7.0","@types/node":"^24.10.0","typedoc-plugin-markdown":"^4.11.0","typedoc-vitepress-theme":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/zentao-api_0.4.1_1785827811308_0.5222182150974617","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"zentao-api","version":"0.5.0","keywords":["zentao","禅道","api","sdk","browser"],"author":"Sun Hao <sunhao@chandao.com>","license":"MIT","_id":"zentao-api@0.5.0","maintainers":[{"name":"catouse","email":"catouse@gmail.com"}],"dist":{"shasum":"7e683b271cbaef2fa0e998afe255ca301950d9e1","tarball":"https://registry.npmjs.org/zentao-api/-/zentao-api-0.5.0.tgz","fileCount":64,"integrity":"sha512-TlBozZ8h041mXiTednM7BngA4YxGVUQGqCoUSHI6eaLu7epTB3Vxk4wyZloNZqRp+TP6ys3vJkDNW8YIb18I7Q==","signatures":[{"sig":"MEYCIQCaPlU+OKXMWcAfK0giILAcgox4CI9IpRyCFeSIWmjnOwIhAO/gx8JrRDIZjCiaDgsgPng2CW5eLb63CVxMm2SS6lMq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":823585},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","shasum":"7e683b271cbaef2fa0e998afe255ca301950d9e1","engines":{"bun":">=1.0.0","node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","browser":"./dist/browser.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./package.json":"./package.json","./browser/global":"./dist/browser/zentao-api.global.js"},"scripts":{"test":"bun test","build":"rm -rf dist && tsc -p tsconfig.json && bun run scripts/build-browser.ts","check":"bun run test:coverage && bun run typecheck && bun run typecheck:tests && bun run registry:check && bun run build && bun run smoke:node && bun run smoke:browser && bun run smoke:package","docs:dev":"bun run docs:generate && vitepress dev docs","test:real":"bun ./tests/real-env-runner.ts","typecheck":"tsc --noEmit","docs:build":"bun run docs:generate && vitepress build docs","smoke:node":"node scripts/smoke-node.mjs","docs:preview":"bun run docs:build && vitepress preview docs","docs:generate":"bun run docs:reference && bun run docs:zentao-api","smoke:browser":"bun run scripts/smoke-browser-bundler.ts","smoke:package":"bun run scripts/smoke-package.ts","test:coverage":"bun test --coverage","docs:reference":"typedoc","prepublishOnly":"bun run check","registry:check":"bun run scripts/update-registry.ts --check","docs:zentao-api":"bun run scripts/generate-zentao-api-docs.ts","typecheck:tests":"tsc -p tsconfig.test.json --noEmit"},"_npmUser":{"name":"catouse","email":"catouse@gmail.com"},"_integrity":"sha512-TlBozZ8h041mXiTednM7BngA4YxGVUQGqCoUSHI6eaLu7epTB3Vxk4wyZloNZqRp+TP6ys3vJkDNW8YIb18I7Q==","repository":{"url":"https://github.com/easysoft/zentao-api","type":"git"},"_npmVersion":"10.8.3","description":"Browser and Node.js SDK for ZenTao API","directories":{},"sideEffects":["./dist/browser-global.js","./dist/browser/zentao-api.global.js"],"_nodeVersion":"24.3.0","_hasShrinkwrap":false,"packageManager":"bun@1.3.13","devDependencies":{"typedoc":"^0.28.19","vitepress":"^1.6.4","@types/bun":"^1.3.13","typescript":"^5.7.0","@types/node":"^24.10.0","typedoc-plugin-markdown":"^4.11.0","typedoc-vitepress-theme":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/zentao-api_0.5.0_1786448235968_0.9902122063301488","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"zentao-api","version":"0.5.1","keywords":["zentao","禅道","api","sdk","browser"],"author":"Sun Hao <sunhao@chandao.com>","license":"MIT","_id":"zentao-api@0.5.1","maintainers":[{"name":"catouse","email":"catouse@gmail.com"}],"dist":{"shasum":"e19e0b531f8ce248d720170ebdee41f4b25fdb39","tarball":"https://registry.npmjs.org/zentao-api/-/zentao-api-0.5.1.tgz","fileCount":64,"integrity":"sha512-cvg/spj97st3ax2Vu9JwTbQhMHAex4gmG1xpCfTLpxbmjCFezAiNkTiZh/BqpDnsrcT1WCQpxDdWO/s3vMDPMg==","signatures":[{"sig":"MEQCIHLeFZNVWjO0lWiK970gKhcpc9QQ02IcR0S3mDzIBmsxAiBZ+qP9uw872C/UWqtpS7S8ftI0Aoa2020kqHyI6+oN8g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":824193},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","shasum":"e19e0b531f8ce248d720170ebdee41f4b25fdb39","engines":{"bun":">=1.0.0","node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","browser":"./dist/browser.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./package.json":"./package.json","./browser/global":"./dist/browser/zentao-api.global.js"},"scripts":{"test":"bun test","build":"rm -rf dist && tsc -p tsconfig.json && bun run scripts/build-browser.ts","check":"bun run test:coverage && bun run typecheck && bun run typecheck:tests && bun run registry:check && bun run build && bun run smoke:node && bun run smoke:browser && bun run smoke:package","docs:dev":"bun run docs:generate && vitepress dev docs","test:real":"bun ./tests/real-env-runner.ts","typecheck":"tsc --noEmit","docs:build":"bun run docs:generate && vitepress build docs","smoke:node":"node scripts/smoke-node.mjs","docs:preview":"bun run docs:build && vitepress preview docs","docs:generate":"bun run docs:reference && bun run docs:zentao-api","smoke:browser":"bun run scripts/smoke-browser-bundler.ts","smoke:package":"bun run scripts/smoke-package.ts","test:coverage":"bun test --coverage","docs:reference":"typedoc","prepublishOnly":"bun run check","registry:check":"bun run scripts/update-registry.ts --check","docs:zentao-api":"bun run scripts/generate-zentao-api-docs.ts","typecheck:tests":"tsc -p tsconfig.test.json --noEmit"},"_npmUser":{"name":"catouse","email":"catouse@gmail.com"},"_integrity":"sha512-cvg/spj97st3ax2Vu9JwTbQhMHAex4gmG1xpCfTLpxbmjCFezAiNkTiZh/BqpDnsrcT1WCQpxDdWO/s3vMDPMg==","repository":{"url":"https://github.com/easysoft/zentao-api","type":"git"},"_npmVersion":"10.8.3","description":"Browser and Node.js SDK for ZenTao API","directories":{},"sideEffects":["./dist/browser-global.js","./dist/browser/zentao-api.global.js"],"_nodeVersion":"24.3.0","_hasShrinkwrap":false,"packageManager":"bun@1.3.13","devDependencies":{"typedoc":"^0.28.19","vitepress":"^1.6.4","@types/bun":"^1.3.13","typescript":"^5.7.0","@types/node":"^24.10.0","typedoc-plugin-markdown":"^4.11.0","typedoc-vitepress-theme":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/zentao-api_0.5.1_1786456618072_0.6689539115191572","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"zentao-api","version":"0.5.2","keywords":["zentao","禅道","api","sdk","browser"],"author":"Sun Hao <sunhao@chandao.com>","license":"MIT","_id":"zentao-api@0.5.2","maintainers":[{"name":"catouse","email":"catouse@gmail.com"}],"dist":{"shasum":"7cfc30a25d2b93192c166de7d6b817de5afa1f75","tarball":"https://registry.npmjs.org/zentao-api/-/zentao-api-0.5.2.tgz","fileCount":64,"integrity":"sha512-/fpVPOj5l8dltekKd+xHGVYlfUpd8iGzMf2ALGruS6Zem4qEvnF/iG7HBo+NXF3wzX7ayjmnnU5aiXJVSAg3VQ==","signatures":[{"sig":"MEQCIF2Mp86TljkfZN8QxXeWqDqxmAYEAY3llfO7TDhaJQA5AiBS10tMD5XbAxQvRykQHy/Kowxm6+3mjRdlmbs4mZTAEA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":828836},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","shasum":"7cfc30a25d2b93192c166de7d6b817de5afa1f75","engines":{"bun":">=1.0.0","node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","browser":"./dist/browser.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./package.json":"./package.json","./browser/global":"./dist/browser/zentao-api.global.js"},"scripts":{"test":"bun test","build":"rm -rf dist && tsc -p tsconfig.json && bun run scripts/build-browser.ts","check":"bun run test:coverage && bun run typecheck && bun run typecheck:tests && bun run registry:check && bun run build && bun run smoke:node && bun run smoke:browser && bun run smoke:package","docs:dev":"bun run docs:generate && vitepress dev docs","test:real":"bun ./tests/real-env-runner.ts","typecheck":"tsc --noEmit","docs:build":"bun run docs:generate && vitepress build docs","smoke:node":"node scripts/smoke-node.mjs","docs:preview":"bun run docs:build && vitepress preview docs","docs:generate":"bun run docs:reference && bun run docs:zentao-api","smoke:browser":"bun run scripts/smoke-browser-bundler.ts","smoke:package":"bun run scripts/smoke-package.ts","test:coverage":"bun test --coverage","docs:reference":"typedoc","prepublishOnly":"bun run check","registry:check":"bun run scripts/update-registry.ts --check","docs:zentao-api":"bun run scripts/generate-zentao-api-docs.ts","typecheck:tests":"tsc -p tsconfig.test.json --noEmit"},"_npmUser":{"name":"catouse","email":"catouse@gmail.com"},"_integrity":"sha512-/fpVPOj5l8dltekKd+xHGVYlfUpd8iGzMf2ALGruS6Zem4qEvnF/iG7HBo+NXF3wzX7ayjmnnU5aiXJVSAg3VQ==","repository":{"url":"https://github.com/easysoft/zentao-api","type":"git"},"_npmVersion":"10.8.3","description":"Browser and Node.js SDK for ZenTao API","directories":{},"sideEffects":["./dist/browser-global.js","./dist/browser/zentao-api.global.js"],"_nodeVersion":"24.3.0","_hasShrinkwrap":false,"packageManager":"bun@1.3.13","devDependencies":{"typedoc":"^0.28.19","vitepress":"^1.6.4","@types/bun":"^1.3.13","typescript":"^5.7.0","@types/node":"^24.10.0","typedoc-plugin-markdown":"^4.11.0","typedoc-vitepress-theme":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/zentao-api_0.5.2_1786460683265_0.6025611491657621","host":"s3://npm-registry-packages-npm-production"}},"0.5.3":{"name":"zentao-api","version":"0.5.3","keywords":["zentao","禅道","api","sdk","browser"],"author":"Sun Hao <sunhao@chandao.com>","license":"MIT","_id":"zentao-api@0.5.3","maintainers":[{"name":"catouse","email":"catouse@gmail.com"}],"dist":{"shasum":"ff15d70611367bd809e446d46826a29509b94037","tarball":"https://registry.npmjs.org/zentao-api/-/zentao-api-0.5.3.tgz","fileCount":66,"integrity":"sha512-/M1Udkps5RK2LaZIPznRxbgqnvoP9HANzzzkhcUAi5DO3CQgGUc9xWvmStP6I+H4EGVWodD70EzKXhlRJ+VmKA==","signatures":[{"sig":"MEYCIQC4W7eO0QUwhNNByH+DLccrMgtjVXgwzUU+ES94wiSpBAIhAMqG8hbqHnAUP1ACPi9Anbr+fqA8eERtepe7tcrj0TNw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":834873},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","shasum":"ff15d70611367bd809e446d46826a29509b94037","engines":{"bun":">=1.0.0","node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","browser":"./dist/browser.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./package.json":"./package.json","./browser/global":"./dist/browser/zentao-api.global.js"},"scripts":{"test":"bun test","build":"rm -rf dist && tsc -p tsconfig.json && bun run scripts/build-browser.ts","check":"bun run test:coverage && bun run typecheck && bun run typecheck:tests && bun run registry:check && bun run build && bun run smoke:node && bun run smoke:browser && bun run smoke:package","docs:dev":"bun run docs:generate && vitepress dev docs","test:real":"bun ./tests/real-env-runner.ts","typecheck":"tsc --noEmit","docs:build":"bun run docs:generate && vitepress build docs","smoke:node":"node scripts/smoke-node.mjs","docs:preview":"bun run docs:build && vitepress preview docs","docs:generate":"bun run docs:reference && bun run docs:zentao-api","smoke:browser":"bun run scripts/smoke-browser-bundler.ts","smoke:package":"bun run scripts/smoke-package.ts","test:coverage":"bun test --coverage","docs:reference":"typedoc","prepublishOnly":"bun run check","registry:check":"bun run scripts/update-registry.ts --check","docs:zentao-api":"bun run scripts/generate-zentao-api-docs.ts","typecheck:tests":"tsc -p tsconfig.test.json --noEmit"},"_npmUser":{"name":"catouse","email":"catouse@gmail.com"},"_integrity":"sha512-/M1Udkps5RK2LaZIPznRxbgqnvoP9HANzzzkhcUAi5DO3CQgGUc9xWvmStP6I+H4EGVWodD70EzKXhlRJ+VmKA==","repository":{"url":"https://github.com/easysoft/zentao-api","type":"git"},"_npmVersion":"10.8.3","description":"Browser and Node.js SDK for ZenTao API","directories":{},"sideEffects":["./dist/browser-global.js","./dist/browser/zentao-api.global.js"],"_nodeVersion":"24.3.0","_hasShrinkwrap":false,"packageManager":"bun@1.3.13","devDependencies":{"typedoc":"^0.28.19","vitepress":"^1.6.4","@types/bun":"^1.3.13","typescript":"^5.7.0","@types/node":"^24.10.0","typedoc-plugin-markdown":"^4.11.0","typedoc-vitepress-theme":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/zentao-api_0.5.3_1786503922757_0.03317206301174758","host":"s3://npm-registry-packages-npm-production"}},"0.5.4":{"name":"zentao-api","version":"0.5.4","keywords":["zentao","禅道","api","sdk","browser"],"author":"Sun Hao <sunhao@chandao.com>","license":"MIT","_id":"zentao-api@0.5.4","maintainers":[{"name":"catouse","email":"catouse@gmail.com"}],"dist":{"shasum":"75f3d57cd942a62be087ededb8da816bf1375da3","tarball":"https://registry.npmjs.org/zentao-api/-/zentao-api-0.5.4.tgz","fileCount":66,"integrity":"sha512-k1z8x/BgVmBjN4K22GPahchhFNZGHkz4Xl3zrRNtgEPATMvs/izPso9zC8brqp/c0n+9wvf0SVR2jE3V4nze6Q==","signatures":[{"sig":"MEUCIASVjRC+7NfHlynLiJDXO94a+wZvaO6kkmvKadoaJcoxAiEAnbwzzAHKB4LBSLv545EeC9UiF/qvHwQfNP/HaabjKgk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":836340},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","shasum":"75f3d57cd942a62be087ededb8da816bf1375da3","engines":{"bun":">=1.0.0","node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","browser":"./dist/browser.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./package.json":"./package.json","./browser/global":"./dist/browser/zentao-api.global.js"},"scripts":{"test":"bun test","build":"rm -rf dist && tsc -p tsconfig.json && bun run scripts/build-browser.ts","check":"bun run test:coverage && bun run typecheck && bun run typecheck:tests && bun run registry:check && bun run build && bun run smoke:node && bun run smoke:browser && bun run smoke:package","docs:dev":"bun run docs:generate && vitepress dev docs","test:real":"bun ./tests/real-env-runner.ts","typecheck":"tsc --noEmit","docs:build":"bun run docs:generate && vitepress build docs","smoke:node":"node scripts/smoke-node.mjs","docs:preview":"bun run docs:build && vitepress preview docs","docs:generate":"bun run docs:reference && bun run docs:zentao-api","smoke:browser":"bun run scripts/smoke-browser-bundler.ts","smoke:package":"bun run scripts/smoke-package.ts","test:coverage":"bun test --coverage","docs:reference":"typedoc","prepublishOnly":"bun run check","registry:check":"bun run scripts/update-registry.ts --check","docs:zentao-api":"bun run scripts/generate-zentao-api-docs.ts","typecheck:tests":"tsc -p tsconfig.test.json --noEmit"},"_npmUser":{"name":"catouse","email":"catouse@gmail.com"},"_integrity":"sha512-k1z8x/BgVmBjN4K22GPahchhFNZGHkz4Xl3zrRNtgEPATMvs/izPso9zC8brqp/c0n+9wvf0SVR2jE3V4nze6Q==","repository":{"url":"https://github.com/easysoft/zentao-api","type":"git"},"_npmVersion":"10.8.3","description":"Browser and Node.js SDK for ZenTao API","directories":{},"sideEffects":["./dist/browser-global.js","./dist/browser/zentao-api.global.js"],"_nodeVersion":"24.3.0","_hasShrinkwrap":false,"packageManager":"bun@1.3.13","devDependencies":{"typedoc":"^0.28.19","vitepress":"^1.6.4","@types/bun":"^1.3.13","typescript":"^5.7.0","@types/node":"^24.10.0","typedoc-plugin-markdown":"^4.11.0","typedoc-vitepress-theme":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/zentao-api_0.5.4_1786519120759_0.2602073978403834","host":"s3://npm-registry-packages-npm-production"}},"0.5.5":{"name":"zentao-api","version":"0.5.5","keywords":["zentao","禅道","api","sdk","browser"],"author":"Sun Hao <sunhao@chandao.com>","license":"MIT","_id":"zentao-api@0.5.5","maintainers":[{"name":"catouse","email":"catouse@gmail.com"}],"dist":{"shasum":"c267cfd6ef63dc9612915c3bded393879643bc64","tarball":"https://registry.npmjs.org/zentao-api/-/zentao-api-0.5.5.tgz","fileCount":66,"integrity":"sha512-zK9pEynMrRUll0fu2q/me9TAoBK0DsPS9wjCPFHSjNnjLXxw+lBjLRPNX7eS210Wq8BBuBMTRvZnd0k80/pT4g==","signatures":[{"sig":"MEUCIAPKrqhTvWrgxSssF3za3xLPalKGbyVgo3uI5Q2KJqyIAiEApKgQSVmNOh0+jIqMbY4feWY+0q52wrowapHnmU9+0+k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":839174},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","shasum":"c267cfd6ef63dc9612915c3bded393879643bc64","engines":{"bun":">=1.0.0","node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","browser":"./dist/browser.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./package.json":"./package.json","./browser/global":"./dist/browser/zentao-api.global.js"},"scripts":{"test":"bun test","build":"rm -rf dist && tsc -p tsconfig.json && bun run scripts/build-browser.ts","check":"bun run test:coverage && bun run typecheck && bun run typecheck:tests && bun run registry:check && bun run build && bun run smoke:node && bun run smoke:browser && bun run smoke:package","docs:dev":"bun run docs:generate && vitepress dev docs","test:real":"bun ./tests/real-env-runner.ts","typecheck":"tsc --noEmit","docs:build":"bun run docs:generate && vitepress build docs","smoke:node":"node scripts/smoke-node.mjs","docs:preview":"bun run docs:build && vitepress preview docs","docs:generate":"bun run docs:reference && bun run docs:zentao-api","smoke:browser":"bun run scripts/smoke-browser-bundler.ts","smoke:package":"bun run scripts/smoke-package.ts","test:coverage":"bun test --coverage","docs:reference":"typedoc","prepublishOnly":"bun run check","registry:check":"bun run scripts/update-registry.ts --check","docs:zentao-api":"bun run scripts/generate-zentao-api-docs.ts","typecheck:tests":"tsc -p tsconfig.test.json --noEmit"},"_npmUser":{"name":"catouse","email":"catouse@gmail.com"},"_integrity":"sha512-zK9pEynMrRUll0fu2q/me9TAoBK0DsPS9wjCPFHSjNnjLXxw+lBjLRPNX7eS210Wq8BBuBMTRvZnd0k80/pT4g==","repository":{"url":"https://github.com/easysoft/zentao-api","type":"git"},"_npmVersion":"10.8.3","description":"Browser and Node.js SDK for ZenTao API","directories":{},"sideEffects":["./dist/browser-global.js","./dist/browser/zentao-api.global.js"],"_nodeVersion":"24.3.0","_hasShrinkwrap":false,"packageManager":"bun@1.3.13","devDependencies":{"typedoc":"^0.28.19","vitepress":"^1.6.4","@types/bun":"^1.3.13","typescript":"^5.7.0","@types/node":"^24.10.0","typedoc-plugin-markdown":"^4.11.0","typedoc-vitepress-theme":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/zentao-api_0.5.5_1786607777014_0.6143375103833237","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"zentao-api","version":"0.6.0","keywords":["zentao","禅道","api","sdk","browser"],"author":"Sun Hao <sunhao@chandao.com>","license":"MIT","_id":"zentao-api@0.6.0","maintainers":[{"name":"catouse","email":"catouse@gmail.com"}],"dist":{"shasum":"b1d888759443d3d90dc452bb049df399ec0bee08","tarball":"https://registry.npmjs.org/zentao-api/-/zentao-api-0.6.0.tgz","fileCount":66,"integrity":"sha512-XYSb3s/GdI2CCV6EVvDOqQo+1DPgF8EYq9vUKtMOmbDDdJzg8k1lNuuPWYLnZlumS2iIK6NiLFbD2lRFzuosqA==","signatures":[{"sig":"MEYCIQCASPR2C8zuUdFs9YXlwWGgQR7t0OaKRCN8h/9FF8dz3wIhAIgxklGf9th76B4o1gVdoAlaIM9oVtxSM5wI6vpkl4NT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1383628},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","shasum":"b1d888759443d3d90dc452bb049df399ec0bee08","engines":{"bun":">=1.0.0","node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","browser":"./dist/browser.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./package.json":"./package.json","./browser/global":"./dist/browser/zentao-api.global.js"},"scripts":{"test":"bun test","build":"rm -rf dist && tsc -p tsconfig.json && bun run scripts/build-browser.ts","check":"bun run test:coverage && bun run typecheck && bun run typecheck:tests && bun run registry:check && bun run build && bun run smoke:node && bun run smoke:browser && bun run smoke:package","docs:dev":"bun run docs:generate && vitepress dev docs","test:real":"bun ./tests/real-env-runner.ts","typecheck":"tsc --noEmit","docs:build":"bun run docs:generate && vitepress build docs","smoke:node":"node scripts/smoke-node.mjs","docs:preview":"bun run docs:build && vitepress preview docs","docs:generate":"bun run docs:reference && bun run docs:zentao-api","smoke:browser":"bun run scripts/smoke-browser-bundler.ts","smoke:package":"bun run scripts/smoke-package.ts","test:coverage":"bun test --coverage","docs:reference":"typedoc","prepublishOnly":"bun run check","registry:check":"bun run scripts/update-registry.ts --check","docs:zentao-api":"bun run scripts/generate-zentao-api-docs.ts","typecheck:tests":"tsc -p tsconfig.test.json --noEmit"},"_npmUser":{"name":"catouse","email":"catouse@gmail.com"},"_integrity":"sha512-XYSb3s/GdI2CCV6EVvDOqQo+1DPgF8EYq9vUKtMOmbDDdJzg8k1lNuuPWYLnZlumS2iIK6NiLFbD2lRFzuosqA==","repository":{"url":"https://github.com/easysoft/zentao-api","type":"git"},"_npmVersion":"10.8.3","description":"Browser and Node.js SDK for ZenTao API","directories":{},"sideEffects":["./dist/browser-global.js","./dist/browser/zentao-api.global.js"],"_nodeVersion":"24.3.0","_hasShrinkwrap":false,"packageManager":"bun@1.3.13","devDependencies":{"typedoc":"^0.28.19","vitepress":"^1.6.4","@types/bun":"^1.3.13","typescript":"^5.7.0","@types/node":"^24.10.0","typedoc-plugin-markdown":"^4.11.0","typedoc-vitepress-theme":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/zentao-api_0.6.0_1787025473523_0.5711757922578544","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"zentao-api","version":"0.6.1","keywords":["zentao","禅道","api","sdk","browser"],"author":"Sun Hao <sunhao@chandao.com>","license":"MIT","_id":"zentao-api@0.6.1","maintainers":[{"name":"catouse","email":"catouse@gmail.com"}],"dist":{"shasum":"05cd1899e222d3d54c8041dc384fbbd6a4785a4f","tarball":"https://registry.npmjs.org/zentao-api/-/zentao-api-0.6.1.tgz","fileCount":70,"integrity":"sha512-97JDpewKitS8rT5SXFI5TgOiinY4Zy0x6OBlUrTTKCJO92b8QxkC+4tEda5JmK9n+nmrNOKZFJg/IqgqaC3cVQ==","signatures":[{"sig":"MEQCIFvdl6Ubcj+A+9Rm7cU11rteQNmz5fORDhTUXmsnUhT8AiABVdH3dEImtNHJxzDFZaG6ftvJqURUBDn5CDmvHTCZmQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1401918},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","shasum":"05cd1899e222d3d54c8041dc384fbbd6a4785a4f","engines":{"bun":">=1.0.0","node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","browser":"./dist/browser.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./package.json":"./package.json","./browser/global":"./dist/browser/zentao-api.global.js"},"scripts":{"test":"bun test","build":"rm -rf dist && tsc -p tsconfig.json && bun run scripts/build-browser.ts","check":"bun run test:coverage && bun run typecheck && bun run typecheck:tests && bun run registry:check && bun run build && bun run smoke:node && bun run smoke:browser && bun run smoke:package","docs:dev":"bun run docs:generate && vitepress dev docs","test:real":"bun ./tests/real-env-runner.ts","typecheck":"tsc --noEmit","docs:build":"bun run docs:generate && vitepress build docs","smoke:node":"node scripts/smoke-node.mjs","docs:preview":"bun run docs:build && vitepress preview docs","docs:generate":"bun run docs:reference && bun run docs:zentao-api","smoke:browser":"bun run scripts/smoke-browser-bundler.ts","smoke:package":"bun run scripts/smoke-package.ts","test:coverage":"bun test --coverage","docs:reference":"typedoc","prepublishOnly":"bun run check","registry:check":"bun run scripts/update-registry.ts --check","docs:zentao-api":"bun run scripts/generate-zentao-api-docs.ts","typecheck:tests":"tsc -p tsconfig.test.json --noEmit"},"_npmUser":{"name":"catouse","email":"catouse@gmail.com"},"_integrity":"sha512-97JDpewKitS8rT5SXFI5TgOiinY4Zy0x6OBlUrTTKCJO92b8QxkC+4tEda5JmK9n+nmrNOKZFJg/IqgqaC3cVQ==","repository":{"url":"https://github.com/easysoft/zentao-api","type":"git"},"_npmVersion":"10.8.3","description":"Browser and Node.js SDK for ZenTao API","directories":{},"sideEffects":["./dist/browser-global.js","./dist/browser/zentao-api.global.js"],"_nodeVersion":"24.3.0","_hasShrinkwrap":false,"packageManager":"bun@1.3.13","devDependencies":{"typedoc":"^0.28.19","vitepress":"^1.6.4","@types/bun":"^1.3.13","typescript":"^5.7.0","@types/node":"^24.10.0","typedoc-plugin-markdown":"^4.11.0","typedoc-vitepress-theme":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/zentao-api_0.6.1_1787030163684_0.26478425632399216","host":"s3://npm-registry-packages-npm-production"}},"0.6.2":{"name":"zentao-api","version":"0.6.2","keywords":["zentao","禅道","api","sdk","browser"],"author":"Sun Hao <sunhao@chandao.com>","license":"MIT","_id":"zentao-api@0.6.2","maintainers":[{"name":"catouse","email":"catouse@gmail.com"}],"dist":{"shasum":"5cf99b2eb3fadc29e16e11063d7821949f1f2127","tarball":"https://registry.npmjs.org/zentao-api/-/zentao-api-0.6.2.tgz","fileCount":70,"integrity":"sha512-qmDoxLr8NjC40kYC9mJdhulersfeLrgkgzabHxsd2p6g1Q29w/SpTc27I6O5/JJGXD1QwMoXSVzTx8+tH98D9Q==","signatures":[{"sig":"MEUCIQCDYSEWujpVxg0COdOVwmSx9Mw/bCgNqPrAi4YpcMkOiQIgaNhtA2nDBUZ8s+o9SPUnisBylCy1Yx0lt30agtATaNk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1414269},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","shasum":"5cf99b2eb3fadc29e16e11063d7821949f1f2127","engines":{"bun":">=1.0.0","node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","browser":"./dist/browser.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./package.json":"./package.json","./browser/global":"./dist/browser/zentao-api.global.js"},"scripts":{"test":"bun test","build":"rm -rf dist && tsc -p tsconfig.json && bun run scripts/build-browser.ts","check":"bun run test:coverage && bun run typecheck && bun run typecheck:tests && bun run registry:check && bun run build && bun run smoke:node && bun run smoke:browser && bun run smoke:package","docs:dev":"bun run docs:generate && vitepress dev docs","test:real":"bun ./tests/real-env-runner.ts","typecheck":"tsc --noEmit","docs:build":"bun run docs:generate && vitepress build docs","smoke:node":"node scripts/smoke-node.mjs","docs:preview":"bun run docs:build && vitepress preview docs","docs:generate":"bun run docs:reference && bun run docs:zentao-api","smoke:browser":"bun run scripts/smoke-browser-bundler.ts","smoke:package":"bun run scripts/smoke-package.ts","test:coverage":"bun test --coverage","docs:reference":"typedoc","prepublishOnly":"bun run check","registry:check":"bun run scripts/update-registry.ts --check","docs:zentao-api":"bun run scripts/generate-zentao-api-docs.ts","typecheck:tests":"tsc -p tsconfig.test.json --noEmit"},"_npmUser":{"name":"catouse","email":"catouse@gmail.com"},"_integrity":"sha512-qmDoxLr8NjC40kYC9mJdhulersfeLrgkgzabHxsd2p6g1Q29w/SpTc27I6O5/JJGXD1QwMoXSVzTx8+tH98D9Q==","repository":{"url":"https://github.com/easysoft/zentao-api","type":"git"},"_npmVersion":"10.8.3","description":"Browser and Node.js SDK for ZenTao API","directories":{},"sideEffects":["./dist/browser-global.js","./dist/browser/zentao-api.global.js"],"_nodeVersion":"24.3.0","_hasShrinkwrap":false,"packageManager":"bun@1.3.13","devDependencies":{"typedoc":"^0.28.19","vitepress":"^1.6.4","@types/bun":"^1.3.13","typescript":"^5.7.0","@types/node":"^24.10.0","typedoc-plugin-markdown":"^4.11.0","typedoc-vitepress-theme":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/zentao-api_0.6.2_1787041471148_0.914995826776102","host":"s3://npm-registry-packages-npm-production"}},"0.6.3":{"name":"zentao-api","version":"0.6.3","keywords":["zentao","禅道","api","sdk","browser"],"author":"Sun Hao <sunhao@chandao.com>","license":"MIT","_id":"zentao-api@0.6.3","maintainers":[{"name":"catouse","email":"catouse@gmail.com"}],"dist":{"shasum":"96e2eabdd6e04cb010c93ab117fedb95a38ecba5","tarball":"https://registry.npmjs.org/zentao-api/-/zentao-api-0.6.3.tgz","fileCount":82,"integrity":"sha512-clyzxbydJAzONY2oAMolRLwcGugzuY9c+aFN4dVZ1lBpTcziy3eM0h3MQ+J0uGxBtsVL5Cz67zi+NP/sap770g==","signatures":[{"sig":"MEQCIE9KI2LHBSfn5HmY8TRAcNEpPnNt8Ge4fxPgUpKRL1DwAiB5t5pZoaLoHvI7e0YXYUlLuxbDlfE9taXb+vyHD5sAvQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1492404},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","shasum":"96e2eabdd6e04cb010c93ab117fedb95a38ecba5","engines":{"bun":">=1.0.0","node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","browser":"./dist/browser.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./package.json":"./package.json","./browser/global":"./dist/browser/zentao-api.global.js"},"scripts":{"test":"bun test","build":"rm -rf dist && tsc -p tsconfig.json && bun run scripts/build-browser.ts","check":"bun run test:coverage && bun run typecheck && bun run typecheck:tests && bun run registry:check && bun run build && bun run smoke:node && bun run smoke:browser && bun run smoke:package","docs:dev":"bun run docs:generate && vitepress dev docs","test:real":"bun ./tests/real-env-runner.ts","typecheck":"tsc --noEmit","docs:build":"bun run docs:generate && vitepress build docs","smoke:node":"node scripts/smoke-node.mjs","docs:preview":"bun run docs:build && vitepress preview docs","docs:generate":"bun run docs:reference && bun run docs:zentao-api","smoke:browser":"bun run scripts/smoke-browser-bundler.ts","smoke:package":"bun run scripts/smoke-package.ts","test:coverage":"bun test --coverage","docs:reference":"typedoc","prepublishOnly":"bun run check","registry:check":"bun run scripts/update-registry.ts --check","docs:zentao-api":"bun run scripts/generate-zentao-api-docs.ts","typecheck:tests":"tsc -p tsconfig.test.json --noEmit"},"_npmUser":{"name":"catouse","email":"catouse@gmail.com"},"_integrity":"sha512-clyzxbydJAzONY2oAMolRLwcGugzuY9c+aFN4dVZ1lBpTcziy3eM0h3MQ+J0uGxBtsVL5Cz67zi+NP/sap770g==","repository":{"url":"https://github.com/easysoft/zentao-api","type":"git"},"_npmVersion":"10.8.3","description":"Browser and Node.js SDK for ZenTao API","directories":{},"sideEffects":["./dist/browser-global.js","./dist/browser/zentao-api.global.js"],"_nodeVersion":"24.3.0","_hasShrinkwrap":false,"packageManager":"bun@1.3.13","devDependencies":{"typedoc":"^0.28.19","vitepress":"^1.6.4","@types/bun":"^1.3.13","typescript":"^5.7.0","@types/node":"^24.10.0","typedoc-plugin-markdown":"^4.11.0","typedoc-vitepress-theme":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/zentao-api_0.6.3_1787101507249_0.4416351301998407","host":"s3://npm-registry-packages-npm-production"}},"0.6.4":{"name":"zentao-api","version":"0.6.4","keywords":["zentao","禅道","api","sdk","browser"],"author":"Sun Hao <sunhao@chandao.com>","license":"MIT","_id":"zentao-api@0.6.4","maintainers":[{"name":"catouse","email":"catouse@gmail.com"}],"dist":{"shasum":"e1a4f18227c66c9c59655d8d5d2024586b67b982","tarball":"https://registry.npmjs.org/zentao-api/-/zentao-api-0.6.4.tgz","fileCount":82,"integrity":"sha512-aDw5OVvqCLikwIbfpGkrRc9zSz4O7ZSHh9dde6fY9E4wPMf5jZLS38NJc/AJSGIlHAmAFyJRBmafcQYVJsJHnA==","signatures":[{"sig":"MEUCIDYFlFRENYGr2IgFaVOxCZYd+29f7r9GUtnIPvomw9G7AiEA1xoAn9DFjk+7USwxB1VLSgPf09/NTGHTkbL8+gtX/kk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1559481},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","shasum":"e1a4f18227c66c9c59655d8d5d2024586b67b982","engines":{"bun":">=1.0.0","node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","browser":"./dist/browser.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./package.json":"./package.json","./browser/global":"./dist/browser/zentao-api.global.js"},"scripts":{"test":"bun test","build":"rm -rf dist && tsc -p tsconfig.json && bun run scripts/build-browser.ts","check":"bun run test:coverage && bun run typecheck && bun run typecheck:tests && bun run registry:check && bun run build && bun run smoke:node && bun run smoke:browser && bun run smoke:package","docs:dev":"bun run docs:generate && vitepress dev docs","test:real":"bun ./tests/real-env-runner.ts","typecheck":"tsc --noEmit","docs:build":"bun run docs:generate && vitepress build docs","smoke:node":"node scripts/smoke-node.mjs","docs:preview":"bun run docs:build && vitepress preview docs","docs:generate":"bun run docs:reference && bun run docs:zentao-api","smoke:browser":"bun run scripts/smoke-browser-bundler.ts","smoke:package":"bun run scripts/smoke-package.ts","test:coverage":"bun test --coverage","docs:reference":"typedoc","prepublishOnly":"bun run check","registry:check":"bun run scripts/update-registry.ts --check","docs:zentao-api":"bun run scripts/generate-zentao-api-docs.ts","typecheck:tests":"tsc -p tsconfig.test.json --noEmit"},"_npmUser":{"name":"catouse","email":"catouse@gmail.com"},"_integrity":"sha512-aDw5OVvqCLikwIbfpGkrRc9zSz4O7ZSHh9dde6fY9E4wPMf5jZLS38NJc/AJSGIlHAmAFyJRBmafcQYVJsJHnA==","repository":{"url":"https://github.com/easysoft/zentao-api","type":"git"},"_npmVersion":"10.8.3","description":"Browser and Node.js SDK for ZenTao API","directories":{},"sideEffects":["./dist/browser-global.js","./dist/browser/zentao-api.global.js"],"_nodeVersion":"24.3.0","_hasShrinkwrap":false,"packageManager":"bun@1.3.13","devDependencies":{"typedoc":"^0.28.19","vitepress":"^1.6.4","@types/bun":"^1.3.13","typescript":"^5.7.0","@types/node":"^24.10.0","typedoc-plugin-markdown":"^4.11.0","typedoc-vitepress-theme":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/zentao-api_0.6.4_1787107799119_0.5705304230419515","host":"s3://npm-registry-packages-npm-production"}},"0.6.5":{"name":"zentao-api","version":"0.6.5","keywords":["zentao","禅道","api","sdk","browser"],"author":"Sun Hao <sunhao@chandao.com>","license":"MIT","_id":"zentao-api@0.6.5","maintainers":[{"name":"catouse","email":"catouse@gmail.com"}],"dist":{"shasum":"4047909d9a00b441165060ab4cb8606b9de4d5de","tarball":"https://registry.npmjs.org/zentao-api/-/zentao-api-0.6.5.tgz","fileCount":82,"integrity":"sha512-e7L2eY3MEtiQnw/l4gnNxF/2/FvJVFeUHQFRQRueCfGqk2d92j70YYflGWigX6ejgA36JpY7sbKi8ismbtaUkA==","signatures":[{"sig":"MEQCIFJ5ZAwUThWPRUgmMmFYYeuP1rK9Y3Kp1kQrl8VYi8dbAiBcqp6mGkB+gBUMwSZsOGdfviU97lyfIsVh5L0b7JPOlw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1564596},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","shasum":"4047909d9a00b441165060ab4cb8606b9de4d5de","engines":{"bun":">=1.0.0","node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","browser":"./dist/browser.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./package.json":"./package.json","./browser/global":"./dist/browser/zentao-api.global.js"},"scripts":{"test":"bun test","build":"rm -rf dist && tsc -p tsconfig.json && bun run scripts/build-browser.ts","check":"bun run test:coverage && bun run typecheck && bun run typecheck:tests && bun run registry:check && bun run build && bun run smoke:node && bun run smoke:browser && bun run smoke:package","docs:dev":"bun run docs:generate && vitepress dev docs","test:real":"bun ./tests/real-env-runner.ts","typecheck":"tsc --noEmit","docs:build":"bun run docs:generate && vitepress build docs","smoke:node":"node scripts/smoke-node.mjs","docs:preview":"bun run docs:build && vitepress preview docs","docs:generate":"bun run docs:reference && bun run docs:zentao-api","smoke:browser":"bun run scripts/smoke-browser-bundler.ts","smoke:package":"bun run scripts/smoke-package.ts","test:coverage":"bun test --coverage","docs:reference":"typedoc","prepublishOnly":"bun run check","registry:check":"bun run scripts/update-registry.ts --check","docs:zentao-api":"bun run scripts/generate-zentao-api-docs.ts","typecheck:tests":"tsc -p tsconfig.test.json --noEmit"},"_npmUser":{"name":"catouse","email":"catouse@gmail.com"},"_integrity":"sha512-e7L2eY3MEtiQnw/l4gnNxF/2/FvJVFeUHQFRQRueCfGqk2d92j70YYflGWigX6ejgA36JpY7sbKi8ismbtaUkA==","repository":{"url":"https://github.com/easysoft/zentao-api","type":"git"},"_npmVersion":"10.8.3","description":"Browser and Node.js SDK for ZenTao API","directories":{},"sideEffects":["./dist/browser-global.js","./dist/browser/zentao-api.global.js"],"_nodeVersion":"24.3.0","_hasShrinkwrap":false,"packageManager":"bun@1.3.13","devDependencies":{"typedoc":"^0.28.19","vitepress":"^1.6.4","@types/bun":"^1.3.13","typescript":"^5.7.0","@types/node":"^24.10.0","typedoc-plugin-markdown":"^4.11.0","typedoc-vitepress-theme":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/zentao-api_0.6.5_1787288748626_0.3486702390901628","host":"s3://npm-registry-packages-npm-production"}},"0.6.6":{"name":"zentao-api","version":"0.6.6","keywords":["zentao","禅道","api","sdk","browser"],"author":"Sun Hao <sunhao@chandao.com>","license":"MIT","_id":"zentao-api@0.6.6","maintainers":[{"name":"catouse","email":"catouse@gmail.com"}],"dist":{"shasum":"6dde62f91a2dbab20fb1254f864071a302441e3b","tarball":"https://registry.npmjs.org/zentao-api/-/zentao-api-0.6.6.tgz","fileCount":80,"integrity":"sha512-ifhFkS9s7hYNv+lDyZR7MrdS1xKOvxiqwf7n9fqi9pUSovJvGgsxpN1WdReOQ4y4vDHHyYuIFymdrwTnUb3GwA==","signatures":[{"sig":"MEQCIBBWGnj3cms06VzL4UPNWvRlrN8p3N/qUcHoSqbJ3JWGAiB3ThYvihdvuCqb1QPpOALeFVEpsbsRC+pfZkrr/xO9SQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1368773},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","shasum":"6dde62f91a2dbab20fb1254f864071a302441e3b","engines":{"bun":">=1.0.0","node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","browser":"./dist/browser.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./package.json":"./package.json","./browser/global":"./dist/browser/zentao-api.global.js"},"scripts":{"test":"bun test","build":"rm -rf dist && tsc -p tsconfig.json && bun run scripts/build-browser.ts","check":"bun run test:coverage && bun run typecheck && bun run typecheck:tests && bun run registry:check && bun run registry:audit && bun run build && bun run smoke:node && bun run smoke:browser && bun run smoke:package","docs:dev":"bun run docs:generate && vitepress dev docs","test:real":"bun ./tests/real-env-runner.ts","typecheck":"tsc --noEmit","docs:build":"bun run docs:generate && vitepress build docs","smoke:node":"node scripts/smoke-node.mjs","docs:preview":"bun run docs:build && vitepress preview docs","docs:generate":"bun run docs:reference && bun run docs:zentao-api","smoke:browser":"bun run scripts/smoke-browser-bundler.ts","smoke:package":"bun run scripts/smoke-package.ts","test:coverage":"bun test --coverage","docs:reference":"typedoc","prepublishOnly":"bun run check","registry:audit":"bun run .agents/skills/update-openapi-registry/scripts/audit-generated-registry.ts","registry:check":"bun run scripts/update-registry.ts --check","docs:zentao-api":"bun run scripts/generate-zentao-api-docs.ts","typecheck:tests":"tsc -p tsconfig.test.json --noEmit"},"_npmUser":{"name":"catouse","email":"catouse@gmail.com"},"_integrity":"sha512-ifhFkS9s7hYNv+lDyZR7MrdS1xKOvxiqwf7n9fqi9pUSovJvGgsxpN1WdReOQ4y4vDHHyYuIFymdrwTnUb3GwA==","repository":{"url":"https://github.com/easysoft/zentao-api","type":"git"},"_npmVersion":"10.8.3","description":"Browser and Node.js SDK for ZenTao API","directories":{},"sideEffects":["./dist/browser-global.js","./dist/browser/zentao-api.global.js"],"_nodeVersion":"24.3.0","_hasShrinkwrap":false,"packageManager":"bun@1.3.13","devDependencies":{"typedoc":"^0.28.20","vitepress":"^1.6.4","@types/bun":"^1.4.0","typescript":"^5.9.3","@types/node":"^24.13.3","typedoc-plugin-markdown":"^4.12.0","typedoc-vitepress-theme":"^1.1.3"},"_npmOperationalInternal":{"tmp":"tmp/zentao-api_0.6.6_1787995542673_0.7813824494005615","host":"s3://npm-registry-packages-npm-production"}},"0.6.7":{"name":"zentao-api","version":"0.6.7","keywords":["zentao","禅道","api","sdk","browser"],"author":"Sun Hao <sunhao@chandao.com>","license":"MIT","_id":"zentao-api@0.6.7","maintainers":[{"name":"catouse","email":"catouse@gmail.com"}],"dist":{"shasum":"7822126ce27d7231193934f29ac8f455d78a24cf","tarball":"https://registry.npmjs.org/zentao-api/-/zentao-api-0.6.7.tgz","fileCount":82,"integrity":"sha512-BwkRCvRsOuaMxDoF1zItJTyyFu/usGmCCecRSyVqnFF/SmvxVbfBHUbOEKNN/ZWldVtZ78A4Y6QyaOJm3V1Xfg==","signatures":[{"sig":"MEQCIBBqsCVQAcJNmzlpghsaGszF4OX5iN1G4HMyIafNndMdAiAkuMaXxC1VOgnsmKq+qZuVdpR/uyMgn1pZ+b9MLVmzew==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1425425},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","shasum":"7822126ce27d7231193934f29ac8f455d78a24cf","engines":{"bun":">=1.0.0","node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","browser":"./dist/browser.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./package.json":"./package.json","./browser/global":"./dist/browser/zentao-api.global.js"},"scripts":{"test":"bun test","build":"rm -rf dist && tsc -p tsconfig.json && bun run scripts/build-browser.ts","check":"bun run test:coverage && bun run typecheck && bun run typecheck:tests && bun run registry:check && bun run registry:audit && bun run build && bun run smoke:node && bun run smoke:browser && bun run smoke:package","docs:dev":"bun run docs:generate && vitepress dev docs","test:real":"bun ./tests/real-env-runner.ts","typecheck":"tsc --noEmit","docs:build":"bun run docs:generate && vitepress build docs","smoke:node":"node scripts/smoke-node.mjs","docs:preview":"bun run docs:build && vitepress preview docs","docs:generate":"bun run docs:reference && bun run docs:zentao-api","smoke:browser":"bun run scripts/smoke-browser-bundler.ts","smoke:package":"bun run scripts/smoke-package.ts","test:coverage":"bun test --coverage","docs:reference":"typedoc","prepublishOnly":"bun run check","registry:audit":"bun run .agents/skills/update-openapi-registry/scripts/audit-generated-registry.ts","registry:check":"bun run scripts/update-registry.ts --check","docs:zentao-api":"bun run scripts/generate-zentao-api-docs.ts","typecheck:tests":"tsc -p tsconfig.test.json --noEmit"},"_npmUser":{"name":"catouse","email":"catouse@gmail.com"},"_integrity":"sha512-BwkRCvRsOuaMxDoF1zItJTyyFu/usGmCCecRSyVqnFF/SmvxVbfBHUbOEKNN/ZWldVtZ78A4Y6QyaOJm3V1Xfg==","repository":{"url":"https://github.com/easysoft/zentao-api","type":"git"},"_npmVersion":"10.8.3","description":"Browser and Node.js SDK for ZenTao API","directories":{},"sideEffects":["./dist/browser-global.js","./dist/browser/zentao-api.global.js"],"_nodeVersion":"24.3.0","_hasShrinkwrap":false,"packageManager":"bun@1.3.13","devDependencies":{"typedoc":"^0.28.20","vitepress":"^1.6.4","@types/bun":"^1.4.0","typescript":"^5.9.3","@types/node":"^24.13.3","typedoc-plugin-markdown":"^4.12.0","typedoc-vitepress-theme":"^1.1.3"},"_npmOperationalInternal":{"tmp":"tmp/zentao-api_0.6.7_1788619091785_0.0971055275000472","host":"s3://npm-registry-packages-npm-production"}},"0.6.8":{"name":"zentao-api","version":"0.6.8","keywords":["zentao","禅道","api","sdk","browser"],"author":"Sun Hao <sunhao@chandao.com>","license":"MIT","_id":"zentao-api@0.6.8","maintainers":[{"name":"catouse","email":"catouse@gmail.com"}],"dist":{"shasum":"7ac2b7ab655d72f8b06c3dd530cf866ea6593766","tarball":"https://registry.npmjs.org/zentao-api/-/zentao-api-0.6.8.tgz","fileCount":84,"integrity":"sha512-QD+/ceSJDlO2KwuOWhiPb/LI8kw2aHf1wssJaGIeNw5auvipbFl7pDUkmB/YG7J8yzzphRZK/dW2vhfyeOrfSw==","signatures":[{"sig":"MEYCIQDkxdHg7YpnCr67DpaXh/elj852Nn6QaJzqlNDbsSLJ0AIhAKx3essx2JRRGOGTnFXy5fHgVEnmdKHhWeIr4cgrhTgN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1442186},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","shasum":"7ac2b7ab655d72f8b06c3dd530cf866ea6593766","engines":{"bun":">=1.0.0","node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","browser":"./dist/browser.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./package.json":"./package.json","./browser/global":"./dist/browser/zentao-api.global.js"},"scripts":{"test":"bun test","build":"rm -rf dist && tsc -p tsconfig.json && bun run scripts/build-browser.ts","check":"bun run test:coverage && bun run typecheck && bun run typecheck:tests && bun run registry:check && bun run registry:audit && bun run build && bun run smoke:node && bun run smoke:browser && bun run smoke:package","docs:dev":"bun run docs:generate && vitepress dev docs","test:real":"bun ./tests/real-env-runner.ts","typecheck":"tsc --noEmit","docs:build":"bun run docs:generate && vitepress build docs","smoke:node":"node scripts/smoke-node.mjs","docs:preview":"bun run docs:build && vitepress preview docs","docs:generate":"bun run docs:reference && bun run docs:zentao-api","smoke:browser":"bun run scripts/smoke-browser-bundler.ts","smoke:package":"bun run scripts/smoke-package.ts","test:coverage":"bun test --coverage","docs:reference":"typedoc","prepublishOnly":"bun run check","registry:audit":"bun run .agents/skills/update-openapi-registry/scripts/audit-generated-registry.ts","registry:check":"bun run scripts/update-registry.ts --check","docs:zentao-api":"bun run scripts/generate-zentao-api-docs.ts","typecheck:tests":"tsc -p tsconfig.test.json --noEmit"},"_npmUser":{"name":"catouse","email":"catouse@gmail.com"},"_integrity":"sha512-QD+/ceSJDlO2KwuOWhiPb/LI8kw2aHf1wssJaGIeNw5auvipbFl7pDUkmB/YG7J8yzzphRZK/dW2vhfyeOrfSw==","repository":{"url":"https://github.com/easysoft/zentao-api","type":"git"},"_npmVersion":"10.8.3","description":"Browser and Node.js SDK for ZenTao API","directories":{},"sideEffects":["./dist/browser-global.js","./dist/browser/zentao-api.global.js"],"_nodeVersion":"24.3.0","_hasShrinkwrap":false,"packageManager":"bun@1.3.13","devDependencies":{"typedoc":"^0.28.20","vitepress":"^1.6.4","@types/bun":"^1.4.0","typescript":"^5.9.3","@types/node":"^24.13.3","typedoc-plugin-markdown":"^4.12.0","typedoc-vitepress-theme":"^1.1.3"},"_npmOperationalInternal":{"tmp":"tmp/zentao-api_0.6.8_1788706363514_0.2924974557003712","host":"s3://npm-registry-packages-npm-production"}},"0.6.9":{"name":"zentao-api","version":"0.6.9","keywords":["zentao","禅道","api","sdk","browser"],"author":"Sun Hao <sunhao@chandao.com>","license":"MIT","_id":"zentao-api@0.6.9","maintainers":[{"name":"catouse","email":"catouse@gmail.com"}],"dist":{"shasum":"ee4d9945024056e7ffc24c2925b8c6d8ef824ef6","tarball":"https://registry.npmjs.org/zentao-api/-/zentao-api-0.6.9.tgz","fileCount":84,"integrity":"sha512-Bqi7sFstUwUuNgzEJ2P582huX9q28HQ+cJ2xa8t1pMsTR98kI1Dx5VhH0yKqKapj6FbZtPe/Ln8JQ17uQdPqig==","signatures":[{"sig":"MEUCIQCkcsT3drJAfJSOGbG+yY1AEc58FS8K755NUoPZctcS9gIgR6smsmVt9d8GQCZv2ECoonsYuVInUuZWDrT7csHsFcQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1447346},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","shasum":"ee4d9945024056e7ffc24c2925b8c6d8ef824ef6","engines":{"bun":">=1.0.0","node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","browser":"./dist/browser.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./package.json":"./package.json","./browser/global":"./dist/browser/zentao-api.global.js"},"scripts":{"test":"bun test","build":"rm -rf dist && tsc -p tsconfig.json && bun run scripts/build-browser.ts","check":"bun run test:coverage && bun run typecheck && bun run typecheck:tests && bun run registry:check && bun run registry:audit && bun run build && bun run smoke:node && bun run smoke:browser && bun run smoke:package","docs:dev":"bun run docs:generate && vitepress dev docs","test:real":"bun ./tests/real-env-runner.ts","typecheck":"tsc --noEmit","docs:build":"bun run docs:generate && vitepress build docs","smoke:node":"node scripts/smoke-node.mjs","docs:preview":"bun run docs:build && vitepress preview docs","docs:generate":"bun run docs:reference && bun run docs:zentao-api","smoke:browser":"bun run scripts/smoke-browser-bundler.ts","smoke:package":"bun run scripts/smoke-package.ts","test:coverage":"bun test --coverage","docs:reference":"typedoc","prepublishOnly":"bun run check","registry:audit":"bun run .agents/skills/update-openapi-registry/scripts/audit-generated-registry.ts","registry:check":"bun run scripts/update-registry.ts --check","docs:zentao-api":"bun run scripts/generate-zentao-api-docs.ts","typecheck:tests":"tsc -p tsconfig.test.json --noEmit"},"_npmUser":{"name":"catouse","email":"catouse@gmail.com"},"_integrity":"sha512-Bqi7sFstUwUuNgzEJ2P582huX9q28HQ+cJ2xa8t1pMsTR98kI1Dx5VhH0yKqKapj6FbZtPe/Ln8JQ17uQdPqig==","repository":{"url":"https://github.com/easysoft/zentao-api","type":"git"},"_npmVersion":"10.8.3","description":"Browser and Node.js SDK for ZenTao API","directories":{},"sideEffects":["./dist/browser-global.js","./dist/browser/zentao-api.global.js"],"_nodeVersion":"24.3.0","_hasShrinkwrap":false,"packageManager":"bun@1.3.13","devDependencies":{"typedoc":"^0.28.20","vitepress":"^1.6.4","@types/bun":"^1.4.0","typescript":"^5.9.3","@types/node":"^24.13.3","typedoc-plugin-markdown":"^4.12.0","typedoc-vitepress-theme":"^1.1.3"},"_npmOperationalInternal":{"tmp":"tmp/zentao-api_0.6.9_1789191828095_0.6685220916987531","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"zentao-api","version":"0.7.0","keywords":["zentao","禅道","api","sdk","browser"],"author":"Sun Hao <sunhao@chandao.com>","license":"MIT","_id":"zentao-api@0.7.0","maintainers":[{"name":"catouse","email":"catouse@gmail.com"}],"dist":{"shasum":"dc31a4a5694c1f757844eb7088bc637f61b3c231","tarball":"https://registry.npmjs.org/zentao-api/-/zentao-api-0.7.0.tgz","fileCount":84,"integrity":"sha512-aSzDNcZXtiCBz6efoaImS/swTbWURmUhDnbsSjvvpZ4MiAcP4jKaPl/CB1GTnqlKwFq0D/wLKSFSJs0Qnp+RQw==","signatures":[{"sig":"MEUCIQCfhBSIDC3ihxDI6gHgDwo/UgvdxT83w2kTB3NzT7FQQgIgUWN9BJj3jsr2BM3hquTgffbiWRlRLlklGhDYSBz/HNA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDJUrcZ13GJ6ATqy8ffIZqxIUit/FIz5/qGf/+DuGrinwIgPkDFoCxX3l/aS3j4RshytFkOs6539ZwN6dxl/eRPjsQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1452110},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","shasum":"dc31a4a5694c1f757844eb7088bc637f61b3c231","engines":{"bun":">=1.0.0","node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","browser":"./dist/browser.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./package.json":"./package.json","./browser/global":"./dist/browser/zentao-api.global.js"},"scripts":{"test":"bun test","build":"rm -rf dist && tsc -p tsconfig.json && bun run scripts/build-browser.ts","check":"bun run test:coverage && bun run typecheck && bun run typecheck:tests && bun run registry:check && bun run registry:audit && bun run build && bun run smoke:node && bun run smoke:browser && bun run smoke:package","docs:dev":"bun run docs:generate && vitepress dev docs","test:real":"bun ./tests/real-env-runner.ts","typecheck":"tsc --noEmit","docs:build":"bun run docs:generate && vitepress build docs","smoke:node":"node scripts/smoke-node.mjs","docs:preview":"bun run docs:build && vitepress preview docs","docs:generate":"bun run docs:reference && bun run docs:zentao-api","smoke:browser":"bun run scripts/smoke-browser-bundler.ts","smoke:package":"bun run scripts/smoke-package.ts","test:coverage":"bun test --coverage","docs:reference":"typedoc","prepublishOnly":"bun run check","registry:audit":"bun run .agents/skills/update-openapi-registry/scripts/audit-generated-registry.ts","registry:check":"bun run scripts/update-registry.ts --check","docs:zentao-api":"bun run scripts/generate-zentao-api-docs.ts","typecheck:tests":"tsc -p tsconfig.test.json --noEmit"},"_npmUser":{"name":"catouse","email":"catouse@gmail.com"},"_integrity":"sha512-aSzDNcZXtiCBz6efoaImS/swTbWURmUhDnbsSjvvpZ4MiAcP4jKaPl/CB1GTnqlKwFq0D/wLKSFSJs0Qnp+RQw==","repository":{"url":"https://github.com/easysoft/zentao-api","type":"git"},"_npmVersion":"10.8.3","description":"Browser and Node.js SDK for ZenTao API","directories":{},"sideEffects":["./dist/browser-global.js","./dist/browser/zentao-api.global.js"],"_nodeVersion":"24.3.0","_hasShrinkwrap":false,"packageManager":"bun@1.3.13","devDependencies":{"typedoc":"^0.28.20","vitepress":"^1.6.4","@types/bun":"^1.4.0","typescript":"^5.9.3","@types/node":"^24.13.3","typedoc-plugin-markdown":"^4.12.0","typedoc-vitepress-theme":"^1.1.3"},"_npmOperationalInternal":{"tmp":"tmp/zentao-api_0.7.0_1789461052327_0.6975703855887772","host":"s3://npm-registry-packages-npm-production"}},"0.7.1":{"name":"zentao-api","version":"0.7.1","keywords":["zentao","禅道","api","sdk","browser"],"author":"Sun Hao <sunhao@chandao.com>","license":"MIT","_id":"zentao-api@0.7.1","maintainers":[{"name":"catouse","email":"catouse@gmail.com"}],"dist":{"shasum":"b81858b37a068d4e2ee5a9c71433b604100eca65","tarball":"https://registry.npmjs.org/zentao-api/-/zentao-api-0.7.1.tgz","fileCount":84,"integrity":"sha512-2/9FD85gw7Fetrklll3VtxrAWD3AY9ppcJhaz8IK04UNUv+Dz8J21CL1dGzzurOuJjDMV3gTU1YJaHHbDi9tFw==","signatures":[{"sig":"MEQCIG7FYq0S5fAOfOm7VWoYJBZJW364wXqj+UAUYgKapAzVAiAXTVt0SY/9tsQ1Yr4OKputx8+tPbRI8IF4TkW0TFbDBg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHbZvTv70k8IL/cOJx7DQ9XycRkC6sNyyg+VcsUW5ZCNAiEA1i+6eg/irgIfKf2DFAWFIh++1i4fhp/57UbT8DD1jlg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1472519},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","shasum":"b81858b37a068d4e2ee5a9c71433b604100eca65","engines":{"bun":">=1.0.0","node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","browser":"./dist/browser.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./package.json":"./package.json","./browser/global":"./dist/browser/zentao-api.global.js"},"scripts":{"test":"bun test","build":"rm -rf dist && tsc -p tsconfig.json && bun run scripts/build-browser.ts","check":"bun run test:coverage && bun run typecheck && bun run typecheck:tests && bun run registry:check && bun run registry:audit && bun run build && bun run smoke:node && bun run smoke:browser && bun run smoke:package","docs:dev":"bun run docs:generate && vitepress dev docs","test:real":"bun ./tests/real-env-runner.ts","typecheck":"tsc --noEmit","docs:build":"bun run docs:generate && vitepress build docs","smoke:node":"node scripts/smoke-node.mjs","docs:preview":"bun run docs:build && vitepress preview docs","docs:generate":"bun run docs:reference && bun run docs:zentao-api","smoke:browser":"bun run scripts/smoke-browser-bundler.ts","smoke:package":"bun run scripts/smoke-package.ts","test:coverage":"bun test --coverage","docs:reference":"typedoc","prepublishOnly":"bun run check","registry:audit":"bun run .agents/skills/update-openapi-registry/scripts/audit-generated-registry.ts","registry:check":"bun run scripts/update-registry.ts --check","docs:zentao-api":"bun run scripts/generate-zentao-api-docs.ts","typecheck:tests":"tsc -p tsconfig.test.json --noEmit"},"_npmUser":{"name":"catouse","email":"catouse@gmail.com"},"_integrity":"sha512-2/9FD85gw7Fetrklll3VtxrAWD3AY9ppcJhaz8IK04UNUv+Dz8J21CL1dGzzurOuJjDMV3gTU1YJaHHbDi9tFw==","repository":{"url":"https://github.com/easysoft/zentao-api","type":"git"},"_npmVersion":"10.8.3","description":"Browser and Node.js SDK for ZenTao API","directories":{},"sideEffects":["./dist/browser-global.js","./dist/browser/zentao-api.global.js"],"_nodeVersion":"24.3.0","_hasShrinkwrap":false,"packageManager":"bun@1.3.13","devDependencies":{"typedoc":"^0.28.20","vitepress":"^1.6.4","@types/bun":"^1.4.0","typescript":"^5.9.3","@types/node":"^24.13.3","typedoc-plugin-markdown":"^4.12.0","typedoc-vitepress-theme":"^1.1.3"},"_npmOperationalInternal":{"tmp":"tmp/zentao-api_0.7.1_1790768236095_0.4169575751955312","host":"s3://npm-registry-packages-npm-production"}},"0.7.2":{"_id":"zentao-api@0.7.2","dist":{"shasum":"2e04a7a8db4488233178a65c5961e58d9fc2b7e6","tarball":"https://registry.npmjs.org/zentao-api/-/zentao-api-0.7.2.tgz","fileCount":84,"integrity":"sha512-1/2A4BWVOvtT2XvyiUGPr+5vkzi3aMIeVL3FFxAvAr0QBmQuZb0Aszm6CYc7Yb5Bge8mDKfbB+kjy/LQHDuXpw==","signatures":[{"sig":"MEUCIDepUYXzRbAnnYfMdwZSBRpyvghzW/cvh8G/Y3AyPG5BAiEA2vNWIN9es/aFgbPM/q/hcUfNIICoplH0vlw6RL0HBGk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIB2T8+TcJvcx3zEkUSt28VLG0cIpHwsKu8x8wwiav8m5AiEAsIRy1Un0QlmuWL5LDeex4/lbjTJ7CENF7JwBA9FYrw4="}],"unpackedSize":1473029},"main":"./dist/index.js","name":"zentao-api","type":"module","types":"./dist/index.d.ts","author":"Sun Hao <sunhao@chandao.com>","shasum":"2e04a7a8db4488233178a65c5961e58d9fc2b7e6","engines":{"bun":">=1.0.0","node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","browser":"./dist/browser.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./package.json":"./package.json","./browser/global":"./dist/browser/zentao-api.global.js"},"license":"MIT","scripts":{"test":"bun test","build":"rm -rf dist && tsc -p tsconfig.json && bun run scripts/build-browser.ts","check":"bun run test:coverage && bun run typecheck && bun run typecheck:tests && bun run registry:check && bun run registry:audit && bun run build && bun run smoke:node && bun run smoke:browser && bun run smoke:package","docs:dev":"bun run docs:generate && vitepress dev docs","test:real":"bun ./tests/real-env-runner.ts","typecheck":"tsc --noEmit","docs:build":"bun run docs:generate && vitepress build docs","smoke:node":"node scripts/smoke-node.mjs","docs:preview":"bun run docs:build && vitepress preview docs","docs:generate":"bun run docs:reference && bun run docs:zentao-api","smoke:browser":"bun run scripts/smoke-browser-bundler.ts","smoke:package":"bun run scripts/smoke-package.ts","test:coverage":"bun test --coverage","docs:reference":"typedoc","prepublishOnly":"bun run check","registry:audit":"bun run .agents/skills/update-openapi-registry/scripts/audit-generated-registry.ts","registry:check":"bun run scripts/update-registry.ts --check","docs:zentao-api":"bun run scripts/generate-zentao-api-docs.ts","typecheck:tests":"tsc -p tsconfig.test.json --noEmit"},"version":"0.7.2","_npmUser":{"name":"catouse","email":"catouse@gmail.com"},"keywords":["zentao","禅道","api","sdk","browser"],"_integrity":"sha512-1/2A4BWVOvtT2XvyiUGPr+5vkzi3aMIeVL3FFxAvAr0QBmQuZb0Aszm6CYc7Yb5Bge8mDKfbB+kjy/LQHDuXpw==","repository":{"url":"https://github.com/easysoft/zentao-api","type":"git"},"_npmVersion":"10.8.3","description":"Browser and Node.js SDK for ZenTao API","directories":{},"maintainers":[{"name":"catouse","email":"catouse@gmail.com"}],"sideEffects":["./dist/browser-global.js","./dist/browser/zentao-api.global.js"],"_nodeVersion":"24.3.0","_hasShrinkwrap":false,"packageManager":"bun@1.3.13","devDependencies":{"typedoc":"^0.28.20","vitepress":"^1.6.4","@types/bun":"^1.4.0","typescript":"^5.9.3","@types/node":"^24.13.3","typedoc-plugin-markdown":"^4.12.0","typedoc-vitepress-theme":"^1.1.3"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/zentao-api_0.7.2_1790861495397_0.5179764673471803"}}},"time":{"created":"2021-03-13T06:50:14.316Z","modified":"2026-10-01T13:31:35.680Z","0.1.0":"2021-03-13T06:50:14.524Z","0.2.0-beta.1":"2026-05-10T12:46:14.567Z","0.2.0-beta.2":"2026-05-11T13:46:34.842Z","0.2.0":"2026-05-25T12:43:08.368Z","0.2.1":"2026-06-23T08:51:22.139Z","0.3.0":"2026-06-27T10:58:16.294Z","0.3.1":"2026-06-27T12:03:15.730Z","0.3.2":"2026-06-29T10:28:23.642Z","0.3.3":"2026-06-30T10:01:26.420Z","0.4.0":"2026-07-21T02:40:57.919Z","0.4.1":"2026-08-04T07:16:51.477Z","0.5.0":"2026-08-11T11:37:16.107Z","0.5.1":"2026-08-11T13:56:58.239Z","0.5.2":"2026-08-11T15:04:43.421Z","0.5.3":"2026-08-12T03:05:22.921Z","0.5.4":"2026-08-12T07:18:40.925Z","0.5.5":"2026-08-13T07:56:17.155Z","0.6.0":"2026-08-18T03:57:53.668Z","0.6.1":"2026-08-18T05:16:03.828Z","0.6.2":"2026-08-18T08:24:31.292Z","0.6.3":"2026-08-19T01:05:07.411Z","0.6.4":"2026-08-19T02:49:59.274Z","0.6.5":"2026-08-21T05:05:48.771Z","0.6.6":"2026-08-29T09:25:42.832Z","0.6.7":"2026-09-05T14:38:11.932Z","0.6.8":"2026-09-06T14:52:43.665Z","0.6.9":"2026-09-12T05:43:48.225Z","0.7.0":"2026-09-15T08:30:52.425Z","0.7.1":"2026-09-30T11:37:16.204Z","0.7.2":"2026-10-01T13:31:35.489Z"},"author":"Sun Hao <sunhao@chandao.com>","license":"MIT","keywords":["zentao","禅道","api","sdk","browser"],"repository":{"url":"https://github.com/easysoft/zentao-api","type":"git"},"description":"Browser and Node.js SDK for ZenTao API","maintainers":[{"name":"catouse","email":"catouse@gmail.com"}],"readme":"# zentao-api\n\n[![npm version](https://img.shields.io/npm/v/zentao-api)](https://www.npmjs.com/package/zentao-api)\n[![Node.js](https://img.shields.io/node/v/zentao-api)](https://nodejs.org)\n[![license](https://img.shields.io/npm/l/zentao-api)](https://github.com/easysoft/zentao-api/blob/main/LICENSE)\n\nBrowser & Node.js SDK for [ZenTao](https://www.zentao.net) (禅道) API v2.\n\n`zentao-api` 是一个零运行时依赖的 JavaScript/TypeScript SDK，提供底层 REST 客户端和基于模块注册表的高阶请求接口，可运行在 Node.js 18+、Bun、浏览器打包工具及 CDN/script 标签环境中。\n\n[快速开始](#快速开始) · [调用方式](#两种调用方式) · [浏览器](#浏览器) · [完整文档](#文档)\n\n## 特性\n\n- 两层 API：使用 `ZentaoClient` 直接调用 REST 路径，或使用 `request(\"module/action\")` 自动组装路径、查询参数和请求体。\n- 完整类型提示：内置请求名、参数和 `data` 返回值可由 TypeScript 自动推导。\n- 统一响应结构：自动提取业务数据和分页信息，稳定返回 `ResponseData<T>`。\n- 覆盖禅道常用模块：产品、项目、执行、需求、任务、Bug、测试、版本、发布等。\n- 内置本地数据处理：支持转换、过滤、搜索、排序、限制数量和字段摘取。\n- 可扩展模块注册表、持久化 Profile、稳定错误码及 Node.js 自签名证书支持。\n\n## 安装\n\n```sh\nnpm install zentao-api\n```\n\n使用 Bun：\n\n```sh\nbun add zentao-api\n```\n\n包采用 ESM，并自带 TypeScript 类型定义。Node.js 需要 18 或更高版本。\n\n## 快速开始\n\n推荐通过 `ZentaoClient.init()` 配置全局客户端，再使用高阶 `request()` 调用内置模块：\n\n```ts\nimport { ZentaoClient, request } from 'zentao-api';\n\nZentaoClient.init({\n  baseUrl: 'https://zentao.example.com',\n  token: 'your-token',\n});\n\nconst result = await request('product/list', {\n  browseType: 'all',\n  recPerPage: 20,\n  pageID: 1,\n});\n\nconsole.log(result.data);         // 产品列表\nconsole.log(result.pager?.total); // 总记录数\n```\n\n`baseUrl` 填写禅道站点根地址；SDK 会自动拼接 `/api.php/v2`，并在后续请求中注入 `Token` 请求头。\n\n### 使用账号密码登录\n\n没有 token 时，可以先登录。`ZentaoClient.init()` 返回的实例同时也是 `request()` 使用的全局客户端：\n\n```ts\nimport { ZentaoClient, request } from 'zentao-api';\n\nconst client = ZentaoClient.init({\n  baseUrl: 'https://zentao.example.com',\n});\n\nawait client.login('admin', 'password');\n\nconst products = await request('product/list');\n```\n\n请从环境变量或安全配置中读取账号、密码和 token，不要将凭据提交到代码仓库。\n\n## 两种调用方式\n\n| 调用方式 | 适合场景 | 返回值 |\n| --- | --- | --- |\n| `request(\"module/action\")` | 调用注册表中的常用禅道 API，自动处理参数与分页 | 统一的 `ResponseData<T>` |\n| `ZentaoClient` | 调用尚未注册的路径、上传文件或读取二进制响应 | 禅道原始响应体 |\n\n### 高阶模块请求\n\n请求名支持三种写法：\n\n```ts\nawait request('product');      // product/list\nawait request('product/list'); // 显式动作名\nawait request('product/1');    // product/get，且对象 ID 为 1\n```\n\n带作用域的列表可以传产品、项目或执行 ID，SDK 会自动选择实际路径：\n\n```ts\nconst bugs = await request('bug/list', {\n  productID: 1,\n  browseType: 'unclosed',\n});\n\n// 也可以显式指定作用域：\nconst projectBugs = await request('bug/list', {\n  scope: 'projects',\n  scopeID: 8,\n});\n```\n\n单次调用选项会覆盖全局选项。下面的处理只作用于 SDK 返回的 `data`，不会改变服务端数据：\n\n```ts\nconst bugs = await request(\n  'bug/list',\n  { productID: 1, recPerPage: 100 },\n  {\n    filter: ['status=active,pri>=2'],\n    search: ['登录'],\n    sort: 'pri:desc,id:asc',\n    limit: '10',\n    pick: ['id', 'title', 'pri'],\n  },\n);\n```\n\n更多过滤语法和处理顺序见[本地数据处理指南](https://github.com/easysoft/zentao-api/blob/main/docs/guide/data-processing.md)。\n\n### 统一返回结构\n\n除非启用 `raw`，`request()` 始终返回以下结构：\n\n```ts\ninterface ResponseData<T> {\n  status: 'success' | 'fail';\n  message?: string;\n  data?: T;\n  pager?: {\n    total: number;\n    page: number;\n    recPerPage: number;\n  };\n}\n```\n\n内置请求会自动推导参数和数据类型；自定义调用也可以显式收窄 `data`：\n\n```ts\ninterface ProductSummary {\n  id: number;\n  name: string;\n}\n\nconst result = await request<ProductSummary[]>('product/list', {});\nresult.data?.forEach((product) => console.log(product.name));\n```\n\n需要完整服务端响应时，传入 `{ raw: true }`。此时会跳过响应归一化、本地数据处理和 `throwOnFail`：\n\n```ts\nconst raw = await request('product/list', {}, { raw: true });\n```\n\n### 上传附件\n\nNode.js/Bun 可以直接把本地文件路径交给高阶 `request()`；SDK 会根据模块注册表构造 `multipart/form-data`。浏览器中请传 `File` 或 `Blob`，不能传本地路径。\n\n```ts\nconst uploaded = await request('file/create', {\n  file: '/tmp/zentao-api-upload.txt',\n  objectType: 'story',\n  objectID: 1,\n});\n\nconsole.log(uploaded.data?.id, uploaded.data?.url);\n```\n\n单个本地文件或 Blob 默认限制为 50 MiB；可通过单次调用选项 `maxUploadBytes` 调整。\n\n### 底层 REST 客户端\n\n`ZentaoClient` 适合直接调用 API v2 路径：\n\n```ts\nimport { ZentaoClient } from 'zentao-api';\n\nconst client = new ZentaoClient({\n  baseUrl: 'https://zentao.example.com',\n  token: 'your-token',\n  timeout: 10_000,\n});\n\nconst products = await client.get('/products');\nconst product = await client.get('/products/1');\nconst created = await client.post('/products', { name: '新产品' });\n```\n\n通用 `client.request()` 还支持自定义请求头、查询参数、`AbortSignal`、`FormData`，以及 `text`、`arrayBuffer`、`blob`、`response` 等响应类型。\n\n## 配置\n\n### 客户端选项\n\n| 选项 | 类型 | 说明 |\n| --- | --- | --- |\n| `baseUrl` | `string` | 禅道站点根地址；SDK 自动处理 `/api.php/v2`。 |\n| `token` | `string` | 禅道 API Token；也可稍后通过 `login()` 获取。 |\n| `timeout` | `number` | 默认请求超时时间，单位为毫秒，默认 `10000`。 |\n| `insecure` | `boolean` | 跳过 TLS 证书校验，仅支持 Node.js 运行时。 |\n\n### 全局选项\n\n```ts\nimport { setGlobalOptions } from 'zentao-api';\n\nsetGlobalOptions({\n  recPerPage: '50',\n  limit: '20',\n  timeout: 30_000,\n  throwOnFail: true,\n  autoFill: false,\n});\n```\n\n常用全局选项包括 `client`、`version`、`recPerPage`、`limit`、`timeout`、`insecure`、`persistProfiles`、`skipVersionCheckOnConfigError`、`throwOnFail` 和 `autoFill`。优先级通常为：单次调用选项 > 全局选项 > 客户端默认值。\n\n### 禅道版本检查\n\n高阶 `request()` 会在发送业务请求前检查 Action 的必填 `minVersion`。四个系列分别比较，例如 `22.5`、`biz13.5`、`max8.5`、`ipd5.5`；支持点分数字正式版本，暂不支持 alpha、beta、rc 等后缀。底层 `client.get/post/request` 不检查 Action 版本。\n\n```ts\nsetGlobalOptions({ version: 'biz13.5' });\nawait request('story/getGrades'); // 直接使用全局版本，无需获取配置\nawait request('story/getGrades', {}, { forceRefreshConfig: true }); // 用服务器实际版本校验本次请求\n\nconst config = await client.getZentaoConfig(); // 复用有效缓存，缺失或过期时获取\nconst freshConfig = await client.getZentaoConfig({ forceRefresh: true });\n```\n\n`getZentaoConfig()` 只需站点地址，无需登录或 profile；未提供 Token 或 Token 已过期时都可调用。请求不发送 API Token，浏览器中还会显式省略 Cookie 等凭据，因此可以在登录前查询版本：\n\n```ts\nconst siteClient = new ZentaoClient('https://zentao.example.com');\nconst { version } = await siteClient.getZentaoConfig();\n```\n\n强制刷新不会改写全局 `version`。未指定全局版本时，使用不超过 24 小时的缓存；缓存缺失、过期或时间异常时访问站点根地址的 `/?mode=getconfig`。登录验证成功后也会强制获取一次，即使已设置全局版本。\n\n配置获取失败默认停止调用；可以通过全局或单次 `skipVersionCheckOnConfigError: true` 跳过本次检查。该选项不忽略版本不匹配、版本格式错误、取消或 profile 存储错误。版本不匹配抛出 `E_UNSUPPORTED_ZENTAO_VERSION`。\n\n### 持久化 Profile\n\n`login()` 默认不会自动写入 Profile。先启用 `persistProfiles`，登录成功后才会保存站点、账号、token、客户端配置，以及 `serverConfig` 和获取时间 `serverConfigFetchedAt`：\n\n```ts\nimport { ZentaoClient, setGlobalOptions } from 'zentao-api';\n\nsetGlobalOptions({ persistProfiles: true });\n\nconst client = ZentaoClient.init({\n  baseUrl: 'https://zentao.example.com',\n});\n\nawait client.login('admin', 'password');\n```\n\n后续可以恢复当前 Profile；如需继续调用高阶 `request()`，再把恢复的客户端设为全局客户端：\n\n```ts\nconst client = await ZentaoClient.fromProfile();\nsetGlobalOptions({ client });\n\n// 或指定 profile key\nconst another = await ZentaoClient.fromProfile(\n  'admin@https://zentao.example.com',\n);\n\n// 只读取并恢复，不切换当前 Profile、不更新使用时间、不写存储。\nconst isolated = await ZentaoClient.fromProfile(\n  'admin@https://zentao.example.com', { activate: false },\n);\n```\n\n| 环境 | 存储位置 |\n| --- | --- |\n| Node.js / Bun | `~/.config/zentao/zentao.json` |\n| 浏览器 | `localStorage` |\n\nProfile 包含可直接调用 API 的 token，请按敏感凭据保护其存储位置。\n\n## 错误处理\n\nHTTP、网络、超时、参数、模块解析和 Profile 错误会统一抛出带稳定错误码的 `ZentaoError`：\n\n```ts\nimport { request, ZentaoError } from 'zentao-api';\n\ntry {\n  await request('bug/resolve', {\n    bugID: 1001,\n    resolution: 'fixed',\n  }, {\n    throwOnFail: true,\n  });\n} catch (error) {\n  if (error instanceof ZentaoError) {\n    console.error(error.code);    // 例如 E_HTTP_ERROR、E_TIMEOUT\n    console.error(error.message);\n    console.error(error.details);\n  }\n}\n```\n\n禅道返回 `{ status: \"fail\" }` 属于业务失败，默认仍作为 `ResponseData` 返回；只有启用单次或全局 `throwOnFail` 后，才会抛出 `E_API_FAILED`。HTTP、网络和超时等传输层错误始终抛出异常。\n\n## 浏览器\n\nVite、Webpack、Rspack 等打包工具可以从包根导入；需要显式选择浏览器入口时使用 `zentao-api/browser`：\n\n```ts\nimport { ZentaoClient, request } from 'zentao-api/browser';\n```\n\n使用 script 标签时，UMD 构建会将公共 API 暴露到 `window.ZentaoAPI`：\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/zentao-api@latest/dist/browser/zentao-api.global.js\"></script>\n<script>\n  const client = new window.ZentaoAPI.ZentaoClient({\n    baseUrl: 'https://zentao.example.com',\n    token: 'your-token',\n  });\n\n  console.log(window.ZentaoAPI.VERSION);\n</script>\n```\n\n> 浏览器直连要求禅道服务器允许 CORS，并会向前端暴露 token；敏感场景请通过后端代理。`insecure` 仅适用于 Node.js，在浏览器中使用会抛出 `E_INSECURE_BROWSER`。\n\n## 模块注册表与扩展\n\n可以在运行时查看 SDK 当前支持的模块、动作和参数：\n\n```ts\nimport {\n  getModule,\n  getModuleAction,\n  getModuleActionParams,\n  getModuleNames,\n  getObjectProps,\n} from 'zentao-api';\n\nconst modules = getModuleNames();\nconst action = getModuleAction('bug', 'create');\nconst params = getModuleActionParams('bug', 'create');\nconst labels = getObjectProps('bug');\n\nconst supported = getModule('story', { version: 'biz13.0' });\nconst unavailable = getModuleAction('story', 'getGrades', { version: 'biz13.0' }); // undefined\nconst supportedParams = getModuleActionParams('story', 'create', { version: 'biz13.0', roles: ['body'] });\n```\n\n模块查询只使用显式传入的 `version`，省略时返回当前完整定义，不受全局版本影响。过滤后没有动作的模块不返回。旧 Action 后续新增的参数仍按当前定义返回，不做参数级版本过滤。\n\n未注册的 API 可以新增为自定义模块：\n\n```ts\nimport { defineModules } from 'zentao-api';\n\ndefineModules({\n  name: 'custom',\n  actions: [\n    {\n      name: 'list',\n      minVersion: ['22.0', 'biz13.0', 'max8.0', 'ipd5.0'],\n      type: 'list',\n      path: '/custom',\n      resultGetter: 'items',\n    },\n  ],\n});\n```\n\n只需修改已有动作的个别字段时，使用 `extendModuleAction()`；补丁对象会深度合并，数组会整体替换：\n\n```ts\nimport { extendModuleAction } from 'zentao-api';\n\nextendModuleAction('task', 'list', {\n  path: '/executions/{executionID}/tasks',\n  pathParams: { executionID: '执行 ID' },\n});\n```\n\n`defineModuleActions()` 可追加或整体替换单个动作，`defineModules(module, { replace: true })` 可整体替换同名模块。请确保扩展代码在第一次调用 `request()` 前执行。\n\n所有完整 Action 定义都必须包含非空的 `minVersion` 数组，同一系列不能重复；未列出的系列视为不支持。SDK 0.5.5 及之前已有的 Action 最低版本为 `22.0 / biz13.0 / max8.0 / ipd5.0`，之后新增的 Action 为 `22.5 / biz13.5 / max8.5 / ipd5.5`。\n\n## 文档\n\n- [快速开始](https://github.com/easysoft/zentao-api/blob/main/docs/guide/index.md)\n- [安装与配置](https://github.com/easysoft/zentao-api/blob/main/docs/guide/installation.md)\n- [常见 API 示例](https://github.com/easysoft/zentao-api/blob/main/docs/guide/examples.md)\n- [Profile 与错误处理](https://github.com/easysoft/zentao-api/blob/main/docs/guide/profiles-and-errors.md)\n- [SDK API Reference](https://github.com/easysoft/zentao-api/tree/main/docs/reference)\n- [ZenTao 模块与动作列表](https://github.com/easysoft/zentao-api/tree/main/docs/zentao-api)\n- [变更日志](https://github.com/easysoft/zentao-api/blob/main/CHANGES.md)\n\n## 开发与贡献\n\n本仓库只使用 [Bun](https://bun.sh) 管理开发依赖，请勿使用 npm、pnpm 或 yarn 安装仓库依赖，以免生成额外 lockfile。\n\n```sh\nbun install\nbun test                  # 单元测试\nbun run test:real         # 真实禅道环境集成测试\nbun run docs:dev          # 生成并预览文档站\nbun run check             # 完整 CI：测试、类型检查、注册表、构建、冒烟测试\n```\n\n`bun run test:real` 会依次读取 `.env.local` 和 `env.local`，需要配置 `ZENTAO_URL`（或 `ZENTAO_BASE_URL`），以及 `ZENTAO_TOKEN` 或 `ZENTAO_ACCOUNT` / `ZENTAO_PASSWORD`。使用 `bun run test:real -- --keep-test-data` 可保留测试创建的数据。\n\n测试创建和更新项目时会复用现有 Scrum 项目的有效项目流程，也可通过 `ZENTAO_WORKFLOW_GROUP` 显式指定流程 ID。没有可复用流程时默认使用开源版的 `0`；付费版需要指定有效的流程 ID。\n\n真实环境测试按场景执行，覆盖以下流程：\n\n- 产品、项目集、项目、执行、计划，以及用户和团队成员维护。\n- 研发需求、业务需求、用户需求、任务、Bug、测试用例和模块目录的增删改查、状态流转，以及产品/项目/执行范围的列表。\n- 应用查询和修改、构建、测试单、发布、反馈、工单、转化操作和待办。\n- 个人、团队、产品、项目四类文档空间中的文档库、目录、文档，以及个人工作列表；可用时还会测试会议和自定义合同工作流。\n\n测试使用唯一名称创建临时数据，按依赖顺序清理；使用 Token 时仍需设置 `ZENTAO_ACCOUNT` 或 `ZENTAO_REVIEWER`，供负责人、成员和评审人字段使用。`--keep-test-data` 会保留新增场景的数据；原有生命周期场景中的“删除第二个任务”仍会执行。\n\n每次运行会输出接口统计并写入 `coverage/real-env.json`（已被 Git 忽略），列出已执行、成功、失败、排除原因、尚未测试的动作及实际访问的不同路径，同时记录退出码、耗时和清理错误。动作只要出现一次失败就归入失败，即使另一组参数调用成功；动作统计不能替代场景断言结果。只有探测到明确缺失的可选服务端模块才跳过对应测试；权限、SQL、缺失控制器方法、HTML 错误页和断言失败仍会让命令以非零状态退出。没有删除 API 的问题/风险写入和额外应用创建不自动执行；应用修改只使用临时产品自动生成的应用。\n\n模块注册表由 `data/zentao-openapi.json` 生成。请勿手动编辑 `src/modules/generated.ts`；更新规范后运行：\n\n```sh\nbun run scripts/update-registry.ts\nbun run docs:generate\n```\n\n提交代码前请确保 `bun run check` 通过。欢迎提交 Issue 和 Pull Request。\n\n## License\n\n[MIT](https://github.com/easysoft/zentao-api/blob/main/LICENSE)\n","readmeFilename":"README.md"}