{"_id":"@apiconvert/core","_rev":"7-81c2a6fdf5678cc4d29f74cdc54a6fcb","name":"@apiconvert/core","dist-tags":{"latest":"1.0.0"},"versions":{"0.0.1":{"name":"@apiconvert/core","version":"0.0.1","license":"GPL-3.0-or-later","_id":"@apiconvert/core@0.0.1","maintainers":[{"name":"jonassaa","email":"jonas.aasberg@clave.no"}],"dist":{"shasum":"56cf058c79a161183cf4cc236d4cba20bdd6b25a","tarball":"https://registry.npmjs.org/@apiconvert/core/-/core-0.0.1.tgz","fileCount":6,"integrity":"sha512-SAXd2qbjaLXvZrqGhd84Avu86CNxFwtZHG+e4luiHBectJsjQA5/2BHhpxLPIhh3rRexQQJbxEQbigb8Tm3LZg==","signatures":[{"sig":"MEUCIQDbSS2iEc2IePwbtTuJR488IOL5SPdRbZ6HITDBoPFhJgIgQB06cuTX2nNvMxFcorwGtv65VZ8HZwLwDC5AUF9u2xQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":54553},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","gitHead":"7722bd691889f0d617ad301c7012c8db9f3165eb","scripts":{"build":"tsc -p tsconfig.json"},"_npmUser":{"name":"jonassaa","email":"jonas.aasberg@clave.no"},"_npmVersion":"10.9.2","description":"Apiconvert core contracts and schemas for conversion rules.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"fast-xml-parser":"^5.3.4"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.4.5"},"_npmOperationalInternal":{"tmp":"tmp/core_0.0.1_1770284530515_0.19253096305502138","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@apiconvert/core","version":"0.0.3","license":"GPL-3.0-or-later","_id":"@apiconvert/core@0.0.3","maintainers":[{"name":"jonassaa","email":"jonas.aasberg@clave.no"}],"homepage":"https://github.com/jonassaa/apiconvert-core#readme","bugs":{"url":"https://github.com/jonassaa/apiconvert-core/issues"},"dist":{"shasum":"8c44392e15569a9deb602de26707b9bd3906cac5","tarball":"https://registry.npmjs.org/@apiconvert/core/-/core-0.0.3.tgz","fileCount":6,"integrity":"sha512-5ksIQfyPtOnKE7TMDH15mlOUfreLShk1lXF5mQHa/jMSTfb7qO9wUz+jeZPWzweRHRUC3yKCz1CNQUImDYy7aw==","signatures":[{"sig":"MEQCIGm9FKM3xGQ/mWxYxzw2UM8h1jPcoLV5oMRB9snER5Z1AiBzOuqjBb5Gc1m7/0LNIRlM6Hvps6WYqCczP20k7ly84A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@apiconvert%2fcore@0.0.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":54652},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","gitHead":"2c2af8722b5961aa64104797a7914ad0aa5f4cb0","scripts":{"build":"tsc -p tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4e7f052d-ecee-4577-82c3-c95f55b9dc07"}},"repository":{"url":"git+https://github.com/jonassaa/apiconvert-core.git","type":"git"},"_npmVersion":"11.6.2","description":"Apiconvert core contracts and schemas for conversion rules.","directories":{},"_nodeVersion":"24.13.0","dependencies":{"fast-xml-parser":"^5.3.4"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.4.5"},"_npmOperationalInternal":{"tmp":"tmp/core_0.0.3_1770304345502_0.8906908593164187","host":"s3://npm-registry-packages-npm-production"}},"0.0.18":{"name":"@apiconvert/core","version":"0.0.18","license":"GPL-3.0-or-later","_id":"@apiconvert/core@0.0.18","maintainers":[{"name":"jonassaa","email":"jonas.aasberg@clave.no"}],"homepage":"https://github.com/jonassaa/apiconvert-core#readme","bugs":{"url":"https://github.com/jonassaa/apiconvert-core/issues"},"dist":{"shasum":"8ccdc9097a522a1c6d0bc771439c46dd43ea1d1d","tarball":"https://registry.npmjs.org/@apiconvert/core/-/core-0.0.18.tgz","fileCount":6,"integrity":"sha512-77nTBGso4hJcIKZ8vdyJK5Qwv5ZN95h+73VZdDyBnxqd7mIE+752CtzECu/oU030AssVFltAy80I8y+R7/wKyA==","signatures":[{"sig":"MEQCIEpG5gQjkMUwY5iA1YEEHIvt/yQRBPOiZfsq3sDPRZErAiBx5qpMEFOE6XRkRrmOLM2RC0vrSWDjNjarXIieCEX+xQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@apiconvert%2fcore@0.0.18","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":54829},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","gitHead":"8dafb74543a490e381ccefda842295a189075182","scripts":{"build":"tsc -p tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4e7f052d-ecee-4577-82c3-c95f55b9dc07"}},"repository":{"url":"git+https://github.com/jonassaa/apiconvert-core.git","type":"git"},"_npmVersion":"11.6.2","description":"Apiconvert core contracts and schemas for conversion rules.","directories":{},"_nodeVersion":"24.13.0","dependencies":{"fast-xml-parser":"^5.3.4"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.4.5"},"_npmOperationalInternal":{"tmp":"tmp/core_0.0.18_1770306932253_0.41464828292846745","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@apiconvert/core","version":"0.1.0","license":"GPL-3.0-or-later","_id":"@apiconvert/core@0.1.0","maintainers":[{"name":"jonassaa","email":"jonas.aasberg@clave.no"}],"homepage":"https://github.com/jonassaa/apiconvert-core#readme","bugs":{"url":"https://github.com/jonassaa/apiconvert-core/issues"},"dist":{"shasum":"e23981f23950e539ea108bc1911f4e65e714b413","tarball":"https://registry.npmjs.org/@apiconvert/core/-/core-0.1.0.tgz","fileCount":6,"integrity":"sha512-4J+M1pvhcC1B1Cadt1DNxwc1d0/RiW+IkbOJaLzXfqRJv8XGQjvI+p7r9d8Y/jY4NAG+gwNx5N6UMhI3ihA9NA==","signatures":[{"sig":"MEYCIQCzevcezrGRI1NeDABMKLusNyfdQ2F4qmIIDVTRoWHtEwIhAJRIbyRq1kPnR7wYS8FubPKcY6qVooLLgOEc3iQ1XE1K","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@apiconvert%2fcore@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":58316},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","gitHead":"1ae1b7cc6e2a95e4411bc7b393b3174eb6946252","scripts":{"build":"tsc -p tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7110c190-b1cb-401c-901e-8408dfbc234f"}},"repository":{"url":"git+https://github.com/jonassaa/apiconvert-core.git","type":"git"},"_npmVersion":"11.6.2","description":"Apiconvert core contracts and schemas for conversion rules.","directories":{},"_nodeVersion":"24.13.0","dependencies":{"fast-xml-parser":"^5.3.4"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.4.5"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.0_1770370367153_0.47031949368684844","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@apiconvert/core","version":"0.1.1","license":"GPL-3.0-or-later","_id":"@apiconvert/core@0.1.1","maintainers":[{"name":"jonassaa","email":"jonas.aasberg@clave.no"}],"homepage":"https://github.com/jonassaa/apiconvert-core#readme","bugs":{"url":"https://github.com/jonassaa/apiconvert-core/issues"},"dist":{"shasum":"27b3615b0ef2ff3a189c10fdd690fe3078b278be","tarball":"https://registry.npmjs.org/@apiconvert/core/-/core-0.1.1.tgz","fileCount":6,"integrity":"sha512-yc8YYLfSww6qwb5c0aFa4lEQyfv2L1zZmgewRv3Wm9I/nmiRjx6qXZxK6GF4p/B01JWMWpf6iaReFRHW6u10qg==","signatures":[{"sig":"MEUCIQCRZGSAXITnZ4bqo8RZePlM0x5UewP9qviuCuN0LZSpKAIgSnbsWe9vF4dWIJjTwZEq2nGF6qYDca6/tsy9h7A/Npw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@apiconvert%2fcore@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":59654},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","gitHead":"1569a84e5653a171098e51d8afba05520a84f0b7","scripts":{"build":"tsc -p tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7110c190-b1cb-401c-901e-8408dfbc234f"}},"repository":{"url":"git+https://github.com/jonassaa/apiconvert-core.git","type":"git"},"_npmVersion":"11.6.2","description":"Apiconvert core contracts and schemas for conversion rules.","directories":{},"_nodeVersion":"24.13.0","dependencies":{"fast-xml-parser":"^5.3.4"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.4.5"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.1_1770723311591_0.37080552874005646","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@apiconvert/core","version":"0.2.0","license":"GPL-3.0-or-later","_id":"@apiconvert/core@0.2.0","maintainers":[{"name":"jonassaa","email":"jonas.aasberg@clave.no"}],"homepage":"https://github.com/jonassaa/apiconvert-core#readme","bugs":{"url":"https://github.com/jonassaa/apiconvert-core/issues"},"dist":{"shasum":"3723b57983cf1b838c481d14b9b4dca5aaed846e","tarball":"https://registry.npmjs.org/@apiconvert/core/-/core-0.2.0.tgz","fileCount":6,"integrity":"sha512-w62xGGDNPKjnHvRH0XjVGoWHamqZYfpXko/Fu9ewocQaYC2Dq1+PHlcfEOLOJydhLYahrI90rZcpApKY4/AcEw==","signatures":[{"sig":"MEUCIQC73vtDHuka5QRhGE29nJt4Ozo7iZVI2n8YmbTeI0kTpgIgNvBp8WLkWyPJyxfxPgWjnkeXt8HfkpgYDGlPKWscq/U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@apiconvert%2fcore@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":67626},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","gitHead":"fda33bbbc88b19d2db922c566e72129cf0da872a","scripts":{"build":"tsc -p tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7110c190-b1cb-401c-901e-8408dfbc234f"}},"repository":{"url":"git+https://github.com/jonassaa/apiconvert-core.git","type":"git"},"_npmVersion":"11.6.2","description":"Apiconvert core contracts and schemas for conversion rules.","directories":{},"_nodeVersion":"24.13.0","dependencies":{"fast-xml-parser":"^5.3.4"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.4.5"},"_npmOperationalInternal":{"tmp":"tmp/core_0.2.0_1770807134298_0.98963280907913","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@apiconvert/core","version":"1.0.0","description":"Apiconvert core contracts and schemas for conversion rules.","license":"GPL-3.0-or-later","repository":{"type":"git","url":"git+https://github.com/jonassaa/apiconvert-core.git"},"type":"commonjs","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsc -p tsconfig.json"},"dependencies":{"fast-xml-parser":"^5.3.4"},"devDependencies":{"typescript":"^5.4.5"},"gitHead":"91fdac0467222b7dbcbc9c97183c6f2ce910d2e8","_id":"@apiconvert/core@1.0.0","bugs":{"url":"https://github.com/jonassaa/apiconvert-core/issues"},"homepage":"https://github.com/jonassaa/apiconvert-core#readme","_nodeVersion":"24.13.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-kAL174ieRuCa6uLYDZtBNJ1V/3eH4lbAUYGz6yDGpQha2FmspceBAXgsdsDFPfXWac0Hs6XujLm4dFBgV2OpRw==","shasum":"3a173e67e45258b9e5b1820ca0e108783d5b4168","tarball":"https://registry.npmjs.org/@apiconvert/core/-/core-1.0.0.tgz","fileCount":62,"unpackedSize":120655,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@apiconvert%2fcore@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQD4g5+whk8RkLQoRk6XGH4XACfop0zF93uNDtDdQXYWZAIgbyAGESJ+amfnkIAxpMGFBUx6bSBsKy4vPecd+7IliZg="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7110c190-b1cb-401c-901e-8408dfbc234f"}},"directories":{},"maintainers":[{"name":"jonassaa","email":"jonas.aasberg@clave.no"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/core_1.0.0_1770989590441_0.4321262129881327"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-05T09:42:10.403Z","modified":"2026-02-13T13:33:10.877Z","0.0.1":"2026-02-05T09:42:10.719Z","0.0.3":"2026-02-05T15:12:25.632Z","0.0.18":"2026-02-05T15:55:32.386Z","0.1.0":"2026-02-06T09:32:47.295Z","0.1.1":"2026-02-10T11:35:11.736Z","0.2.0":"2026-02-11T10:52:14.432Z","1.0.0":"2026-02-13T13:33:10.578Z"},"bugs":{"url":"https://github.com/jonassaa/apiconvert-core/issues"},"license":"GPL-3.0-or-later","homepage":"https://github.com/jonassaa/apiconvert-core#readme","repository":{"type":"git","url":"git+https://github.com/jonassaa/apiconvert-core.git"},"description":"Apiconvert core contracts and schemas for conversion rules.","maintainers":[{"name":"jonassaa","email":"jonas.aasberg@clave.no"}],"readme":"# @apiconvert/core\n\nShared TypeScript conversion runtime for Apiconvert.\n\n## Rules Model\n\nCanonical rules are defined by one ordered `rules` array of recursive nodes:\n- `kind: \"field\"` with `outputPaths` and `source`\n- `kind: \"array\"` with `inputPath`, `outputPaths`, and recursive `itemRules`\n- `kind: \"branch\"` with `expression`, `then`, optional `elseIf`, optional `else`\n\nSupported field source types:\n- `path`\n- `constant`\n- `transform`\n- `merge`\n- `condition`\n\nSupported transforms:\n- `toLowerCase`\n- `toUpperCase`\n- `number`\n- `boolean`\n- `concat`\n- `split`\n\nSupported merge modes:\n- `concat`\n- `firstNonEmpty`\n- `array`\n\nAdditional options:\n- field: optional `defaultValue`\n- array: optional `coerceSingle`\n- condition source: optional `trueSource` / `falseSource`, `trueValue` / `falseValue`, `elseIf`, and `conditionOutput` (`branch` or `match`)\n\nCondition expressions support `path(...)`, `exists(...)`, comparison operators, and boolean operators (`&&`, `||`, `!`).\n\n## Example\n\n```ts\nimport { applyConversion, normalizeConversionRules } from \"@apiconvert/core\";\n\nconst rules = normalizeConversionRules({\n  inputFormat: \"json\",\n  outputFormat: \"json\",\n  rules: [\n    {\n      kind: \"field\",\n      outputPaths: [\"meta.name\"],\n      source: { type: \"path\", path: \"name\" }\n    },\n    {\n      kind: \"branch\",\n      expression: \"path(status) == 'active'\",\n      then: [\n        {\n          kind: \"field\",\n          outputPaths: [\"meta.enabled\"],\n          source: { type: \"constant\", value: \"true\" }\n        }\n      ],\n      else: [\n        {\n          kind: \"field\",\n          outputPaths: [\"meta.enabled\"],\n          source: { type: \"constant\", value: \"false\" }\n        }\n      ]\n    }\n  ]\n});\n\nconst result = applyConversion({ name: \"Ada\", status: \"active\" }, rules);\nif (result.errors.length > 0) {\n  throw new Error(result.errors.join(\"; \"));\n}\n\nconsole.log(result.output);\n```\n\n## Parse and Format Helpers\n\nThe package also exports:\n- `parsePayload(text, format)` for `json`, `xml`, and `query`\n- `formatPayload(value, format, pretty)`\n","readmeFilename":"README.md"}