{"_id":"@dcsv-io/d2-messaging-abstractions","_rev":"2-ba36c240a40d003a16797da5fb731382","name":"@dcsv-io/d2-messaging-abstractions","dist-tags":{"latest":"0.1.2"},"versions":{"0.1.1":{"name":"@dcsv-io/d2-messaging-abstractions","version":"0.1.1","_id":"@dcsv-io/d2-messaging-abstractions@0.1.1","maintainers":[{"name":"dcsv-tristan","email":"tristan@dcsv.io"}],"dist":{"shasum":"8ef0cbea82bea0edf50f7cafa4c13be499f80d67","tarball":"https://registry.npmjs.org/@dcsv-io/d2-messaging-abstractions/-/d2-messaging-abstractions-0.1.1.tgz","fileCount":15,"integrity":"sha512-jo2COfbLZREp3AYHS7ZH7a2hsUQOioFnxv2biROiB2Z7ACqCMCuR2myRssaaiTPU9QKquUIr/HAJQEhUutirQQ==","signatures":[{"sig":"MEYCIQCWPuOMGvgJ//yHoyarv4Abe+PByqiNLIO7tPWDxtaYYwIhAIZ2BSxAF15fnEKHUWbQDzEXJ+eH51MAuEarGt5jO94T","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30440},"main":"./dist/index.js","type":"module","_from":"file:bundle/npm/dcsv-io-d2-messaging-abstractions-0.1.1.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc -b","prebuild":"node ../scripts/run-ts-codegen.mjs src/dlq-failure-metadata-emit.ts && node ../scripts/run-ts-codegen.mjs src/mq-messages-emit.ts","test:coverage":"vitest run --coverage","type-check:test":"tsc -p tsconfig.test.json"},"_npmUser":{"name":"dcsv-tristan","email":"tristan@dcsv.io"},"_resolved":"/home/runner/work/D2-Public/D2-Public/bundle/npm/dcsv-io-d2-messaging-abstractions-0.1.1.tgz","_integrity":"sha512-jo2COfbLZREp3AYHS7ZH7a2hsUQOioFnxv2biROiB2Z7ACqCMCuR2myRssaaiTPU9QKquUIr/HAJQEhUutirQQ==","_npmVersion":"11.16.0","description":"<!-- Copyright (c) DCSV. Licensed under the Apache License, Version 2.0. -->","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"vitest":"4.0.18","typescript":"5.9.3","@vitest/coverage-v8":"4.0.18"},"_npmOperationalInternal":{"tmp":"tmp/d2-messaging-abstractions_0.1.1_1784262841003_0.2523967572232937","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@dcsv-io/d2-messaging-abstractions","version":"0.1.2","type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"devDependencies":{"@vitest/coverage-v8":"4.0.18","typescript":"5.9.3","vitest":"4.0.18"},"scripts":{"prebuild":"node ../scripts/run-ts-codegen.mjs src/dlq-failure-metadata-emit.ts && node ../scripts/run-ts-codegen.mjs src/mq-messages-emit.ts","build":"tsc -b","test":"vitest run","test:coverage":"vitest run --coverage","type-check:test":"tsc -p tsconfig.test.json"},"_id":"@dcsv-io/d2-messaging-abstractions@0.1.2","description":"<!-- Copyright (c) DCSV. Licensed under the Apache License, Version 2.0. -->","_integrity":"sha512-JE+FZU6I66/0AwQFgIR/Aqr0tspwvZyvNP1ltjZSn8oTFRrSFzCvDPLXn5CB6vZ9qkM2Ms7uJ3AZ1H23ItWpqQ==","_resolved":"/home/runner/work/D2-Public/D2-Public/bundle/npm/dcsv-io-d2-messaging-abstractions-0.1.2.tgz","_from":"file:bundle/npm/dcsv-io-d2-messaging-abstractions-0.1.2.tgz","_nodeVersion":"24.18.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-JE+FZU6I66/0AwQFgIR/Aqr0tspwvZyvNP1ltjZSn8oTFRrSFzCvDPLXn5CB6vZ9qkM2Ms7uJ3AZ1H23ItWpqQ==","shasum":"8240edcc8d09478bef3ec70aab2514c75a86b334","tarball":"https://registry.npmjs.org/@dcsv-io/d2-messaging-abstractions/-/d2-messaging-abstractions-0.1.2.tgz","fileCount":15,"unpackedSize":30459,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCID2xaxU/ulFbkfFRoBe2WlO+5FnpUoBoRCczV1uexZs+AiEA1xGRwhj/bAfrFWP7nCjuwdwSbqBo1qzAzx3TiUOGG14="}]},"_npmUser":{"name":"dcsv-tristan","email":"tristan@dcsv.io"},"directories":{},"maintainers":[{"name":"dcsv-tristan","email":"tristan@dcsv.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/d2-messaging-abstractions_0.1.2_1784287023812_0.2990565542129653"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-17T04:34:00.902Z","modified":"2026-07-17T11:17:04.085Z","0.1.1":"2026-07-17T04:34:01.128Z","0.1.2":"2026-07-17T11:17:03.947Z"},"description":"<!-- Copyright (c) DCSV. Licensed under the Apache License, Version 2.0. -->","maintainers":[{"name":"dcsv-tristan","email":"tristan@dcsv.io"}],"readme":"<!--\nCopyright (c) DCSV. Licensed under the Apache License, Version 2.0.\n-->\n\n# @dcsv-io/d2-messaging-abstractions\n\nD2 messaging-protocol wire identifiers. Today: the DLQ failure-metadata wire shape (`DlqFailureMetadataFields` for JSON property names + `DlqFailureCauses` for the closed-enum cause-string catalog). Mirrors .NET `DcsvIo.D2.Messaging.DlqFailureMetadataFields` (in `DcsvIo.D2.Messaging.Abstractions`) and `DcsvIo.D2.Messaging.RabbitMq.Subscribing.DlqFailureCauses` (in `DcsvIo.D2.Messaging.RabbitMq`).\n\n## Install\n\n```bash\npnpm add @dcsv-io/d2-messaging-abstractions\n```\n\n## Public API\n\n| Export                            | Source                      | Mirror                                                      |\n| --------------------------------- | --------------------------- | ----------------------------------------------------------- |\n| `DlqFailureMetadataFields`        | `dlq-failure-metadata.g.ts` | `DcsvIo.D2.Messaging.DlqFailureMetadataFields`              |\n| `DlqFailureMetadataField`         | `dlq-failure-metadata.g.ts` | n/a (TS-only union type)                                    |\n| `ALL_DLQ_FAILURE_METADATA_FIELDS` | `dlq-failure-metadata.g.ts` | `DlqFailureMetadataFields.AllFields`                        |\n| `DlqFailureCauses`                | `dlq-failure-metadata.g.ts` | `DcsvIo.D2.Messaging.RabbitMq.Subscribing.DlqFailureCauses` |\n| `DlqFailureCause`                 | `dlq-failure-metadata.g.ts` | n/a (TS-only union type)                                    |\n| `ALL_DLQ_FAILURE_CAUSES`          | `dlq-failure-metadata.g.ts` | `DlqFailureCauses.AllCauses`                                |\n\n## Codegen workflow\n\n`prebuild` regenerates catalogs when a generator is available. Generated files (`*.g.ts`) are committed to git.\n\n## When to reach for this catalog\n\n- **DLQ ops tooling**: `d2 msg inspect-dlq` reads the `x-d2-failure-reason` header from DLQ messages — use the field-name constants to deserialize the JSON shape, use the cause-string constants to dispatch on failure category; importing this catalog keeps the tool in lockstep with the production publisher.\n- **TS-side RabbitMQ subscribers**: any handler that may end up generating a DLQ entry (via header forwarding) references the same cause constants.\n\n## Spec contract\n\n`contracts/dlq-failure-metadata/dlq-failure-metadata.spec.json` is the single source of truth. Two sub-catalogs: `fields[]` (property names) + `causes[]` (closed-enum cause strings). The .NET side dispatches the fields-half to `DcsvIo.D2.Messaging.Abstractions` and the causes-half to `DcsvIo.D2.Messaging.RabbitMq`.\n\n## Dependencies\n\nNone at runtime — pure constants. DevDeps: `vitest` + `@vitest/coverage-v8` + `typescript`.\n","readmeFilename":"README.md"}