@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,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The small text helpers the emitters share.
|
|
3
|
+
*
|
|
4
|
+
* They exist so a value the author typed is quoted **once**, in one place: a
|
|
5
|
+
* label carrying an apostrophe, a description carrying a backslash, and a
|
|
6
|
+
* reason carrying a newline are all things an author writes and a naive
|
|
7
|
+
* `'${value}'` turns into a file that does not parse.
|
|
8
|
+
*/
|
|
9
|
+
/** A single-quoted TypeScript string literal, escaped. */
|
|
10
|
+
export function quote(value) {
|
|
11
|
+
return `'${value.replace(/\\/g, '\\\\').replace(/'/g, "\\'").replace(/\n/g, '\\n')}'`;
|
|
12
|
+
}
|
|
13
|
+
/** A JSON object rendered as a flat two-space-indented map, keys in the given order. */
|
|
14
|
+
export function flatJson(entries) {
|
|
15
|
+
const body = entries.map(([key, value]) => ` ${JSON.stringify(key)}: ${JSON.stringify(value)}`);
|
|
16
|
+
return `{\n${body.join(',\n')}\n}\n`;
|
|
17
|
+
}
|
|
18
|
+
/** `..`, `../..`, … — the path from a package directory back to the checkout root. */
|
|
19
|
+
export function rootPrefixFor(depth) {
|
|
20
|
+
return new Array(depth).fill('..').join('/');
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=text.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text.js","sourceRoot":"","sources":["../../src/new-module/text.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,0DAA0D;AAC1D,MAAM,UAAU,KAAK,CAAC,KAAa;IACjC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC;AACxF,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,QAAQ,CAAC,OAA+C;IACtE,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACjG,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AACvC,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/** What the rendering needs to know about the copy. */
|
|
2
|
+
export interface StorefrontDockerInput {
|
|
3
|
+
/** The rewritten manifest's `engines.node`, if it declares one. */
|
|
4
|
+
readonly enginesNode: string | undefined;
|
|
5
|
+
/** The rewritten manifest's `packageManager`, if it pins one. */
|
|
6
|
+
readonly packageManager: string | undefined;
|
|
7
|
+
/** Whether the scaffold writes an `.npmrc` (`--registry`). */
|
|
8
|
+
readonly npmrc: boolean;
|
|
9
|
+
}
|
|
10
|
+
export declare function storefrontDockerfile(input: StorefrontDockerInput): string;
|
|
11
|
+
/**
|
|
12
|
+
* What the build context leaves out.
|
|
13
|
+
*
|
|
14
|
+
* `.env` first, and for a reason rather than tidiness: it holds this
|
|
15
|
+
* storefront's `REVALIDATE_SECRET`, and `COPY . .` would put it in a layer of an
|
|
16
|
+
* image that is pushed to a registry. The installed and built trees are the
|
|
17
|
+
* image's own to produce; a host's would shadow them.
|
|
18
|
+
*/
|
|
19
|
+
export declare const STOREFRONT_DOCKERIGNORE: string;
|
|
20
|
+
//# sourceMappingURL=dockerfile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dockerfile.d.ts","sourceRoot":"","sources":["../../src/new-storefront/dockerfile.ts"],"names":[],"mappings":"AAqCA,uDAAuD;AACvD,MAAM,WAAW,qBAAqB;IACpC,mEAAmE;IACnE,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,iEAAiE;IACjE,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,8DAA8D;IAC9D,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,qBAAqB,GAAG,MAAM,CAyEzE;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB,QAYpB,CAAC"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The scaffolded storefront's `Dockerfile` and `.dockerignore`, rendered for the
|
|
3
|
+
* tree `endora new storefront` writes (`specs/136-open-source-publication/` plan
|
|
4
|
+
* W7.4, D-274 clause 6).
|
|
5
|
+
*
|
|
6
|
+
* ## Why they are rendered rather than copied
|
|
7
|
+
*
|
|
8
|
+
* The reference storefront's own `Dockerfile` builds from **this repository's
|
|
9
|
+
* root**: it runs `scripts/collect-workspace-manifests.sh` to find the workspace
|
|
10
|
+
* members, copies `packages/` to build them, and filters the install to the
|
|
11
|
+
* storefront's slice of a monorepo. A scaffolded storefront is a tree of its own
|
|
12
|
+
* (D-195) whose `@endora-commerce/*` dependencies arrive built from a registry,
|
|
13
|
+
* so none of that exists there — measured on 2026-09-28, `docker build` of a
|
|
14
|
+
* fresh scaffold stopped at `cannot open scripts/collect-workspace-manifests.sh`.
|
|
15
|
+
* The copy was a Dockerfile for a tree the client does not have.
|
|
16
|
+
*
|
|
17
|
+
* ## What is derived, and from where
|
|
18
|
+
*
|
|
19
|
+
* The build arguments are `../lib/instance-build-inputs.js`'s, through the same
|
|
20
|
+
* two emitters the instance's own image examples use (`layer-independence.md`
|
|
21
|
+
* R3.8), so a fifth spelling of a build input cannot arrive here. The base image
|
|
22
|
+
* and the package manager are the rewritten manifest's `engines.node` and
|
|
23
|
+
* `packageManager` — the values the scaffold already copies from the checkout
|
|
24
|
+
* rather than invents (FR-023).
|
|
25
|
+
*
|
|
26
|
+
* The run stage mirrors the reference's: the storefront's `next.config.js`
|
|
27
|
+
* traces the standalone output from the directory **above** the application, so
|
|
28
|
+
* the tree is built one level down, at `/app/storefront`, and the server lands at
|
|
29
|
+
* `.next/standalone/storefront/server.js` whatever the client called the
|
|
30
|
+
* directory.
|
|
31
|
+
*/
|
|
32
|
+
import { argDeclarations, buildInvocation, corepack, nodeImage } from '../new-instance/deploy.js';
|
|
33
|
+
import { TOKEN_VARIABLE } from './npmrc.js';
|
|
34
|
+
/** The BuildKit secret the install reads the registry token from (D-274 clause 2.4). */
|
|
35
|
+
const TOKEN_SECRET = TOKEN_VARIABLE.toLowerCase();
|
|
36
|
+
export function storefrontDockerfile(input) {
|
|
37
|
+
// An absent range is a digit-free one to `nodeImage`, which falls back to the
|
|
38
|
+
// running interpreter's major rather than to a literal written here.
|
|
39
|
+
const base = nodeImage(input.enginesNode ?? '');
|
|
40
|
+
const invocation = buildInvocation('storefront', 'Dockerfile');
|
|
41
|
+
return `${[
|
|
42
|
+
// 1.10 for `RUN --mount=type=secret,…,env=`, which the private-registry
|
|
43
|
+
// install below uses.
|
|
44
|
+
'# syntax=docker/dockerfile:1.10',
|
|
45
|
+
'# The image for this storefront: `next build`, served by its standalone server.',
|
|
46
|
+
'# Copy it, change what you need, own it.',
|
|
47
|
+
'#',
|
|
48
|
+
'# Build from the root of this storefront:',
|
|
49
|
+
...(input.npmrc
|
|
50
|
+
? [
|
|
51
|
+
...invocation.slice(0, -1),
|
|
52
|
+
`# --secret id=${TOKEN_SECRET},env=${TOKEN_VARIABLE} \\`,
|
|
53
|
+
invocation.at(-1),
|
|
54
|
+
]
|
|
55
|
+
: invocation),
|
|
56
|
+
'#',
|
|
57
|
+
'# THE NEXT_PUBLIC_* VALUES ARE INLINED AT BUILD TIME. The API origin and this',
|
|
58
|
+
'# shop\'s own public origin (every canonical link, the sitemap and robots.txt)',
|
|
59
|
+
'# are compiled into the bundle, so no container environment can correct them',
|
|
60
|
+
'# afterwards: a wrong one is a rebuild, not a redeploy. What the server reads at',
|
|
61
|
+
'# RUNTIME — BACKEND_BASE_URL, REVALIDATE_SECRET — comes from the container',
|
|
62
|
+
'# environment, never from `.env`, which `.dockerignore` keeps out of the image.',
|
|
63
|
+
...(input.npmrc
|
|
64
|
+
? [
|
|
65
|
+
'#',
|
|
66
|
+
`# \`.npmrc\` names your registry and reads its token from ${TOKEN_VARIABLE} at`,
|
|
67
|
+
'# install time. The install below receives it as a BuildKit secret, which',
|
|
68
|
+
'# exists for that one RUN and is in no layer. Never pass it as a build',
|
|
69
|
+
'# argument: an ARG is readable in `docker history` by anyone who can pull',
|
|
70
|
+
'# the image.',
|
|
71
|
+
]
|
|
72
|
+
: []),
|
|
73
|
+
'',
|
|
74
|
+
`FROM ${base} AS base`,
|
|
75
|
+
'ENV PNPM_HOME=/pnpm',
|
|
76
|
+
'ENV PATH="$PNPM_HOME:$PATH"',
|
|
77
|
+
...corepack(input.packageManager),
|
|
78
|
+
'# One level down: `next.config.js` traces the standalone output from the',
|
|
79
|
+
'# directory above this one.',
|
|
80
|
+
'WORKDIR /app/storefront',
|
|
81
|
+
'',
|
|
82
|
+
'FROM base AS build',
|
|
83
|
+
'# The lockfile is one of these on purpose: `--frozen-lockfile` below refuses to',
|
|
84
|
+
'# resolve a range, so an image is built from the versions you committed and',
|
|
85
|
+
'# never from whatever the registry had that morning. `pnpm install` writes it;',
|
|
86
|
+
'# commit it.',
|
|
87
|
+
'COPY package.json pnpm-lock.yaml ./',
|
|
88
|
+
...(input.npmrc ? ['COPY .npmrc ./'] : []),
|
|
89
|
+
input.npmrc
|
|
90
|
+
? `RUN --mount=type=secret,id=${TOKEN_SECRET},env=${TOKEN_VARIABLE} pnpm install --frozen-lockfile`
|
|
91
|
+
: 'RUN pnpm install --frozen-lockfile',
|
|
92
|
+
'',
|
|
93
|
+
'COPY . .',
|
|
94
|
+
...argDeclarations('storefront'),
|
|
95
|
+
'ENV NEXT_TELEMETRY_DISABLED=1',
|
|
96
|
+
'# The storefront\'s own build command — themes, `next build`, the theme check —',
|
|
97
|
+
'# and not a second spelling of it.',
|
|
98
|
+
'RUN pnpm run build',
|
|
99
|
+
'',
|
|
100
|
+
'FROM base AS run',
|
|
101
|
+
'ENV NODE_ENV=production NEXT_TELEMETRY_DISABLED=1 PORT=3000 HOSTNAME=0.0.0.0',
|
|
102
|
+
'WORKDIR /app',
|
|
103
|
+
'COPY --from=build /app/storefront/.next/standalone ./',
|
|
104
|
+
'COPY --from=build /app/storefront/.next/static ./storefront/.next/static',
|
|
105
|
+
'COPY --from=build /app/storefront/public ./storefront/public',
|
|
106
|
+
'EXPOSE 3000',
|
|
107
|
+
'CMD ["node", "storefront/server.js"]',
|
|
108
|
+
].join('\n')}\n`;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* What the build context leaves out.
|
|
112
|
+
*
|
|
113
|
+
* `.env` first, and for a reason rather than tidiness: it holds this
|
|
114
|
+
* storefront's `REVALIDATE_SECRET`, and `COPY . .` would put it in a layer of an
|
|
115
|
+
* image that is pushed to a registry. The installed and built trees are the
|
|
116
|
+
* image's own to produce; a host's would shadow them.
|
|
117
|
+
*/
|
|
118
|
+
export const STOREFRONT_DOCKERIGNORE = `${[
|
|
119
|
+
'# The build context `docker build` sends. See Dockerfile.',
|
|
120
|
+
'.env',
|
|
121
|
+
'.env.*',
|
|
122
|
+
'!.env.example',
|
|
123
|
+
'**/node_modules',
|
|
124
|
+
'**/.next',
|
|
125
|
+
'**/.git',
|
|
126
|
+
'test-results/',
|
|
127
|
+
'playwright-report/',
|
|
128
|
+
'blob-report/',
|
|
129
|
+
'.playwright/',
|
|
130
|
+
].join('\n')}\n`;
|
|
131
|
+
//# sourceMappingURL=dockerfile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dockerfile.js","sourceRoot":"","sources":["../../src/new-storefront/dockerfile.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAClG,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,wFAAwF;AACxF,MAAM,YAAY,GAAG,cAAc,CAAC,WAAW,EAAE,CAAC;AAYlD,MAAM,UAAU,oBAAoB,CAAC,KAA4B;IAC/D,8EAA8E;IAC9E,qEAAqE;IACrE,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;IAChD,MAAM,UAAU,GAAG,eAAe,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;IAC/D,OAAO,GAAG;QACR,wEAAwE;QACxE,sBAAsB;QACtB,iCAAiC;QACjC,iFAAiF;QACjF,0CAA0C;QAC1C,GAAG;QACH,2CAA2C;QAC3C,GAAG,CAAC,KAAK,CAAC,KAAK;YACb,CAAC,CAAC;gBACE,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC1B,qBAAqB,YAAY,QAAQ,cAAc,KAAK;gBAC5D,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE;aACnB;YACH,CAAC,CAAC,UAAU,CAAC;QACf,GAAG;QACH,+EAA+E;QAC/E,gFAAgF;QAChF,8EAA8E;QAC9E,kFAAkF;QAClF,4EAA4E;QAC5E,iFAAiF;QACjF,GAAG,CAAC,KAAK,CAAC,KAAK;YACb,CAAC,CAAC;gBACE,GAAG;gBACH,6DAA6D,cAAc,KAAK;gBAChF,2EAA2E;gBAC3E,wEAAwE;gBACxE,2EAA2E;gBAC3E,cAAc;aACf;YACH,CAAC,CAAC,EAAE,CAAC;QACP,EAAE;QACF,QAAQ,IAAI,UAAU;QACtB,qBAAqB;QACrB,6BAA6B;QAC7B,GAAG,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC;QACjC,0EAA0E;QAC1E,6BAA6B;QAC7B,yBAAyB;QACzB,EAAE;QACF,oBAAoB;QACpB,iFAAiF;QACjF,6EAA6E;QAC7E,gFAAgF;QAChF,cAAc;QACd,qCAAqC;QACrC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1C,KAAK,CAAC,KAAK;YACT,CAAC,CAAC,8BAA8B,YAAY,QAAQ,cAAc,iCAAiC;YACnG,CAAC,CAAC,oCAAoC;QACxC,EAAE;QACF,UAAU;QACV,GAAG,eAAe,CAAC,YAAY,CAAC;QAChC,+BAA+B;QAC/B,iFAAiF;QACjF,oCAAoC;QACpC,oBAAoB;QACpB,EAAE;QACF,kBAAkB;QAClB,8EAA8E;QAC9E,cAAc;QACd,uDAAuD;QACvD,0EAA0E;QAC1E,8DAA8D;QAC9D,aAAa;QACb,sCAAsC;KACvC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACnB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG;IACxC,2DAA2D;IAC3D,MAAM;IACN,QAAQ;IACR,eAAe;IACf,iBAAiB;IACjB,UAAU;IACV,SAAS;IACT,eAAe;IACf,oBAAoB;IACpB,cAAc;IACd,cAAc;CACf,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The scaffolded storefront's `.gitignore`, rendered for the tree
|
|
3
|
+
* `endora new storefront` writes.
|
|
4
|
+
*
|
|
5
|
+
* The reference storefront's own `.gitignore` was written for a directory
|
|
6
|
+
* **inside this repository**, whose root `.gitignore` already covers `.env`, the
|
|
7
|
+
* installed trees and the build output — so it names none of them. A scaffolded
|
|
8
|
+
* storefront is a repository of its own (D-195), and the same run writes
|
|
9
|
+
* `REVALIDATE_SECRET`, the bearer token of the public `app/api/revalidate`
|
|
10
|
+
* route, into `.env`: copied unchanged, that file let the client's first
|
|
11
|
+
* `git add .` commit the secret. The rendered `.dockerignore` already kept it
|
|
12
|
+
* out of the image; this keeps it out of the history.
|
|
13
|
+
*
|
|
14
|
+
* The reference file's own entries are kept verbatim, below the ones this
|
|
15
|
+
* scaffold adds, so an entry the storefront gains there reaches every future
|
|
16
|
+
* copy without this file being edited.
|
|
17
|
+
*/
|
|
18
|
+
/**
|
|
19
|
+
* @param reference the reference storefront's own `.gitignore`, or `null` when
|
|
20
|
+
* it has none.
|
|
21
|
+
*/
|
|
22
|
+
export declare function storefrontGitignore(reference: string | null): string;
|
|
23
|
+
//# sourceMappingURL=gitignore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gitignore.d.ts","sourceRoot":"","sources":["../../src/new-storefront/gitignore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAgBH;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAGpE"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The scaffolded storefront's `.gitignore`, rendered for the tree
|
|
3
|
+
* `endora new storefront` writes.
|
|
4
|
+
*
|
|
5
|
+
* The reference storefront's own `.gitignore` was written for a directory
|
|
6
|
+
* **inside this repository**, whose root `.gitignore` already covers `.env`, the
|
|
7
|
+
* installed trees and the build output — so it names none of them. A scaffolded
|
|
8
|
+
* storefront is a repository of its own (D-195), and the same run writes
|
|
9
|
+
* `REVALIDATE_SECRET`, the bearer token of the public `app/api/revalidate`
|
|
10
|
+
* route, into `.env`: copied unchanged, that file let the client's first
|
|
11
|
+
* `git add .` commit the secret. The rendered `.dockerignore` already kept it
|
|
12
|
+
* out of the image; this keeps it out of the history.
|
|
13
|
+
*
|
|
14
|
+
* The reference file's own entries are kept verbatim, below the ones this
|
|
15
|
+
* scaffold adds, so an entry the storefront gains there reaches every future
|
|
16
|
+
* copy without this file being edited.
|
|
17
|
+
*/
|
|
18
|
+
/** What every scaffolded storefront ignores, whatever the reference file says. */
|
|
19
|
+
const SCAFFOLD_ENTRIES = [
|
|
20
|
+
'# This storefront\'s own configuration. `.env` holds REVALIDATE_SECRET — the',
|
|
21
|
+
'# bearer token of `app/api/revalidate` — and must never be committed;',
|
|
22
|
+
'# `.env.example` is the file to commit.',
|
|
23
|
+
'.env',
|
|
24
|
+
'.env*.local',
|
|
25
|
+
'',
|
|
26
|
+
'# Installed and built trees.',
|
|
27
|
+
'node_modules/',
|
|
28
|
+
'.next/',
|
|
29
|
+
'*.tsbuildinfo',
|
|
30
|
+
];
|
|
31
|
+
/**
|
|
32
|
+
* @param reference the reference storefront's own `.gitignore`, or `null` when
|
|
33
|
+
* it has none.
|
|
34
|
+
*/
|
|
35
|
+
export function storefrontGitignore(reference) {
|
|
36
|
+
const own = reference === null ? '' : reference.replace(/\s+$/, '');
|
|
37
|
+
return `${[...SCAFFOLD_ENTRIES, ...(own === '' ? [] : ['', own])].join('\n')}\n`;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=gitignore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gitignore.js","sourceRoot":"","sources":["../../src/new-storefront/gitignore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,kFAAkF;AAClF,MAAM,gBAAgB,GAAsB;IAC1C,8EAA8E;IAC9E,uEAAuE;IACvE,yCAAyC;IACzC,MAAM;IACN,aAAa;IACb,EAAE;IACF,8BAA8B;IAC9B,eAAe;IACf,QAAQ;IACR,eAAe;CAChB,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,SAAwB;IAC1D,MAAM,GAAG,GAAG,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACpE,OAAO,GAAG,CAAC,GAAG,gBAAgB,EAAE,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACnF,CAAC"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { type EnvironmentInput } from '@endora-commerce/contracts';
|
|
2
|
+
import { type PromptIo } from '../inputs/prompt.js';
|
|
3
|
+
import { type ResolvedInput } from '../inputs/resolve.js';
|
|
4
|
+
import { StorefrontHostError, StorefrontInputError, type StorefrontReference } from './reference.js';
|
|
5
|
+
import { type StorefrontPlan } from './rewrite.js';
|
|
6
|
+
export interface NewStorefrontOptions {
|
|
7
|
+
/** Where to write. Required: this command has no default target. */
|
|
8
|
+
readonly dir?: string | undefined;
|
|
9
|
+
/** Report what would be written and what each rewrite becomes; write nothing. */
|
|
10
|
+
readonly dryRun?: boolean | undefined;
|
|
11
|
+
/**
|
|
12
|
+
* The registry the scaffolded storefront installs from.
|
|
13
|
+
*
|
|
14
|
+
* Absent writes no `.npmrc`, which is what a consumer of the public registry
|
|
15
|
+
* holds, and is deliberately the default so that the path this command takes
|
|
16
|
+
* unasked is the destination rather than the rehearsal.
|
|
17
|
+
*/
|
|
18
|
+
readonly registry?: string | undefined;
|
|
19
|
+
readonly cwd?: string | undefined;
|
|
20
|
+
/**
|
|
21
|
+
* Values supplied on the command line — tier 1, keyed by variable name.
|
|
22
|
+
*
|
|
23
|
+
* Keyed by the **variable**, not by the flag: `flagFor` derives the flag from
|
|
24
|
+
* the name, so a storefront that declares a variable this build has never
|
|
25
|
+
* heard of is still supplied by `--its-own-name` with nothing here to update.
|
|
26
|
+
*/
|
|
27
|
+
readonly inputs?: Readonly<Record<string, string | undefined>> | undefined;
|
|
28
|
+
/** Force the refusal even on a terminal, for reproducibility (R3.4). */
|
|
29
|
+
readonly nonInteractive?: boolean | undefined;
|
|
30
|
+
/** Where a prompt is asked. Injected so a test drives it without a pty. */
|
|
31
|
+
readonly promptIo?: PromptIo | undefined;
|
|
32
|
+
}
|
|
33
|
+
/** Raised when required inputs are missing and this run may not ask (R7.2). */
|
|
34
|
+
export declare class MissingInputsError extends Error {
|
|
35
|
+
readonly name = "MissingInputsError";
|
|
36
|
+
}
|
|
37
|
+
export interface NewStorefrontResult {
|
|
38
|
+
readonly reference: StorefrontReference;
|
|
39
|
+
readonly targetDir: string;
|
|
40
|
+
readonly plan: StorefrontPlan;
|
|
41
|
+
readonly dryRun: boolean;
|
|
42
|
+
readonly nextSteps: readonly string[];
|
|
43
|
+
/** Every input this run answered for, with where each answer came from. */
|
|
44
|
+
readonly resolved: readonly ResolvedInput[];
|
|
45
|
+
/** R2.1's one line, printed by the caller. */
|
|
46
|
+
readonly provenance: string;
|
|
47
|
+
/**
|
|
48
|
+
* Under `--dry-run`, what the run *would* have asked for and generated
|
|
49
|
+
* (R2.4). Empty otherwise, because a real run did it rather than planning it.
|
|
50
|
+
*/
|
|
51
|
+
readonly wouldPrompt: readonly string[];
|
|
52
|
+
readonly wouldGenerate: readonly string[];
|
|
53
|
+
/** Declared, in scope, and legitimately left unset — an optional nobody set. */
|
|
54
|
+
readonly unset: readonly string[];
|
|
55
|
+
}
|
|
56
|
+
export declare function runNewStorefront(options: NewStorefrontOptions): Promise<NewStorefrontResult>;
|
|
57
|
+
/**
|
|
58
|
+
* The flags this build accepts for the reference storefront's declared inputs,
|
|
59
|
+
* without their leading dashes.
|
|
60
|
+
*
|
|
61
|
+
* The argv layer calls this **before** it parses, so `parseArgs` keeps
|
|
62
|
+
* `strict: true` and an unrecognised flag stays a refusal
|
|
63
|
+
* (`cli-surface.md` §1). The alternative — parsing leniently for this one
|
|
64
|
+
* subcommand — would trade a typo'd `--next-public-api-base-ur` from a loud
|
|
65
|
+
* refusal into a silently unset required input, which is the whole class of
|
|
66
|
+
* failure this feature exists to remove.
|
|
67
|
+
*
|
|
68
|
+
* It is derived from the declaration rather than written down, so a storefront
|
|
69
|
+
* that declares a variable this build has never heard of is supplied by its own
|
|
70
|
+
* flag with nothing here to update (D-100).
|
|
71
|
+
*/
|
|
72
|
+
export declare function storefrontInputFlags(cwd: string): Promise<readonly string[]>;
|
|
73
|
+
/**
|
|
74
|
+
* The reference storefront's own declaration, scoped to the one member this
|
|
75
|
+
* command writes.
|
|
76
|
+
*
|
|
77
|
+
* Exported because a caller that has to *supply* these inputs needs the same
|
|
78
|
+
* population the command will *demand*, and deriving it twice is two answers
|
|
79
|
+
* waiting to disagree — which is exactly how the acceptance criterion came to
|
|
80
|
+
* invoke this command with none of them. The scoping is `planResolution`'s and
|
|
81
|
+
* is applied here so that the two cannot part company either: an input read only
|
|
82
|
+
* by the admin or only by the backend is out of this command's population, so it
|
|
83
|
+
* is out of a supplier's too.
|
|
84
|
+
*
|
|
85
|
+
* The requirement is deliberately **not** filtered here. `isRequiredGiven` reads
|
|
86
|
+
* a conditional requirement against the values a run has in hand, so which
|
|
87
|
+
* inputs are required is a property of the invocation rather than of the
|
|
88
|
+
* declaration, and answering it here would answer it for one invocation and be
|
|
89
|
+
* wrong for the next.
|
|
90
|
+
*/
|
|
91
|
+
export declare function storefrontDeclaredInputs(cwd: string): Promise<readonly EnvironmentInput[]>;
|
|
92
|
+
export { StorefrontHostError, StorefrontInputError };
|
|
93
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/new-storefront/index.ts"],"names":[],"mappings":"AAwCA,OAAO,EAAkB,KAAK,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAInF,OAAO,EAAmB,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAOL,KAAK,aAAa,EACnB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAML,mBAAmB,EACnB,oBAAoB,EACpB,KAAK,mBAAmB,EACzB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAkB,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnE,MAAM,WAAW,oBAAoB;IACnC,oEAAoE;IACpE,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,iFAAiF;IACjF,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACtC;;;;;;OAMG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC;;;;;;OAMG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,GAAG,SAAS,CAAC;IAC3E,wEAAwE;IACxE,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9C,2EAA2E;IAC3E,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CAC1C;AAED,+EAA+E;AAC/E,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C,SAAkB,IAAI,wBAAwB;CAC/C;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CAAC;IACxC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,2EAA2E;IAC3E,QAAQ,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE,CAAC;IAC5C,8CAA8C;IAC9C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B;;;OAGG;IACH,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,gFAAgF;IAChF,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAED,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,mBAAmB,CAAC,CA0G9B;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAElF;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,wBAAwB,CAC5C,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,SAAS,gBAAgB,EAAE,CAAC,CAItC;AAkKD,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,CAAC"}
|