{"_id":"@bigworm/bigworm-envelope","_rev":"6-f664ae867353f6bb7076a1b3caefb07b","name":"@bigworm/bigworm-envelope","dist-tags":{"latest":"8.7.5"},"versions":{"8.3.1":{"name":"@bigworm/bigworm-envelope","version":"8.3.1","keywords":["envelope","data-model","bigworm"],"author":{"name":"郑淑卿","email":"xunfeng@bigworm.com.cn"},"license":"BSL-1.1","_id":"@bigworm/bigworm-envelope@8.3.1","maintainers":[{"name":"mybigworm","email":"xunfeng@bigworm.com.cn"}],"dist":{"shasum":"0f7bff7b9a21b5d5adda55d84d8297d4f1243a21","tarball":"https://registry.npmjs.org/@bigworm/bigworm-envelope/-/bigworm-envelope-8.3.1.tgz","fileCount":43,"integrity":"sha512-jD+3deDYE0Jmzg0GdybcQS++Kk7B0TK3h2Kjc7Va+twW3iEhnRiQ1f1HmWv5UyBxR6rVpM2fhQa3FwGrtOHqkQ==","signatures":[{"sig":"MEQCIBORzR0hYBp20wb19yJ6Qq4c/HQpP6OlKyX6TEzKR0LPAiB0prCVhhwtNkvZANEkdE1Z30WTMyFrcZQHS5QwN3VkZg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":186426},"main":"dist/cjs/index.js","types":"dist/esm/index.d.ts","module":"dist/esm/index.js","browser":"dist/umd/index.js","engines":{"node":">=14.0.0"},"exports":{".":{"types":"./dist/esm/index.d.ts","import":"./dist/esm/index.js","browser":"./dist/umd/index.js","default":"./dist/cjs/index.js","require":"./dist/cjs/index.js"}},"gitHead":"a0b830c2684ebfdb33e05f7c596f18afc52a43c2","scripts":{"test":"jest","build":"npm run clean && npm run build:esm && npm run build:cjs && npm run build:umd","clean":"rm -rf dist","minify":"NODE_OPTIONS= node scripts/minify.js","build:all":"npm run build && npm run minify","build:cjs":"tsc -p tsconfig.cjs.json","build:esm":"tsc -p tsconfig.esm.json","build:umd":"NODE_OPTIONS= npx webpack --config webpack.config.js","test:watch":"jest --watch","verify:pack":"node ../scripts/verify-pack.js","test:coverage":"jest --coverage","prepublishOnly":"npm run verify:pack && npm run build:all"},"_npmUser":{"name":"mybigworm","email":"xunfeng@bigworm.com.cn"},"repository":{"url":"","type":"git"},"_npmVersion":"10.8.2","description":"Envelope 统一业务数据模型 - JavaScript/TypeScript 实现（支持 JSON 标准序列化）","directories":{},"sideEffects":false,"_nodeVersion":"20.19.4","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"glob":"^10.3.10","jest":"^29.5.0","terser":"^5.44.1","ts-jest":"^29.1.0","webpack":"^5.89.0","ts-loader":"^9.5.1","typescript":"^5.0.4","@types/jest":"^29.5.0","@types/node":"^18.19.111","webpack-cli":"^5.1.4","terser-webpack-plugin":"^5.3.10"},"_npmOperationalInternal":{"tmp":"tmp/bigworm-envelope_8.3.1_1782287541582_0.8069999575658857","host":"s3://npm-registry-packages-npm-production"}},"8.3.4":{"name":"@bigworm/bigworm-envelope","version":"8.3.4","keywords":["envelope","data-model","bigworm"],"author":{"name":"郑淑卿","email":"xunfeng@bigworm.com.cn"},"license":"BSL-1.1","_id":"@bigworm/bigworm-envelope@8.3.4","maintainers":[{"name":"mybigworm","email":"xunfeng@bigworm.com.cn"}],"dist":{"shasum":"3f4194b6315198f429c2b55dad80faaafe590f6a","tarball":"https://registry.npmjs.org/@bigworm/bigworm-envelope/-/bigworm-envelope-8.3.4.tgz","fileCount":43,"integrity":"sha512-JDf8wSsIDU9JOBhINgFv9IPIyENnUiRktMQP890FDLe1Lso9OF2IPgtW5tftlKgPVrhOsW6kL2ABYXkyodImUQ==","signatures":[{"sig":"MEQCIAv2/XpE8m2tEW9NmMVHsx4EiesPifC6UBDWXEznsknyAiBzN9dVtGEgnd8ErdyivO3xY2QCK51Q/f2jxmAp3k73FA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":186426},"main":"dist/cjs/index.js","types":"dist/esm/index.d.ts","module":"dist/esm/index.js","browser":"dist/umd/index.js","engines":{"node":">=14.0.0"},"exports":{".":{"types":"./dist/esm/index.d.ts","import":"./dist/esm/index.js","browser":"./dist/umd/index.js","default":"./dist/cjs/index.js","require":"./dist/cjs/index.js"}},"gitHead":"51d00230b388c998e2bc0c44dfebf6f1bc1d8eff","scripts":{"test":"jest","build":"npm run clean && npm run build:esm && npm run build:cjs && npm run build:umd","clean":"rm -rf dist","minify":"NODE_OPTIONS= node scripts/minify.js","build:all":"npm run build && npm run minify","build:cjs":"tsc -p tsconfig.cjs.json","build:esm":"tsc -p tsconfig.esm.json","build:umd":"NODE_OPTIONS= npx webpack --config webpack.config.js","test:watch":"jest --watch","verify:pack":"node ../scripts/verify-pack.js","test:coverage":"jest --coverage","prepublishOnly":"npm run verify:pack && npm run build:all"},"_npmUser":{"name":"mybigworm","email":"xunfeng@bigworm.com.cn"},"repository":{"url":"","type":"git"},"_npmVersion":"8.19.4","description":"Envelope 统一业务数据模型 - JavaScript/TypeScript 实现（支持 JSON 标准序列化）","directories":{},"sideEffects":false,"_nodeVersion":"16.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"glob":"^10.3.10","jest":"^29.5.0","terser":"^5.44.1","ts-jest":"^29.1.0","webpack":"^5.89.0","ts-loader":"^9.5.1","typescript":"^5.0.4","@types/jest":"^29.5.0","@types/node":"^18.19.111","webpack-cli":"^5.1.4","terser-webpack-plugin":"^5.3.10"},"_npmOperationalInternal":{"tmp":"tmp/bigworm-envelope_8.3.4_1782381768920_0.7386748638372982","host":"s3://npm-registry-packages-npm-production"}},"8.4.1":{"name":"@bigworm/bigworm-envelope","version":"8.4.1","keywords":["envelope","data-model","bigworm"],"author":{"name":"郑淑卿","email":"xunfeng@bigworm.com.cn"},"license":"BSL-1.1","_id":"@bigworm/bigworm-envelope@8.4.1","maintainers":[{"name":"mybigworm","email":"xunfeng@bigworm.com.cn"}],"dist":{"shasum":"b5f5fcabfcb0c8b31b3c04a328829595b42b6740","tarball":"https://registry.npmjs.org/@bigworm/bigworm-envelope/-/bigworm-envelope-8.4.1.tgz","fileCount":43,"integrity":"sha512-k4raHfqidx5eMUQpTihIg0dKa0+YhhM+QhGv6lpDlinvef9WJQnsUQw25fPPlRuVkmSiA5JmfEvg2+Z9NXUDsA==","signatures":[{"sig":"MEYCIQDRq6WQrU+XdSYkeqmoieddu+wghLQgmZIqmZbxUfXQHwIhAP42L3QwKcfNyRkdtakZm29Q7r073O3YZ8TANe2CODXQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":186473},"main":"dist/cjs/index.js","types":"dist/esm/index.d.ts","module":"dist/esm/index.js","browser":"dist/umd/index.js","engines":{"node":">=14.0.0"},"exports":{".":{"types":"./dist/esm/index.d.ts","import":"./dist/esm/index.js","browser":"./dist/umd/index.js","default":"./dist/cjs/index.js","require":"./dist/cjs/index.js"}},"gitHead":"55b5d3f0f1ac447e5b44b38e4e6520c6e1ed9422","scripts":{"test":"jest","build":"npm run clean && npm run build:esm && npm run build:cjs && npm run build:umd","clean":"rm -rf dist","minify":"NODE_OPTIONS= node scripts/minify.js","build:all":"npm run build && npm run minify","build:cjs":"tsc -p tsconfig.cjs.json","build:esm":"tsc -p tsconfig.esm.json","build:umd":"NODE_OPTIONS= npx webpack --config webpack.config.js","test:watch":"jest --watch","verify:pack":"node ../scripts/verify-pack.js","test:coverage":"jest --coverage","prepublishOnly":"npm run verify:pack && npm run build:all"},"_npmUser":{"name":"mybigworm","email":"xunfeng@bigworm.com.cn"},"repository":{"url":"","type":"git"},"_npmVersion":"10.8.2","description":"Envelope 统一业务数据模型 - JavaScript/TypeScript 实现（支持 JSON 标准序列化）","directories":{},"sideEffects":false,"_nodeVersion":"20.19.4","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"glob":"^10.3.10","jest":"^29.5.0","terser":"^5.44.1","ts-jest":"^29.1.0","webpack":"^5.89.0","ts-loader":"^9.5.1","typescript":"^5.0.4","@types/jest":"^29.5.0","@types/node":"^18.19.111","webpack-cli":"^5.1.4","terser-webpack-plugin":"^5.3.10"},"_npmOperationalInternal":{"tmp":"tmp/bigworm-envelope_8.4.1_1782446266539_0.8419773922500899","host":"s3://npm-registry-packages-npm-production"}},"8.7.0":{"name":"@bigworm/bigworm-envelope","version":"8.7.0","keywords":["envelope","data-model","bigworm"],"author":{"name":"郑淑卿","email":"xunfeng@bigworm.com.cn"},"license":"BSL-1.1","_id":"@bigworm/bigworm-envelope@8.7.0","maintainers":[{"name":"mybigworm","email":"xunfeng@bigworm.com.cn"}],"dist":{"shasum":"fc03d1e18c963190b2fb4900b602256e6388dbd3","tarball":"https://registry.npmjs.org/@bigworm/bigworm-envelope/-/bigworm-envelope-8.7.0.tgz","fileCount":43,"integrity":"sha512-KW3edJalgr7a+dOp82EGnTHLbut3scyrM+VylYUNQHefHeqKTXrKRuRneV8ydj4oVudNn4PYZKUS4bNQX+J6bw==","signatures":[{"sig":"MEUCIQD1XfAQ2xuoc6SEQmk+hlXIveCjdeUdQd82gfV+/TR9/gIgRIbKgOmgWb5RcIdpCMMNzfUGaO1v68aJd1v0kg3UGB8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":186473},"main":"dist/cjs/index.js","types":"dist/esm/index.d.ts","module":"dist/esm/index.js","browser":"dist/umd/index.js","engines":{"node":">=14.0.0"},"exports":{".":{"types":"./dist/esm/index.d.ts","import":"./dist/esm/index.js","browser":"./dist/umd/index.js","default":"./dist/cjs/index.js","require":"./dist/cjs/index.js"}},"gitHead":"2d86b81c0ece839e338f91bfea3b9e84f21cbde5","scripts":{"test":"jest","build":"npm run clean && npm run build:esm && npm run build:cjs && npm run build:umd","clean":"rm -rf dist","minify":"NODE_OPTIONS= node scripts/minify.js","build:all":"npm run build && npm run minify","build:cjs":"tsc -p tsconfig.cjs.json","build:esm":"tsc -p tsconfig.esm.json","build:umd":"NODE_OPTIONS= npx webpack --config webpack.config.js","test:watch":"jest --watch","verify:pack":"node ../scripts/verify-pack.js","test:coverage":"jest --coverage","prepublishOnly":"npm run verify:pack && npm run build:all"},"_npmUser":{"name":"mybigworm","email":"xunfeng@bigworm.com.cn"},"repository":{"url":"","type":"git"},"_npmVersion":"10.8.2","description":"Envelope 统一业务数据模型 - JavaScript/TypeScript 实现（支持 JSON 标准序列化）","directories":{},"sideEffects":false,"_nodeVersion":"20.19.4","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"glob":"^10.3.10","jest":"^29.5.0","terser":"^5.44.1","ts-jest":"^29.1.0","webpack":"^5.89.0","ts-loader":"^9.5.1","typescript":"^5.0.4","@types/jest":"^29.5.0","@types/node":"^18.19.111","webpack-cli":"^5.1.4","terser-webpack-plugin":"^5.3.10"},"_npmOperationalInternal":{"tmp":"tmp/bigworm-envelope_8.7.0_1785228971631_0.30207894725578277","host":"s3://npm-registry-packages-npm-production"}},"8.7.4":{"name":"@bigworm/bigworm-envelope","version":"8.7.4","keywords":["envelope","data-model","bigworm"],"author":{"name":"郑淑卿","email":"xunfeng@bigworm.com.cn"},"license":"BSL-1.1","_id":"@bigworm/bigworm-envelope@8.7.4","maintainers":[{"name":"mybigworm","email":"xunfeng@bigworm.com.cn"}],"dist":{"shasum":"52bde4c69a19c44ba22c225c70afbea11ac5c0f9","tarball":"https://registry.npmjs.org/@bigworm/bigworm-envelope/-/bigworm-envelope-8.7.4.tgz","fileCount":43,"integrity":"sha512-8w0hCTbSLjTPcav/jos4YtOXIyHTGcyOesXCfhHwVHmkBEA+VwX8nCTOP1cP4PxIeIc9OmPZEeprEsSWGODZRQ==","signatures":[{"sig":"MEUCIQCrPF9zwYP1yFh+gsICxMHa4PM2fuwI2cMEX4DQf7qtgAIgSN4mc4+pQ+7T6lNCc5TJrHgUA2a9lwepsJmMrnEgtag=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":186473},"main":"dist/cjs/index.js","types":"dist/esm/index.d.ts","module":"dist/esm/index.js","browser":"dist/umd/index.js","engines":{"node":">=14.0.0"},"exports":{".":{"types":"./dist/esm/index.d.ts","import":"./dist/esm/index.js","browser":"./dist/umd/index.js","default":"./dist/cjs/index.js","require":"./dist/cjs/index.js"}},"gitHead":"0159886387c4b59e517f760b22f7513ce44938f1","scripts":{"test":"jest","build":"npm run clean && npm run build:esm && npm run build:cjs && npm run build:umd","clean":"rm -rf dist","minify":"NODE_OPTIONS= node scripts/minify.js","build:all":"npm run build && npm run minify","build:cjs":"tsc -p tsconfig.cjs.json","build:esm":"tsc -p tsconfig.esm.json","build:umd":"NODE_OPTIONS= npx webpack --config webpack.config.js","test:watch":"jest --watch","verify:pack":"node ../scripts/verify-pack.js","test:coverage":"jest --coverage","prepublishOnly":"npm run verify:pack && npm run build:all"},"_npmUser":{"name":"mybigworm","email":"xunfeng@bigworm.com.cn"},"repository":{"url":"","type":"git"},"_npmVersion":"10.8.2","description":"Envelope 统一业务数据模型 - JavaScript/TypeScript 实现（支持 JSON 标准序列化）","directories":{},"sideEffects":false,"_nodeVersion":"20.19.4","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"glob":"^10.3.10","jest":"^29.5.0","terser":"^5.44.1","ts-jest":"^29.1.0","webpack":"^5.89.0","ts-loader":"^9.5.1","typescript":"^5.0.4","@types/jest":"^29.5.0","@types/node":"^18.19.111","webpack-cli":"^5.1.4","terser-webpack-plugin":"^5.3.10"},"_npmOperationalInternal":{"tmp":"tmp/bigworm-envelope_8.7.4_1787070217618_0.4668578405390207","host":"s3://npm-registry-packages-npm-production"}},"8.7.5":{"name":"@bigworm/bigworm-envelope","version":"8.7.5","description":"Envelope 统一业务数据模型 - JavaScript/TypeScript 实现（支持 JSON 标准序列化）","main":"dist/cjs/index.js","module":"dist/esm/index.js","browser":"dist/umd/index.js","types":"dist/esm/index.d.ts","sideEffects":false,"exports":{".":{"types":"./dist/esm/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js","browser":"./dist/umd/index.js","default":"./dist/cjs/index.js"}},"engines":{"node":">=14.0.0"},"scripts":{"clean":"rm -rf dist","build:esm":"tsc -p tsconfig.esm.json","build:cjs":"tsc -p tsconfig.cjs.json","build:umd":"NODE_OPTIONS= npx webpack --config webpack.config.js","build":"npm run clean && npm run build:esm && npm run build:cjs && npm run build:umd","minify":"NODE_OPTIONS= node scripts/minify.js","build:all":"npm run build && npm run minify","verify:pack":"node ../scripts/verify-pack.js","test":"jest","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run verify:pack && npm run build:all"},"keywords":["envelope","data-model","bigworm"],"author":{"name":"郑淑卿","email":"xunfeng@bigworm.com.cn"},"license":"BSL-1.1","devDependencies":{"@types/jest":"^29.5.0","@types/node":"^18.19.111","glob":"^10.3.10","jest":"^29.5.0","terser":"^5.44.1","terser-webpack-plugin":"^5.3.10","ts-jest":"^29.1.0","ts-loader":"^9.5.1","typescript":"^5.0.4","webpack":"^5.89.0","webpack-cli":"^5.1.4"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"repository":{"type":"git","url":""},"_id":"@bigworm/bigworm-envelope@8.7.5","gitHead":"c1333bdda8fa533017451d123953cb320fd83237","_nodeVersion":"20.19.4","_npmVersion":"10.8.2","dist":{"integrity":"sha512-rKHeJfpdQ6DZuDr73zLt1SbCyxW5z9M+uslPwLSc1oiDSocvljRVM+m7bkiGPf6hHFy1IlwsTz6hLzT0r4vVWg==","shasum":"abc0681738304d2d52f201c41876939ec2b8f664","tarball":"https://registry.npmjs.org/@bigworm/bigworm-envelope/-/bigworm-envelope-8.7.5.tgz","fileCount":43,"unpackedSize":186473,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDOj3ekTy2fnAQ8ME8G+cWbkInUM1sqdqnDktMErGaDRAIhAIem+mJLdTMXYroESnfUKxROb06g01OLHECkDb6mt7qM"}]},"_npmUser":{"name":"mybigworm","email":"xunfeng@bigworm.com.cn"},"directories":{},"maintainers":[{"name":"mybigworm","email":"xunfeng@bigworm.com.cn"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/bigworm-envelope_8.7.5_1787815910947_0.8387329034849671"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-24T07:52:21.416Z","modified":"2026-08-27T07:31:51.277Z","8.3.1":"2026-06-24T07:52:21.747Z","8.3.4":"2026-06-25T10:02:49.049Z","8.4.1":"2026-06-26T03:57:46.732Z","8.7.0":"2026-07-28T08:56:11.766Z","8.7.4":"2026-08-18T16:23:37.799Z","8.7.5":"2026-08-27T07:31:51.129Z"},"author":{"name":"郑淑卿","email":"xunfeng@bigworm.com.cn"},"license":"BSL-1.1","keywords":["envelope","data-model","bigworm"],"repository":{"type":"git","url":""},"description":"Envelope 统一业务数据模型 - JavaScript/TypeScript 实现（支持 JSON 标准序列化）","maintainers":[{"name":"mybigworm","email":"xunfeng@bigworm.com.cn"}],"readme":"# @bigworm/bigworm-envelope\n\n[![Version](https://img.shields.io/badge/version-8.7.5-green.svg)](package.json)\n[![Node](https://img.shields.io/badge/node-%3E%3D14.0.0-brightgreen.svg)](package.json)\n\n前后端统一数据交互协议库，TypeScript/JavaScript 实现，与后端 Java bigworm-envelope 数据结构完全对齐。零运行时依赖，提供 ESM / CJS / UMD 三种构建格式。\n\n## 安装\n\n```bash\nnpm install @bigworm/bigworm-envelope\n```\n\n## 数据结构\n\n```\nEnvelope（报文容器）\n  ├── header: EnvelopeHeader  extends Map<string, Entity>\n  └── body:   EnvelopeBody    extends Map<string, Entity>\n\nEntity（业务实体节点）\n  ├── data: Data              extends Map<string, any>\n  └── dataSets: Map<string, DataSet>\n\nDataSet（数据集，Array-like）\n  └── Data[]\n```\n\n| 类 | 继承 | 职责 |\n|---|---|---|\n| `Envelope` | — | 报文容器，包含 header 和 body |\n| `EnvelopeHeader` | `Map<string, Entity>` | 报文头，存储元数据（状态码、消息、token 等） |\n| `EnvelopeBody` | `Map<string, Entity>` | 报文体，存储业务数据 |\n| `Entity` | — | 业务对象节点，包含属性（Data）和子表（DataSet） |\n| `Data` | `Map<string, any>` | 键值对容器，提供强类型读写方法 |\n| `DataSet` | Array-like | 多行数据集合 |\n\n## 快速开始\n\n```typescript\nimport { Envelope } from '@bigworm/bigworm-envelope'\n\nconst envelope = new Envelope()\n\n// 设置 header\nenvelope.header().entity().data()\n  .setStringItem('success', 'true')\n  .setStringItem('message', '操作成功')\n\n// 设置 body（属性 + 子表）\nenvelope.body().entity().data()\n  .setStringItem('userId', '10001')\n  .setStringItem('userName', '张三')\n  .setIntegerItem('age', 25)\n\n// 子表\nconst orders = new DataSet()\norders.fromJSON([\n  { orderId: 'ORD001', amount: '999.99' },\n  { orderId: 'ORD002', amount: '199.00' }\n])\nenvelope.body().entity().setDataSet('orders', orders)\n\n// 序列化\nconsole.log(envelope.toPrettyJsonString())\n```\n\n**输出：**\n```json\n{\n  \"header\": {\n    \"default\": { \"success\": \"true\", \"message\": \"操作成功\" }\n  },\n  \"body\": {\n    \"default\": {\n      \"userId\": \"10001\",\n      \"userName\": \"张三\",\n      \"age\": 25,\n      \"orders\": [\n        { \"orderId\": \"ORD001\", \"amount\": \"999.99\" },\n        { \"orderId\": \"ORD002\", \"amount\": \"199.00\" }\n      ]\n    }\n  }\n}\n```\n\n## API 详解\n\n### Envelope\n\n| 方法 | 说明 |\n|------|------|\n| `header()` | 获取报文头（链式调用，不存在则自动创建） |\n| `body()` | 获取报文体（链式调用） |\n| `getHeader()` / `getBody()` | 传统 getter |\n| `setHeader(h)` / `setBody(b)` | 传统 setter，返回 `this` |\n| `toJSON()` | 转为 JS 对象（供 `JSON.stringify` 使用） |\n| `fromJSON(obj)` | 从 JS 对象填充，返回 `this` |\n| `toJsonString()` | 序列化为紧凑 JSON 字符串 |\n| `toPrettyJsonString()` | 序列化为格式化 JSON 字符串（调试用） |\n| `toString()` | 同 `toPrettyJsonString()` |\n| `fromJsonString(str)` | 从 JSON 字符串填充，返回 `this` |\n\n### EnvelopeHeader / EnvelopeBody\n\n两者 API 完全对称：\n\n| 方法 | 说明 |\n|------|------|\n| `entity()` | 获取默认节点（节点名 `\"default\"`，不存在时自动创建） |\n| `entity(name)` | 获取指定名称节点（不存在时自动创建） |\n| `getEntity(name)` | 获取指定节点（不存在返回 `undefined`） |\n| `setEntity(name, entity)` | 设置节点，返回 `this` |\n| `toJSON()` / `fromJSON(obj)` | 序列化 / 反序列化 |\n\n### Entity\n\n| 方法 | 说明 |\n|------|------|\n| `data()` | 获取属性数据（链式） |\n| `getData()` | 获取属性数据（传统） |\n| `setData(data)` | 设置属性数据，返回 `this` |\n| `setDataSet(name, dataset)` | 设置子表，返回 `this` |\n| `getDataSet(name)` | 获取子表，不存在返回 `null` |\n| `getDataSetNames()` | 获取所有子表名称 `string[]` |\n| `hasDataSet(name)` | 判断子表是否存在 |\n| `toJSON()` / `fromJSON(obj)` | 序列化（属性和子表扁平化） / 反序列化 |\n| `toJsonString()` / `fromJsonString(str)` | JSON 字符串序列化 / 反序列化 |\n\n### Data（属性读写）\n\n所有 `set*Item` 方法均返回 `this`，支持链式调用。\n\n**写入：**\n\n| 方法 | 说明 |\n|------|------|\n| `setStringItem(key, value)` | 写字符串 |\n| `setIntegerItem(key, value)` | 写整数 |\n| `setFloatItem(key, value)` | 写浮点数 |\n| `setNumberItem(key, value)` | 同 `setFloatItem`（别名） |\n| `setBooleanItem(key, value)` | 写布尔值 |\n| `setItem(key, value)` | 写任意值 |\n| `setDateItem(key, value)` | 写日期（格式 `YYYYMMDD`） |\n| `setDateTimeItem(key, value)` | 写日期时间（格式 `YYYYMMDDHHMMSS`） |\n\n**读取（含自动类型转换，转换失败返回默认值而非抛出异常）：**\n\n| 方法 | 返回类型 | 说明 |\n|------|---------|------|\n| `getStringItem(key)` | `string` | 不存在返回 `\"\"` |\n| `getIntegerItem(key)` | `number` | 自动转 Integer |\n| `getFloatItem(key)` | `number` | 自动转 Float |\n| `getNumberItem(key)` | `number` | 同 `getFloatItem` |\n| `getBooleanItem(key)` | `boolean` | `true/yes/1` → true |\n| `getItem(key)` | `any` | 原始值 |\n| `getDateItem(key)` | `Date \\| null` | 格式 `YYYYMMDD` |\n| `getDateTimeItem(key)` | `Date \\| null` | 格式 `YYYYMMDDHHMMSS` |\n\n**Map 工具方法：**\n\n| 方法 | 说明 |\n|------|------|\n| `isEmpty()` | 是否为空 |\n| `containsKey(key)` | 是否包含指定 key |\n| `containsValue(value)` | 是否包含指定 value |\n| `keys()` | 返回所有 key 数组 |\n| `values()` | 返回所有 value 数组 |\n| `element(index)` | 按索引获取 `{key, value}` |\n| `elements` | 所有条目的 `{key, value}[]` |\n| `toJSON()` / `fromJSON(obj)` | 序列化 / 反序列化 |\n| `toJsonString()` / `fromJsonString(str)` | JSON 字符串序列化 / 反序列化 |\n\n### DataSet（多行数据）\n\n| 方法 | 说明 |\n|------|------|\n| `setRow(data)` | 追加一行 `Data`，返回 `this` |\n| `getRow(index)` | 获取指定行，不存在返回 `null` |\n| `delRow(index)` | 删除指定行，返回 `this` |\n| `length` | 行数 |\n| `toArray()` | 转为 `Record<string, any>[]`（普通对象数组） |\n| `toJSON()` | 转为 `Record<string, any>[]`（供 JSON.stringify） |\n| `fromJSON(json)` | 从数组填充，返回 `this` |\n| `toJsonString()` / `fromJsonString(str)` | JSON 字符串序列化 / 反序列化 |\n\n## 工具类\n\n### EnvelopeUtil — 快捷读写\n\n支持**具名函数**和**命名空间**两种调用方式：\n\n```typescript\nimport { get, put, getBean, putBean, getList, putList, EnvelopeUtil } from '@bigworm/bigworm-envelope'\n\n// 快捷读写 entity 默认节点的属性\nput(entity, 'userId', '10001')\nconst userId = get(entity, 'userId')      // string（不存在返回 \"\"）\n\n// Bean ↔ Entity（驼峰命名，无转换）\nputBean(entity, userObj)                  // userObj 写入 entity 属性\nconst user = getBean<UserVO>(entity)      // entity 属性读到 UserVO\n\n// List ↔ Entity 子表\nputList(entity, 'orders', orderList)      // orderList 写入 orders 子表\nconst orders = getList<OrderVO>(entity, 'orders')\n\n// 命名空间方式等价\nEnvelopeUtil.put(entity, 'userId', '10001')\nEnvelopeUtil.getBean<UserVO>(entity)\n```\n\n> 仅支持驼峰命名（无 snake_case 转换）。\n\n### TypeCastUtil — 类型转换\n\n支持**具名函数**和**命名空间**两种调用方式，转换失败返回默认值而非抛出异常：\n\n```typescript\nimport { stringToInteger, objectToBoolean, dateToString, TypeCastUtil } from '@bigworm/bigworm-envelope'\n\n// String → 其他\nstringToInteger('123')           // 123\nstringToFloat('99.99')           // 99.99\nstringToBoolean('yes')           // true（支持 true/yes/1）\nstringToDate('20260108')         // Date\nstringToDateTime('20260108153045') // Date\n\n// Object → 其他（智能转换，支持多种输入类型）\nobjectToInteger('45.7')          // 45\nobjectToFloat(true)              // 1\nobjectToBoolean('1')             // true\n\n// 其他 → String\nnumberToString(123)              // \"123\"\nfloatToString(99.99, 2)          // \"99.99\"\ndateToString(new Date())         // \"20260108\"\ndateTimeToString(new Date())     // \"20260108153045\"\n\n// 命名空间方式等价\nTypeCastUtil.stringToInteger('123')\n```\n\n### DateUtil — 日期工具\n\n```typescript\nimport { formatDate, parseDate, getNow, isDate, compareDate, DateUtil, DateEnum } from '@bigworm/bigworm-envelope'\n\n// 格式化\nformatDate(new Date(), DateEnum.YYYYMMDD)           // \"20260108\"\nformatDate(new Date(), DateEnum.YYYYMMDD_BYSEP)     // \"2026-01-08\"\nformatDate(new Date(), DateEnum.YYYYMMDDHHMMSS)     // \"20260108153045\"\n\n// 解析\nparseDate('20260108', DateEnum.YYYYMMDD)            // Date\nparseDate('2026-01-08', DateEnum.YYYYMMDD_BYSEP)   // Date\n\n// 当前时间\ngetNow(DateEnum.YYYYMMDDHHMMSS)                     // \"20260108153045\"\n\n// 校验\nisDate('20260108', DateEnum.YYYYMMDD)               // true\nisDate('2026-02-30', DateEnum.YYYYMMDD_BYSEP)       // false\n\n// 比较（返回 1 / 0 / -1）\ncompareDate(date1, date2)\n```\n\n### LoggerUtil — 日志工具\n\n```typescript\nimport { LoggerUtil, Logger, LogLevel } from '@bigworm/bigworm-envelope'\n\nconst logger = LoggerUtil.getLogger('MyModule')\n\nlogger.trace('...')\nlogger.debug('...')\nlogger.info('...')\nlogger.warn('...')\nlogger.error('...')\n\n// 全局日志级别控制\nLogger.setLevel(LogLevel.WARN)    // 生产环境只输出 WARN / ERROR\nLogger.setLevel(LogLevel.SILENT)  // 关闭所有日志\n// 可选值：TRACE | DEBUG | INFO | WARN | ERROR | SILENT\n```\n\n### JsonUtil — JSON 与 Envelope 互转\n\n```typescript\nimport { jsonString2envelop, envelop2jsonString, prettyPrint, JsonUtil } from '@bigworm/bigworm-envelope'\n\nconst envelope = jsonString2envelop('{\"header\":{...},\"body\":{...}}')\nconst str      = envelop2jsonString(envelope)\nconst pretty   = prettyPrint(envelope)\n```\n\n## 构建格式\n\n| 格式 | 目录 | 场景 | Tree-shaking |\n|------|------|------|---|\n| ESM | `dist/esm/`（含 `.d.ts`） | Vite / Webpack / 现代工具 | ✅ |\n| CJS | `dist/cjs/` | Node.js / Jest | — |\n| UMD | `dist/umd/` | 浏览器 `<script>` 标签 | — |\n\n## 构建 & 测试\n\n```bash\nnpm run build        # ESM + CJS + UMD\nnpm run build:all    # 构建并压缩（发布前使用）\n\nnpm test             # 运行所有测试\nnpm run test:watch   # 监听模式\nnpm run test:coverage # 覆盖率报告\n```\n","readmeFilename":"README.md"}