@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":"platform-surface.js","sourceRoot":"","sources":["../../src/rules/platform-surface.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A `catch` around a gated-port call may not swallow the module's presence
|
|
3
|
+
* answer (issue #84; the deferred half of feature 072's D-43).
|
|
4
|
+
*
|
|
5
|
+
* `lazyPort` resolves the name inside the *forwarded call*, so a switched-off
|
|
6
|
+
* owner surfaces as `ModuleDisabledError` at the call site rather than at wiring
|
|
7
|
+
* time. A `try { … } catch { return null }` around one therefore converts
|
|
8
|
+
* fail-closed into fail-open, and does it silently: the caller answers "no data"
|
|
9
|
+
* where the truthful answer is "this capability is off", and the operator reads a
|
|
10
|
+
* working screen that is lying to them.
|
|
11
|
+
*
|
|
12
|
+
* **The whole of the reasoning is in `backend/scripts/check-port-catches.ts`**,
|
|
13
|
+
* the repository-scope host, whose header it has always been: the three shapes
|
|
14
|
+
* the measured 51 sites turned out to be, the two spellings one predicate judges,
|
|
15
|
+
* the `async`-boundary bound, the alias fixpoint and its exclusions, the one hop
|
|
16
|
+
* backwards through a class, the scoping correction of issue #278, what counts as
|
|
17
|
+
* handling it, and `OWNER LOCKED`. None of it is restated here.
|
|
18
|
+
*
|
|
19
|
+
* `specs/101-endora-check/contracts/package-scope-layout.md` §6 — one analysis,
|
|
20
|
+
* two hosts.
|
|
21
|
+
*
|
|
22
|
+
* ## Two things changed on the way across, and both are load-bearing
|
|
23
|
+
*
|
|
24
|
+
* **1. `portOwners` can be seeded from outside, and it had to be.** The owner map
|
|
25
|
+
* is built from `di.providePort` in a file that declares `registerModule` — the
|
|
26
|
+
* **owner's** file. `isProxyCall` then admits `lazyPort(ctx, '<name>')` only when
|
|
27
|
+
* `<name>` is already in that map. So over one package in isolation a consumer's
|
|
28
|
+
* resolutions seed nothing and every `catch` around one reads clean.
|
|
29
|
+
*
|
|
30
|
+
* Measured over this repository's module packages before the seam existed: the
|
|
31
|
+
* whole-tree run attributes **226** sites to 41 packages, the same analysis over
|
|
32
|
+
* each package alone finds **19** in 10 packages, and **31 of the 41 lose every
|
|
33
|
+
* site** — including all four PIM connectors and `product_feeds`, which is to say
|
|
34
|
+
* the integration-heavy modules the package host exists for: the ones whose ports
|
|
35
|
+
* are almost all somebody else's. {@link PortCatchInput.peerOwners} is what a
|
|
36
|
+
* package-scope host supplies instead, out of its installed and workspace peers.
|
|
37
|
+
*
|
|
38
|
+
* **2. {@link resolvedPortNames} is new, and it is the denominator.** A rule that
|
|
39
|
+
* reads an owner map has to say how much of it it managed to resolve, or a short
|
|
40
|
+
* map is indistinguishable from a clean tree — and the estate's idiom for *"I
|
|
41
|
+
* read n of the m things I needed"* is the `read:` line's `sources=` token, not a
|
|
42
|
+
* sentence. This collects every `lazyPort(ctx, '<literal>')` name the sources
|
|
43
|
+
* write **whether or not an owner is known**, so a host can print
|
|
44
|
+
* `sources=owners:<attributed>/<written>` and refuse when the numerator is zero.
|
|
45
|
+
* Nothing else in the analysis can supply it: everywhere else, an unowned name is
|
|
46
|
+
* already gone.
|
|
47
|
+
*
|
|
48
|
+
* **3. `checkPortCatches`'s ledger argument loses its default.** A host states
|
|
49
|
+
* which exemptions it is judging against; `PORT_CATCHES_TO_DRAIN` is this
|
|
50
|
+
* repository's and stays in `backend/scripts/`, where `check:lock-claims`'
|
|
51
|
+
* population can also still see it.
|
|
52
|
+
*/
|
|
53
|
+
import { type HostResidentModules } from '../lib/module-population.js';
|
|
54
|
+
import { lockedOwners, type ManifestActivationInput } from '../lib/switchable-modules.js';
|
|
55
|
+
/**
|
|
56
|
+
* Sites where absorbing the presence answer is, today, the least-wrong
|
|
57
|
+
* behaviour — with the reason, and the question that would retire the entry.
|
|
58
|
+
*
|
|
59
|
+
* Keyed `<path under src/>:<port or alias>` rather than by line, so moving code
|
|
60
|
+
* inside a file does not invalidate an entry and re-opening the hole does not
|
|
61
|
+
* silently inherit one. **Two-way**, in the idiom of
|
|
62
|
+
* `WIRING_RESOLUTIONS_TO_DRAIN` and `KERNEL_MODULE_IMPORTS_TO_DRAIN`: an
|
|
63
|
+
* unledgered violation fails the build, and a ledger entry that no longer
|
|
64
|
+
* describes a violation fails it too.
|
|
65
|
+
*
|
|
66
|
+
* There are three shapes here, and each entry says which it is. A fourth
|
|
67
|
+
* answer, `OWNER LOCKED`, is **derived** and never written here — see the
|
|
68
|
+
* header.
|
|
69
|
+
*
|
|
70
|
+
* - **After the fact** — the guarded call runs after the operation it belongs
|
|
71
|
+
* to has already committed, so re-throwing would report a failure for work
|
|
72
|
+
* that succeeded. That is a design question about compensating actions, not
|
|
73
|
+
* a `catch` somebody forgot to narrow.
|
|
74
|
+
* - **A degrade the owner should be answering** — the caller genuinely wants
|
|
75
|
+
* "this capability is not here" and is right to keep serving without it
|
|
76
|
+
* (Constitution XVII: a module that is off behaves as if never installed).
|
|
77
|
+
* `rethrowIfModuleDisabled` would be the *wrong* fix — it would 503 a
|
|
78
|
+
* surface that has a defined behaviour without the module. The answer
|
|
79
|
+
* belongs in the port's or the contribution's return type, or in a
|
|
80
|
+
* `nonBindingDependencies` entry; until it is there, the `catch` is the only
|
|
81
|
+
* place it is written down, and the entry names what would move it.
|
|
82
|
+
* - **Boot hook** — the presence answer is decided at the top of the hook
|
|
83
|
+
* (D-62), so what the `catch` absorbs is an ordinary failure with no caller
|
|
84
|
+
* to report to. These entries are not drainable and say so.
|
|
85
|
+
*
|
|
86
|
+
* A fourth entry stood here until issue #278 and was **deleted rather than
|
|
87
|
+
* drained**: `modules/pim_ergonode/backend.ts:handle` described a boot hook
|
|
88
|
+
* whose `catch` reached no gated port at all. The site was in the population
|
|
89
|
+
* only because a **function parameter** named `handle`, declared in
|
|
90
|
+
* `services/import/import-context.ts`, was aliased across the whole module, and
|
|
91
|
+
* `backend.ts` reads an unrelated cradle property of that spelling. Scoping the
|
|
92
|
+
* parameter to its declaring file took the site out, which is what makes the
|
|
93
|
+
* entry stale. Its neighbour under `product_feeds` is unaffected and stays:
|
|
94
|
+
* that one reaches a real port.
|
|
95
|
+
*/
|
|
96
|
+
/**
|
|
97
|
+
* Which spelling of "absorb this error" the site is.
|
|
98
|
+
*
|
|
99
|
+
* `statement` is `try { … } catch { … }`; `promise` is `.catch(handler)` and
|
|
100
|
+
* `.then(onOk, onErr)`. They are judged identically and kept apart only in the
|
|
101
|
+
* ledger key — see {@link keyOf}.
|
|
102
|
+
*/
|
|
103
|
+
export type PortCatchForm = 'statement' | 'promise';
|
|
104
|
+
export interface PortCatch {
|
|
105
|
+
/** Path under `src/`, POSIX separators. */
|
|
106
|
+
readonly file: string;
|
|
107
|
+
readonly line: number;
|
|
108
|
+
readonly moduleId: string;
|
|
109
|
+
/** The alias or port name the guarded expression called through. */
|
|
110
|
+
readonly port: string;
|
|
111
|
+
readonly form: PortCatchForm;
|
|
112
|
+
readonly handled: boolean;
|
|
113
|
+
/** The gated port names that alias carries — what the `catch` could swallow. */
|
|
114
|
+
readonly gates: readonly string[];
|
|
115
|
+
/** The modules owning those gates — whose locks an `OWNER LOCKED` site rests on. */
|
|
116
|
+
readonly gateOwners: readonly string[];
|
|
117
|
+
/** Every one of those gates is owned by a `nonDeactivatable` module (D-63). */
|
|
118
|
+
readonly ownerLocked: boolean;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* `<file>:<port>` — the ledger key, and the identity of a site, with `#promise`
|
|
122
|
+
* appended for the promise form.
|
|
123
|
+
*
|
|
124
|
+
* The key is deliberately not line-based: moving code inside a file must not
|
|
125
|
+
* invalidate an entry, and re-opening the hole must not silently inherit one.
|
|
126
|
+
* The discriminator is the same rule one granularity across. A file can hold
|
|
127
|
+
* both spellings over one alias — `product_feeds` does — and a single key would
|
|
128
|
+
* let an entry written for the `try` absorb a `.catch` added later, which is
|
|
129
|
+
* the inheritance the line-independence was chosen to avoid. It is a **suffix**
|
|
130
|
+
* so that every entry standing when the promise form landed keeps its key.
|
|
131
|
+
*/
|
|
132
|
+
export declare function keyOf(found: PortCatch): string;
|
|
133
|
+
/**
|
|
134
|
+
* The part of a module manifest this check reads: which modules the platform
|
|
135
|
+
* refuses to switch off (D-63). Structural rather than `ModuleManifest`, so a
|
|
136
|
+
* fixture can supply the two fields the derivation looks at and nothing else —
|
|
137
|
+
* and so the derivation itself stays inside the analysis, where a red proof can
|
|
138
|
+
* reach it.
|
|
139
|
+
*
|
|
140
|
+
* Both the shape and `lockedOwners` come from `lib/switchable-modules.ts`, which
|
|
141
|
+
* `check-entry-presence` reads as well (D-68): the same lock decides whether a
|
|
142
|
+
* `catch` is `OWNER LOCKED` and whether a module's boot hooks are in that
|
|
143
|
+
* check's population, so an owner who withdraws one re-reds both on the same
|
|
144
|
+
* run. Re-exported here because this check's own tests and its inventory entry
|
|
145
|
+
* name it.
|
|
146
|
+
*/
|
|
147
|
+
export type { ManifestActivationInput };
|
|
148
|
+
export { lockedOwners };
|
|
149
|
+
export interface PortCatchInput {
|
|
150
|
+
/** Every source under `src/`, keyed by path relative to `src/`. */
|
|
151
|
+
readonly sources: ReadonlyMap<string, string>;
|
|
152
|
+
/**
|
|
153
|
+
* The deployment's manifests. Omitted means *nothing is locked*: a caller
|
|
154
|
+
* that supplies none gets the pre-D-63 classification, which is the safe
|
|
155
|
+
* default — a site is only ever retired by a lock somebody declared.
|
|
156
|
+
*/
|
|
157
|
+
readonly manifests?: readonly ManifestActivationInput[];
|
|
158
|
+
/**
|
|
159
|
+
* Directories whose files belong to a module no `modules/<id>/` segment names
|
|
160
|
+
* — `lib/module-roots.ts`' `hostResidentModules` (feature 080, T040b).
|
|
161
|
+
*
|
|
162
|
+
* Omitting it does not merely lose a module: every file of one attributes to
|
|
163
|
+
* `ROOT`, so its ports read as a composition root's and every `catch` around
|
|
164
|
+
* one of them is judged under the wrong scope.
|
|
165
|
+
*/
|
|
166
|
+
readonly hostResidentModules?: HostResidentModules | undefined;
|
|
167
|
+
/**
|
|
168
|
+
* Gated port name → owning module id, contributed by sources **outside**
|
|
169
|
+
* `sources` — a package-scope host's installed and workspace peers.
|
|
170
|
+
*
|
|
171
|
+
* Omitting it is correct for a host whose walk already holds every owner (this
|
|
172
|
+
* repository's does). For a host whose walk holds one package it is not
|
|
173
|
+
* optional in any useful sense: without it `isProxyCall` admits nothing a
|
|
174
|
+
* consumer wrote, and the rule reports `violations=0` over the packages it
|
|
175
|
+
* exists to judge. The measurement is in this file's header.
|
|
176
|
+
*
|
|
177
|
+
* Entries here are **merged under** the walk's own, so a package that provides
|
|
178
|
+
* a port and also resolves it keeps its own answer.
|
|
179
|
+
*/
|
|
180
|
+
readonly peerOwners?: ReadonlyMap<string, string> | undefined;
|
|
181
|
+
}
|
|
182
|
+
/** Every `try` and every promise-form rejection handler that reaches a gated port. */
|
|
183
|
+
export declare function findPortCatches(input: PortCatchInput): PortCatch[];
|
|
184
|
+
export interface CheckResult {
|
|
185
|
+
readonly total: number;
|
|
186
|
+
readonly violations: readonly PortCatch[];
|
|
187
|
+
readonly ledgered: readonly PortCatch[];
|
|
188
|
+
/** Sites retired by D-63: every gate they carry has a locked owner. */
|
|
189
|
+
readonly ownerLocked: readonly PortCatch[];
|
|
190
|
+
/** Ledger keys that no longer describe a violation — the staleness half. */
|
|
191
|
+
readonly stale: readonly string[];
|
|
192
|
+
/**
|
|
193
|
+
* Every promise-form rejection handler the walk read, whether or not it
|
|
194
|
+
* reaches a port. Zero over a real tree means the recogniser is blind, not
|
|
195
|
+
* that the tree is clean — the CLI exits 2 on it.
|
|
196
|
+
*/
|
|
197
|
+
readonly rejectionHandlerSites: number;
|
|
198
|
+
}
|
|
199
|
+
export declare function checkPortCatches(input: PortCatchInput, ledger: Readonly<Record<string, string>>): CheckResult;
|
|
200
|
+
/**
|
|
201
|
+
* Every source this rule reads under `roots`.
|
|
202
|
+
*
|
|
203
|
+
* One spelling, both hosts: the repository host supplies its source roots and the
|
|
204
|
+
* package host supplies one package's, and neither gets to differ about which
|
|
205
|
+
* files are in the population.
|
|
206
|
+
*/
|
|
207
|
+
export declare function collectPortCatchFiles(roots: readonly string[], out?: string[]): string[];
|
|
208
|
+
/**
|
|
209
|
+
* Every gated-port name the sources **write**, owned or not — the denominator.
|
|
210
|
+
*
|
|
211
|
+
* This is the one thing the rest of the analysis structurally cannot report. A
|
|
212
|
+
* `lazyPort(ctx, '<name>')` whose `<name>` is in no owner map never becomes a
|
|
213
|
+
* site, never becomes an alias and never becomes a finding: it disappears, and
|
|
214
|
+
* the disappearance is indistinguishable from a package that resolves nothing.
|
|
215
|
+
* So the count is taken here, before the owner map is consulted at all, and a
|
|
216
|
+
* host prints `sources=owners:<attributed>/<written>` from it.
|
|
217
|
+
*
|
|
218
|
+
* Deliberately **not** gated on `portOwners`, and deliberately blind to whether
|
|
219
|
+
* the name is really a port: what a host needs is *how many names this package
|
|
220
|
+
* asked me to attribute*, and every `lazyPort` literal is one of those. A
|
|
221
|
+
* non-literal name is not counted — it cannot be attributed by anyone, so
|
|
222
|
+
* counting it would make the denominator permanently unreachable.
|
|
223
|
+
*/
|
|
224
|
+
export declare function resolvedPortNames(sources: ReadonlyMap<string, string>): ReadonlySet<string>;
|
|
225
|
+
//# sourceMappingURL=port-catches.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"port-catches.d.ts","sourceRoot":"","sources":["../../src/rules/port-catches.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AAOH,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EACL,YAAY,EACZ,KAAK,uBAAuB,EAC7B,MAAM,8BAA8B,CAAC;AAiKtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG,SAAS,CAAC;AAEpD,MAAM,WAAW,SAAS;IACxB,2CAA2C;IAC3C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,oEAAoE;IACpE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,gFAAgF;IAChF,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,oFAAoF;IACpF,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,+EAA+E;IAC/E,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;CAC/B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAG9C;AAED;;;;;;;;;;;;;GAaG;AACH,YAAY,EAAE,uBAAuB,EAAE,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,CAAC;AAExB,MAAM,WAAW,cAAc;IAC7B,mEAAmE;IACnE,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9C;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,uBAAuB,EAAE,CAAC;IACxD;;;;;;;OAOG;IACH,QAAQ,CAAC,mBAAmB,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;IAC/D;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;CAC/D;AA8/BD,sFAAsF;AACtF,wBAAgB,eAAe,CAAC,KAAK,EAAE,cAAc,GAAG,SAAS,EAAE,CAElE;AAkMD,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,SAAS,SAAS,EAAE,CAAC;IAC1C,QAAQ,CAAC,QAAQ,EAAE,SAAS,SAAS,EAAE,CAAC;IACxC,uEAAuE;IACvE,QAAQ,CAAC,WAAW,EAAE,SAAS,SAAS,EAAE,CAAC;IAC3C,4EAA4E;IAC5E,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC;;;;OAIG;IACH,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;CACxC;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,cAAc,EACrB,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GACvC,WAAW,CAiBb;AAGD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,EAAE,GAAG,GAAE,MAAM,EAAO,GAAG,MAAM,EAAE,CAc5F;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,CAqB3F"}
|