@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":"command-coverage.js","sourceRoot":"","sources":["../../src/rules/command-coverage.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { type HostResidentModules } from '../lib/module-population.js';
|
|
2
|
+
export interface ContainerImportFinding {
|
|
3
|
+
readonly file: string;
|
|
4
|
+
readonly moduleId: string;
|
|
5
|
+
readonly specifier: string;
|
|
6
|
+
readonly line: number;
|
|
7
|
+
}
|
|
8
|
+
/** `awilix` itself or any of its subpaths — and nothing whose name merely starts with it. */
|
|
9
|
+
export declare function isContainerSpecifier(specifier: string): boolean;
|
|
10
|
+
/**
|
|
11
|
+
* The owning module id of a source file, over every root a module can live in.
|
|
12
|
+
*
|
|
13
|
+
* Three shapes, in order. The two anchored regexes answer for the application's
|
|
14
|
+
* own trees — a deployment overlay first, then the core module tree — and both
|
|
15
|
+
* key on `/src/`, so they say nothing about a module that has become a
|
|
16
|
+
* **package** (feature 080, T040a). The third is `lib/module-population.ts`'
|
|
17
|
+
* `moduleIdOf`, the same segment reader the population floor uses, and it is
|
|
18
|
+
* what makes a path like `packages/modules/blog/src/services/x.ts` attribute to
|
|
19
|
+
* `blog` instead of to nobody.
|
|
20
|
+
*
|
|
21
|
+
* That fallback is not cosmetic. Without it a package's files are read by the
|
|
22
|
+
* walk, satisfy the floor, and are then attributed to `null` — which for every
|
|
23
|
+
* consumer here means *not a module*, so the check judges none of them and
|
|
24
|
+
* reports clean. That is issue #215's failure one layer in, and it is why
|
|
25
|
+
* `resolveModuleLayout` refuses a package root whose location the segment
|
|
26
|
+
* reader cannot attribute rather than letting it through unnamed.
|
|
27
|
+
*
|
|
28
|
+
* The fourth answer is `hostResident`, the map the layout derives from the
|
|
29
|
+
* manifest index for a module whose sources the host owns and whose directory
|
|
30
|
+
* therefore carries no `modules/<id>/` segment (feature 080, T040b). It is
|
|
31
|
+
* threaded from `main` rather than left to default, for exactly the reason the
|
|
32
|
+
* third shape exists: a file the walk reads and cannot name is a file this
|
|
33
|
+
* check judges as nobody's and reports clean about.
|
|
34
|
+
*/
|
|
35
|
+
export declare function moduleOf(file: string, hostResident?: HostResidentModules): string | null;
|
|
36
|
+
/**
|
|
37
|
+
* Every file the rule applies to, over the roots it is given.
|
|
38
|
+
*
|
|
39
|
+
* The roots are a **parameter and not a default** since feature 080's T040a:
|
|
40
|
+
* they are `resolveModuleLayout().moduleWalkRoots` — the application's own
|
|
41
|
+
* module trees, the deployment overlay tree, and every module that has become a
|
|
42
|
+
* workspace package. A default spelled here would be the one caller that keeps
|
|
43
|
+
* reading the old layout after the tree moves, which is the whole shape this
|
|
44
|
+
* repository has now repaired three times.
|
|
45
|
+
*
|
|
46
|
+
* Exported so the check's own test can assert the **real** tree is clean, not
|
|
47
|
+
* only that the analyzer can go red on a fixture. Both callers therefore agree
|
|
48
|
+
* on the scan scope by construction.
|
|
49
|
+
*/
|
|
50
|
+
export declare function collectModuleFiles(roots: readonly string[]): string[];
|
|
51
|
+
/**
|
|
52
|
+
* Every import of the container library in `source`.
|
|
53
|
+
*
|
|
54
|
+
* Covers the four ways a specifier reaches a module: `import … from`,
|
|
55
|
+
* `export … from`, `import(…)` and `require(…)`. A `import type { … }` is
|
|
56
|
+
* **also** a finding: it erases at runtime, but it is still a module reading
|
|
57
|
+
* the container's types instead of the kernel's, which is what the seam is for.
|
|
58
|
+
*/
|
|
59
|
+
export declare function analyzeSource(source: string, file: string, hostResident?: HostResidentModules): ContainerImportFinding[];
|
|
60
|
+
//# sourceMappingURL=container-imports.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"container-imports.d.ts","sourceRoot":"","sources":["../../src/rules/container-imports.ts"],"names":[],"mappings":"AAsCA,OAAO,EAGL,KAAK,mBAAmB,EACzB,MAAM,6BAA6B,CAAC;AAQrC,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,6FAA6F;AAC7F,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAE/D;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,QAAQ,CACtB,IAAI,EAAE,MAAM,EACZ,YAAY,GAAE,mBAA8C,GAC3D,MAAM,GAAG,IAAI,CAMf;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CAErE;AAgBD;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,YAAY,GAAE,mBAA8C,GAC3D,sBAAsB,EAAE,CAsC1B"}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CI check — no module imports the container library (feature 072, T041 / FR-032).
|
|
3
|
+
*
|
|
4
|
+
* A module sees exactly one kernel surface: `ModuleContext`. It spells the
|
|
5
|
+
* container's vocabulary through `ctx.asClass` / `ctx.asFunction` / `ctx.asValue`
|
|
6
|
+
* and resolves through `ctx.cradle()`, so `awilix` stays confined to
|
|
7
|
+
* `src/kernel/`. Two things depend on that:
|
|
8
|
+
*
|
|
9
|
+
* 1. **The container stays swappable.** 66 modules importing `awilix`
|
|
10
|
+
* directly is 66 files to touch the day it is replaced, and the seam stops
|
|
11
|
+
* being a seam.
|
|
12
|
+
* 2. **The lifecycle gating of Constitution XVII holds by construction.** A
|
|
13
|
+
* module that reaches the container directly can register a route, a
|
|
14
|
+
* worker or a subscriber that never passes through `defineModuleRoutes`,
|
|
15
|
+
* `defineModuleWorker` or `subscribeForModule` — and nothing else in the
|
|
16
|
+
* tree would notice.
|
|
17
|
+
*
|
|
18
|
+
* Scope: every file under `src/modules/` and under a deployment overlay's
|
|
19
|
+
* `src/apps/<deployment>/modules/` (feature 057 — an overlay module is an
|
|
20
|
+
* ordinary lifecycle participant and the same rule applies to it).
|
|
21
|
+
*
|
|
22
|
+
* Static analysis through the TypeScript compiler API, so a mention in a
|
|
23
|
+
* comment or a string is not a finding. Sits alongside
|
|
24
|
+
* `check-kernel-boundary.ts` and `check-entry-scope.ts`.
|
|
25
|
+
*
|
|
26
|
+
* ## One analysis, two hosts
|
|
27
|
+
*
|
|
28
|
+
* This file is the analysis. `backend/scripts/check-container-imports.ts` hosts
|
|
29
|
+
* it over this repository's module tree; `endora check` hosts it over one module
|
|
30
|
+
* package (`specs/101-endora-check/contracts/package-scope-layout.md` §6). The
|
|
31
|
+
* roots are a parameter in both, so neither host re-derives the other's
|
|
32
|
+
* population.
|
|
33
|
+
*/
|
|
34
|
+
import { existsSync, readdirSync, statSync } from 'node:fs';
|
|
35
|
+
import { join } from 'node:path';
|
|
36
|
+
import ts from 'typescript';
|
|
37
|
+
import { moduleIdOf, NO_HOST_RESIDENT_MODULES, } from '../lib/module-population.js';
|
|
38
|
+
/**
|
|
39
|
+
* The container library. Matched on the package name, so a deep import
|
|
40
|
+
* (`awilix/lib/…`) is caught too.
|
|
41
|
+
*/
|
|
42
|
+
const FORBIDDEN_PACKAGE = 'awilix';
|
|
43
|
+
/** `awilix` itself or any of its subpaths — and nothing whose name merely starts with it. */
|
|
44
|
+
export function isContainerSpecifier(specifier) {
|
|
45
|
+
return specifier === FORBIDDEN_PACKAGE || specifier.startsWith(`${FORBIDDEN_PACKAGE}/`);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* The owning module id of a source file, over every root a module can live in.
|
|
49
|
+
*
|
|
50
|
+
* Three shapes, in order. The two anchored regexes answer for the application's
|
|
51
|
+
* own trees — a deployment overlay first, then the core module tree — and both
|
|
52
|
+
* key on `/src/`, so they say nothing about a module that has become a
|
|
53
|
+
* **package** (feature 080, T040a). The third is `lib/module-population.ts`'
|
|
54
|
+
* `moduleIdOf`, the same segment reader the population floor uses, and it is
|
|
55
|
+
* what makes a path like `packages/modules/blog/src/services/x.ts` attribute to
|
|
56
|
+
* `blog` instead of to nobody.
|
|
57
|
+
*
|
|
58
|
+
* That fallback is not cosmetic. Without it a package's files are read by the
|
|
59
|
+
* walk, satisfy the floor, and are then attributed to `null` — which for every
|
|
60
|
+
* consumer here means *not a module*, so the check judges none of them and
|
|
61
|
+
* reports clean. That is issue #215's failure one layer in, and it is why
|
|
62
|
+
* `resolveModuleLayout` refuses a package root whose location the segment
|
|
63
|
+
* reader cannot attribute rather than letting it through unnamed.
|
|
64
|
+
*
|
|
65
|
+
* The fourth answer is `hostResident`, the map the layout derives from the
|
|
66
|
+
* manifest index for a module whose sources the host owns and whose directory
|
|
67
|
+
* therefore carries no `modules/<id>/` segment (feature 080, T040b). It is
|
|
68
|
+
* threaded from `main` rather than left to default, for exactly the reason the
|
|
69
|
+
* third shape exists: a file the walk reads and cannot name is a file this
|
|
70
|
+
* check judges as nobody's and reports clean about.
|
|
71
|
+
*/
|
|
72
|
+
export function moduleOf(file, hostResident = NO_HOST_RESIDENT_MODULES) {
|
|
73
|
+
const overlay = /\/src\/apps\/[^/]+\/modules\/([^/]+)\//.exec(file);
|
|
74
|
+
if (overlay)
|
|
75
|
+
return overlay[1] ?? null;
|
|
76
|
+
const core = /\/src\/modules\/([^/]+)\//.exec(file);
|
|
77
|
+
if (core)
|
|
78
|
+
return core[1] ?? null;
|
|
79
|
+
return moduleIdOf(file, hostResident);
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Every file the rule applies to, over the roots it is given.
|
|
83
|
+
*
|
|
84
|
+
* The roots are a **parameter and not a default** since feature 080's T040a:
|
|
85
|
+
* they are `resolveModuleLayout().moduleWalkRoots` — the application's own
|
|
86
|
+
* module trees, the deployment overlay tree, and every module that has become a
|
|
87
|
+
* workspace package. A default spelled here would be the one caller that keeps
|
|
88
|
+
* reading the old layout after the tree moves, which is the whole shape this
|
|
89
|
+
* repository has now repaired three times.
|
|
90
|
+
*
|
|
91
|
+
* Exported so the check's own test can assert the **real** tree is clean, not
|
|
92
|
+
* only that the analyzer can go red on a fixture. Both callers therefore agree
|
|
93
|
+
* on the scan scope by construction.
|
|
94
|
+
*/
|
|
95
|
+
export function collectModuleFiles(roots) {
|
|
96
|
+
return roots.flatMap((root) => walk(root));
|
|
97
|
+
}
|
|
98
|
+
function walk(dir, out = []) {
|
|
99
|
+
if (!existsSync(dir))
|
|
100
|
+
return out;
|
|
101
|
+
for (const name of readdirSync(dir)) {
|
|
102
|
+
const full = join(dir, name);
|
|
103
|
+
if (statSync(full).isDirectory()) {
|
|
104
|
+
if (name === 'node_modules' || name === 'dist')
|
|
105
|
+
continue;
|
|
106
|
+
walk(full, out);
|
|
107
|
+
}
|
|
108
|
+
else if (name.endsWith('.ts')) {
|
|
109
|
+
out.push(full);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
return out;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Every import of the container library in `source`.
|
|
116
|
+
*
|
|
117
|
+
* Covers the four ways a specifier reaches a module: `import … from`,
|
|
118
|
+
* `export … from`, `import(…)` and `require(…)`. A `import type { … }` is
|
|
119
|
+
* **also** a finding: it erases at runtime, but it is still a module reading
|
|
120
|
+
* the container's types instead of the kernel's, which is what the seam is for.
|
|
121
|
+
*/
|
|
122
|
+
export function analyzeSource(source, file, hostResident = NO_HOST_RESIDENT_MODULES) {
|
|
123
|
+
const moduleId = moduleOf(file, hostResident);
|
|
124
|
+
if (moduleId === null)
|
|
125
|
+
return [];
|
|
126
|
+
const sf = ts.createSourceFile(file, source, ts.ScriptTarget.Latest, true);
|
|
127
|
+
const findings = [];
|
|
128
|
+
const record = (specifier) => {
|
|
129
|
+
if (!isContainerSpecifier(specifier.text))
|
|
130
|
+
return;
|
|
131
|
+
findings.push({
|
|
132
|
+
file,
|
|
133
|
+
moduleId,
|
|
134
|
+
specifier: specifier.text,
|
|
135
|
+
line: sf.getLineAndCharacterOfPosition(specifier.getStart(sf)).line + 1,
|
|
136
|
+
});
|
|
137
|
+
};
|
|
138
|
+
const visit = (node) => {
|
|
139
|
+
if ((ts.isImportDeclaration(node) || ts.isExportDeclaration(node)) &&
|
|
140
|
+
node.moduleSpecifier &&
|
|
141
|
+
ts.isStringLiteral(node.moduleSpecifier)) {
|
|
142
|
+
record(node.moduleSpecifier);
|
|
143
|
+
}
|
|
144
|
+
if (ts.isCallExpression(node)) {
|
|
145
|
+
const callee = node.expression;
|
|
146
|
+
const isDynamicImport = callee.kind === ts.SyntaxKind.ImportKeyword;
|
|
147
|
+
const isRequire = ts.isIdentifier(callee) && callee.text === 'require';
|
|
148
|
+
const [first] = node.arguments;
|
|
149
|
+
if ((isDynamicImport || isRequire) && first && ts.isStringLiteral(first)) {
|
|
150
|
+
record(first);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
node.forEachChild(visit);
|
|
154
|
+
};
|
|
155
|
+
sf.forEachChild(visit);
|
|
156
|
+
return findings;
|
|
157
|
+
}
|
|
158
|
+
//# sourceMappingURL=container-imports.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"container-imports.js","sourceRoot":"","sources":["../../src/rules/container-imports.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
import ts from 'typescript';
|
|
2
|
+
export type DefaultLanguageProseFindingKind = 'non-english-default' | 'polish-default-behind-a-prop' | 'unclassifiable-literal';
|
|
3
|
+
/**
|
|
4
|
+
* Polish diacritics — `scripts/check-language.sh`'s own `pattern`, character for
|
|
5
|
+
* character, so the two instruments cannot come to disagree about what a Polish
|
|
6
|
+
* letter is. `ó` is in it although it is shared with Icelandic and Spanish:
|
|
7
|
+
* dropping it would make `'Potwierdzenie zamówienia'` invisible, which is a
|
|
8
|
+
* larger hole than the two English currency labels it costs.
|
|
9
|
+
*/
|
|
10
|
+
export declare const POLISH_DIACRITICS = "\u0105\u0104\u0107\u0106\u0119\u0118\u0142\u0141\u0144\u0143\u00F3\u00D3\u015B\u015A\u017A\u0179\u017C\u017B";
|
|
11
|
+
/**
|
|
12
|
+
* Polish function words, for the prose that carries no diacritic.
|
|
13
|
+
*
|
|
14
|
+
* Function words only, and deliberately: a domain vocabulary would be a
|
|
15
|
+
* population defined by the presence of the words somebody thought to enumerate
|
|
16
|
+
* (issue #244). Every entry is a form that is not also an English word — `pod`,
|
|
17
|
+
* `ten`, `to`, `do`, `on`, `z` and `we` are all excluded for that reason, and
|
|
18
|
+
* their absence is why `'Data wystawienia'` is one of the blind spots § 1.3
|
|
19
|
+
* declares. The exclusions are measured rather than assumed, twice:
|
|
20
|
+
*
|
|
21
|
+
* * **`we`** (Polish "in") was in the list for one run and reported five
|
|
22
|
+
* English sentences, `'…and "we do not want files" is not a business
|
|
23
|
+
* decision'` among them.
|
|
24
|
+
* * **`w`** (Polish "in") is the single most useful Polish function word and is
|
|
25
|
+
* out for a different reason: it is **one letter**, and a one-letter token is
|
|
26
|
+
* not a word in a tree full of SQL aliases and XML namespaces. Measured: it
|
|
27
|
+
* found two real sites (`'Faktura wystawiona w trybie offline.'` and
|
|
28
|
+
* `'Numer w KSeF'`, both diacritic-free Polish) and eight wrong ones — a
|
|
29
|
+
* `select w.id, w.code …` join alias and seven `http://www.w3.org/…`
|
|
30
|
+
* signature algorithm URIs. Its absence is the second half of § 1.3's
|
|
31
|
+
* declared bound, and the two sites it costs are Polish legal artefacts a
|
|
32
|
+
* ledger entry would keep either way.
|
|
33
|
+
*
|
|
34
|
+
* So the stopword pass keeps {@link proseTokens}' floor: a token is a word when
|
|
35
|
+
* it has two letters.
|
|
36
|
+
*/
|
|
37
|
+
export declare const POLISH_STOPWORDS: readonly string[];
|
|
38
|
+
/**
|
|
39
|
+
* Polish proper nouns that stay Polish inside English prose — the list
|
|
40
|
+
* `scripts/check-language.sh` carries, blanked before the detector runs for the
|
|
41
|
+
* same reason it blanks them: an English sentence routinely names a Polish
|
|
42
|
+
* institution, and translating the name would make it wrong rather than more
|
|
43
|
+
* English.
|
|
44
|
+
*
|
|
45
|
+
* Held to the shell list, in both directions, by the companion test. Matched
|
|
46
|
+
* **case-sensitively and as a whole phrase**, exactly as the shell does, so
|
|
47
|
+
* `'Metoda płatności'` — an invoice label with a lower-case second word — is
|
|
48
|
+
* still judged while the feature name `Metoda Płatności` is not.
|
|
49
|
+
*/
|
|
50
|
+
export declare const POLISH_PROPER_NOUNS: readonly string[];
|
|
51
|
+
/**
|
|
52
|
+
* Property names whose value declares which language the enclosing object is
|
|
53
|
+
* written in — the `language-declaring-object` exemption.
|
|
54
|
+
*
|
|
55
|
+
* A vocabulary and not a derivation, because there is nothing in the tree that
|
|
56
|
+
* declares it; it is kept to the four spellings that mean exactly this, and the
|
|
57
|
+
* reason it cannot be widened to "a sibling holding a language code" is in the
|
|
58
|
+
* header: a seed row's `entryCode: 'en-US'` is the row's subject.
|
|
59
|
+
*/
|
|
60
|
+
export declare const LANGUAGE_DECLARING_FIELDS: readonly string[];
|
|
61
|
+
/** The languages a detector exists for. Polish, and § 1.3 declares the bound. */
|
|
62
|
+
export declare const DETECTED_LANGUAGES: readonly string[];
|
|
63
|
+
/** How a literal is placed against the per-language structures around it. */
|
|
64
|
+
export type StructurePlacement = 'language-keyed-property' | 'language-declaring-object' | 'single-language-file' | 'outside' | 'unclassifiable';
|
|
65
|
+
export interface ProseSite {
|
|
66
|
+
/** The file, as `layout.keyOf` spells it. */
|
|
67
|
+
readonly file: string;
|
|
68
|
+
readonly line: number;
|
|
69
|
+
/** The literal's own text, with template placeholders collapsed. */
|
|
70
|
+
readonly text: string;
|
|
71
|
+
/** The language the detector answered. */
|
|
72
|
+
readonly language: string;
|
|
73
|
+
readonly placement: StructurePlacement;
|
|
74
|
+
readonly kind: DefaultLanguageProseFindingKind;
|
|
75
|
+
}
|
|
76
|
+
export interface DefaultLanguageProseInput {
|
|
77
|
+
/** File key → source text. The top of the analysis (issue #130). */
|
|
78
|
+
readonly sources: ReadonlyMap<string, string>;
|
|
79
|
+
/** The platform's shipped languages — `SUPPORTED_LANGUAGES` in a real run. */
|
|
80
|
+
readonly languages: readonly string[];
|
|
81
|
+
}
|
|
82
|
+
export interface DefaultLanguageProseResult {
|
|
83
|
+
/** Every non-English prose literal outside a per-language structure. */
|
|
84
|
+
readonly findings: readonly ProseSite[];
|
|
85
|
+
/** Findings no ledger entry answers for. */
|
|
86
|
+
readonly violations: readonly ProseSite[];
|
|
87
|
+
/** Findings an entry answers for. */
|
|
88
|
+
readonly ledgered: readonly ProseSite[];
|
|
89
|
+
/** Ledger keys that no longer describe a finding. */
|
|
90
|
+
readonly stale: readonly string[];
|
|
91
|
+
/** Entries filed under a module that does not own the file they name. */
|
|
92
|
+
readonly misfiled: readonly string[];
|
|
93
|
+
/** Every string or template literal the walk classified — the `sites` count. */
|
|
94
|
+
readonly classified: number;
|
|
95
|
+
}
|
|
96
|
+
/** The word tokens a literal holds — letters only, so a placeholder splits. */
|
|
97
|
+
export declare function proseTokens(text: string): string[];
|
|
98
|
+
/**
|
|
99
|
+
* Whether the literal is prose at all.
|
|
100
|
+
*
|
|
101
|
+
* Two word tokens, or one in the prop-default position — see the header: there
|
|
102
|
+
* the position establishes that the string is a label a human reads, which is
|
|
103
|
+
* what the token count otherwise has to infer.
|
|
104
|
+
*/
|
|
105
|
+
export declare function isProse(text: string, inPropDefault?: boolean): boolean;
|
|
106
|
+
/** The proper nouns removed, so a citation is not read as prose. */
|
|
107
|
+
export declare function blankProperNouns(text: string): string;
|
|
108
|
+
/** Whether the literal holds a Polish function word. */
|
|
109
|
+
export declare function hasPolishStopword(text: string): boolean;
|
|
110
|
+
/**
|
|
111
|
+
* The non-English language this literal is in, or `null`.
|
|
112
|
+
*
|
|
113
|
+
* `languages` gates the answer: a detector for a language the platform does not
|
|
114
|
+
* ship would report a finding nobody can act on.
|
|
115
|
+
*/
|
|
116
|
+
export declare function detectLanguage(text: string, languages: readonly string[]): string | null;
|
|
117
|
+
/** `pl-PL` → `pl`, and `PL` → `pl`. Case and region folded, nothing else. */
|
|
118
|
+
export declare function primarySubtag(code: string): string;
|
|
119
|
+
/** Every name a file declares as an export, for the `single-language-file` shape. */
|
|
120
|
+
export declare function declaredExportNames(sf: ts.SourceFile): string[];
|
|
121
|
+
/**
|
|
122
|
+
* Whether the file's own declared subject is one language — § 1.2's third shape.
|
|
123
|
+
*
|
|
124
|
+
* The evidence is a language **code** in a declared export name. It deliberately
|
|
125
|
+
* does not fire on `POLISH_TRANSLATION_SEED`, which is a language *name*: that
|
|
126
|
+
* file is exempt through `language-declaring-object` instead, from the
|
|
127
|
+
* `languageCode: 'pl-PL'` its rows carry, which is the structural answer and
|
|
128
|
+
* needs no mapping from a code to an English word.
|
|
129
|
+
*/
|
|
130
|
+
export declare function isSingleLanguageFile(sf: ts.SourceFile, languages: readonly string[]): boolean;
|
|
131
|
+
/**
|
|
132
|
+
* Where the literal sits relative to the per-language structures enclosing it.
|
|
133
|
+
*
|
|
134
|
+
* A computed key anywhere on the path is `unclassifiable` and **not** a skip
|
|
135
|
+
* (issue #113): `{ [language]: 'Przesyłka wysłana' }` may or may not be a
|
|
136
|
+
* per-language map, and treating it as exempt is the direction that agrees with
|
|
137
|
+
* the defect.
|
|
138
|
+
*/
|
|
139
|
+
export declare function placementOf(node: ts.Node, languages: readonly string[], singleLanguageFile: boolean): StructurePlacement;
|
|
140
|
+
export interface FileAnalysis {
|
|
141
|
+
readonly sites: readonly ProseSite[];
|
|
142
|
+
/** Every literal node this file offered the classifier. */
|
|
143
|
+
readonly classified: number;
|
|
144
|
+
}
|
|
145
|
+
/** Every non-English prose literal in one file, and how many it classified. */
|
|
146
|
+
export declare function analyzeSource(file: string, source: string, languages: readonly string[]): FileAnalysis;
|
|
147
|
+
/** One shard's declared entries, plus the module it is filed under. */
|
|
148
|
+
export interface LedgerShard {
|
|
149
|
+
readonly moduleId: string;
|
|
150
|
+
readonly entries: Readonly<Record<string, string>>;
|
|
151
|
+
}
|
|
152
|
+
/** The digest half of a ledger key — never a line (§ 2.1). */
|
|
153
|
+
export declare function literalDigest(text: string): string;
|
|
154
|
+
/** `<file>:<digest>`, so an insertion above the site does not red it. */
|
|
155
|
+
export declare function ledgerKey(site: Pick<ProseSite, 'file' | 'text'>): string;
|
|
156
|
+
/**
|
|
157
|
+
* The findings, over the sources and shipped languages handed in.
|
|
158
|
+
*
|
|
159
|
+
* Pure: a red proof enters here, over **source text**, which is where a real run
|
|
160
|
+
* enters (issue #130). A fixture handing in a classified literal would prove the
|
|
161
|
+
* reporter and leave the parser, the position filter, the detector and the whole
|
|
162
|
+
* structure analysis unproven.
|
|
163
|
+
*/
|
|
164
|
+
export declare function checkDefaultLanguageProse(input: DefaultLanguageProseInput, shards?: readonly LedgerShard[], moduleOf?: (file: string) => string | null): DefaultLanguageProseResult;
|
|
165
|
+
/** Directories a module walk never descends into. */
|
|
166
|
+
/**
|
|
167
|
+
* Directory names this rule's walk prunes wherever they occur under its root.
|
|
168
|
+
*
|
|
169
|
+
* `migrations` is the one that is a *rule* rather than a convenience, and its
|
|
170
|
+
* reason is in this file's header: an applied migration cannot be edited, so a
|
|
171
|
+
* ledger entry over a literal in one would never drain.
|
|
172
|
+
*/
|
|
173
|
+
export declare const PRUNED_DIRECTORIES: readonly string[];
|
|
174
|
+
/**
|
|
175
|
+
* Whether a file is in this rule's population — the **one** membership
|
|
176
|
+
* decision, asked by the walk and by anything that needs to know what the walk
|
|
177
|
+
* would open.
|
|
178
|
+
*
|
|
179
|
+
* It is one function called from two places on purpose, in the idiom
|
|
180
|
+
* `command-coverage.ts` states: while the prune the walk does for speed and the
|
|
181
|
+
* rule the population states were two expressions of one predicate, one could go
|
|
182
|
+
* missing without the other noticing. The second caller is `endora check`'s
|
|
183
|
+
* package-scope floor, which has to know that a declared `./migrations` layer is
|
|
184
|
+
* **not** expected of this rule — otherwise a package that publishes migrations
|
|
185
|
+
* reports a short walk for a layer the rule excludes by design.
|
|
186
|
+
*/
|
|
187
|
+
export declare function isScannedPath(absolutePath: string, root: string): boolean;
|
|
188
|
+
/**
|
|
189
|
+
* Every TypeScript source under `dir`, with the rule's own prunes applied.
|
|
190
|
+
*
|
|
191
|
+
* Exported because the population is part of the rule: two hosts computing
|
|
192
|
+
* "which files this check reads" two ways is the shape that lets one of them go
|
|
193
|
+
* half-blind.
|
|
194
|
+
*/
|
|
195
|
+
export declare function collectProseSources(dir: string, out?: string[]): string[];
|
|
196
|
+
/**
|
|
197
|
+
* Every shard in `directory`, loaded.
|
|
198
|
+
*
|
|
199
|
+
* Rejects rather than returning an empty list when the directory is missing or a
|
|
200
|
+
* shard fails to import: both are "read nothing", and the CLI turns the
|
|
201
|
+
* rejection into exit 2.
|
|
202
|
+
*/
|
|
203
|
+
export declare function loadLedgerShards(directory: string): Promise<LedgerShard[]>;
|
|
204
|
+
/**
|
|
205
|
+
* The remedy paragraph, one per finding kind.
|
|
206
|
+
*
|
|
207
|
+
* Exported because the remedy is part of the rule and not part of a host: an
|
|
208
|
+
* author outside this checkout reads the same sentence this repository's run
|
|
209
|
+
* prints, and a second wording would be a second answer to "what do I do".
|
|
210
|
+
*/
|
|
211
|
+
export declare const REMEDIES: Readonly<Record<DefaultLanguageProseFindingKind, string>>;
|
|
212
|
+
//# sourceMappingURL=default-language-prose.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default-language-prose.d.ts","sourceRoot":"","sources":["../../src/rules/default-language-prose.ts"],"names":[],"mappings":"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"}
|