@endora-commerce/cli 0.100.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +37 -0
- package/dist/bin/endora.d.ts +28 -0
- package/dist/bin/endora.d.ts.map +1 -0
- package/dist/bin/endora.js +926 -0
- package/dist/bin/endora.js.map +1 -0
- package/dist/check/estate.d.ts +189 -0
- package/dist/check/estate.d.ts.map +1 -0
- package/dist/check/estate.js +1037 -0
- package/dist/check/estate.js.map +1 -0
- package/dist/check/hosts.d.ts +25 -0
- package/dist/check/hosts.d.ts.map +1 -0
- package/dist/check/hosts.js +1347 -0
- package/dist/check/hosts.js.map +1 -0
- package/dist/check/index.d.ts +60 -0
- package/dist/check/index.d.ts.map +1 -0
- package/dist/check/index.js +111 -0
- package/dist/check/index.js.map +1 -0
- package/dist/check/layout.d.ts +136 -0
- package/dist/check/layout.d.ts.map +1 -0
- package/dist/check/layout.js +262 -0
- package/dist/check/layout.js.map +1 -0
- package/dist/check/ledger.d.ts +98 -0
- package/dist/check/ledger.d.ts.map +1 -0
- package/dist/check/ledger.js +173 -0
- package/dist/check/ledger.js.map +1 -0
- package/dist/check/peer-owners.d.ts +116 -0
- package/dist/check/peer-owners.d.ts.map +1 -0
- package/dist/check/peer-owners.js +225 -0
- package/dist/check/peer-owners.js.map +1 -0
- package/dist/check/report.d.ts +33 -0
- package/dist/check/report.d.ts.map +1 -0
- package/dist/check/report.js +107 -0
- package/dist/check/report.js.map +1 -0
- package/dist/check/run.d.ts +147 -0
- package/dist/check/run.d.ts.map +1 -0
- package/dist/check/run.js +111 -0
- package/dist/check/run.js.map +1 -0
- package/dist/checks.d.ts +17 -0
- package/dist/checks.d.ts.map +1 -0
- package/dist/checks.js +17 -0
- package/dist/checks.js.map +1 -0
- package/dist/dev/index.d.ts +83 -0
- package/dist/dev/index.d.ts.map +1 -0
- package/dist/dev/index.js +298 -0
- package/dist/dev/index.js.map +1 -0
- package/dist/generate/divergence.d.ts +38 -0
- package/dist/generate/divergence.d.ts.map +1 -0
- package/dist/generate/divergence.js +237 -0
- package/dist/generate/divergence.js.map +1 -0
- package/dist/generate/index.d.ts +90 -0
- package/dist/generate/index.d.ts.map +1 -0
- package/dist/generate/index.js +369 -0
- package/dist/generate/index.js.map +1 -0
- package/dist/index.d.ts +23 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +35 -0
- package/dist/index.js.map +1 -0
- package/dist/inputs/declaration.d.ts +18 -0
- package/dist/inputs/declaration.d.ts.map +1 -0
- package/dist/inputs/declaration.js +64 -0
- package/dist/inputs/declaration.js.map +1 -0
- package/dist/inputs/env-file.d.ts +73 -0
- package/dist/inputs/env-file.d.ts.map +1 -0
- package/dist/inputs/env-file.js +134 -0
- package/dist/inputs/env-file.js.map +1 -0
- package/dist/inputs/prompt.d.ts +21 -0
- package/dist/inputs/prompt.d.ts.map +1 -0
- package/dist/inputs/prompt.js +59 -0
- package/dist/inputs/prompt.js.map +1 -0
- package/dist/inputs/resolve.d.ts +163 -0
- package/dist/inputs/resolve.d.ts.map +1 -0
- package/dist/inputs/resolve.js +290 -0
- package/dist/inputs/resolve.js.map +1 -0
- package/dist/install/host.d.ts +27 -0
- package/dist/install/host.d.ts.map +1 -0
- package/dist/install/host.js +90 -0
- package/dist/install/host.js.map +1 -0
- package/dist/install/index.d.ts +173 -0
- package/dist/install/index.d.ts.map +1 -0
- package/dist/install/index.js +793 -0
- package/dist/install/index.js.map +1 -0
- package/dist/install/wizard.d.ts +144 -0
- package/dist/install/wizard.d.ts.map +1 -0
- package/dist/install/wizard.js +362 -0
- package/dist/install/wizard.js.map +1 -0
- package/dist/lib/admin-artefacts.d.ts +70 -0
- package/dist/lib/admin-artefacts.d.ts.map +1 -0
- package/dist/lib/admin-artefacts.js +354 -0
- package/dist/lib/admin-artefacts.js.map +1 -0
- package/dist/lib/admin-surfaces.d.ts +298 -0
- package/dist/lib/admin-surfaces.d.ts.map +1 -0
- package/dist/lib/admin-surfaces.js +669 -0
- package/dist/lib/admin-surfaces.js.map +1 -0
- package/dist/lib/delegated-composer.d.ts +85 -0
- package/dist/lib/delegated-composer.d.ts.map +1 -0
- package/dist/lib/delegated-composer.js +241 -0
- package/dist/lib/delegated-composer.js.map +1 -0
- package/dist/lib/divergence-artefacts.d.ts +305 -0
- package/dist/lib/divergence-artefacts.d.ts.map +1 -0
- package/dist/lib/divergence-artefacts.js +828 -0
- package/dist/lib/divergence-artefacts.js.map +1 -0
- package/dist/lib/divergence.d.ts +337 -0
- package/dist/lib/divergence.d.ts.map +1 -0
- package/dist/lib/divergence.js +1005 -0
- package/dist/lib/divergence.js.map +1 -0
- package/dist/lib/docs-artefacts.d.ts +395 -0
- package/dist/lib/docs-artefacts.d.ts.map +1 -0
- package/dist/lib/docs-artefacts.js +781 -0
- package/dist/lib/docs-artefacts.js.map +1 -0
- package/dist/lib/emitted-exports.d.ts +21 -0
- package/dist/lib/emitted-exports.d.ts.map +1 -0
- package/dist/lib/emitted-exports.js +96 -0
- package/dist/lib/emitted-exports.js.map +1 -0
- package/dist/lib/emitted-freshness.d.ts +112 -0
- package/dist/lib/emitted-freshness.d.ts.map +1 -0
- package/dist/lib/emitted-freshness.js +288 -0
- package/dist/lib/emitted-freshness.js.map +1 -0
- package/dist/lib/entity-index-artefact.d.ts +95 -0
- package/dist/lib/entity-index-artefact.d.ts.map +1 -0
- package/dist/lib/entity-index-artefact.js +210 -0
- package/dist/lib/entity-index-artefact.js.map +1 -0
- package/dist/lib/instance-build-inputs.d.ts +108 -0
- package/dist/lib/instance-build-inputs.d.ts.map +1 -0
- package/dist/lib/instance-build-inputs.js +165 -0
- package/dist/lib/instance-build-inputs.js.map +1 -0
- package/dist/lib/module-docs.d.ts +473 -0
- package/dist/lib/module-docs.d.ts.map +1 -0
- package/dist/lib/module-docs.js +711 -0
- package/dist/lib/module-docs.js.map +1 -0
- package/dist/lib/module-package-subpaths.d.ts +56 -0
- package/dist/lib/module-package-subpaths.d.ts.map +1 -0
- package/dist/lib/module-package-subpaths.js +223 -0
- package/dist/lib/module-package-subpaths.js.map +1 -0
- package/dist/lib/module-packages.d.ts +200 -0
- package/dist/lib/module-packages.d.ts.map +1 -0
- package/dist/lib/module-packages.js +580 -0
- package/dist/lib/module-packages.js.map +1 -0
- package/dist/lib/module-population.d.ts +129 -0
- package/dist/lib/module-population.d.ts.map +1 -0
- package/dist/lib/module-population.js +172 -0
- package/dist/lib/module-population.js.map +1 -0
- package/dist/lib/module-roots.d.ts +337 -0
- package/dist/lib/module-roots.d.ts.map +1 -0
- package/dist/lib/module-roots.js +586 -0
- package/dist/lib/module-roots.js.map +1 -0
- package/dist/lib/nested-checkouts.d.ts +33 -0
- package/dist/lib/nested-checkouts.d.ts.map +1 -0
- package/dist/lib/nested-checkouts.js +160 -0
- package/dist/lib/nested-checkouts.js.map +1 -0
- package/dist/lib/platform-root.d.ts +43 -0
- package/dist/lib/platform-root.d.ts.map +1 -0
- package/dist/lib/platform-root.js +134 -0
- package/dist/lib/platform-root.js.map +1 -0
- package/dist/lib/platform-surface.d.ts +235 -0
- package/dist/lib/platform-surface.d.ts.map +1 -0
- package/dist/lib/platform-surface.js +393 -0
- package/dist/lib/platform-surface.js.map +1 -0
- package/dist/lib/port-registrations.d.ts +223 -0
- package/dist/lib/port-registrations.d.ts.map +1 -0
- package/dist/lib/port-registrations.js +532 -0
- package/dist/lib/port-registrations.js.map +1 -0
- package/dist/lib/read-size.d.ts +154 -0
- package/dist/lib/read-size.d.ts.map +1 -0
- package/dist/lib/read-size.js +182 -0
- package/dist/lib/read-size.js.map +1 -0
- package/dist/lib/registration-owners.d.ts +79 -0
- package/dist/lib/registration-owners.d.ts.map +1 -0
- package/dist/lib/registration-owners.js +77 -0
- package/dist/lib/registration-owners.js.map +1 -0
- package/dist/lib/release-index.d.ts +53 -0
- package/dist/lib/release-index.d.ts.map +1 -0
- package/dist/lib/release-index.js +162 -0
- package/dist/lib/release-index.js.map +1 -0
- package/dist/lib/repeating-timers.d.ts +79 -0
- package/dist/lib/repeating-timers.d.ts.map +1 -0
- package/dist/lib/repeating-timers.js +189 -0
- package/dist/lib/repeating-timers.js.map +1 -0
- package/dist/lib/source-text.d.ts +34 -0
- package/dist/lib/source-text.d.ts.map +1 -0
- package/dist/lib/source-text.js +80 -0
- package/dist/lib/source-text.js.map +1 -0
- package/dist/lib/specifiers.d.ts +20 -0
- package/dist/lib/specifiers.d.ts.map +1 -0
- package/dist/lib/specifiers.js +130 -0
- package/dist/lib/specifiers.js.map +1 -0
- package/dist/lib/sql-tables.d.ts +166 -0
- package/dist/lib/sql-tables.d.ts.map +1 -0
- package/dist/lib/sql-tables.js +464 -0
- package/dist/lib/sql-tables.js.map +1 -0
- package/dist/lib/switchable-modules.d.ts +54 -0
- package/dist/lib/switchable-modules.d.ts.map +1 -0
- package/dist/lib/switchable-modules.js +104 -0
- package/dist/lib/switchable-modules.js.map +1 -0
- package/dist/lib/tailwind-sources.d.ts +136 -0
- package/dist/lib/tailwind-sources.d.ts.map +1 -0
- package/dist/lib/tailwind-sources.js +307 -0
- package/dist/lib/tailwind-sources.js.map +1 -0
- package/dist/lib/ui-layer.d.ts +54 -0
- package/dist/lib/ui-layer.d.ts.map +1 -0
- package/dist/lib/ui-layer.js +57 -0
- package/dist/lib/ui-layer.js.map +1 -0
- package/dist/lib/workspace-packages.d.ts +186 -0
- package/dist/lib/workspace-packages.d.ts.map +1 -0
- package/dist/lib/workspace-packages.js +351 -0
- package/dist/lib/workspace-packages.js.map +1 -0
- package/dist/new-instance/deploy.d.ts +211 -0
- package/dist/new-instance/deploy.d.ts.map +1 -0
- package/dist/new-instance/deploy.js +1381 -0
- package/dist/new-instance/deploy.js.map +1 -0
- package/dist/new-instance/docs-toolchain.d.ts +66 -0
- package/dist/new-instance/docs-toolchain.d.ts.map +1 -0
- package/dist/new-instance/docs-toolchain.js +69 -0
- package/dist/new-instance/docs-toolchain.js.map +1 -0
- package/dist/new-instance/host.d.ts +124 -0
- package/dist/new-instance/host.d.ts.map +1 -0
- package/dist/new-instance/host.js +276 -0
- package/dist/new-instance/host.js.map +1 -0
- package/dist/new-instance/index.d.ts +118 -0
- package/dist/new-instance/index.d.ts.map +1 -0
- package/dist/new-instance/index.js +567 -0
- package/dist/new-instance/index.js.map +1 -0
- package/dist/new-instance/modules.d.ts +188 -0
- package/dist/new-instance/modules.d.ts.map +1 -0
- package/dist/new-instance/modules.js +392 -0
- package/dist/new-instance/modules.js.map +1 -0
- package/dist/new-instance/template.d.ts +505 -0
- package/dist/new-instance/template.d.ts.map +1 -0
- package/dist/new-instance/template.js +1886 -0
- package/dist/new-instance/template.js.map +1 -0
- package/dist/new-module/emit.d.ts +67 -0
- package/dist/new-module/emit.d.ts.map +1 -0
- package/dist/new-module/emit.js +1393 -0
- package/dist/new-module/emit.js.map +1 -0
- package/dist/new-module/host.d.ts +67 -0
- package/dist/new-module/host.d.ts.map +1 -0
- package/dist/new-module/host.js +224 -0
- package/dist/new-module/host.js.map +1 -0
- package/dist/new-module/index.d.ts +32 -0
- package/dist/new-module/index.d.ts.map +1 -0
- package/dist/new-module/index.js +193 -0
- package/dist/new-module/index.js.map +1 -0
- package/dist/new-module/spec.d.ts +188 -0
- package/dist/new-module/spec.d.ts.map +1 -0
- package/dist/new-module/spec.js +404 -0
- package/dist/new-module/spec.js.map +1 -0
- package/dist/new-module/text.d.ts +15 -0
- package/dist/new-module/text.d.ts.map +1 -0
- package/dist/new-module/text.js +22 -0
- package/dist/new-module/text.js.map +1 -0
- package/dist/new-storefront/dockerfile.d.ts +20 -0
- package/dist/new-storefront/dockerfile.d.ts.map +1 -0
- package/dist/new-storefront/dockerfile.js +131 -0
- package/dist/new-storefront/dockerfile.js.map +1 -0
- package/dist/new-storefront/gitignore.d.ts +23 -0
- package/dist/new-storefront/gitignore.d.ts.map +1 -0
- package/dist/new-storefront/gitignore.js +39 -0
- package/dist/new-storefront/gitignore.js.map +1 -0
- package/dist/new-storefront/index.d.ts +93 -0
- package/dist/new-storefront/index.d.ts.map +1 -0
- package/dist/new-storefront/index.js +329 -0
- package/dist/new-storefront/index.js.map +1 -0
- package/dist/new-storefront/npmrc.d.ts +98 -0
- package/dist/new-storefront/npmrc.d.ts.map +1 -0
- package/dist/new-storefront/npmrc.js +217 -0
- package/dist/new-storefront/npmrc.js.map +1 -0
- package/dist/new-storefront/reference.d.ts +189 -0
- package/dist/new-storefront/reference.d.ts.map +1 -0
- package/dist/new-storefront/reference.js +430 -0
- package/dist/new-storefront/reference.js.map +1 -0
- package/dist/new-storefront/rewrite.d.ts +171 -0
- package/dist/new-storefront/rewrite.d.ts.map +1 -0
- package/dist/new-storefront/rewrite.js +701 -0
- package/dist/new-storefront/rewrite.js.map +1 -0
- package/dist/release-index.json +284 -0
- package/dist/rules/action-route-permissions.d.ts +141 -0
- package/dist/rules/action-route-permissions.d.ts.map +1 -0
- package/dist/rules/action-route-permissions.js +556 -0
- package/dist/rules/action-route-permissions.js.map +1 -0
- package/dist/rules/bundle-pairing.d.ts +74 -0
- package/dist/rules/bundle-pairing.d.ts.map +1 -0
- package/dist/rules/bundle-pairing.js +281 -0
- package/dist/rules/bundle-pairing.js.map +1 -0
- package/dist/rules/channel-resolution.d.ts +17 -0
- package/dist/rules/channel-resolution.d.ts.map +1 -0
- package/dist/rules/channel-resolution.js +382 -0
- package/dist/rules/channel-resolution.js.map +1 -0
- package/dist/rules/command-coverage.d.ts +210 -0
- package/dist/rules/command-coverage.d.ts.map +1 -0
- package/dist/rules/command-coverage.js +714 -0
- package/dist/rules/command-coverage.js.map +1 -0
- package/dist/rules/container-imports.d.ts +60 -0
- package/dist/rules/container-imports.d.ts.map +1 -0
- package/dist/rules/container-imports.js +158 -0
- package/dist/rules/container-imports.js.map +1 -0
- package/dist/rules/default-language-prose.d.ts +212 -0
- package/dist/rules/default-language-prose.d.ts.map +1 -0
- package/dist/rules/default-language-prose.js +710 -0
- package/dist/rules/default-language-prose.js.map +1 -0
- package/dist/rules/diacritic-folds.d.ts +238 -0
- package/dist/rules/diacritic-folds.d.ts.map +1 -0
- package/dist/rules/diacritic-folds.js +681 -0
- package/dist/rules/diacritic-folds.js.map +1 -0
- package/dist/rules/entity-tenant-classification.d.ts +171 -0
- package/dist/rules/entity-tenant-classification.d.ts.map +1 -0
- package/dist/rules/entity-tenant-classification.js +323 -0
- package/dist/rules/entity-tenant-classification.js.map +1 -0
- package/dist/rules/entry-presence.d.ts +142 -0
- package/dist/rules/entry-presence.d.ts.map +1 -0
- package/dist/rules/entry-presence.js +339 -0
- package/dist/rules/entry-presence.js.map +1 -0
- package/dist/rules/entry-scope.d.ts +91 -0
- package/dist/rules/entry-scope.d.ts.map +1 -0
- package/dist/rules/entry-scope.js +404 -0
- package/dist/rules/entry-scope.js.map +1 -0
- package/dist/rules/env-inputs.d.ts +222 -0
- package/dist/rules/env-inputs.d.ts.map +1 -0
- package/dist/rules/env-inputs.js +951 -0
- package/dist/rules/env-inputs.js.map +1 -0
- package/dist/rules/kernel-boundary.d.ts +37 -0
- package/dist/rules/kernel-boundary.d.ts.map +1 -0
- package/dist/rules/kernel-boundary.js +195 -0
- package/dist/rules/kernel-boundary.js.map +1 -0
- package/dist/rules/nul-bytes.d.ts +233 -0
- package/dist/rules/nul-bytes.d.ts.map +1 -0
- package/dist/rules/nul-bytes.js +332 -0
- package/dist/rules/nul-bytes.js.map +1 -0
- package/dist/rules/platform-surface.d.ts +479 -0
- package/dist/rules/platform-surface.d.ts.map +1 -0
- package/dist/rules/platform-surface.js +749 -0
- package/dist/rules/platform-surface.js.map +1 -0
- package/dist/rules/port-catches.d.ts +225 -0
- package/dist/rules/port-catches.d.ts.map +1 -0
- package/dist/rules/port-catches.js +1374 -0
- package/dist/rules/port-catches.js.map +1 -0
- package/dist/rules/port-shape.d.ts +213 -0
- package/dist/rules/port-shape.d.ts.map +1 -0
- package/dist/rules/port-shape.js +670 -0
- package/dist/rules/port-shape.js.map +1 -0
- package/dist/rules/queue-names.d.ts +108 -0
- package/dist/rules/queue-names.d.ts.map +1 -0
- package/dist/rules/queue-names.js +395 -0
- package/dist/rules/queue-names.js.map +1 -0
- package/dist/rules/singleton-identity.d.ts +205 -0
- package/dist/rules/singleton-identity.d.ts.map +1 -0
- package/dist/rules/singleton-identity.js +830 -0
- package/dist/rules/singleton-identity.js.map +1 -0
- package/dist/rules/subscribe-seam.d.ts +121 -0
- package/dist/rules/subscribe-seam.d.ts.map +1 -0
- package/dist/rules/subscribe-seam.js +594 -0
- package/dist/rules/subscribe-seam.js.map +1 -0
- package/dist/rules/transaction-context.d.ts +40 -0
- package/dist/rules/transaction-context.d.ts.map +1 -0
- package/dist/rules/transaction-context.js +294 -0
- package/dist/rules/transaction-context.js.map +1 -0
- package/package.json +59 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bundle-pairing.d.ts","sourceRoot":"","sources":["../../src/rules/bundle-pairing.ts"],"names":[],"mappings":"AAiHA,yEAAyE;AACzE,eAAO,MAAM,MAAM,qBAAqB,CAAC;AAEzC,MAAM,MAAM,wBAAwB,GAChC,yBAAyB,GACzB,cAAc,GACd,oBAAoB,GACpB,uBAAuB,CAAC;AAE5B,kFAAkF;AAClF,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,sEAAsE;IACtE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,4EAA4E;IAC5E,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAChD,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAC3C,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CAC7C;AAED,eAAO,MAAM,mBAAmB,EAAE,eAgBjC,CAAC;AAEF,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,OAAO,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC9C,8EAA8E;IAC9E,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,EAAE,CAAC,EAAE,eAAe,CAAC;CAC/B;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,wBAAwB,CAAC;IACxC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,iFAAiF;IACjF,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,gDAAgD;IAChD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,gEAAgE;IAChE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,QAAQ,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACnD,0DAA0D;IAC1D,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,yDAAyD;IACzD,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,0EAA0E;IAC1E,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,8EAA8E;IAC9E,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C;;;;;OAKG;IACH,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CAClC;AAED,8EAA8E;AAC9E,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,SAAS,gBAAgB,EAAE,GACnC,SAAS,MAAM,EAAE,CAQnB;AAaD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,kBAAkB,GAAG,mBAAmB,CAmHjF;AAED,kDAAkD;AAClD,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,wBAAwB,EAAE,MAAM,CAAC,CAgBvE,CAAC"}
|
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CI check — **a module that ships a bundle in any language ships one in every
|
|
3
|
+
* language the platform ships** (`specs/094-translation-boundary/`,
|
|
4
|
+
* `contracts/bundle-pairing-ratchet.md`).
|
|
5
|
+
*
|
|
6
|
+
* The owner's ruling of 2026-09-01, third surface: every module Endora
|
|
7
|
+
* implements ships an `en` bundle and a `pl` bundle, English being the default
|
|
8
|
+
* and the runtime fallback. It lands at **zero violations** — 62 of the 69
|
|
9
|
+
* registered modules ship both, 7 ship neither, none ships exactly one — and
|
|
10
|
+
* that is the argument for landing it, not against: the invariant is true today
|
|
11
|
+
* and nothing holds it there.
|
|
12
|
+
*
|
|
13
|
+
* ## The predicate is a conditional, and that is the whole design
|
|
14
|
+
*
|
|
15
|
+
* Not *"every module ships `pl.json`"*. Seven registered modules legitimately
|
|
16
|
+
* ship no bundle at all — a module with no user-facing strings owes none, and
|
|
17
|
+
* demanding one would produce seven empty files whose only effect is to make
|
|
18
|
+
* this check pass. The obligation attaches to the **first** bundle: once a
|
|
19
|
+
* module has strings, it has them in every shipped language.
|
|
20
|
+
*
|
|
21
|
+
* ## What already looks like the enforcer and is not
|
|
22
|
+
*
|
|
23
|
+
* `test/unit/_i18n/registered-bundles-shape.test.ts` is the file that appears to
|
|
24
|
+
* answer this, and it misses it twice — both times because the population is
|
|
25
|
+
* derived from the artefact under judgement, which is the family this repository
|
|
26
|
+
* spends its review effort on (issues #113, #244, #215):
|
|
27
|
+
*
|
|
28
|
+
* * its symmetry case read `if (!en || !pl) continue;`, so a module that drops
|
|
29
|
+
* `pl.json` was **skipped by the test whose subject is bundle symmetry**.
|
|
30
|
+
* That line is deleted in the merge request this check lands in: pairing is
|
|
31
|
+
* the precondition it rests on, and a skip whose reason has gone is worse
|
|
32
|
+
* than no skip at all;
|
|
33
|
+
* * its action-key case iterates `loaded.byLanguage` — the languages *that
|
|
34
|
+
* module happens to ship*. "Every shipped language" silently means the
|
|
35
|
+
* module's rather than the platform's, and the two readings are
|
|
36
|
+
* indistinguishable in prose.
|
|
37
|
+
*
|
|
38
|
+
* Neither is a bug in that file. It was written to answer key-level symmetry and
|
|
39
|
+
* it answers it; nothing answered file-level presence. This check is that, and
|
|
40
|
+
* it deliberately does **not** judge key-level symmetry — one rule, one
|
|
41
|
+
* instrument.
|
|
42
|
+
*
|
|
43
|
+
* ## The two derived sets
|
|
44
|
+
*
|
|
45
|
+
* **The languages** come from `SUPPORTED_LANGUAGES`, never from a literal list
|
|
46
|
+
* here (D-100). A third shipped language makes every two-bundle module a finding
|
|
47
|
+
* in the same run, which is the point of deriving it.
|
|
48
|
+
*
|
|
49
|
+
* **The modules** come from the generated manifest index, through
|
|
50
|
+
* `lib/module-roots.ts` and `lib/module-population.ts`, so a module that became a
|
|
51
|
+
* package is followed rather than dropped (issue #215). Each module's own
|
|
52
|
+
* directory is `dirname(manifestPath)` — the anchor the `_i18n` boot reconciler
|
|
53
|
+
* joins `bundlesDir` to, so this check reads the bundles the running platform
|
|
54
|
+
* reads and not a directory computed from a convention.
|
|
55
|
+
*
|
|
56
|
+
* **And the probe directory name is derived too.** A module that declares
|
|
57
|
+
* `i18n.bundlesDir` is read there. A module that declares none is probed at every
|
|
58
|
+
* directory name the *other* manifests declare — `i18n` today, whatever a module
|
|
59
|
+
* calls it tomorrow — because `undeclared-bundle-dir` is a finding about files
|
|
60
|
+
* that exist and are never read, and a check that spelled `'i18n'` into itself
|
|
61
|
+
* would answer for one convention and go quiet for the next.
|
|
62
|
+
*
|
|
63
|
+
* ## Findings
|
|
64
|
+
*
|
|
65
|
+
* * **`missing-language-bundle`** — a module shipping a bundle in one shipped
|
|
66
|
+
* language and not another. The centre.
|
|
67
|
+
* * **`empty-bundle`** — a bundle that parses to zero entries. It satisfies a
|
|
68
|
+
* presence test while translating nothing: the way around this check that
|
|
69
|
+
* would otherwise be one `echo '{}' >` away.
|
|
70
|
+
* * **`unparseable-bundle`** — a bundle that is not readable as
|
|
71
|
+
* `TranslationBundleEntriesSchema`. A **finding, not a skip**: the boot
|
|
72
|
+
* reconciler logs and skips it and the module renders raw keys, so a check
|
|
73
|
+
* that also skipped it would agree with the defect (issue #113).
|
|
74
|
+
* * **`undeclared-bundle-dir`** — bundle files on disk under a module whose
|
|
75
|
+
* manifest declares no `i18n.bundlesDir`, so nothing loads them. The inverse
|
|
76
|
+
* failure, and the pairing predicate still applies to what was found.
|
|
77
|
+
*
|
|
78
|
+
* **No ledger, deliberately.** Every finding is a module one file away from
|
|
79
|
+
* compliance, the remedy is available in the same merge request, and the
|
|
80
|
+
* population stands at zero. An entry could only license shipping a
|
|
81
|
+
* single-language module, which is the thing the ruling forbids.
|
|
82
|
+
*
|
|
83
|
+
* ## What it does not cover, stated rather than discovered later
|
|
84
|
+
*
|
|
85
|
+
* * **Key-level symmetry** between `en.json` and `pl.json` — that is
|
|
86
|
+
* `registered-bundles-shape.test.ts`' subject, and this check is the
|
|
87
|
+
* precondition it was missing.
|
|
88
|
+
* * **Whether a Polish sentence is a faithful translation.** Nothing static
|
|
89
|
+
* can.
|
|
90
|
+
* * **A bundle file named for a language the platform does not ship**
|
|
91
|
+
* (`de.json`). The loader throws `unsupported-language-file` on it at boot;
|
|
92
|
+
* it is out of this predicate's population and is not read.
|
|
93
|
+
* * **The storefront**, which has no module bundles: `MessageKey` is a closed
|
|
94
|
+
* union in one in-tree file and `Record<MessageKey, string>` is total, so
|
|
95
|
+
* `tsc` refuses a missing Polish string at compile time — stronger than any
|
|
96
|
+
* check here could be.
|
|
97
|
+
*
|
|
98
|
+
* ## One analysis, two hosts
|
|
99
|
+
*
|
|
100
|
+
* This file is the analysis. `backend/scripts/check-bundle-pairing.ts` hosts it
|
|
101
|
+
* over every module the generated index registers; `endora check` hosts it over
|
|
102
|
+
* the one module a package declares
|
|
103
|
+
* (`specs/101-endora-check/contracts/package-scope-layout.md` §6). Both hand in
|
|
104
|
+
* `modules` and `languages`, so neither re-derives the other's population — and
|
|
105
|
+
* the package-scope host declares `undeclared-bundle-dir` unevaluated, because
|
|
106
|
+
* the directory names it probes come from *peers'* manifests and a lone package
|
|
107
|
+
* has none.
|
|
108
|
+
*/
|
|
109
|
+
import { readFileSync, statSync } from 'node:fs';
|
|
110
|
+
import { join } from 'node:path';
|
|
111
|
+
import { TranslationBundleEntriesSchema } from '@endora-commerce/contracts';
|
|
112
|
+
/** The log prefix both hosts print under — one grammar, one spelling. */
|
|
113
|
+
export const PREFIX = '[bundle-pairing]';
|
|
114
|
+
export const nodeBundlePairingFs = {
|
|
115
|
+
isDirectory: (path) => {
|
|
116
|
+
try {
|
|
117
|
+
return statSync(path).isDirectory();
|
|
118
|
+
}
|
|
119
|
+
catch {
|
|
120
|
+
return false;
|
|
121
|
+
}
|
|
122
|
+
},
|
|
123
|
+
isFile: (path) => {
|
|
124
|
+
try {
|
|
125
|
+
return statSync(path).isFile();
|
|
126
|
+
}
|
|
127
|
+
catch {
|
|
128
|
+
return false;
|
|
129
|
+
}
|
|
130
|
+
},
|
|
131
|
+
readFile: (path) => readFileSync(path, 'utf8'),
|
|
132
|
+
};
|
|
133
|
+
/** The directory names the manifests themselves declare — never a literal. */
|
|
134
|
+
export function declaredBundleDirectories(modules) {
|
|
135
|
+
return [
|
|
136
|
+
...new Set(modules
|
|
137
|
+
.map((module) => module.bundlesDir)
|
|
138
|
+
.filter((dir) => dir !== null && dir.length > 0)),
|
|
139
|
+
].sort();
|
|
140
|
+
}
|
|
141
|
+
/** Where a module's bundles would be, declared first and probed otherwise. */
|
|
142
|
+
function candidateDirectories(module, declared) {
|
|
143
|
+
if (module.bundlesDir !== null && module.bundlesDir.length > 0) {
|
|
144
|
+
return [join(module.directory, module.bundlesDir)];
|
|
145
|
+
}
|
|
146
|
+
return declared.map((name) => join(module.directory, name));
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* The findings, over the modules and languages handed in.
|
|
150
|
+
*
|
|
151
|
+
* Pure but for the injected reader, so a red proof enters where a real run
|
|
152
|
+
* enters: a module tree on disk plus the index's own answer about which modules
|
|
153
|
+
* exist (issue #130). A fixture handing in a per-module classification would
|
|
154
|
+
* prove the reporter and leave the classifier — which is all of the analysis —
|
|
155
|
+
* unproven.
|
|
156
|
+
*/
|
|
157
|
+
export function checkBundlePairing(input) {
|
|
158
|
+
const fs = input.fs ?? nodeBundlePairingFs;
|
|
159
|
+
const declared = declaredBundleDirectories(input.modules);
|
|
160
|
+
const findings = [];
|
|
161
|
+
const filesRead = [];
|
|
162
|
+
const classified = [];
|
|
163
|
+
const shipping = [];
|
|
164
|
+
const shippingNothing = [];
|
|
165
|
+
for (const module of input.modules) {
|
|
166
|
+
classified.push(module.moduleId);
|
|
167
|
+
// The first candidate directory that actually holds a bundle. A module with
|
|
168
|
+
// a declared `bundlesDir` has exactly one; a module with none is probed at
|
|
169
|
+
// every name the other manifests use, which is what makes
|
|
170
|
+
// `undeclared-bundle-dir` reachable without a directory name written here.
|
|
171
|
+
let bundlesDirectory = null;
|
|
172
|
+
const present = new Map();
|
|
173
|
+
for (const candidate of candidateDirectories(module, declared)) {
|
|
174
|
+
if (!fs.isDirectory(candidate))
|
|
175
|
+
continue;
|
|
176
|
+
const found = new Map();
|
|
177
|
+
for (const language of input.languages) {
|
|
178
|
+
const file = join(candidate, `${language}.json`);
|
|
179
|
+
if (fs.isFile(file))
|
|
180
|
+
found.set(language, file);
|
|
181
|
+
}
|
|
182
|
+
if (found.size === 0)
|
|
183
|
+
continue;
|
|
184
|
+
bundlesDirectory = candidate;
|
|
185
|
+
for (const [language, file] of found)
|
|
186
|
+
present.set(language, file);
|
|
187
|
+
break;
|
|
188
|
+
}
|
|
189
|
+
if (bundlesDirectory === null) {
|
|
190
|
+
// § 1's conditional: a module with no user-facing strings owes nothing,
|
|
191
|
+
// and this is the branch that keeps the rule a conditional rather than a
|
|
192
|
+
// universal. Seven registered modules take it today.
|
|
193
|
+
shippingNothing.push(module.moduleId);
|
|
194
|
+
continue;
|
|
195
|
+
}
|
|
196
|
+
shipping.push(module.moduleId);
|
|
197
|
+
if (module.bundlesDir === null || module.bundlesDir.length === 0) {
|
|
198
|
+
findings.push({
|
|
199
|
+
kind: 'undeclared-bundle-dir',
|
|
200
|
+
moduleId: module.moduleId,
|
|
201
|
+
language: null,
|
|
202
|
+
path: bundlesDirectory,
|
|
203
|
+
detail: `bundle files are on disk but the manifest declares no \`i18n.bundlesDir\`, so ` +
|
|
204
|
+
`the boot reconciler never loads them and every key they hold renders raw`,
|
|
205
|
+
});
|
|
206
|
+
}
|
|
207
|
+
for (const language of input.languages) {
|
|
208
|
+
const file = present.get(language);
|
|
209
|
+
if (file === undefined) {
|
|
210
|
+
findings.push({
|
|
211
|
+
kind: 'missing-language-bundle',
|
|
212
|
+
moduleId: module.moduleId,
|
|
213
|
+
language,
|
|
214
|
+
path: join(bundlesDirectory, `${language}.json`),
|
|
215
|
+
detail: `the module ships ${[...present.keys()].sort().join(', ')} and not ${language}; ` +
|
|
216
|
+
`a reader whose language is ${language} gets this module's strings in another one`,
|
|
217
|
+
});
|
|
218
|
+
continue;
|
|
219
|
+
}
|
|
220
|
+
filesRead.push(file);
|
|
221
|
+
let parsed;
|
|
222
|
+
try {
|
|
223
|
+
parsed = JSON.parse(fs.readFile(file));
|
|
224
|
+
}
|
|
225
|
+
catch (error) {
|
|
226
|
+
findings.push({
|
|
227
|
+
kind: 'unparseable-bundle',
|
|
228
|
+
moduleId: module.moduleId,
|
|
229
|
+
language,
|
|
230
|
+
path: file,
|
|
231
|
+
detail: `not valid JSON (${error instanceof Error ? error.message : String(error)})`,
|
|
232
|
+
});
|
|
233
|
+
continue;
|
|
234
|
+
}
|
|
235
|
+
const validated = TranslationBundleEntriesSchema.safeParse(parsed);
|
|
236
|
+
if (!validated.success) {
|
|
237
|
+
findings.push({
|
|
238
|
+
kind: 'unparseable-bundle',
|
|
239
|
+
moduleId: module.moduleId,
|
|
240
|
+
language,
|
|
241
|
+
path: file,
|
|
242
|
+
detail: 'not readable as `TranslationBundleEntriesSchema` — entries must be a flat ' +
|
|
243
|
+
`{"a.b.c": "text"} map (${validated.error.issues[0]?.message ?? 'invalid shape'})`,
|
|
244
|
+
});
|
|
245
|
+
continue;
|
|
246
|
+
}
|
|
247
|
+
if (Object.keys(validated.data).length === 0) {
|
|
248
|
+
findings.push({
|
|
249
|
+
kind: 'empty-bundle',
|
|
250
|
+
moduleId: module.moduleId,
|
|
251
|
+
language,
|
|
252
|
+
path: file,
|
|
253
|
+
detail: 'parses to zero entries — it satisfies a presence test while translating nothing',
|
|
254
|
+
});
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
return {
|
|
259
|
+
findings,
|
|
260
|
+
filesRead,
|
|
261
|
+
classified,
|
|
262
|
+
shipping,
|
|
263
|
+
shippingNothing,
|
|
264
|
+
languagesProbed: shipping.length > 0 ? input.languages.length : 0,
|
|
265
|
+
};
|
|
266
|
+
}
|
|
267
|
+
/** The remedy paragraph, one per finding kind. */
|
|
268
|
+
export const REMEDIES = {
|
|
269
|
+
'missing-language-bundle': 'Every module Endora implements ships a bundle in every language the platform ships ' +
|
|
270
|
+
'(AGENTS.md § i18n, owner ruling of 2026-09-01). Author the strings in English and ' +
|
|
271
|
+
'translate them; a module with no user-facing strings ships no bundle at all, which is ' +
|
|
272
|
+
'the only exemption there is.',
|
|
273
|
+
'empty-bundle': 'Delete the file if the module has no strings — shipping none is legal and shipping an ' +
|
|
274
|
+
'empty one is a presence test passing over nothing. If it has strings, write them.',
|
|
275
|
+
'unparseable-bundle': 'The boot reconciler validates each bundle with `TranslationBundleEntriesSchema`, logs ' +
|
|
276
|
+
'and skips one that fails, and the module then renders raw keys with nothing reported. ' +
|
|
277
|
+
'Flatten the JSON to `{"a.b.c": "text"}`.',
|
|
278
|
+
'undeclared-bundle-dir': "Declare `i18n: { bundlesDir: '<dir>' }` in the module's `manifest.ts`. Until it is " +
|
|
279
|
+
'declared the files are read by nobody, which looks exactly like having no translations.',
|
|
280
|
+
};
|
|
281
|
+
//# sourceMappingURL=bundle-pairing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bundle-pairing.js","sourceRoot":"","sources":["../../src/rules/bundle-pairing.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Every TypeScript source under `dir`, with the rule's own prunes applied.
|
|
3
|
+
*
|
|
4
|
+
* Exported because the population is part of the rule: two hosts computing
|
|
5
|
+
* "which files this check reads" two ways is the shape that lets one of them go
|
|
6
|
+
* half-blind.
|
|
7
|
+
*/
|
|
8
|
+
export declare function collectChannelSources(dir: string, out?: string[]): string[];
|
|
9
|
+
export interface Violation {
|
|
10
|
+
file: string;
|
|
11
|
+
line: number;
|
|
12
|
+
kind: 'raw-channel-header' | 'request-channel-reresolution' | 'settings-channel-literal' | 'invented-channel-identifier';
|
|
13
|
+
detail: string;
|
|
14
|
+
}
|
|
15
|
+
/** Analyze one source string. Exported for the unit self-test. */
|
|
16
|
+
export declare function analyzeSource(source: string, relPath: string): Violation[];
|
|
17
|
+
//# sourceMappingURL=channel-resolution.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"channel-resolution.d.ts","sourceRoot":"","sources":["../../src/rules/channel-resolution.ts"],"names":[],"mappings":"AA+LA;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,GAAE,MAAM,EAAO,GAAG,MAAM,EAAE,CAW/E;AAyBD,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EACA,oBAAoB,GACpB,8BAA8B,GAC9B,0BAA0B,GAC1B,6BAA6B,CAAC;IAClC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,kEAAkE;AAClE,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,CAoL1E"}
|