create-mercato-app 0.7.1-develop.7150.1.c1941e0c22 → 0.7.1-develop.7152.1.a69e92f9c9
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/agentic/shared/ai/harness/cases.json +4 -2
- package/dist/agentic/guides/module-facts.json +828 -149
- package/dist/agentic/guides/module-facts.v2.json +828 -149
- package/dist/agentic/guides/modules/ai_assistant/index.md +1 -1
- package/dist/agentic/guides/modules/api_docs/index.md +1 -1
- package/dist/agentic/guides/modules/api_keys/index.md +1 -1
- package/dist/agentic/guides/modules/attachments/index.md +1 -1
- package/dist/agentic/guides/modules/audit_logs/index.md +1 -1
- package/dist/agentic/guides/modules/auth/index.md +1 -1
- package/dist/agentic/guides/modules/business_rules/index.md +1 -1
- package/dist/agentic/guides/modules/catalog/index.md +1 -1
- package/dist/agentic/guides/modules/channel_apns/index.md +1 -1
- package/dist/agentic/guides/modules/channel_discord/index.md +1 -1
- package/dist/agentic/guides/modules/channel_expo/index.md +1 -1
- package/dist/agentic/guides/modules/channel_fcm/index.md +1 -1
- package/dist/agentic/guides/modules/channel_gmail/index.md +1 -1
- package/dist/agentic/guides/modules/channel_imap/index.md +1 -1
- package/dist/agentic/guides/modules/channel_resend/acl-features.md +12 -0
- package/dist/agentic/guides/modules/channel_resend/contribution-resolutions.md +11 -0
- package/dist/agentic/guides/modules/channel_resend/di-registrations-rich.md +12 -0
- package/dist/agentic/guides/modules/channel_resend/exact-override-targets.md +16 -0
- package/dist/agentic/guides/modules/channel_resend/index.md +18 -0
- package/dist/agentic/guides/modules/channel_resend/owned-contract-module-metadata.md +11 -0
- package/dist/agentic/guides/modules/channel_resend/setup.md +11 -0
- package/dist/agentic/guides/modules/channel_resend/umes-contributions.md +11 -0
- package/dist/agentic/guides/modules/channel_ses/acl-features.md +12 -0
- package/dist/agentic/guides/modules/channel_ses/contribution-resolutions.md +11 -0
- package/dist/agentic/guides/modules/channel_ses/di-registrations-rich.md +12 -0
- package/dist/agentic/guides/modules/channel_ses/exact-override-targets.md +16 -0
- package/dist/agentic/guides/modules/channel_ses/index.md +18 -0
- package/dist/agentic/guides/modules/channel_ses/owned-contract-module-metadata.md +11 -0
- package/dist/agentic/guides/modules/channel_ses/setup.md +11 -0
- package/dist/agentic/guides/modules/channel_ses/umes-contributions.md +11 -0
- package/dist/agentic/guides/modules/checkout/index.md +1 -1
- package/dist/agentic/guides/modules/communication_channels/di-registrations-rich.md +10 -9
- package/dist/agentic/guides/modules/communication_channels/exact-override-targets.md +12 -11
- package/dist/agentic/guides/modules/communication_channels/index.md +1 -1
- package/dist/agentic/guides/modules/communication_channels/setup.md +1 -1
- package/dist/agentic/guides/modules/configs/index.md +1 -1
- package/dist/agentic/guides/modules/content/index.md +1 -1
- package/dist/agentic/guides/modules/currencies/index.md +1 -1
- package/dist/agentic/guides/modules/customer_accounts/index.md +1 -1
- package/dist/agentic/guides/modules/customers/index.md +1 -1
- package/dist/agentic/guides/modules/dashboards/index.md +1 -1
- package/dist/agentic/guides/modules/data_sync/index.md +1 -1
- package/dist/agentic/guides/modules/design_system/index.md +1 -1
- package/dist/agentic/guides/modules/devices/index.md +1 -1
- package/dist/agentic/guides/modules/dictionaries/index.md +1 -1
- package/dist/agentic/guides/modules/directory/index.md +1 -1
- package/dist/agentic/guides/modules/documents/index.md +1 -1
- package/dist/agentic/guides/modules/entities/index.md +1 -1
- package/dist/agentic/guides/modules/eudr/index.md +1 -1
- package/dist/agentic/guides/modules/events/index.md +1 -1
- package/dist/agentic/guides/modules/feature_toggles/index.md +1 -1
- package/dist/agentic/guides/modules/gateway_stripe/index.md +1 -1
- package/dist/agentic/guides/modules/generators/index.md +1 -1
- package/dist/agentic/guides/modules/inbox_ops/index.md +1 -1
- package/dist/agentic/guides/modules/integrations/index.md +1 -1
- package/dist/agentic/guides/modules/messages/index.md +1 -1
- package/dist/agentic/guides/modules/notifications/index.md +1 -1
- package/dist/agentic/guides/modules/onboarding/index.md +1 -1
- package/dist/agentic/guides/modules/payment_gateways/index.md +1 -1
- package/dist/agentic/guides/modules/perspectives/index.md +1 -1
- package/dist/agentic/guides/modules/planner/index.md +1 -1
- package/dist/agentic/guides/modules/portal/index.md +1 -1
- package/dist/agentic/guides/modules/progress/index.md +1 -1
- package/dist/agentic/guides/modules/push_notifications/index.md +1 -1
- package/dist/agentic/guides/modules/query_index/index.md +1 -1
- package/dist/agentic/guides/modules/record_locks/index.md +1 -1
- package/dist/agentic/guides/modules/resources/index.md +1 -1
- package/dist/agentic/guides/modules/sales/index.md +1 -1
- package/dist/agentic/guides/modules/scheduler/index.md +1 -1
- package/dist/agentic/guides/modules/search/index.md +1 -1
- package/dist/agentic/guides/modules/security/index.md +1 -1
- package/dist/agentic/guides/modules/shipping_carriers/index.md +1 -1
- package/dist/agentic/guides/modules/sso/index.md +1 -1
- package/dist/agentic/guides/modules/staff/index.md +1 -1
- package/dist/agentic/guides/modules/storage_s3/index.md +1 -1
- package/dist/agentic/guides/modules/sync_akeneo/index.md +1 -1
- package/dist/agentic/guides/modules/sync_excel/index.md +1 -1
- package/dist/agentic/guides/modules/system_status_overlays/index.md +1 -1
- package/dist/agentic/guides/modules/translations/index.md +1 -1
- package/dist/agentic/guides/modules/warranty_claims/index.md +1 -1
- package/dist/agentic/guides/modules/webhooks/index.md +1 -1
- package/dist/agentic/guides/modules/wms/index.md +1 -1
- package/dist/agentic/guides/modules/workflows/index.md +1 -1
- package/dist/agentic/guides/reference-module-facts.json +1 -1
- package/dist/agentic/guides/upstream/manifest.json +1 -1
- package/dist/agentic/shared/ai/harness/cases.json +4 -2
- package/package.json +3 -3
- package/template/.env.example +46 -1
- package/template/package.json.template +2 -0
- package/template/scripts/dev-runtime-actions.mjs +99 -0
- package/template/scripts/dev-runtime-config.mjs +89 -0
- package/template/scripts/dev-runtime-diagnostics.mjs +292 -0
- package/template/scripts/dev-runtime-gateway.mjs +370 -0
- package/template/scripts/dev-runtime-probe.mjs +77 -0
- package/template/scripts/dev-runtime-state.mjs +571 -0
- package/template/scripts/dev-runtime-supervisor.mjs +268 -0
- package/template/scripts/dev-runtime.mjs +29 -0
- package/template/scripts/dev-splash-state.mjs +14 -0
- package/template/scripts/dev-splash.html +357 -2
- package/template/scripts/dev.mjs +396 -14
- package/template/src/app/__tests__/start-page-bootstrap.test.ts +34 -0
- package/template/src/app/api/dev-runtime/actions/[action]/route.ts +5 -0
- package/template/src/app/api/dev-runtime/diagnostics/route.ts +5 -0
- package/template/src/app/api/dev-runtime/logs/route.ts +5 -0
- package/template/src/app/api/dev-runtime/status/route.ts +5 -0
- package/template/src/app/api/healthz/__tests__/route.test.ts +3 -1
- package/template/src/app/global-error.tsx +7 -0
- package/template/src/app/layout.tsx +11 -0
- package/template/src/app/start/page.tsx +11 -1
- package/template/src/i18n/de.json +27 -0
- package/template/src/i18n/en.json +27 -0
- package/template/src/i18n/es.json +27 -0
- package/template/src/i18n/ko.json +27 -0
- package/template/src/i18n/pl.json +27 -0
- package/template/src/modules/example/__integration__/TC-START-001-onboarding-gate.spec.ts +33 -0
- package/template/src/modules.ts +2 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# feature_toggles — module facts (generated, do not edit)
|
|
2
|
-
<!-- generated from @open-mercato/core 0.7.1-develop.
|
|
2
|
+
<!-- generated from @open-mercato/core 0.7.1-develop.7152.1.a69e92f9c9; core 0.7.1-develop.7152.1.a69e92f9c9 — R1 staleness stamp -->
|
|
3
3
|
Source root: node_modules/@open-mercato/core/src/modules/feature_toggles
|
|
4
4
|
|
|
5
5
|
## Sections
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# gateway_stripe — module facts (generated, do not edit)
|
|
2
|
-
<!-- generated from @open-mercato/gateway-stripe 0.7.1-develop.
|
|
2
|
+
<!-- generated from @open-mercato/gateway-stripe 0.7.1-develop.7152.1.a69e92f9c9; core 0.7.1-develop.7152.1.a69e92f9c9 — R1 staleness stamp -->
|
|
3
3
|
Source root: node_modules/@open-mercato/gateway-stripe/src/modules/gateway_stripe
|
|
4
4
|
|
|
5
5
|
## Sections
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# generators — module facts (generated, do not edit)
|
|
2
|
-
<!-- generated from @open-mercato/shared 0.7.1-develop.
|
|
2
|
+
<!-- generated from @open-mercato/shared 0.7.1-develop.7152.1.a69e92f9c9; core 0.7.1-develop.7152.1.a69e92f9c9 — R1 staleness stamp -->
|
|
3
3
|
Source root: node_modules/@open-mercato/shared/src/modules/generators
|
|
4
4
|
|
|
5
5
|
## Sections
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# inbox_ops — module facts (generated, do not edit)
|
|
2
|
-
<!-- generated from @open-mercato/core 0.7.1-develop.
|
|
2
|
+
<!-- generated from @open-mercato/core 0.7.1-develop.7152.1.a69e92f9c9; core 0.7.1-develop.7152.1.a69e92f9c9 — R1 staleness stamp -->
|
|
3
3
|
Source root: node_modules/@open-mercato/core/src/modules/inbox_ops
|
|
4
4
|
|
|
5
5
|
## Sections
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# integrations — module facts (generated, do not edit)
|
|
2
|
-
<!-- generated from @open-mercato/core 0.7.1-develop.
|
|
2
|
+
<!-- generated from @open-mercato/core 0.7.1-develop.7152.1.a69e92f9c9; core 0.7.1-develop.7152.1.a69e92f9c9 — R1 staleness stamp -->
|
|
3
3
|
Source root: node_modules/@open-mercato/core/src/modules/integrations
|
|
4
4
|
|
|
5
5
|
## Sections
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# messages — module facts (generated, do not edit)
|
|
2
|
-
<!-- generated from @open-mercato/core 0.7.1-develop.
|
|
2
|
+
<!-- generated from @open-mercato/core 0.7.1-develop.7152.1.a69e92f9c9; core 0.7.1-develop.7152.1.a69e92f9c9 — R1 staleness stamp -->
|
|
3
3
|
Source root: node_modules/@open-mercato/core/src/modules/messages
|
|
4
4
|
|
|
5
5
|
## Sections
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# notifications — module facts (generated, do not edit)
|
|
2
|
-
<!-- generated from @open-mercato/core 0.7.1-develop.
|
|
2
|
+
<!-- generated from @open-mercato/core 0.7.1-develop.7152.1.a69e92f9c9; core 0.7.1-develop.7152.1.a69e92f9c9 — R1 staleness stamp -->
|
|
3
3
|
Source root: node_modules/@open-mercato/core/src/modules/notifications
|
|
4
4
|
|
|
5
5
|
## Sections
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# onboarding — module facts (generated, do not edit)
|
|
2
|
-
<!-- generated from @open-mercato/onboarding 0.7.1-develop.
|
|
2
|
+
<!-- generated from @open-mercato/onboarding 0.7.1-develop.7152.1.a69e92f9c9; core 0.7.1-develop.7152.1.a69e92f9c9 — R1 staleness stamp -->
|
|
3
3
|
Source root: node_modules/@open-mercato/onboarding/src/modules/onboarding
|
|
4
4
|
|
|
5
5
|
## Sections
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# payment_gateways — module facts (generated, do not edit)
|
|
2
|
-
<!-- generated from @open-mercato/core 0.7.1-develop.
|
|
2
|
+
<!-- generated from @open-mercato/core 0.7.1-develop.7152.1.a69e92f9c9; core 0.7.1-develop.7152.1.a69e92f9c9 — R1 staleness stamp -->
|
|
3
3
|
Source root: node_modules/@open-mercato/core/src/modules/payment_gateways
|
|
4
4
|
|
|
5
5
|
## Sections
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# perspectives — module facts (generated, do not edit)
|
|
2
|
-
<!-- generated from @open-mercato/core 0.7.1-develop.
|
|
2
|
+
<!-- generated from @open-mercato/core 0.7.1-develop.7152.1.a69e92f9c9; core 0.7.1-develop.7152.1.a69e92f9c9 — R1 staleness stamp -->
|
|
3
3
|
Source root: node_modules/@open-mercato/core/src/modules/perspectives
|
|
4
4
|
|
|
5
5
|
## Sections
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# planner — module facts (generated, do not edit)
|
|
2
|
-
<!-- generated from @open-mercato/core 0.7.1-develop.
|
|
2
|
+
<!-- generated from @open-mercato/core 0.7.1-develop.7152.1.a69e92f9c9; core 0.7.1-develop.7152.1.a69e92f9c9 — R1 staleness stamp -->
|
|
3
3
|
Source root: node_modules/@open-mercato/core/src/modules/planner
|
|
4
4
|
|
|
5
5
|
## Sections
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# portal — module facts (generated, do not edit)
|
|
2
|
-
<!-- generated from @open-mercato/core 0.7.1-develop.
|
|
2
|
+
<!-- generated from @open-mercato/core 0.7.1-develop.7152.1.a69e92f9c9; core 0.7.1-develop.7152.1.a69e92f9c9 — R1 staleness stamp -->
|
|
3
3
|
Source root: node_modules/@open-mercato/core/src/modules/portal
|
|
4
4
|
|
|
5
5
|
## Sections
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# progress — module facts (generated, do not edit)
|
|
2
|
-
<!-- generated from @open-mercato/core 0.7.1-develop.
|
|
2
|
+
<!-- generated from @open-mercato/core 0.7.1-develop.7152.1.a69e92f9c9; core 0.7.1-develop.7152.1.a69e92f9c9 — R1 staleness stamp -->
|
|
3
3
|
Source root: node_modules/@open-mercato/core/src/modules/progress
|
|
4
4
|
|
|
5
5
|
## Sections
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# push_notifications — module facts (generated, do not edit)
|
|
2
|
-
<!-- generated from @open-mercato/core 0.7.1-develop.
|
|
2
|
+
<!-- generated from @open-mercato/core 0.7.1-develop.7152.1.a69e92f9c9; core 0.7.1-develop.7152.1.a69e92f9c9 — R1 staleness stamp -->
|
|
3
3
|
Source root: node_modules/@open-mercato/core/src/modules/push_notifications
|
|
4
4
|
|
|
5
5
|
## Sections
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# query_index — module facts (generated, do not edit)
|
|
2
|
-
<!-- generated from @open-mercato/core 0.7.1-develop.
|
|
2
|
+
<!-- generated from @open-mercato/core 0.7.1-develop.7152.1.a69e92f9c9; core 0.7.1-develop.7152.1.a69e92f9c9 — R1 staleness stamp -->
|
|
3
3
|
Source root: node_modules/@open-mercato/core/src/modules/query_index
|
|
4
4
|
|
|
5
5
|
## Sections
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# record_locks — module facts (generated, do not edit)
|
|
2
|
-
<!-- generated from @open-mercato/enterprise 0.7.1-develop.
|
|
2
|
+
<!-- generated from @open-mercato/enterprise 0.7.1-develop.7152.1.a69e92f9c9; core 0.7.1-develop.7152.1.a69e92f9c9 — R1 staleness stamp -->
|
|
3
3
|
Source root: node_modules/@open-mercato/enterprise/src/modules/record_locks
|
|
4
4
|
|
|
5
5
|
## Sections
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# resources — module facts (generated, do not edit)
|
|
2
|
-
<!-- generated from @open-mercato/core 0.7.1-develop.
|
|
2
|
+
<!-- generated from @open-mercato/core 0.7.1-develop.7152.1.a69e92f9c9; core 0.7.1-develop.7152.1.a69e92f9c9 — R1 staleness stamp -->
|
|
3
3
|
Source root: node_modules/@open-mercato/core/src/modules/resources
|
|
4
4
|
|
|
5
5
|
## Sections
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# sales — module facts (generated, do not edit)
|
|
2
|
-
<!-- generated from @open-mercato/core 0.7.1-develop.
|
|
2
|
+
<!-- generated from @open-mercato/core 0.7.1-develop.7152.1.a69e92f9c9; core 0.7.1-develop.7152.1.a69e92f9c9 — R1 staleness stamp -->
|
|
3
3
|
Source root: node_modules/@open-mercato/core/src/modules/sales
|
|
4
4
|
|
|
5
5
|
## Sections
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# scheduler — module facts (generated, do not edit)
|
|
2
|
-
<!-- generated from @open-mercato/scheduler 0.7.1-develop.
|
|
2
|
+
<!-- generated from @open-mercato/scheduler 0.7.1-develop.7152.1.a69e92f9c9; core 0.7.1-develop.7152.1.a69e92f9c9 — R1 staleness stamp -->
|
|
3
3
|
Source root: node_modules/@open-mercato/scheduler/src/modules/scheduler
|
|
4
4
|
|
|
5
5
|
## Sections
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# search — module facts (generated, do not edit)
|
|
2
|
-
<!-- generated from @open-mercato/search 0.7.1-develop.
|
|
2
|
+
<!-- generated from @open-mercato/search 0.7.1-develop.7152.1.a69e92f9c9; core 0.7.1-develop.7152.1.a69e92f9c9 — R1 staleness stamp -->
|
|
3
3
|
Source root: node_modules/@open-mercato/search/src/modules/search
|
|
4
4
|
|
|
5
5
|
## Sections
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# security — module facts (generated, do not edit)
|
|
2
|
-
<!-- generated from @open-mercato/enterprise 0.7.1-develop.
|
|
2
|
+
<!-- generated from @open-mercato/enterprise 0.7.1-develop.7152.1.a69e92f9c9; core 0.7.1-develop.7152.1.a69e92f9c9 — R1 staleness stamp -->
|
|
3
3
|
Source root: node_modules/@open-mercato/enterprise/src/modules/security
|
|
4
4
|
|
|
5
5
|
## Sections
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# shipping_carriers — module facts (generated, do not edit)
|
|
2
|
-
<!-- generated from @open-mercato/core 0.7.1-develop.
|
|
2
|
+
<!-- generated from @open-mercato/core 0.7.1-develop.7152.1.a69e92f9c9; core 0.7.1-develop.7152.1.a69e92f9c9 — R1 staleness stamp -->
|
|
3
3
|
Source root: node_modules/@open-mercato/core/src/modules/shipping_carriers
|
|
4
4
|
|
|
5
5
|
## Sections
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# sso — module facts (generated, do not edit)
|
|
2
|
-
<!-- generated from @open-mercato/enterprise 0.7.1-develop.
|
|
2
|
+
<!-- generated from @open-mercato/enterprise 0.7.1-develop.7152.1.a69e92f9c9; core 0.7.1-develop.7152.1.a69e92f9c9 — R1 staleness stamp -->
|
|
3
3
|
Source root: node_modules/@open-mercato/enterprise/src/modules/sso
|
|
4
4
|
|
|
5
5
|
## Sections
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# staff — module facts (generated, do not edit)
|
|
2
|
-
<!-- generated from @open-mercato/core 0.7.1-develop.
|
|
2
|
+
<!-- generated from @open-mercato/core 0.7.1-develop.7152.1.a69e92f9c9; core 0.7.1-develop.7152.1.a69e92f9c9 — R1 staleness stamp -->
|
|
3
3
|
Source root: node_modules/@open-mercato/core/src/modules/staff
|
|
4
4
|
|
|
5
5
|
## Sections
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# storage_s3 — module facts (generated, do not edit)
|
|
2
|
-
<!-- generated from @open-mercato/storage-s3 0.7.1-develop.
|
|
2
|
+
<!-- generated from @open-mercato/storage-s3 0.7.1-develop.7152.1.a69e92f9c9; core 0.7.1-develop.7152.1.a69e92f9c9 — R1 staleness stamp -->
|
|
3
3
|
Source root: node_modules/@open-mercato/storage-s3/src/modules/storage_s3
|
|
4
4
|
|
|
5
5
|
## Sections
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# sync_akeneo — module facts (generated, do not edit)
|
|
2
|
-
<!-- generated from @open-mercato/sync-akeneo 0.7.1-develop.
|
|
2
|
+
<!-- generated from @open-mercato/sync-akeneo 0.7.1-develop.7152.1.a69e92f9c9; core 0.7.1-develop.7152.1.a69e92f9c9 — R1 staleness stamp -->
|
|
3
3
|
Source root: node_modules/@open-mercato/sync-akeneo/src/modules/sync_akeneo
|
|
4
4
|
|
|
5
5
|
## Sections
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# sync_excel — module facts (generated, do not edit)
|
|
2
|
-
<!-- generated from @open-mercato/core 0.7.1-develop.
|
|
2
|
+
<!-- generated from @open-mercato/core 0.7.1-develop.7152.1.a69e92f9c9; core 0.7.1-develop.7152.1.a69e92f9c9 — R1 staleness stamp -->
|
|
3
3
|
Source root: node_modules/@open-mercato/core/src/modules/sync_excel
|
|
4
4
|
|
|
5
5
|
## Sections
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# system_status_overlays — module facts (generated, do not edit)
|
|
2
|
-
<!-- generated from @open-mercato/enterprise 0.7.1-develop.
|
|
2
|
+
<!-- generated from @open-mercato/enterprise 0.7.1-develop.7152.1.a69e92f9c9; core 0.7.1-develop.7152.1.a69e92f9c9 — R1 staleness stamp -->
|
|
3
3
|
Source root: node_modules/@open-mercato/enterprise/src/modules/system_status_overlays
|
|
4
4
|
|
|
5
5
|
## Sections
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# translations — module facts (generated, do not edit)
|
|
2
|
-
<!-- generated from @open-mercato/core 0.7.1-develop.
|
|
2
|
+
<!-- generated from @open-mercato/core 0.7.1-develop.7152.1.a69e92f9c9; core 0.7.1-develop.7152.1.a69e92f9c9 — R1 staleness stamp -->
|
|
3
3
|
Source root: node_modules/@open-mercato/core/src/modules/translations
|
|
4
4
|
|
|
5
5
|
## Sections
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# warranty_claims — module facts (generated, do not edit)
|
|
2
|
-
<!-- generated from @open-mercato/core 0.7.1-develop.
|
|
2
|
+
<!-- generated from @open-mercato/core 0.7.1-develop.7152.1.a69e92f9c9; core 0.7.1-develop.7152.1.a69e92f9c9 — R1 staleness stamp -->
|
|
3
3
|
Source root: node_modules/@open-mercato/core/src/modules/warranty_claims
|
|
4
4
|
|
|
5
5
|
## Sections
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# webhooks — module facts (generated, do not edit)
|
|
2
|
-
<!-- generated from @open-mercato/webhooks 0.7.1-develop.
|
|
2
|
+
<!-- generated from @open-mercato/webhooks 0.7.1-develop.7152.1.a69e92f9c9; core 0.7.1-develop.7152.1.a69e92f9c9 — R1 staleness stamp -->
|
|
3
3
|
Source root: node_modules/@open-mercato/webhooks/src/modules/webhooks
|
|
4
4
|
|
|
5
5
|
## Sections
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# wms — module facts (generated, do not edit)
|
|
2
|
-
<!-- generated from @open-mercato/core 0.7.1-develop.
|
|
2
|
+
<!-- generated from @open-mercato/core 0.7.1-develop.7152.1.a69e92f9c9; core 0.7.1-develop.7152.1.a69e92f9c9 — R1 staleness stamp -->
|
|
3
3
|
Source root: node_modules/@open-mercato/core/src/modules/wms
|
|
4
4
|
|
|
5
5
|
## Sections
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# workflows — module facts (generated, do not edit)
|
|
2
|
-
<!-- generated from @open-mercato/core 0.7.1-develop.
|
|
2
|
+
<!-- generated from @open-mercato/core 0.7.1-develop.7152.1.a69e92f9c9; core 0.7.1-develop.7152.1.a69e92f9c9 — R1 staleness stamp -->
|
|
3
3
|
Source root: node_modules/@open-mercato/core/src/modules/workflows
|
|
4
4
|
|
|
5
5
|
## Sections
|
|
@@ -1185,7 +1185,7 @@
|
|
|
1185
1185
|
"facts": {
|
|
1186
1186
|
"title": "Example Module",
|
|
1187
1187
|
"description": "Demonstrates pages, APIs, entities and DI.",
|
|
1188
|
-
"coreVersion": "0.7.1-develop.
|
|
1188
|
+
"coreVersion": "0.7.1-develop.7152.1.a69e92f9c9",
|
|
1189
1189
|
"sourcePackage": null,
|
|
1190
1190
|
"sourceVersion": null,
|
|
1191
1191
|
"sourceRoot": "src/modules/example",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 1,
|
|
3
|
-
"generator": "create-mercato-app@0.7.1-develop.
|
|
3
|
+
"generator": "create-mercato-app@0.7.1-develop.7152.1.a69e92f9c9",
|
|
4
4
|
"files": {
|
|
5
5
|
"AGENTS.md": "1f54610cebc4fd7e42b56d1c18859edc7ed7d3165c9af72c4530b6feaf76e457",
|
|
6
6
|
"BACKWARD_COMPATIBILITY.md": "b2e5b812cd677d610787e37be079ef1e686cce171a9b11b0278ff7f0fb34ba2b"
|
|
@@ -3055,7 +3055,7 @@
|
|
|
3055
3055
|
"mode": "one-shot",
|
|
3056
3056
|
"evaluationKind": "routing",
|
|
3057
3057
|
"risk": "high",
|
|
3058
|
-
"prompt": "In a freshly scaffolded standalone Open Mercato app, first distinguish outbound transactional email from a connected Gmail/IMAP mailbox
|
|
3058
|
+
"prompt": "In a freshly scaffolded standalone Open Mercato app, first distinguish outbound transactional email from a connected Gmail/IMAP mailbox and inspect the installed Resend/SES provider facts before proposing app-local code. Reuse an installed transactional provider when it matches; otherwise build the selected app-local provider with encrypted credentials, health, retry, redacted structured createLogger logs, and activation. A mailbox must use the installed communication_channels module and canonical ChannelAdapter contract with integration.ts hub metadata plus DI/setup registration, following installed channel_gmail/channel_imap precedent; transactional delivery must not pretend to be a mailbox adapter. Do not invent a packages workspace; separately published packaging requires an explicit reuse decision. Generated module facts are sufficient for routing; invoke framework context during implementation only after naming one missing exact-version symbol.",
|
|
3059
3059
|
"tags": [
|
|
3060
3060
|
"integration",
|
|
3061
3061
|
"encrypted-credentials",
|
|
@@ -3089,7 +3089,9 @@
|
|
|
3089
3089
|
".ai/skills/om-integration-builder/SKILL.md",
|
|
3090
3090
|
".ai/guides/modules/communication_channels/index.md",
|
|
3091
3091
|
".ai/guides/modules/channel_gmail/index.md",
|
|
3092
|
-
".ai/guides/modules/channel_imap/index.md"
|
|
3092
|
+
".ai/guides/modules/channel_imap/index.md",
|
|
3093
|
+
".ai/guides/modules/channel_resend/index.md",
|
|
3094
|
+
".ai/guides/modules/channel_ses/index.md"
|
|
3093
3095
|
],
|
|
3094
3096
|
"allowedExtra": [
|
|
3095
3097
|
".ai/guides/modules/integrations/index.md",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-mercato-app",
|
|
3
|
-
"version": "0.7.1-develop.
|
|
3
|
+
"version": "0.7.1-develop.7152.1.a69e92f9c9",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Create a new Open Mercato application",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -28,8 +28,8 @@
|
|
|
28
28
|
"ts-morph": "^28.0.0"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
|
-
"@open-mercato/cli": "0.7.1-develop.
|
|
32
|
-
"@open-mercato/shared": "0.7.1-develop.
|
|
31
|
+
"@open-mercato/cli": "0.7.1-develop.7152.1.a69e92f9c9",
|
|
32
|
+
"@open-mercato/shared": "0.7.1-develop.7152.1.a69e92f9c9",
|
|
33
33
|
"@types/node": "^26.1.2",
|
|
34
34
|
"esbuild": "^0.28.1",
|
|
35
35
|
"tsx": "^4.23.1",
|
package/template/.env.example
CHANGED
|
@@ -41,8 +41,26 @@ NEXTAUTH_SECRET=
|
|
|
41
41
|
# or
|
|
42
42
|
# EVENTS_REDIS_URL=redis://localhost:6379
|
|
43
43
|
|
|
44
|
-
#
|
|
44
|
+
# Outbound system email provider (communications hub)
|
|
45
|
+
# A provider key alone seeds nothing: the env preset also needs a from-address from
|
|
46
|
+
# NOTIFICATIONS_EMAIL_FROM / EMAIL_FROM / ADMIN_EMAIL further down this file. With the key but no
|
|
47
|
+
# from-address the app logs a warning and sends no mail.
|
|
48
|
+
# SYSTEM_EMAIL_PROVIDER=resend
|
|
45
49
|
# RESEND_API_KEY=
|
|
50
|
+
#
|
|
51
|
+
# Amazon SES outbound email. Only the region, sender and configuration set are per tenant — the AWS
|
|
52
|
+
# identity itself comes from this instance's default AWS credential chain (AWS_ACCESS_KEY_ID /
|
|
53
|
+
# AWS_SECRET_ACCESS_KEY below, or the container's IAM role), so every tenant sends from one AWS
|
|
54
|
+
# account. Use Resend when each tenant must bring its own provider account.
|
|
55
|
+
# SYSTEM_EMAIL_PROVIDER=ses
|
|
56
|
+
# AWS_SES_REGION=eu-west-2
|
|
57
|
+
# AWS_REGION=eu-west-2
|
|
58
|
+
# AWS_SES_CONFIGURATION_SET=
|
|
59
|
+
#
|
|
60
|
+
# Optional: pin every tenant-scoped send to one communication channel id instead of resolving the
|
|
61
|
+
# tenant's own. The channel must belong to the sending organization or be tenant-wide
|
|
62
|
+
# (organization_id IS NULL); a pinned channel never falls back to the env credentials above.
|
|
63
|
+
# SYSTEM_EMAIL_CHANNEL_ID=
|
|
46
64
|
|
|
47
65
|
# Public URL used in emails and onboarding flows
|
|
48
66
|
APP_URL=http://localhost:3000
|
|
@@ -244,6 +262,33 @@ AUTO_SPAWN_WORKERS=true
|
|
|
244
262
|
# OM_WATCH_PACKAGES=core,ui,shared # used when OM_WATCH_SCOPE=env
|
|
245
263
|
# OM_WATCH_POPULAR_LIMIT=6 # cap for OM_WATCH_SCOPE=popular
|
|
246
264
|
|
|
265
|
+
# Dev runtime diagnostics (development only; never enabled in a production build).
|
|
266
|
+
# The `yarn dev` supervisor collects process, log, warmup, probe and browser
|
|
267
|
+
# signals into one structured runtime state, shows it on the dev splash, and
|
|
268
|
+
# mirrors it into an in-app banner through a token-protected local bridge.
|
|
269
|
+
# OM_DEV_RUNTIME_MODE direct|proxy. `direct` (default) keeps the existing
|
|
270
|
+
# topology: Next.js owns the public port and the splash
|
|
271
|
+
# runs on OM_DEV_SPLASH_PORT. `proxy` puts an opt-in
|
|
272
|
+
# local gateway on the public port instead.
|
|
273
|
+
# OM_DEV_UPSTREAM_PORT Internal port for the managed Next.js runtime in proxy
|
|
274
|
+
# mode. Defaults to an auto-selected free loopback port;
|
|
275
|
+
# must not equal the public application port.
|
|
276
|
+
# OM_DEV_RUNTIME_MODE=direct
|
|
277
|
+
# OM_DEV_UPSTREAM_PORT=3111
|
|
278
|
+
#
|
|
279
|
+
# Continuous post-READY health probe against the local `/api/healthz` contract.
|
|
280
|
+
# The probe never re-runs the login warmup and never logs a success.
|
|
281
|
+
# OM_DEV_RUNTIME_PROBE_INTERVAL_MS=5000
|
|
282
|
+
# OM_DEV_RUNTIME_PROBE_TIMEOUT_MS=1500 # must be lower than the interval
|
|
283
|
+
# OM_DEV_RUNTIME_PROBE_FAILURE_THRESHOLD=3 # consecutive failures -> degraded
|
|
284
|
+
# OM_DEV_RUNTIME_PROBE_RECOVERY_THRESHOLD=2 # consecutive successes -> ready
|
|
285
|
+
#
|
|
286
|
+
# Collection and presentation toggles. Both follow the dev splash by default and
|
|
287
|
+
# stay off in CI. Turning diagnostics off also disables the in-app banner, and
|
|
288
|
+
# with it the dev-only status/diagnostics/recovery-action routes.
|
|
289
|
+
# OM_DEV_RUNTIME_DIAGNOSTICS=true
|
|
290
|
+
# OM_DEV_RUNTIME_BANNER=true
|
|
291
|
+
|
|
247
292
|
# Base directory for local file-backed queues (default: ./.mercato/queue)
|
|
248
293
|
QUEUE_BASE_DIR=./.mercato/queue
|
|
249
294
|
|
|
@@ -59,6 +59,8 @@
|
|
|
59
59
|
"@open-mercato/channel-apns": "{{PACKAGE_VERSION}}",
|
|
60
60
|
"@open-mercato/channel-expo": "{{PACKAGE_VERSION}}",
|
|
61
61
|
"@open-mercato/channel-fcm": "{{PACKAGE_VERSION}}",
|
|
62
|
+
"@open-mercato/channel-resend": "{{PACKAGE_VERSION}}",
|
|
63
|
+
"@open-mercato/channel-ses": "{{PACKAGE_VERSION}}",
|
|
62
64
|
"@open-mercato/checkout": "{{PACKAGE_VERSION}}",
|
|
63
65
|
"@open-mercato/cli": "{{PACKAGE_VERSION}}",
|
|
64
66
|
"@open-mercato/content": "{{PACKAGE_VERSION}}",
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { RUNTIME_RECOVERY_ACTIONS } from './dev-runtime-state.mjs'
|
|
2
|
+
|
|
3
|
+
export const DEFAULT_ACTION_TIMEOUT_MS = 10 * 60 * 1000
|
|
4
|
+
export const MAX_ACTION_OUTPUT_LINES = 40
|
|
5
|
+
|
|
6
|
+
function conflict(code, message, status = 409) {
|
|
7
|
+
return { ok: false, status, code, message }
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Runs the fixed recovery allowlist against handlers the supervisor already
|
|
12
|
+
* owns. User input selects an enum member and nothing else: it can never name a
|
|
13
|
+
* binary, append a flag, or change a working directory.
|
|
14
|
+
*
|
|
15
|
+
* Exactly one mutating action may run per generation, and a completion from an
|
|
16
|
+
* older generation can never overwrite the current state.
|
|
17
|
+
*/
|
|
18
|
+
export function createDevRuntimeActionRunner(options = {}) {
|
|
19
|
+
const handlers = options.handlers ?? {}
|
|
20
|
+
const state = options.state
|
|
21
|
+
const now = typeof options.now === 'function' ? options.now : () => new Date()
|
|
22
|
+
const timeoutMs = Number.isInteger(options.timeoutMs) ? options.timeoutMs : DEFAULT_ACTION_TIMEOUT_MS
|
|
23
|
+
const logger = options.logger ?? console
|
|
24
|
+
|
|
25
|
+
let sequence = 0
|
|
26
|
+
let active = null
|
|
27
|
+
|
|
28
|
+
function describeActive() {
|
|
29
|
+
return active ? { ...active } : null
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
async function run(action) {
|
|
33
|
+
if (!RUNTIME_RECOVERY_ACTIONS.includes(action)) {
|
|
34
|
+
return { ok: false, status: 400, code: 'unknown_action', message: 'Unknown recovery action.' }
|
|
35
|
+
}
|
|
36
|
+
if (!state) {
|
|
37
|
+
return conflict('supervisor_unavailable', 'The supervisor is no longer available.', 503)
|
|
38
|
+
}
|
|
39
|
+
const handler = handlers[action]
|
|
40
|
+
if (typeof handler !== 'function') {
|
|
41
|
+
return conflict('action_unsupported', `The "${action}" action is not available in this runtime mode.`, 503)
|
|
42
|
+
}
|
|
43
|
+
if (active) {
|
|
44
|
+
return conflict('action_busy', `The "${active.action}" action is still running.`)
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
const generation = state.getGeneration()
|
|
48
|
+
sequence += 1
|
|
49
|
+
const actionId = `${generation}-${sequence}`
|
|
50
|
+
active = { actionId, action, generation, startedAt: now().toISOString() }
|
|
51
|
+
state.beginRecovery(action)
|
|
52
|
+
|
|
53
|
+
// The await chain is intentionally detached: the caller gets a 202 while the
|
|
54
|
+
// action keeps running under the supervisor's lifecycle.
|
|
55
|
+
void (async () => {
|
|
56
|
+
let exitCode = 1
|
|
57
|
+
try {
|
|
58
|
+
exitCode = await withTimeout(handler(), timeoutMs)
|
|
59
|
+
} catch (error) {
|
|
60
|
+
logger?.error?.(`❌ Dev runtime action "${action}" failed: ${error instanceof Error ? error.message : String(error)}`)
|
|
61
|
+
state.recordSignal({
|
|
62
|
+
source: 'process',
|
|
63
|
+
generation,
|
|
64
|
+
code: 'recovery_action_failed',
|
|
65
|
+
title: 'Recovery action failed',
|
|
66
|
+
detail: `The "${action}" action did not complete successfully`,
|
|
67
|
+
message: error instanceof Error ? error.message : String(error),
|
|
68
|
+
failureStage: `Recovery: ${action}`,
|
|
69
|
+
})
|
|
70
|
+
} finally {
|
|
71
|
+
active = null
|
|
72
|
+
// A stale completion must not clear a recovery that a newer generation
|
|
73
|
+
// started.
|
|
74
|
+
state.completeRecovery(Number.isInteger(exitCode) ? exitCode : 1, { generation })
|
|
75
|
+
}
|
|
76
|
+
})()
|
|
77
|
+
|
|
78
|
+
return { ok: true, actionId, generation }
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
return { run, describeActive, isBusy: () => active !== null }
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
function withTimeout(promise, timeoutMs) {
|
|
85
|
+
return new Promise((resolve, reject) => {
|
|
86
|
+
const timer = setTimeout(() => reject(new Error(`recovery action timed out after ${timeoutMs}ms`)), timeoutMs)
|
|
87
|
+
timer.unref?.()
|
|
88
|
+
Promise.resolve(promise).then(
|
|
89
|
+
(value) => {
|
|
90
|
+
clearTimeout(timer)
|
|
91
|
+
resolve(value)
|
|
92
|
+
},
|
|
93
|
+
(error) => {
|
|
94
|
+
clearTimeout(timer)
|
|
95
|
+
reject(error)
|
|
96
|
+
},
|
|
97
|
+
)
|
|
98
|
+
})
|
|
99
|
+
}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
export const DEFAULT_PROBE_INTERVAL_MS = 5000
|
|
2
|
+
export const DEFAULT_PROBE_TIMEOUT_MS = 1500
|
|
3
|
+
export const DEFAULT_PROBE_FAILURE_THRESHOLD = 3
|
|
4
|
+
export const DEFAULT_PROBE_RECOVERY_THRESHOLD = 2
|
|
5
|
+
|
|
6
|
+
export class DevRuntimeConfigError extends Error {
|
|
7
|
+
constructor(message) {
|
|
8
|
+
super(message)
|
|
9
|
+
this.name = 'DevRuntimeConfigError'
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
function readRawEnv(env, key) {
|
|
14
|
+
const raw = env?.[key]
|
|
15
|
+
if (typeof raw !== 'string') return ''
|
|
16
|
+
return raw.trim()
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
function parseBoundedInteger(env, key, fallback, { min = 1, max = Number.MAX_SAFE_INTEGER } = {}) {
|
|
20
|
+
const raw = readRawEnv(env, key)
|
|
21
|
+
if (!raw) return fallback
|
|
22
|
+
const parsed = Number(raw)
|
|
23
|
+
if (!Number.isInteger(parsed) || parsed < min || parsed > max) {
|
|
24
|
+
throw new DevRuntimeConfigError(`${key} must be an integer between ${min} and ${max}; received "${raw}".`)
|
|
25
|
+
}
|
|
26
|
+
return parsed
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
function parseEnabledFlag(env, key, fallback) {
|
|
30
|
+
const raw = readRawEnv(env, key).toLowerCase()
|
|
31
|
+
if (!raw) return fallback
|
|
32
|
+
if (['1', 'true', 'on', 'yes', 'enabled'].includes(raw)) return true
|
|
33
|
+
if (['0', 'false', 'off', 'no', 'disabled'].includes(raw)) return false
|
|
34
|
+
throw new DevRuntimeConfigError(`${key} must be a boolean flag; received "${raw}".`)
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export function resolveDevRuntimeMode(env = process.env) {
|
|
38
|
+
const raw = readRawEnv(env, 'OM_DEV_RUNTIME_MODE').toLowerCase()
|
|
39
|
+
if (!raw) return 'direct'
|
|
40
|
+
if (raw === 'direct' || raw === 'proxy') return raw
|
|
41
|
+
throw new DevRuntimeConfigError(`OM_DEV_RUNTIME_MODE must be "direct" or "proxy"; received "${raw}".`)
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export function resolveUpstreamPort(env = process.env, publicPort = null) {
|
|
45
|
+
const raw = readRawEnv(env, 'OM_DEV_UPSTREAM_PORT')
|
|
46
|
+
if (!raw) return null
|
|
47
|
+
const parsed = Number(raw)
|
|
48
|
+
if (!Number.isInteger(parsed) || parsed < 1 || parsed > 65535) {
|
|
49
|
+
throw new DevRuntimeConfigError(`OM_DEV_UPSTREAM_PORT must be an integer between 1 and 65535; received "${raw}".`)
|
|
50
|
+
}
|
|
51
|
+
if (Number.isInteger(publicPort) && parsed === publicPort) {
|
|
52
|
+
throw new DevRuntimeConfigError(`OM_DEV_UPSTREAM_PORT (${parsed}) must not equal the public application port.`)
|
|
53
|
+
}
|
|
54
|
+
return parsed
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export function resolveProbeConfig(env = process.env) {
|
|
58
|
+
const intervalMs = parseBoundedInteger(env, 'OM_DEV_RUNTIME_PROBE_INTERVAL_MS', DEFAULT_PROBE_INTERVAL_MS, { min: 250, max: 600_000 })
|
|
59
|
+
const timeoutMs = parseBoundedInteger(env, 'OM_DEV_RUNTIME_PROBE_TIMEOUT_MS', DEFAULT_PROBE_TIMEOUT_MS, { min: 100, max: 600_000 })
|
|
60
|
+
if (timeoutMs >= intervalMs) {
|
|
61
|
+
throw new DevRuntimeConfigError(`OM_DEV_RUNTIME_PROBE_TIMEOUT_MS (${timeoutMs}) must be less than OM_DEV_RUNTIME_PROBE_INTERVAL_MS (${intervalMs}).`)
|
|
62
|
+
}
|
|
63
|
+
return {
|
|
64
|
+
intervalMs,
|
|
65
|
+
timeoutMs,
|
|
66
|
+
failureThreshold: parseBoundedInteger(env, 'OM_DEV_RUNTIME_PROBE_FAILURE_THRESHOLD', DEFAULT_PROBE_FAILURE_THRESHOLD, { min: 1, max: 100 }),
|
|
67
|
+
recoveryThreshold: parseBoundedInteger(env, 'OM_DEV_RUNTIME_PROBE_RECOVERY_THRESHOLD', DEFAULT_PROBE_RECOVERY_THRESHOLD, { min: 1, max: 100 }),
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
// Diagnostics follow the dev splash: enabled when the splash is enabled and the
|
|
72
|
+
// process is not a CI run, unless explicitly overridden.
|
|
73
|
+
export function resolveDiagnosticsConfig(env = process.env, { splashEnabled = true } = {}) {
|
|
74
|
+
const defaultEnabled = splashEnabled && env?.CI !== 'true'
|
|
75
|
+
const diagnosticsEnabled = parseEnabledFlag(env, 'OM_DEV_RUNTIME_DIAGNOSTICS', defaultEnabled)
|
|
76
|
+
return {
|
|
77
|
+
diagnosticsEnabled,
|
|
78
|
+
bannerEnabled: parseEnabledFlag(env, 'OM_DEV_RUNTIME_BANNER', diagnosticsEnabled) && diagnosticsEnabled,
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
export function resolveDevRuntimeConfig(env = process.env, { splashEnabled = true, publicPort = null } = {}) {
|
|
83
|
+
return {
|
|
84
|
+
mode: resolveDevRuntimeMode(env),
|
|
85
|
+
upstreamPort: resolveUpstreamPort(env, publicPort),
|
|
86
|
+
probe: resolveProbeConfig(env),
|
|
87
|
+
...resolveDiagnosticsConfig(env, { splashEnabled }),
|
|
88
|
+
}
|
|
89
|
+
}
|