{"_id":"@aitianyu.cn/common-base","_rev":"3-6ccd40a161c80ccff36ea4dbbf3d3cb8","name":"@aitianyu.cn/common-base","dist-tags":{"latest":"0.0.4"},"versions":{"0.0.1":{"name":"@aitianyu.cn/common-base","version":"0.0.1","keywords":["aitianyu.cn","common","utils","node"],"author":{"name":"dev@aitianyu.cn"},"license":"ISC","_id":"@aitianyu.cn/common-base@0.0.1","maintainers":[{"name":"aitianyu.cn","email":"product@aitianyu.cn"}],"dist":{"shasum":"499ea104b5b3f3c5a9e47bf51f72f4ed497fd8f8","tarball":"https://registry.npmjs.org/@aitianyu.cn/common-base/-/common-base-0.0.1.tgz","fileCount":16,"integrity":"sha512-aTHqoBwCYVmhC5kfpE9Pf4n6dgF4nz7ciliYGI/7opbhY9X/dXz4GgGJPb+VGzJFrRqy/+5JXVcxZx0x4lD0Eg==","signatures":[{"sig":"MEUCIHeZ5gcfzkBx3KkjNnsQw6Kl8RIFL6cGvt6IGcR70EmoAiEAwkpRMD7YH1TaOImIJhfmnKagv8cVRhD+DaKmwd6ChVQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11518},"main":"./dist/lib/index.js","type":"commonjs","types":"./dist/types/index.d.ts","exports":{".":"./dist/lib/index.js"},"gitHead":"f175d92f6f2837be6e14cf4ddcae1a046590a5ab","private":false,"scripts":{"test":"jest --no-cache --verbose","build":"npm run before-build && tsc && npm run copy-lib && npm run copy-types && npm run after-build","start":"ts-node test/index.ts","copy-lib":"copyfiles -u 2 \"build/packages/**/*.js\" \"dist/lib\"","test-all":"jest --no-cache --verbose --coverage","copy-types":"copyfiles -u 2 \"build/packages/**/*.d.ts\" \"dist/types\"","after-build":"rimraf ./build","before-build":"rimraf ./dist ./build","test-coverage":"jest --no-cache --coverage"},"_npmUser":{"name":"aitianyu.cn","email":"product@aitianyu.cn"},"_npmVersion":"10.9.0","description":"Common defines for all APIs in Node.JS only","directories":{},"_nodeVersion":"22.12.0","dependencies":{"jiti":"^2.5.1","eslint":"^9.32.0","@eslint/compat":"^1.3.1","typescript-eslint":"^8.38.0","@aitianyu.cn/types":"^0.1.0","eslint-plugin-import":"^2.32.0","@stylistic/eslint-plugin":"^5.2.2","@typescript-eslint/eslint-plugin":"^8.38.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.3.1","rimraf":"^3.0.2","ts-jest":"^29.0.3","ts-node":"^10.9.1","copyfiles":"^2.4.1","tsc-alias":"^1.8.2","typescript":"^4.9.3","@types/jest":"^29.2.4","@types/node":"^18.11.15","jest-html-reporters":"^3.0.11"},"_npmOperationalInternal":{"tmp":"tmp/common-base_0.0.1_1758199322839_0.8998651954353856","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@aitianyu.cn/common-base","version":"0.0.3","keywords":["aitianyu.cn","common","utils","node"],"author":{"name":"dev@aitianyu.cn"},"license":"ISC","_id":"@aitianyu.cn/common-base@0.0.3","maintainers":[{"name":"aitianyu.cn","email":"product@aitianyu.cn"}],"dist":{"shasum":"bbc5a59ef92fff13a5eb5f62de9be49be06c65e5","tarball":"https://registry.npmjs.org/@aitianyu.cn/common-base/-/common-base-0.0.3.tgz","fileCount":44,"integrity":"sha512-eoYbssYtKeTbju8/w5yNSBS/iRSuUmJl4wrKdGCkh42DwbyC+CQzNQ4yoJ2RpavxW37dUzrf0IUaFFscd3/iKg==","signatures":[{"sig":"MEQCIDyMb6gF4eB7KCfAag9CGDnMv1Hvws6l5R/HIdQAsAH1AiAQHGQyhGplFl3cq7nAzG7cOkIYnk9tAZuzbR7Ay98dLg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":52205},"main":"./dist/lib/index.js","type":"commonjs","types":"./dist/types/index.d.ts","exports":{".":"./dist/lib/index.js","./io":"./dist/lib/io/export.js","./base":"./dist/lib/base/export.js","./utils":"./dist/lib/utils/export.js","./network":"./dist/lib/network/export.js"},"gitHead":"f5c974a14f3ed1fde9cc7545d5c187f91e61d292","private":false,"scripts":{"test":"jest --no-cache --verbose","build":"npm run before-build && tsc && npm run copy-lib && npm run copy-types && npm run after-build","start":"ts-node test/index.ts","copy-lib":"copyfiles -u 2 \"build/packages/**/*.js\" \"dist/lib\"","test-all":"jest --no-cache --verbose --coverage","copy-types":"copyfiles -u 2 \"build/packages/**/*.d.ts\" \"dist/types\"","after-build":"rimraf ./build","before-build":"rimraf ./dist ./build","test-coverage":"jest --no-cache --coverage"},"_npmUser":{"name":"aitianyu.cn","email":"product@aitianyu.cn"},"_npmVersion":"10.8.2","description":"Common defines for all APIs in Node.JS only","directories":{},"_nodeVersion":"20.19.5","dependencies":{"jiti":"^2.5.1","eslint":"^9.32.0","@eslint/compat":"^1.3.1","typescript-eslint":"^8.38.0","@aitianyu.cn/types":"^0.1.0","eslint-plugin-import":"^2.32.0","@stylistic/eslint-plugin":"^5.2.2","@typescript-eslint/eslint-plugin":"^8.38.0"},"typesVersions":{"*":{"*":["./dist/types/index.d.ts"],"io":["./dist/types/io/export.d.ts"],"base":["./dist/types/base/export.d.ts"],"utils":["./dist/types/utils/export.d.ts"],"network":["./dist/types/network/export.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.3.1","rimraf":"^3.0.2","ts-jest":"^29.0.3","ts-node":"^10.9.1","copyfiles":"^2.4.1","tsc-alias":"^1.8.2","typescript":"^4.9.3","@types/jest":"^29.2.4","@types/node":"^18.11.15","jest-html-reporters":"^3.0.11"},"_npmOperationalInternal":{"tmp":"tmp/common-base_0.0.3_1773812234439_0.9394431204619718","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"@aitianyu.cn/common-base","version":"0.0.4","private":false,"description":"Common defines for all APIs in Node.JS only","main":"./dist/lib/index.js","types":"./dist/types/index.d.ts","exports":{".":"./dist/lib/index.js","./network":"./dist/lib/network/export.js","./utils":"./dist/lib/utils/export.js","./base":"./dist/lib/base/export.js","./io":"./dist/lib/io/export.js"},"typesVersions":{"*":{"*":["./dist/types/index.d.ts"],"network":["./dist/types/network/export.d.ts"],"utils":["./dist/types/utils/export.d.ts"],"base":["./dist/types/base/export.d.ts"],"io":["./dist/types/io/export.d.ts"]}},"keywords":["aitianyu.cn","common","utils","node"],"type":"commonjs","scripts":{"start":"ts-node test/index.ts","build":"npm run before-build && tsc && npm run copy-lib && npm run copy-types && npm run after-build","copy-lib":"copyfiles -u 2 \"build/packages/**/*.js\" \"dist/lib\"","copy-types":"copyfiles -u 2 \"build/packages/**/*.d.ts\" \"dist/types\"","before-build":"rimraf ./dist ./build","after-build":"rimraf ./build","test":"jest --no-cache --verbose","test-all":"jest --no-cache --verbose --coverage","test-coverage":"jest --no-cache --coverage"},"author":{"name":"dev@aitianyu.cn"},"license":"ISC","devDependencies":{"@types/jest":"^29.2.4","@types/node":"^18.11.15","copyfiles":"^2.4.1","jest":"^29.3.1","jest-html-reporters":"^3.0.11","rimraf":"^3.0.2","ts-jest":"^29.0.3","ts-node":"^10.9.1","tsc-alias":"^1.8.2","typescript":"^4.9.3"},"dependencies":{"@aitianyu.cn/types":"^0.1.0","@eslint/compat":"^1.3.1","@stylistic/eslint-plugin":"^5.2.2","@typescript-eslint/eslint-plugin":"^8.38.0","eslint":"^9.32.0","eslint-plugin-import":"^2.32.0","jiti":"^2.5.1","typescript-eslint":"^8.38.0"},"_id":"@aitianyu.cn/common-base@0.0.4","gitHead":"f5c974a14f3ed1fde9cc7545d5c187f91e61d292","_nodeVersion":"20.19.5","_npmVersion":"10.8.2","dist":{"integrity":"sha512-3uPn8t4fiCdUQ6OKOCFHPH9Kzf8tM/RRyZr56K6sW/0ilzAedG5WmI7NeAsGNPI7DFPH7t6/gxtCIiz5sweF2w==","shasum":"5c95209837d2e0ad10871ec978f01a573c07d251","tarball":"https://registry.npmjs.org/@aitianyu.cn/common-base/-/common-base-0.0.4.tgz","fileCount":46,"unpackedSize":151514,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDegNBpzqH2tZ6kxL+5v4s1htwqzGcpET28sPwuGUJrrAIgG4HmpbissN+r5ZtSCy8dlYZr291dSF0e2oBMJFGoIww="}]},"_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/common-base_0.0.4_1773911160747_0.3366296456563378"},"_hasShrinkwrap":false}},"time":{"created":"2025-09-18T12:42:02.747Z","modified":"2026-03-19T09:06:01.014Z","0.0.1":"2025-09-18T12:42:03.047Z","0.0.3":"2026-03-18T05:37:14.591Z","0.0.4":"2026-03-19T09:06:00.901Z"},"author":{"name":"dev@aitianyu.cn"},"license":"ISC","keywords":["aitianyu.cn","common","utils","node"],"description":"Common defines for all APIs in Node.JS only","maintainers":[{"name":"aitianyu.cn","email":"product@aitianyu.cn"}],"readme":"# @aitianyu.cn/common-base\n\n**Node.js only** · CommonJS · TypeScript · v0.0.3\n\n---\n\n## English Overview\n\n`@aitianyu.cn/common-base` is the foundational common library for the **AITianyu Node.js** ecosystem.\nIt provides reusable type definitions, interfaces, and utility helpers shared across all backend CSP (Cloud Service Platform) services.\n\n> **Difference from `@aitianyu.cn/types`:**\n> `@aitianyu.cn/types` targets both Browser and Node.js environments with basic utilities.\n> `@aitianyu.cn/common-base` is **Node.js only** and provides higher-level CSP-specific building blocks.\n\n### Key Features\n\n- **i18n Message Bundles** — Local-file-based internationalization with language fallback\n- **Standard Error Codes** — Structured error codes for infrastructure (DB/API), service, and I/O layers\n- **Path Pattern Matching** — Trie-based hierarchical URL pattern tester\n- **Network Type Definitions** — HTTP and Socket protocol interfaces (request payloads, caching, proxy)\n- **HTTP Request Utilities** — URL params, cookie, header parsing and language detection\n- **REST Route Resolution** — Dynamic handler lookup with per-method routing and fallback\n- **Distributed Tracing** — UUID trace ID generation and formatted timestamp strings\n- **File I/O Abstractions** — Path direction types and buffer descriptors\n\n### Modules\n\n| Sub-path | Purpose |\n|---|---|\n| `@aitianyu.cn/common-base/base` | i18n, error codes, pattern matching |\n| `@aitianyu.cn/common-base/network` | HTTP & Socket type definitions |\n| `@aitianyu.cn/common-base/utils` | HTTP, REST, and trace utility helpers |\n| `@aitianyu.cn/common-base/io` | File I/O type definitions |\n\n### Quick Start\n\n```bash\nnpm install @aitianyu.cn/common-base @aitianyu.cn/types\n```\n\n```typescript\nimport { LocalMessageBundle } from \"@aitianyu.cn/common-base/base\";\nimport { HttpHelper, TraceHelper } from \"@aitianyu.cn/common-base/utils\";\nimport { HTTP_STATUS_CODE } from \"@aitianyu.cn/common-base/network\";\n\nconst traceId = TraceHelper.generateTraceId();\nconst params  = HttpHelper.processParameters(req.url);\n```\n\n### Detailed Documentation (English)\n\n[Read the full English documentation →](doc/README_en.md)\n\n---\n\n## 中文概述\n\n`@aitianyu.cn/common-base` 是 **AITianyu Node.js** 生态系统的基础公共库，为所有后端 CSP（云服务平台）服务提供可复用的类型定义、接口和工具辅助函数。\n\n> **与 `@aitianyu.cn/types` 的区别：**\n> `@aitianyu.cn/types` 同时支持浏览器和 Node.js 环境，提供基础工具类型。\n> `@aitianyu.cn/common-base` **仅支持 Node.js**，提供更高层次的 CSP 专用构建基元。\n\n### 主要功能\n\n- **国际化（i18n）** — 基于本地文件的消息包，支持语言回退\n- **标准错误码** — 覆盖基础设施（数据库/API）、服务层和 I/O 层的结构化错误码\n- **路径模式匹配** — 基于前缀树的分层 URL 路径匹配器\n- **网络类型定义** — HTTP 和 Socket 协议的请求载荷、缓存和代理接口\n- **HTTP 请求工具** — URL 参数、Cookie、请求头解析及语言检测\n- **REST 路由解析** — 支持方法路由和回退的动态处理器查找\n- **分布式追踪** — UUID 追踪 ID 生成和时间戳格式化\n- **文件 I/O 抽象** — 路径方向类型和缓冲区描述符\n\n### 模块列表\n\n| 子路径 | 功能 |\n|---|---|\n| `@aitianyu.cn/common-base/base` | i18n、错误码、路径模式匹配 |\n| `@aitianyu.cn/common-base/network` | HTTP 和 Socket 类型定义 |\n| `@aitianyu.cn/common-base/utils` | HTTP、REST 和追踪工具辅助 |\n| `@aitianyu.cn/common-base/io` | 文件 I/O 类型定义 |\n\n### 快速开始\n\n```bash\nnpm install @aitianyu.cn/common-base @aitianyu.cn/types\n```\n\n```typescript\nimport { LocalMessageBundle } from \"@aitianyu.cn/common-base/base\";\nimport { HttpHelper, TraceHelper } from \"@aitianyu.cn/common-base/utils\";\nimport { HTTP_STATUS_CODE } from \"@aitianyu.cn/common-base/network\";\n\nconst traceId = TraceHelper.generateTraceId();          // 生成追踪 ID\nconst params  = HttpHelper.processParameters(req.url);  // 解析 URL 参数\n```\n\n### 详细文档（中文）\n\n[阅读完整中文文档 →](doc/README_zh.md)\n\n---\n\n## License / 许可证\n\nISC © dev@aitianyu.cn\n","readmeFilename":"README.md"}