{"_id":"@aitianyu.cn/tianyu-csp","_rev":"8-d591fc99ebacf5580b9f60638950f300","name":"@aitianyu.cn/tianyu-csp","dist-tags":{"latest":"0.3.11"},"versions":{"0.0.1":{"name":"@aitianyu.cn/tianyu-csp","version":"0.0.1","keywords":["aitianyu.cn","server","platform"],"author":{"name":"dev.aitianyu.cn@outlook.com"},"license":"MIT","_id":"@aitianyu.cn/tianyu-csp@0.0.1","maintainers":[{"name":"aitianyu.cn","email":"product@aitianyu.cn"}],"homepage":"https://github.com/aitianyu-cn/tianyu-csp#readme","bugs":{"url":"https://github.com/aitianyu-cn/tianyu-csp/issues"},"dist":{"shasum":"47234651cda4371ddd85e3e21740761c0cce8437","tarball":"https://registry.npmjs.org/@aitianyu.cn/tianyu-csp/-/tianyu-csp-0.0.1.tgz","fileCount":143,"integrity":"sha512-hngk6YvvPkAm/xV1/RmhrSfMj1yGojjL9blI/0CaN+2z/T3iLVuP7dsNQJYcDLJsMW8IDQ2iNGtm4ttGazN2Yw==","signatures":[{"sig":"MEQCIF7EZeU73vWOiyRd3ILy0go1AnyOM/FsyJrM8fPTE3gcAiBJkTGpI+g+MfS61yRrprU8sXAj6fUviMFvgbcTMdgZ+g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":155567},"type":"commonjs","exports":{".":{"node":"./dist/lib/index.js","types":"./dist/types/index.d.ts","import":"./dist/lib/index.js","default":"./dist/lib/index.js","require":"./dist/lib/index.js"}},"gitHead":"f7209f2398b0e7873c166309280561fc0b29e1ad","scripts":{"copy":"npm run copy-lib && npm run copy-types && npm run copy-basic-res","test":"jest  --no-cache --verbose --passWithNoTests","build":"npm run before-build && npm run compiler && npm run copy && npm run after-build","start":"node \"./scripts/starter.js\"","compiler":"tsc -p \"./tsconfig.build.json\" && tsc-alias -p \"./tsconfig.build.json\"","copy-lib":"copyfiles -u 2 \"build/packages/**/*.js\" dist/lib","test-all":"jest  --no-cache --verbose --coverage --passWithNoTests --detectOpenHandles","copy-types":"copyfiles -u 2 \"build/packages/**/*.d.ts\" dist/types","after-build":"rimraf ./build","before-build":"rimraf ./build ./dist","test-coverage":"jest  --no-cache --coverage --passWithNoTests","copy-basic-res":"copyfiles -u 1 \"packages/**/*.json\" \"packages/**/*.config.json\" \"packages/**/configs/**\" dist/lib","copy-basic-types":"copyfiles -u 1 \"packages/**/*.d.ts\" dist/types"},"_npmUser":{"name":"aitianyu.cn","email":"product@aitianyu.cn"},"repository":{"url":"git+https://github.com/aitianyu-cn/tianyu-csp.git","type":"git"},"_npmVersion":"8.6.0","description":"Project for Common Service Platform of Tianyu.","directories":{},"_nodeVersion":"16.13.1","dependencies":{"fs":"^0.0.1-security","path":"^0.12.7","mysql":"^2.18.1","core-js":"^3.36.0","cross-env":"^7.0.3","typescript":"^5.4.2","async-mutex":"^0.5.0","@aitianyu.cn/types":"^0.0.13","@aitianyu.cn/tianyu-store":"^1.0.0-beta.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.3.1","rimraf":"^5.0.5","process":"^0.11.10","ts-jest":"^29.0.3","ts-node":"^10.9.2","copyfiles":"^2.4.1","ts-loader":"^9.5.1","tsc-alias":"^1.8.8","@types/jest":"^29.5.14","@types/node":"^20.11.28","@types/mysql":"^2.15.26","typescript-eslint":"^7.2.0","jest-html-reporters":"^3.0.11","jest-environment-jsdom":"^29.4.1"},"_npmOperationalInternal":{"tmp":"tmp/tianyu-csp_0.0.1_1734175852452_0.790454082009167","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@aitianyu.cn/tianyu-csp","version":"0.0.2","keywords":["aitianyu.cn","server","platform"],"author":{"name":"dev.aitianyu.cn@outlook.com"},"license":"MIT","_id":"@aitianyu.cn/tianyu-csp@0.0.2","maintainers":[{"name":"aitianyu.cn","email":"product@aitianyu.cn"}],"homepage":"https://github.com/aitianyu-cn/tianyu-csp#readme","bugs":{"url":"https://github.com/aitianyu-cn/tianyu-csp/issues"},"dist":{"shasum":"18c81ba79b88d12884a31ffa2c31d3708c69ae10","tarball":"https://registry.npmjs.org/@aitianyu.cn/tianyu-csp/-/tianyu-csp-0.0.2.tgz","fileCount":143,"integrity":"sha512-jlq35jPg61Pd0+taSlyyG+7GwGI9fW/wIpd+h2mm3j9i7X76A/z0jn6fiMwNkbIr36iEzYqC7DjVBQItOxlZuQ==","signatures":[{"sig":"MEUCIQCdVQ4+HKLGE1To2hX+Xz0V2MmOTdLsEaJmi4mhGwmtIAIgOOmeuREYH6jiRugwndI6IWcrDqpHhjiQQnFJpnGqbBc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":155614},"main":"./dist/lib/index.js","type":"commonjs","types":"./dist/types/index.d.ts","exports":{".":{"node":"./dist/lib/index.js","types":"./dist/types/index.d.ts","import":"./dist/lib/index.js","default":"./dist/lib/index.js","require":"./dist/lib/index.js"}},"gitHead":"bcc00a4e8924948ba4e4d2364a07de910b7ed8b5","scripts":{"copy":"npm run copy-lib && npm run copy-types && npm run copy-basic-res","test":"jest  --no-cache --verbose --passWithNoTests","build":"npm run before-build && npm run compiler && npm run copy && npm run after-build","start":"node \"./scripts/starter.js\"","compiler":"tsc -p \"./tsconfig.build.json\" && tsc-alias -p \"./tsconfig.build.json\"","copy-lib":"copyfiles -u 2 \"build/packages/**/*.js\" dist/lib","test-all":"jest  --no-cache --verbose --coverage --passWithNoTests --detectOpenHandles","copy-types":"copyfiles -u 2 \"build/packages/**/*.d.ts\" dist/types","after-build":"rimraf ./build","before-build":"rimraf ./build ./dist","test-coverage":"jest  --no-cache --coverage --passWithNoTests","copy-basic-res":"copyfiles -u 1 \"packages/**/*.json\" \"packages/**/*.config.json\" \"packages/**/configs/**\" dist/lib","copy-basic-types":"copyfiles -u 1 \"packages/**/*.d.ts\" dist/types"},"_npmUser":{"name":"aitianyu.cn","email":"product@aitianyu.cn"},"repository":{"url":"git+https://github.com/aitianyu-cn/tianyu-csp.git","type":"git"},"_npmVersion":"10.9.0","description":"Project for Common Service Platform of Tianyu.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"fs":"^0.0.1-security","path":"^0.12.7","mysql":"^2.18.1","core-js":"^3.36.0","cross-env":"^7.0.3","typescript":"^5.4.2","async-mutex":"^0.5.0","@aitianyu.cn/types":"^0.0.13","@aitianyu.cn/tianyu-store":"^1.0.0-beta.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.3.1","rimraf":"^5.0.5","process":"^0.11.10","ts-jest":"^29.0.3","ts-node":"^10.9.2","copyfiles":"^2.4.1","ts-loader":"^9.5.1","tsc-alias":"^1.8.8","@types/jest":"^29.5.14","@types/node":"^20.11.28","@types/mysql":"^2.15.26","typescript-eslint":"^7.2.0","jest-html-reporters":"^3.0.11"},"_npmOperationalInternal":{"tmp":"tmp/tianyu-csp_0.0.2_1734184685071_0.6176010092177475","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@aitianyu.cn/tianyu-csp","version":"0.1.0","keywords":["aitianyu.cn","server","platform"],"author":{"name":"dev.aitianyu.cn@outlook.com"},"license":"MIT","_id":"@aitianyu.cn/tianyu-csp@0.1.0","maintainers":[{"name":"aitianyu.cn","email":"product@aitianyu.cn"}],"homepage":"https://github.com/aitianyu-cn/tianyu-csp#readme","bugs":{"url":"https://github.com/aitianyu-cn/tianyu-csp/issues"},"dist":{"shasum":"68a8640c8f32fa89b8e60d2199a81a6291157fa3","tarball":"https://registry.npmjs.org/@aitianyu.cn/tianyu-csp/-/tianyu-csp-0.1.0.tgz","fileCount":225,"integrity":"sha512-gvqDDsLtCgz/Zj612obfDCYCGkfJXfkt1yBO0nKVKEViefYr4+x9G7qwpAZUNmmNAn0DsxDFj7ydZfNz6CqFvA==","signatures":[{"sig":"MEUCICk2q1prc6/cNY9Z+kN6WsMvJJ717LfDQQQ57tKDHZRjAiEAgj0DX0fcYfz9LhhL6mRnDfq2s+Z6wtcX92ZENMuPm2c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":318044},"type":"commonjs","exports":{".":{"node":"./dist/lib/index.js","types":"./dist/types/index.d.ts","import":"./dist/lib/index.js","default":"./dist/lib/index.js","require":"./dist/lib/index.js"},"./install":{"node":"./dist/lib/install.js","types":"./dist/types/install.d.ts","import":"./dist/lib/install.js","default":"./dist/lib/install.js","require":"./dist/lib/install.js"}},"gitHead":"1fe2f789f33970cd308213518557f8eba9665dfe","scripts":{"copy":"npm run copy-lib && npm run copy-types && npm run copy-basic-res","test":"jest --no-cache --verbose --passWithNoTests","build":"npm run before-build && npm run compiler && npm run copy && npm run after-build","start":"node \"./scripts/starter.js\"","compiler":"tsc -p \"./tsconfig.build.json\" && tsc-alias -p \"./tsconfig.build.json\"","copy-lib":"copyfiles -u 2 \"build/packages/**/*.js\" dist/lib","test-all":"jest --no-cache --verbose --coverage --passWithNoTests --detectOpenHandles","test-auto":"npm run build && npm run test-env-load && npm run test-all","copy-types":"copyfiles -u 2 \"build/packages/**/*.d.ts\" dist/types","after-build":"rimraf ./build","before-build":"rimraf ./build ./dist","deploy-build":"npm run build && node \"./scripts/deploy.js\"","test-coverage":"jest --no-cache --coverage --passWithNoTests","test-env-load":"node \"./test/config/test-loader.mjs\"","copy-basic-res":"copyfiles -u 1 \"packages/**/*.json\" \"packages/**/*.html\" \"packages/**/*.config.json\" \"packages/**/configs/**\" dist/lib","copy-basic-types":"copyfiles -u 1 \"packages/**/*.d.ts\" dist/types","test-all-offline":"jest -c \"./jest.config.offline.js\" --no-cache --verbose --coverage --passWithNoTests --detectOpenHandles"},"_npmUser":{"name":"aitianyu.cn","email":"product@aitianyu.cn"},"repository":{"url":"git+https://github.com/aitianyu-cn/tianyu-csp.git","type":"git"},"_npmVersion":"10.9.0","description":"Project for Common Service Platform of Tianyu.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"fs":"^0.0.1-security","path":"^0.12.7","https":"^1.0.0","mysql":"^2.18.1","core-js":"^3.36.0","ioredis":"^5.4.1","cross-env":"^7.0.3","typescript":"^5.4.2","async-mutex":"^0.5.0","tsconfig-paths":"^4.2.0","@aitianyu.cn/types":"^0.0.13","@aitianyu.cn/tianyu-store":"^1.0.0-beta.1","@aitianyu.cn/tianyu-app-fwk":"^0.0.1"},"typesVersions":{"*":{"*":["./dist/types/index.d.ts"],"install":["./dist/types/install.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.3.1","rimraf":"^5.0.5","process":"^0.11.10","ts-jest":"^29.0.3","ts-node":"^10.9.2","copyfiles":"^2.4.1","ts-loader":"^9.5.1","tsc-alias":"^1.8.8","@types/jest":"^29.5.14","@types/node":"^20.11.28","@types/mysql":"^2.15.26","typescript-eslint":"^7.2.0","jest-html-reporters":"^3.0.11","@aitianyu.cn/server-base":"^1.0.5"},"_npmOperationalInternal":{"tmp":"tmp/tianyu-csp_0.1.0_1737552581149_0.4468249430982869","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@aitianyu.cn/tianyu-csp","version":"0.2.0","keywords":["aitianyu.cn","server","platform"],"author":{"name":"dev.aitianyu.cn@outlook.com"},"license":"MIT","_id":"@aitianyu.cn/tianyu-csp@0.2.0","maintainers":[{"name":"aitianyu.cn","email":"product@aitianyu.cn"}],"homepage":"https://github.com/aitianyu-cn/tianyu-csp#readme","bugs":{"url":"https://github.com/aitianyu-cn/tianyu-csp/issues"},"dist":{"shasum":"64577ea5e939739223dc7bcad10ff45f05235733","tarball":"https://registry.npmjs.org/@aitianyu.cn/tianyu-csp/-/tianyu-csp-0.2.0.tgz","fileCount":258,"integrity":"sha512-4qSNXfSnC5p179ANEXAGA63YFnfFftb2Ij7GgnqQlc9gi66f/36SgdQ/El8Bn+OZWI7I3dMR46bptqrCC5yI1A==","signatures":[{"sig":"MEUCIQCI4MouDogam3oCHSGu1vturTb5xDHM/Yn11OKh6wTcmwIgNvGnMK8A+MvKh15eTDooKI3f8YkM8CFsjFGKNqlatYg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":371253},"type":"commonjs","exports":{".":{"node":"./dist/lib/index.js","types":"./dist/types/index.d.ts","import":"./dist/lib/index.js","default":"./dist/lib/index.js","require":"./dist/lib/index.js"},"./install":{"node":"./dist/lib/install.js","types":"./dist/types/install.d.ts","import":"./dist/lib/install.js","default":"./dist/lib/install.js","require":"./dist/lib/install.js"}},"gitHead":"45c5359ef50fa56e0582d28fb9e4e12de47f168b","scripts":{"copy":"npm run copy-lib && npm run copy-types && npm run copy-basic-res","test":"jest --no-cache --verbose --passWithNoTests","build":"npm run before-build && npm run compiler && npm run copy && npm run after-build","start":"node \"./scripts/starter.js\"","compiler":"tsc -p \"./tsconfig.build.json\" && tsc-alias -p \"./tsconfig.build.json\"","copy-lib":"copyfiles -u 2 \"build/packages/**/*.js\" dist/lib","test-all":"jest --no-cache --verbose --coverage --passWithNoTests --detectOpenHandles","test-auto":"npm run build && npm run test-env-load && npm run test-all","copy-types":"copyfiles -u 2 \"build/packages/**/*.d.ts\" dist/types","after-build":"rimraf ./build","before-build":"rimraf ./build ./dist","deploy-build":"npm run build && node \"./scripts/deploy.js\"","test-coverage":"jest --no-cache --coverage --passWithNoTests","test-env-load":"node \"./test/config/test-loader.mjs\"","copy-basic-res":"copyfiles -u 1 \"packages/**/*.json\" \"packages/**/*.html\" \"packages/**/*.config.json\" \"packages/**/configs/**\" dist/lib","copy-basic-types":"copyfiles -u 1 \"packages/**/*.d.ts\" dist/types","test-all-offline":"jest -c \"./jest.config.offline.js\" --no-cache --verbose --coverage --passWithNoTests --detectOpenHandles"},"_npmUser":{"name":"aitianyu.cn","email":"product@aitianyu.cn"},"repository":{"url":"git+https://github.com/aitianyu-cn/tianyu-csp.git","type":"git"},"_npmVersion":"10.9.0","description":"Project for Common Service Platform of Tianyu.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"fs":"^0.0.1-security","path":"^0.12.7","https":"^1.0.0","mysql":"^2.18.1","core-js":"^3.36.0","ioredis":"^5.4.1","cross-env":"^7.0.3","typescript":"^5.4.2","async-mutex":"^0.5.0","tsconfig-paths":"^4.2.0","@aitianyu.cn/types":"^0.0.13","@aitianyu.cn/tianyu-store":"^1.0.0-beta.1","@aitianyu.cn/tianyu-app-fwk":"^0.0.1"},"typesVersions":{"*":{"*":["./dist/types/index.d.ts"],"install":["./dist/types/install.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.3.1","rimraf":"^5.0.5","process":"^0.11.10","ts-jest":"^29.0.3","ts-node":"^10.9.2","copyfiles":"^2.4.1","ts-loader":"^9.5.1","tsc-alias":"^1.8.8","@types/jest":"^29.5.14","@types/node":"^20.11.28","@types/mysql":"^2.15.26","typescript-eslint":"^7.2.0","jest-html-reporters":"^3.0.11","@aitianyu.cn/server-base":"^1.0.5"},"_npmOperationalInternal":{"tmp":"tmp/tianyu-csp_0.2.0_1752249368865_0.8688502953403014","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@aitianyu.cn/tianyu-csp","version":"0.2.1","keywords":["aitianyu.cn","server","platform"],"author":{"name":"dev.aitianyu.cn@outlook.com"},"license":"MIT","_id":"@aitianyu.cn/tianyu-csp@0.2.1","maintainers":[{"name":"aitianyu.cn","email":"product@aitianyu.cn"}],"homepage":"https://github.com/aitianyu-cn/tianyu-csp#readme","bugs":{"url":"https://github.com/aitianyu-cn/tianyu-csp/issues"},"dist":{"shasum":"c501477785c41d9b95c53f330cab2abe09ed3178","tarball":"https://registry.npmjs.org/@aitianyu.cn/tianyu-csp/-/tianyu-csp-0.2.1.tgz","fileCount":226,"integrity":"sha512-ikNSsLX35/ea/o5VFdZp6UbT6zGXBK6XsP5ClXya2CLSuZ+ctar1UabeVDzogrZbaHQz2GND+cDa7XL1/77ZhQ==","signatures":[{"sig":"MEQCIES1IzVh8uiSXNRNDaNB8PVqWfCO0CG4Ck4MQonpeEHxAiBaWBBC6op+a3Mv8/uBy1ZSX+VgkDFnR4PDKFCZrv17zg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":330849},"type":"commonjs","types":"./dist/types/index.d.ts","exports":{".":"./dist/lib/index.js"},"gitHead":"45aa4006e27bdbbf7538c532068c4a4baacaf230","scripts":{"copy":"npm run copy-lib && npm run copy-types && npm run copy-basic-res","test":"jest --no-cache --verbose --passWithNoTests","build":"eslint \"./\" --quiet && npm run before-build && npm run compiler && npm run copy && npm run after-build","start":"node \"./scripts/starter.js\"","eslint":"eslint . --format json --output-file \"./test/__report__/eslint/eslint-report.json\"","compiler":"tsc -p \"./tsconfig.build.json\" && tsc-alias -p \"./tsconfig.build.json\"","copy-lib":"copyfiles -u 2 \"build/packages/**/*.js\" dist/lib","test-all":"jest --no-cache --verbose --coverage --passWithNoTests --detectOpenHandles && npm run eslint-report","test-auto":"npm run build && npm run test-env-load && npm run test-all","copy-types":"copyfiles -u 2 \"build/packages/**/*.d.ts\" dist/types","after-build":"rimraf ./build","before-build":"rimraf ./build ./dist","deploy-build":"npm run build && node \"./scripts/deploy.js\"","eslint-report":"eslint . --format html --output-file \"./test/__report__/eslint/eslint-report.html\"","test-coverage":"jest --no-cache --coverage --passWithNoTests","test-env-load":"node \"./test/config/test-loader.mjs\"","copy-basic-res":"copyfiles -u 1 \"packages/**/*.json\" \"packages/**/*.html\" \"packages/**/*.config.json\" \"packages/**/configs/**\" dist/lib","copy-basic-types":"copyfiles -u 1 \"packages/**/*.d.ts\" dist/types","test-all-offline":"jest -c \"./jest.config.offline.js\" --no-cache --verbose --coverage --passWithNoTests --detectOpenHandles"},"_npmUser":{"name":"aitianyu.cn","email":"product@aitianyu.cn"},"repository":{"url":"git+https://github.com/aitianyu-cn/tianyu-csp.git","type":"git"},"_npmVersion":"10.9.0","description":"Project for Common Service Platform of Tianyu.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"fs":"^0.0.1-security","path":"^0.12.7","https":"^1.0.0","mysql":"^2.18.1","core-js":"^3.36.0","ioredis":"^5.4.1","cross-env":"^7.0.3","typescript":"^5.4.2","async-mutex":"^0.5.0","tsconfig-paths":"^4.2.0","@aitianyu.cn/types":"^0.0.13","@aitianyu.cn/tianyu-store":"^1.0.0-beta.1","@aitianyu.cn/tianyu-app-fwk":"^0.0.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.3.1","eslint":"^8.57.1","rimraf":"^5.0.5","process":"^0.11.10","ts-jest":"^29.0.3","ts-node":"^10.9.2","copyfiles":"^2.4.1","ts-loader":"^9.5.1","tsc-alias":"^1.8.8","@types/jest":"^29.5.14","@types/node":"^20.11.28","@types/mysql":"^2.15.26","typescript-eslint":"^7.2.0","jest-html-reporters":"^3.0.11","eslint-plugin-import":"^2.32.0","@aitianyu.cn/server-base":"^1.0.5"},"_npmOperationalInternal":{"tmp":"tmp/tianyu-csp_0.2.1_1752663975305_0.2055019224810053","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@aitianyu.cn/tianyu-csp","version":"0.3.0","keywords":["aitianyu.cn","server","platform"],"author":{"name":"dev.aitianyu.cn@outlook.com"},"license":"MIT","_id":"@aitianyu.cn/tianyu-csp@0.3.0","maintainers":[{"name":"aitianyu.cn","email":"product@aitianyu.cn"}],"homepage":"https://github.com/aitianyu-cn/tianyu-csp#readme","bugs":{"url":"https://github.com/aitianyu-cn/tianyu-csp/issues"},"dist":{"shasum":"35349650f9d13c62796cc6e88a883bb37c239f77","tarball":"https://registry.npmjs.org/@aitianyu.cn/tianyu-csp/-/tianyu-csp-0.3.0.tgz","fileCount":236,"integrity":"sha512-geYVYE74Lgy3O6Hl3H2ecvy4qpI67yV/cLDVgoO9f161kWwNRNdKY3GFv60h7F4tvei4eGU06KcGxrA4dPOVRA==","signatures":[{"sig":"MEUCIEqwn77M0ufzz9fXy5O3oqTDSrQLSeYA6IN/sgl32BZGAiEA60WB2fR+IVPm0HcOureoBzOwEhYRV26+N7y4YkCGTOw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":354449},"type":"commonjs","types":"./dist/types/index.d.ts","exports":{".":"./dist/lib/index.js"},"gitHead":"c68167681ca89c2afe96d6bf5ea48f3b1597c1da","scripts":{"copy":"npm run copy-lib && npm run copy-types && npm run copy-basic-res","test":"jest --no-cache --verbose --passWithNoTests","build":"eslint \"./\" --quiet && npm run before-build && npm run compiler && npm run copy && npm run after-build","start":"node \"./scripts/starter.js\"","eslint":"eslint . --format json --output-file \"./test/__report__/eslint/eslint-report.json\"","compiler":"tsc -p \"./tsconfig.build.json\" && tsc-alias -p \"./tsconfig.build.json\"","copy-lib":"copyfiles -u 2 \"build/packages/**/*.js\" dist/lib","test-all":"jest --no-cache --verbose --coverage --passWithNoTests --detectOpenHandles && npm run eslint-report","test-auto":"npm run build && npm run test-env-load && npm run test-all","copy-types":"copyfiles -u 2 \"build/packages/**/*.d.ts\" dist/types","after-build":"rimraf ./build","before-build":"rimraf ./build ./dist","deploy-build":"npm run build && node \"./scripts/deploy.js\"","eslint-report":"eslint . --format html --output-file \"./test/__report__/eslint/eslint-report.html\"","test-coverage":"jest --no-cache --coverage --passWithNoTests","test-env-load":"node \"./test/config/test-loader.mjs\"","copy-basic-res":"copyfiles -u 1 \"packages/**/*.json\" \"packages/**/*.html\" \"packages/**/*.config.json\" \"packages/**/configs/**\" dist/lib","copy-basic-types":"copyfiles -u 1 \"packages/**/*.d.ts\" dist/types","test-all-offline":"jest -c \"./jest.config.offline.js\" --no-cache --verbose --coverage --passWithNoTests --detectOpenHandles"},"_npmUser":{"name":"aitianyu.cn","email":"product@aitianyu.cn"},"repository":{"url":"git+https://github.com/aitianyu-cn/tianyu-csp.git","type":"git"},"_npmVersion":"10.9.0","description":"Project for Common Service Platform of Tianyu.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"fs":"^0.0.1-security","path":"^0.12.7","https":"^1.0.0","mysql":"^2.18.1","core-js":"^3.36.0","ioredis":"^5.4.1","cross-env":"^7.0.3","typescript":"^5.4.2","async-mutex":"^0.5.0","tsconfig-paths":"^4.2.0","@aitianyu.cn/types":"^0.0.13","@aitianyu.cn/tianyu-store":"^1.0.0-beta.1","@aitianyu.cn/tianyu-app-fwk":"^0.0.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.3.1","eslint":"^8.57.1","rimraf":"^5.0.5","process":"^0.11.10","ts-jest":"^29.0.3","ts-node":"^10.9.2","copyfiles":"^2.4.1","ts-loader":"^9.5.1","tsc-alias":"^1.8.8","@types/jest":"^29.5.14","@types/node":"^20.11.28","@types/mysql":"^2.15.26","typescript-eslint":"^7.2.0","jest-html-reporters":"^3.0.11","eslint-plugin-import":"^2.32.0","@aitianyu.cn/server-base":"^1.0.5"},"_npmOperationalInternal":{"tmp":"tmp/tianyu-csp_0.3.0_1754573816543_0.5170996169418647","host":"s3://npm-registry-packages-npm-production"}},"0.3.10":{"name":"@aitianyu.cn/tianyu-csp","version":"0.3.10","keywords":["aitianyu.cn","server","platform"],"author":{"name":"dev.aitianyu.cn@outlook.com"},"license":"MIT","_id":"@aitianyu.cn/tianyu-csp@0.3.10","maintainers":[{"name":"aitianyu.cn","email":"product@aitianyu.cn"}],"homepage":"https://github.com/aitianyu-cn/tianyu-csp#readme","bugs":{"url":"https://github.com/aitianyu-cn/tianyu-csp/issues"},"dist":{"shasum":"71bb4ed4a16fcf75283b72e7f0bc917baba750fe","tarball":"https://registry.npmjs.org/@aitianyu.cn/tianyu-csp/-/tianyu-csp-0.3.10.tgz","fileCount":295,"integrity":"sha512-aScDKeSHHfMX2xRRjls7gUtyo5u537w5dBh+890CvFJ0tbOyxwsCyPC1WGXvjrXdj+mZiIGgevO65R9/4CqaOQ==","signatures":[{"sig":"MEYCIQCTnN170hNYViQZsHc8j2NWLIlpFtkfbw+hNfajv96zcgIhALpC6f4qavU2Q3HxojJ6L+UojmyyrE0zjVyRAhQr32/a","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":484539},"type":"commonjs","types":"./dist/types/index.d.ts","exports":{".":"./dist/lib/index.js"},"gitHead":"dd6f2d4490eb4e6ae60819227892d4f2b7c89711","scripts":{"copy":"npm run copy-lib && npm run copy-types && npm run copy-basic-res","test":"jest --no-cache --verbose --passWithNoTests","build":"eslint \"./\" --quiet && npm run before-build && npm run compiler && npm run copy && npm run after-build","start":"node \"./scripts/starter.js\"","eslint":"eslint . --format json --output-file \"./test/__report__/eslint/eslint-report.json\"","compiler":"tsc -p \"./tsconfig.build.json\" && tsc-alias -p \"./tsconfig.build.json\"","copy-lib":"copyfiles -u 2 \"build/packages/**/*.js\" dist/lib","test-all":"jest --no-cache --verbose --coverage --passWithNoTests --detectOpenHandles && npm run eslint-report","test-auto":"npm run build && npm run test-env-load && npm run test-all","copy-types":"copyfiles -u 2 \"build/packages/**/*.d.ts\" dist/types","after-build":"rimraf ./build","before-build":"rimraf ./build ./dist","deploy-build":"npm run build && node \"./scripts/deploy.js\"","eslint-report":"eslint . --format html --output-file \"./test/__report__/eslint/eslint-report.html\"","test-coverage":"jest --no-cache --coverage --passWithNoTests","test-env-load":"node \"./test/config/test-loader.mjs\"","copy-basic-res":"copyfiles -u 1 \"packages/**/*.json\" \"packages/**/*.html\" \"packages/**/*.config.json\" \"packages/**/configs/**\" dist/lib","copy-basic-types":"copyfiles -u 1 \"packages/**/*.d.ts\" dist/types","test-all-offline":"jest -c \"./jest.config.offline.js\" --no-cache --verbose --coverage --passWithNoTests --detectOpenHandles"},"_npmUser":{"name":"aitianyu.cn","email":"product@aitianyu.cn"},"repository":{"url":"git+https://github.com/aitianyu-cn/tianyu-csp.git","type":"git"},"_npmVersion":"10.8.2","description":"Project for Common Service Platform of Tianyu.","directories":{},"_nodeVersion":"18.20.5","dependencies":{"fs":"^0.0.1-security","ws":"^8.18.3","path":"^0.12.7","https":"^1.0.0","qrcode":"^1.5.4","core-js":"^3.36.0","commander":"^13.1.0","cross-env":"^7.0.3","typescript":"^5.4.2","async-mutex":"^0.5.0","tsconfig-paths":"^4.2.0","@aitianyu.cn/types":"^0.0.13","@aitianyu.cn/tianyu-store":"^1.0.0-beta.1","@aitianyu.cn/tianyu-app-fwk":"^0.0.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.3.1","eslint":"^8.57.1","rimraf":"^5.0.5","process":"^0.11.10","ts-jest":"^29.0.3","ts-node":"^10.9.2","@types/ws":"^8.18.1","copyfiles":"^2.4.1","ts-loader":"^9.5.1","tsc-alias":"^1.8.8","@types/jest":"^29.5.14","@types/node":"^20.11.28","@types/qrcode":"^1.5.5","typescript-eslint":"^7.2.0","jest-html-reporters":"^3.0.11","eslint-plugin-import":"^2.32.0","@aitianyu.cn/server-base":"^1.0.5"},"_npmOperationalInternal":{"tmp":"tmp/tianyu-csp_0.3.10_1756259278295_0.9852859773232971","host":"s3://npm-registry-packages-npm-production"}},"0.3.11":{"name":"@aitianyu.cn/tianyu-csp","version":"0.3.11","description":"Project for Common Service Platform of Tianyu.","types":"./dist/types/index.d.ts","exports":{".":"./dist/lib/index.js"},"type":"commonjs","scripts":{"start":"node \"./scripts/starter.js\"","after-build":"rimraf ./build","before-build":"rimraf ./build ./dist","build":"eslint \"./\" --quiet && npm run before-build && npm run compiler && npm run copy && npm run after-build","compiler":"tsc -p \"./tsconfig.build.json\" && tsc-alias -p \"./tsconfig.build.json\"","copy":"npm run copy-lib && npm run copy-types && npm run copy-basic-res","copy-lib":"copyfiles -u 2 \"build/packages/**/*.js\" dist/lib","copy-types":"copyfiles -u 2 \"build/packages/**/*.d.ts\" dist/types","copy-basic-res":"copyfiles -u 1 \"packages/**/*.json\" \"packages/**/*.html\" \"packages/**/*.config.json\" \"packages/**/configs/**\" dist/lib","copy-basic-types":"copyfiles -u 1 \"packages/**/*.d.ts\" dist/types","test":"jest --no-cache --verbose --passWithNoTests","test-all":"jest --no-cache --verbose --coverage --passWithNoTests --detectOpenHandles && npm run eslint-report","test-all-offline":"jest -c \"./jest.config.offline.js\" --no-cache --verbose --coverage --passWithNoTests --detectOpenHandles","test-coverage":"jest --no-cache --coverage --passWithNoTests","test-env-load":"node \"./test/config/test-loader.mjs\"","test-auto":"npm run build && npm run test-env-load && npm run test-all","deploy-build":"npm run build && node \"./scripts/deploy.js\"","eslint":"eslint . --format json --output-file \"./test/__report__/eslint/eslint-report.json\"","eslint-report":"eslint . --format html --output-file \"./test/__report__/eslint/eslint-report.html\""},"repository":{"type":"git","url":"git+https://github.com/aitianyu-cn/tianyu-csp.git"},"keywords":["aitianyu.cn","server","platform"],"author":{"name":"dev.aitianyu.cn@outlook.com"},"license":"MIT","bugs":{"url":"https://github.com/aitianyu-cn/tianyu-csp/issues"},"homepage":"https://github.com/aitianyu-cn/tianyu-csp#readme","dependencies":{"@aitianyu.cn/tianyu-app-fwk":"^0.0.1","@aitianyu.cn/tianyu-store":"^1.0.0-beta.1","@aitianyu.cn/types":"^0.0.13","async-mutex":"^0.5.0","commander":"^13.1.0","core-js":"^3.36.0","cross-env":"^7.0.3","fs":"^0.0.1-security","https":"^1.0.0","path":"^0.12.7","qrcode":"^1.5.4","tsconfig-paths":"^4.2.0","typescript":"^5.4.2","ws":"^8.18.3"},"devDependencies":{"@aitianyu.cn/server-base":"^1.0.5","@types/jest":"^29.5.14","@types/node":"^20.11.28","@types/qrcode":"^1.5.5","@types/ws":"^8.18.1","copyfiles":"^2.4.1","eslint":"^8.57.1","eslint-plugin-import":"^2.32.0","jest":"^29.3.1","jest-html-reporters":"^3.0.11","process":"^0.11.10","rimraf":"^5.0.5","ts-jest":"^29.0.3","ts-loader":"^9.5.1","ts-node":"^10.9.2","tsc-alias":"^1.8.8","typescript-eslint":"^7.2.0"},"_id":"@aitianyu.cn/tianyu-csp@0.3.11","gitHead":"004bb44deecc3cb3efa51b66e9f6b33b1b0555a9","_nodeVersion":"22.12.0","_npmVersion":"10.9.0","dist":{"integrity":"sha512-EuClPIZ60/2u1Asgvc4y1OSM8DziIlaa35GBUBx/oF7R0xBvucNUxpSe9shAFLOiZKFXYHSxhfHlCJjKmP/ogA==","shasum":"e75fbf35585fac612e255e2898616cad1fce10c3","tarball":"https://registry.npmjs.org/@aitianyu.cn/tianyu-csp/-/tianyu-csp-0.3.11.tgz","fileCount":295,"unpackedSize":483710,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDESBHB6FMzBqXoDr9SpKMWzY6nKxbSzhIG7UiWa0kKlwIgZ+V8fdmxXGYhORKbxlqyK1Sd4leVXAsFFAWL3FEqcsE="}]},"_npmUser":{"name":"aitianyu.cn","email":"product@aitianyu.cn"},"directories":{},"maintainers":[{"name":"aitianyu.cn","email":"product@aitianyu.cn"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/tianyu-csp_0.3.11_1756813447152_0.1555210003566514"},"_hasShrinkwrap":false}},"time":{"created":"2024-12-14T11:30:52.388Z","modified":"2025-09-02T11:44:07.520Z","0.0.1":"2024-12-14T11:30:52.689Z","0.0.2":"2024-12-14T13:58:05.263Z","0.1.0":"2025-01-22T13:29:41.373Z","0.2.0":"2025-07-11T15:56:09.189Z","0.2.1":"2025-07-16T11:06:15.472Z","0.3.0":"2025-08-07T13:36:56.731Z","0.3.10":"2025-08-27T01:47:58.567Z","0.3.11":"2025-09-02T11:44:07.340Z"},"bugs":{"url":"https://github.com/aitianyu-cn/tianyu-csp/issues"},"author":{"name":"dev.aitianyu.cn@outlook.com"},"license":"MIT","homepage":"https://github.com/aitianyu-cn/tianyu-csp#readme","keywords":["aitianyu.cn","server","platform"],"repository":{"type":"git","url":"git+https://github.com/aitianyu-cn/tianyu-csp.git"},"description":"Project for Common Service Platform of Tianyu.","maintainers":[{"name":"aitianyu.cn","email":"product@aitianyu.cn"}],"readme":"# TIANYU - Common Service Platform\n\nA Common Service Platform of Tianyu includes Data API, Network API, Schedule Job and Status Monitor.\n\n[HOW TO USE](.doc/how-to-use.md)\n\n## MOTIVATION\n\nMost of backend services, need to handle `Database Access`, `Network Connection`, `Job Management`, etc. And need to have a common `Status Monitor` to get current service status.\n\nCurrently, _**Tianyu**_ has a generic module `Server-Base` to provide some database and network APIs which can make the program be simple. But there is also a problem that the module only provides APIs, does not have a full status and jobs management.\n\nFor the further service development of `Smart Home`, we need a solution to contain full basic components and provide better ability to extension, also should have a state statistics mechanism.\n\n## REQUIREMENTS\n\n- **Abstracted Data Operation Interface**\n\n  Data operation includes **_Data Base Access_**, **_Local Storage Access_**, **_Cache & Store Management_**.\n\n  - **_Data Base Access_**\n\n    DB access interface, should provide some common operation API like `add`, `insert`, `delete`, `update` and etc. And also should have a sql execution API that accepts user to run a custom operation.\n\n  - **_Local Storage Access_**\n\n    Local Storage Access should provide some disk operation API, file & directory operation API. Allow user to access and operate local file, dir and disk.\n\n  - **_Cache & Store Management_**\n\n    Cache and Store are the runtime storage. The difference of the two components is that **Cache** is a simple `Key - Value` pair to provide data save and read. **Store** is a status tools, not only to save the data and read, but also can record the data change. Base on Store, the service can support data rollback and revert-rollback.\n\n- **Abstracted Network Communication Interface**\n\n  Network communication includes **_HTTP_**, **_Socket_** and low-level **_TCP_** and **_UDP_** operation APIs. For supporting multi-medias, it also should provide **_FTP_**, **_RTMP_**, **_RTSP_**.\n\n- **Common Object Management Interface**\n\n  Object management is a core functionality contains `Authorization`, `Resources Control`, `Operations Audit` and `Schedule`.\n\n  - **_Authorization_**\n\n    Authorization is the security core for the whole platform. It contains <u>User Management</u> to verify the user access and <u>Privileges Management</u> to control the user activities.\n\n    User Authorization includes `User`, `Licenses` and `Teams` three parts.\n\n    1. Licenses: this is a privilege controller contains all functions permission description. There will be a `role` table as additional description to record each privilege status.\n\n    2. Teams: this is an additional records to create a group for users.\n\n    3. User: this is a user main part for <u>logon authorization</u>, <u>operation permission control</u> and <u>relationship management</u>.\n\n  - **_Resources Control_**\n\n    Resources Control is the virtual data center to allow user to save data into program internal space. (The data of internal space will be persist in local storage or data base.) According to the data type and configuration, the data will be persist in different target entity and managed in a common place\n\n  - **_Operations Audit_**\n\n    Operations Audit is used to record all of the user activities, contains <u>Data Change</u>, <u>Configuration Change</u> and any other operations even they do not have impaction to data.\n\n  - **_Schedule_**\n\n    Schedule is a calendar manager to support execute timer task.\n\n- **Common Job Execution Platform**\n\n  Job Execution Platform is a multi-threads worker to execute some scripts and 3rd-application (like native command, internal JS scripts).\n\n  - **_Multi-Threads Worker_**\n\n    Worker is an execution engine to execute _local JS scripts_, _native command applications_ and _remote host functions_.\n\n  - **_Worker Management_**\n\n    Worker Management is a manager to control workers lifecycle, record worker status and to save the execution result temporarily.\n\n  - **_Job Management_**\n\n    Job Management is a manager to provide job list to receive jobs, and job dispatch functionality to send job to worker management. After the Job execution done, Job Management should call the callback function to notify job creator or just save the result in store and waiting for reading.\n\n- **Common Status Monitor Platform**\n\n  Status Monitor Platform is used for collecting all the data before mentioned, and to generate a report to user.\n\n## MODULES\n\n### Infrastructure\n\nInfrastructure contains basic API and some default resources (international strings, exported json data, etc..).\n\nAll of components under this folder, based on the database accessment. In this part, will define an inner database API implementation.\n\n- **_Database & Code_**\n\n  There are some infra database API definitions. To provide infra part needed database operation interfaces and database interaction implementations.\n\n  Database API is exported in `TIANYU.db`.\n\n- **_Managers_**\n\n  Managers of infra are the main API for `Tianyu-CSP`. There are some default and basic operation interface and will be post only by `TIANYU.${function name}`. Contains `import`, `logger`, `request`, `session`, `trace`, `usage`, `fwk` and `environment`.\n\n  1. **import**: this is a packaged API for import module and files from specified path. It also provides `html` method which receive a path string to import a html file as string, and `MODULE` object to export all internal Objects which are out of infra. <u> _(NOTE: All internal objects will not be able to use by importing and require. All objects can only used by `TIANYU.${function name}` and `TIANYU.import.MODULE`.)_</u>\n\n  2. **logger**: this is a logger tool to record runtime logs and to do persistence.\n\n  3. **request**: this is a request context and work for request and sub-job. For each thread, it will have its independent request instance with the network info.\n\n  4. **session**: this is same like **request**, to provide user info, privilege checking. For each request or sub-job, it will have a session instance belongs to itself.\n\n  5. **trace**: to provide a recorder API to record error trace data. there is only a write API.\n\n  6. **usage**: to provide a recorder API to record function usage data. there is only a write API.\n\n  7. **fwk**: this is a framework instance for each request or sub-job. the purpose of it to decouple the dependencies. in `Tianyu-CSP`, there are some predefined API for internally using. <u>**PLEASE DO NOT USE THE PRE-DEFINED API IN YOUR CODE.**</u>\n\n  8. **environment**: this is a constant object to provide some application data, includes `version`, `developmentMode`, `application name` and etc...\n\n  9. **feature**: this is a feature tool to get a specified feature is enabled or not.\n\n- **_Handler & Service_**\n\n  **Handler**\n\n  provides data pre-processing, data dispatching and exception handling. By using `TIANYU.fwk`, they are totally decoupled. Data transferring uses internal pip.\n\n  **Service**\n\n  provides all external network interaction implementations, include `http-service`, `socket-service` and etc...\n\n### Job\n\nJob contains the implementation of Node.JS multi-thread. By JobManager, the jobs will be managed to control the jobs' lifecycle. Job manager has a max-workers option, to control the maximum threads count, if the threads count is over maximum, the new jobs will be stored and to be executed when has thread released.\n\n### Modules\n\nThis is some exported tools class. All the objects in modules should only be used by `TIANYU.import.MODULE`.\n\n### Utils\n\nThis is some public tools to process data, convert data type and other data generation.\n","readmeFilename":"README.md"}