@geekmidas/cli 10.0.0-alpha.67 → 10.0.0-alpha.68

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.
Files changed (101) hide show
  1. package/dist/{bundler-Bq3HaLOZ.mjs → bundler-C-w7aGoZ.mjs} +5 -5
  2. package/dist/{bundler-Bq3HaLOZ.mjs.map → bundler-C-w7aGoZ.mjs.map} +1 -1
  3. package/dist/{bundler-pyLj-gS0.cjs → bundler-C1pnNrR0.cjs} +5 -5
  4. package/dist/{bundler-pyLj-gS0.cjs.map → bundler-C1pnNrR0.cjs.map} +1 -1
  5. package/dist/{cli-DR7B2_fX.cjs → cli-BLyD4c0O.cjs} +12 -3
  6. package/dist/cli-BLyD4c0O.cjs.map +1 -0
  7. package/dist/{cli-C2Tjbn27.mjs → cli-Ce4pLL5O.mjs} +12 -3
  8. package/dist/cli-Ce4pLL5O.mjs.map +1 -0
  9. package/dist/{compose-BjToENzG.mjs → compose-DFxuYhn6.mjs} +165 -51
  10. package/dist/compose-DFxuYhn6.mjs.map +1 -0
  11. package/dist/{compose-5oNHAKNT.cjs → compose-DvsgumY2.cjs} +165 -51
  12. package/dist/compose-DvsgumY2.cjs.map +1 -0
  13. package/dist/{config-4XFxX1al.d.cts → config-BnA0kPTY.d.cts} +3 -3
  14. package/dist/{config-4XFxX1al.d.cts.map → config-BnA0kPTY.d.cts.map} +1 -1
  15. package/dist/{config-UtKzhpFb.d.mts → config-CxEp_g7j.d.mts} +3 -3
  16. package/dist/{config-UtKzhpFb.d.mts.map → config-CxEp_g7j.d.mts.map} +1 -1
  17. package/dist/config.d.cts +3 -3
  18. package/dist/config.d.mts +3 -3
  19. package/dist/deploy/public.cjs +9 -5
  20. package/dist/deploy/public.d.cts +15 -4
  21. package/dist/deploy/public.d.cts.map +1 -1
  22. package/dist/deploy/public.d.mts +15 -4
  23. package/dist/deploy/public.d.mts.map +1 -1
  24. package/dist/deploy/public.mjs +6 -6
  25. package/dist/{deploy-BucRfbvX.cjs → deploy-C08GONYW.cjs} +8 -4
  26. package/dist/deploy-C08GONYW.cjs.map +1 -0
  27. package/dist/{deploy-DRAwTG72.mjs → deploy-D-EVOWvu.mjs} +8 -4
  28. package/dist/deploy-D-EVOWvu.mjs.map +1 -0
  29. package/dist/{dokploy-m345Zx02.cjs → dokploy-CZ6nfSV9.cjs} +2 -2
  30. package/dist/{dokploy-m345Zx02.cjs.map → dokploy-CZ6nfSV9.cjs.map} +1 -1
  31. package/dist/{dokploy-DIt1IZl1.mjs → dokploy-DU-XJsoT.mjs} +2 -2
  32. package/dist/{dokploy-DIt1IZl1.mjs.map → dokploy-DU-XJsoT.mjs.map} +1 -1
  33. package/dist/{encryption-rZ3BghXy.cjs → encryption-CCcBSLZs.cjs} +2 -2
  34. package/dist/{encryption-rZ3BghXy.cjs.map → encryption-CCcBSLZs.cjs.map} +1 -1
  35. package/dist/{encryption-Ccbahik7.mjs → encryption-DSiLau1-.mjs} +2 -2
  36. package/dist/{encryption-Ccbahik7.mjs.map → encryption-DSiLau1-.mjs.map} +1 -1
  37. package/dist/{engine-Cx_dvx9q.cjs → engine-BM9Dy_DT.cjs} +134 -24
  38. package/dist/engine-BM9Dy_DT.cjs.map +1 -0
  39. package/dist/{engine-Gs0abjuj.mjs → engine-llWnMZH5.mjs} +134 -24
  40. package/dist/engine-llWnMZH5.mjs.map +1 -0
  41. package/dist/{github-CrcGFkfD.cjs → github-ZoMam0OH.cjs} +2 -2
  42. package/dist/{github-CrcGFkfD.cjs.map → github-ZoMam0OH.cjs.map} +1 -1
  43. package/dist/{github-CJANTYqi.mjs → github-yy6WpHIl.mjs} +2 -2
  44. package/dist/{github-CJANTYqi.mjs.map → github-yy6WpHIl.mjs.map} +1 -1
  45. package/dist/{index-CyApaHVe.d.cts → index-CkX89m6S.d.mts} +2 -2
  46. package/dist/{index-CyApaHVe.d.cts.map → index-CkX89m6S.d.mts.map} +1 -1
  47. package/dist/{index-DD1FfUHh.d.mts → index-EvZBkycu.d.cts} +2 -2
  48. package/dist/{index-DD1FfUHh.d.mts.map → index-EvZBkycu.d.cts.map} +1 -1
  49. package/dist/index.cjs +46 -43
  50. package/dist/index.cjs.map +1 -1
  51. package/dist/index.mjs +46 -43
  52. package/dist/index.mjs.map +1 -1
  53. package/dist/{migrate-DCVo5gLS.mjs → migrate-BWPuwiXk.mjs} +2 -2
  54. package/dist/{migrate-DCVo5gLS.mjs.map → migrate-BWPuwiXk.mjs.map} +1 -1
  55. package/dist/{migrate-CQdSpttI.cjs → migrate-tOwxQBTI.cjs} +2 -2
  56. package/dist/{migrate-CQdSpttI.cjs.map → migrate-tOwxQBTI.cjs.map} +1 -1
  57. package/dist/openapi.d.cts +1 -1
  58. package/dist/openapi.d.mts +1 -1
  59. package/dist/reconcile/public.d.cts +1 -1
  60. package/dist/reconcile/public.d.mts +1 -1
  61. package/dist/{resolve-BexmDcsN.cjs → resolve-BymzGtuT.cjs} +3 -3
  62. package/dist/{resolve-BexmDcsN.cjs.map → resolve-BymzGtuT.cjs.map} +1 -1
  63. package/dist/{resolve-DhZgtvZe.mjs → resolve-pIvXlZ1h.mjs} +3 -3
  64. package/dist/{resolve-DhZgtvZe.mjs.map → resolve-pIvXlZ1h.mjs.map} +1 -1
  65. package/dist/{rollback-m4Yeym5x.mjs → rollback-ZlsbQOvj.mjs} +3 -3
  66. package/dist/{rollback-m4Yeym5x.mjs.map → rollback-ZlsbQOvj.mjs.map} +1 -1
  67. package/dist/{rollback-BnY7KuG_.cjs → rollback-zdfi6Reg.cjs} +3 -3
  68. package/dist/{rollback-BnY7KuG_.cjs.map → rollback-zdfi6Reg.cjs.map} +1 -1
  69. package/dist/{runtime-BRqFOvPM.d.cts → runtime-B3jNgeP-.d.mts} +2 -2
  70. package/dist/{runtime-BRqFOvPM.d.cts.map → runtime-B3jNgeP-.d.mts.map} +1 -1
  71. package/dist/{runtime-CEk5n4VH.d.mts → runtime-DWThEP-r.d.cts} +2 -2
  72. package/dist/{runtime-CEk5n4VH.d.mts.map → runtime-DWThEP-r.d.cts.map} +1 -1
  73. package/dist/sniffer-BdFeLSmA.mjs.map +1 -1
  74. package/dist/sniffer-D66HIvi9.cjs.map +1 -1
  75. package/dist/{state-DkUStoqJ.mjs → state-Bn5JDMFT.mjs} +247 -7
  76. package/dist/state-Bn5JDMFT.mjs.map +1 -0
  77. package/dist/{state-DgmM4EKq.cjs → state-CHZqCDRC.cjs} +342 -6
  78. package/dist/state-CHZqCDRC.cjs.map +1 -0
  79. package/dist/target/public.cjs +1 -1
  80. package/dist/target/public.d.cts +2 -2
  81. package/dist/target/public.d.mts +2 -2
  82. package/dist/target/public.mjs +1 -1
  83. package/dist/{types-CSw2w69a.d.mts → types-CZdCxUCK.d.cts} +64 -2
  84. package/dist/types-CZdCxUCK.d.cts.map +1 -0
  85. package/dist/{types-D5WIxRDP.d.cts → types-Da0E3Qv7.d.mts} +63 -3
  86. package/dist/types-Da0E3Qv7.d.mts.map +1 -0
  87. package/dist/workspace/index.d.cts +2 -2
  88. package/dist/workspace/index.d.mts +2 -2
  89. package/package.json +13 -13
  90. package/dist/cli-C2Tjbn27.mjs.map +0 -1
  91. package/dist/cli-DR7B2_fX.cjs.map +0 -1
  92. package/dist/compose-5oNHAKNT.cjs.map +0 -1
  93. package/dist/compose-BjToENzG.mjs.map +0 -1
  94. package/dist/deploy-BucRfbvX.cjs.map +0 -1
  95. package/dist/deploy-DRAwTG72.mjs.map +0 -1
  96. package/dist/engine-Cx_dvx9q.cjs.map +0 -1
  97. package/dist/engine-Gs0abjuj.mjs.map +0 -1
  98. package/dist/state-DgmM4EKq.cjs.map +0 -1
  99. package/dist/state-DkUStoqJ.mjs.map +0 -1
  100. package/dist/types-CSw2w69a.d.mts.map +0 -1
  101. package/dist/types-D5WIxRDP.d.cts.map +0 -1
@@ -4,7 +4,7 @@ import { d as output, r as discover } from "./discover-BFoJWKGD.mjs";
4
4
  import { t as appKey } from "./derive-B4vDpzgP.mjs";
5
5
  import { O as TEST_STAGE, h as getPublicEnvPrefix, n as allConstructGlobs } from "./workspace-Be6uBhlF.mjs";
6
6
  import { ConfigNotFound, NotInAnApp, loadWorkspaceAppInfo, loadWorkspaceConfig } from "./config.mjs";
7
- import { c as runtimeOf } from "./resolve-DhZgtvZe.mjs";
7
+ import { c as runtimeOf } from "./resolve-pIvXlZ1h.mjs";
8
8
  import { i as DEFAULT_STORAGE, n as DEFAULT_CACHE, r as DEFAULT_EVENTS$1, t as readFakes } from "./fakes-C9RiT6XG.mjs";
9
9
  import { basename, dirname, isAbsolute, join, parse, relative, resolve, sep } from "node:path";
10
10
  import { constants, existsSync, readFileSync } from "node:fs";
@@ -3107,15 +3107,18 @@ function pgClient(port, password = LOCAL_USER$1) {
3107
3107
  }
3108
3108
  } };
3109
3109
  }
3110
- /** A bucket client pointed at the local MinIO. */
3111
- function bucketClient(port) {
3110
+ /** A bucket client pointed at a MinIO on this machine. */
3111
+ function bucketClient(port, credentials = {
3112
+ user: LOCAL_USER$1,
3113
+ password: LOCAL_USER$1
3114
+ }) {
3112
3115
  const s3 = new S3Client({
3113
3116
  region: "us-east-1",
3114
3117
  endpoint: `http://localhost:${port}`,
3115
3118
  forcePathStyle: true,
3116
3119
  credentials: {
3117
- accessKeyId: LOCAL_USER$1,
3118
- secretAccessKey: LOCAL_USER$1
3120
+ accessKeyId: credentials.user,
3121
+ secretAccessKey: credentials.password
3119
3122
  }
3120
3123
  });
3121
3124
  return {
@@ -4576,6 +4579,243 @@ function keyFingerprint(masterKey) {
4576
4579
  return createHash("sha256").update(masterKey).digest("hex").slice(0, 8);
4577
4580
  }
4578
4581
  //#endregion
4582
+ //#region src/deploy/devServices.ts
4583
+ /**
4584
+ * Mail and object storage on a deployed stage: real ones, or — only when
4585
+ * someone asked — the dev services the local stage runs.
4586
+ *
4587
+ * Locally a declared `Email` is Mailpit and a declared bucket is MinIO, and
4588
+ * nobody has to configure either. Deployed, the same two containers would be
4589
+ * a stage that silently delivers no mail and keeps its files on one
4590
+ * container's disk. So a deployed stage on a server target takes both from
4591
+ * its secrets — the mail server's URL and sending address, and each bucket's
4592
+ * URL — and a stage missing any of them fails before anything is built,
4593
+ * provisioned or written, naming every key at once.
4594
+ *
4595
+ * A bucket's credentials are not checked: they are optional, and come from
4596
+ * either of two places. The bucket's URL may carry a key of its own
4597
+ * (`s3://KEY:SECRET@uploads`), which wins; otherwise the S3 client's default
4598
+ * chain applies — the stage's shared `AWS_ACCESS_KEY_ID`/
4599
+ * `AWS_SECRET_ACCESS_KEY` when it set them, or a role.
4600
+ *
4601
+ * `--allow-dev-services minio,mailpit` is the way out for a stage that is
4602
+ * not production — a preview, a demo: the target runs the dev service and
4603
+ * derives the keys from it. Keys the stage did set still win. Every run that
4604
+ * uses one says so, loudly.
4605
+ *
4606
+ * Pure: what each target runs is decided here from declarations and the
4607
+ * stage's values, and the targets do the running.
4608
+ */
4609
+ /** The dev services a deployed stage may be allowed to run. */
4610
+ const DEV_SERVICES = ["minio", "mailpit"];
4611
+ /**
4612
+ * The S3 client's shared key pair. Optional: a bucket whose URL carries its own
4613
+ * key (`s3://KEY:SECRET@bucket`) signs with that, and one without signs with
4614
+ * this pair when the stage set it, or with whatever else the SDK's default
4615
+ * chain finds — a role.
4616
+ */
4617
+ const STORAGE_KEY_PAIR = ["AWS_ACCESS_KEY_ID", "AWS_SECRET_ACCESS_KEY"];
4618
+ /** A `--allow-dev-services` value that is not a dev service. */
4619
+ var UnknownDevService = class extends Error {
4620
+ value;
4621
+ constructor(value) {
4622
+ super(`'${value}' is not a dev service. --allow-dev-services takes a comma-separated list of ${DEV_SERVICES.join(", ")}: --allow-dev-services ${DEV_SERVICES.join(",")}`);
4623
+ this.value = value;
4624
+ this.name = "UnknownDevService";
4625
+ }
4626
+ };
4627
+ /** Dev services asked of a target that runs no containers. */
4628
+ var DevServicesNeedServerTarget = class extends Error {
4629
+ target;
4630
+ services;
4631
+ constructor(target, services) {
4632
+ super(`--allow-dev-services applies to server targets only, and '${target}' deploys to AWS, where a bucket is S3 and mail is the stage's own. Drop --allow-dev-services ${services.join(",")}.`);
4633
+ this.target = target;
4634
+ this.services = services;
4635
+ this.name = "DevServicesNeedServerTarget";
4636
+ }
4637
+ };
4638
+ /**
4639
+ * A deployed stage with mail or object storage that its secrets do not
4640
+ * configure — every missing key, across every app, at once.
4641
+ */
4642
+ var ExternalServicesNotConfigured = class extends Error {
4643
+ stage;
4644
+ missing;
4645
+ constructor(stage, missing) {
4646
+ const services = [...new Set(missing.map((m) => m.service))].sort();
4647
+ const lines = missing.map((m) => {
4648
+ const by = m.apps?.length ? `, read by ${m.apps.join(", ")}` : "";
4649
+ return ` gkm secrets:set ${m.key} '${m.example}' --stage ${stage}\n ${m.what}${by}` + (m.note ? `\n ${m.note}` : "");
4650
+ });
4651
+ super(`The stage '${stage}' is deployed, and a deployed stage's mail and object storage are real services: gkm runs no Mailpit or MinIO for it. Set ${missing.length === 1 ? "this key" : `these ${missing.length} keys`} in the stage's secrets:\n\n${lines.join("\n")}\n\nFor a stage that is not production — a preview, a demo — the dev services can run instead, with --allow-dev-services ${services.join(",")}. Mailpit delivers no mail, and MinIO keeps every object on one container's disk.`);
4652
+ this.stage = stage;
4653
+ this.missing = missing;
4654
+ this.name = "ExternalServicesNotConfigured";
4655
+ }
4656
+ };
4657
+ /**
4658
+ * The dev services a value names: `'minio,mailpit'`, or a list of them.
4659
+ *
4660
+ * @throws {UnknownDevService} for anything that is not one
4661
+ */
4662
+ function parseDevServices(value) {
4663
+ if (value === void 0) return [];
4664
+ const items = (typeof value === "string" ? [value] : value).flatMap((item) => item.split(",")).map((item) => item.trim()).filter(Boolean);
4665
+ const services = /* @__PURE__ */ new Set();
4666
+ for (const item of items) {
4667
+ if (!DEV_SERVICES.includes(item)) throw new UnknownDevService(item);
4668
+ services.add(item);
4669
+ }
4670
+ return [...services].sort();
4671
+ }
4672
+ /**
4673
+ * Every mail and storage construct a manifest declares, with the apps that
4674
+ * depend on each — what a target that provisions the whole manifest checks.
4675
+ */
4676
+ function manifestServiceDeclarations(manifest) {
4677
+ return Object.entries(manifest).flatMap(([id, declaration]) => {
4678
+ const { kind } = declaration;
4679
+ if (kind !== "email" && kind !== "objects" && kind !== "file-server") return [];
4680
+ const apps = dependentsOf(manifest, id).filter((caller) => {
4681
+ const callerKind = manifest[caller]?.kind;
4682
+ return callerKind === "rest-api" || callerKind === "site";
4683
+ }).map(appKey);
4684
+ return [{
4685
+ id,
4686
+ kind,
4687
+ ...declaration.kind === "file-server" ? { of: declaration.of } : {},
4688
+ ...apps.length ? { apps } : {}
4689
+ }];
4690
+ });
4691
+ }
4692
+ /**
4693
+ * Where a deployed stage's mail and storage come from, and what it lacks.
4694
+ *
4695
+ * - Mail is external once its URL is set, and then needs its sending
4696
+ * address too. Unset, it is Mailpit where allowed — the address derived
4697
+ * unless set — and missing otherwise.
4698
+ * - A bucket is external once its URL is set; its credentials, in the URL or
4699
+ * the shared pair, are optional. Unset, it is MinIO where allowed, and
4700
+ * missing otherwise.
4701
+ * - A file server's URL is derived where its bucket is MinIO, unless set;
4702
+ * over an external bucket the stage must set it.
4703
+ */
4704
+ function externalServices(input) {
4705
+ const { supplied, allow } = input;
4706
+ const has = (key) => supplied[key] !== void 0;
4707
+ const domain = input.domain ?? "example.com";
4708
+ const missing = [];
4709
+ const minio = [];
4710
+ const mailpit = [];
4711
+ const add = (entry) => {
4712
+ if (!missing.some((m) => m.key === entry.key)) missing.push(entry);
4713
+ };
4714
+ const declarations = [...input.declarations].sort((a, b) => a.id.localeCompare(b.id));
4715
+ const apps = (d) => d.apps?.length ? { apps: [...d.apps].sort() } : {};
4716
+ for (const d of declarations.filter((d) => d.kind === "email")) {
4717
+ const url = provideKey(d.id, "url");
4718
+ const from = provideKey(d.id, "from");
4719
+ if (!has(url) && allow.includes("mailpit")) {
4720
+ mailpit.push(d.id);
4721
+ continue;
4722
+ }
4723
+ if (!has(url)) add({
4724
+ key: url,
4725
+ id: d.id,
4726
+ what: `where '${d.id}' sends mail — any SMTP server`,
4727
+ example: `smtp://user:password@smtp.${domain}:587`,
4728
+ service: "mailpit",
4729
+ ...apps(d)
4730
+ });
4731
+ if (!has(from)) add({
4732
+ key: from,
4733
+ id: d.id,
4734
+ what: `the address '${d.id}' sends from, on a domain the mail server has verified`,
4735
+ example: `noreply@${domain}`,
4736
+ service: "mailpit",
4737
+ ...apps(d)
4738
+ });
4739
+ }
4740
+ for (const d of declarations.filter((d) => d.kind === "objects")) {
4741
+ const url = provideKey(d.id, "url");
4742
+ if (has(url)) continue;
4743
+ if (allow.includes("minio")) {
4744
+ minio.push(d.id);
4745
+ continue;
4746
+ }
4747
+ add({
4748
+ key: url,
4749
+ id: d.id,
4750
+ what: `the bucket '${d.id}' — S3, R2, or any S3-compatible store (add &endpoint=… for one that is not S3)`,
4751
+ note: `credentials are optional: a key for this bucket alone in the URL (s3://KEY:SECRET@${appKey(d.id)}?…) wins; without one, the shared AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY or a role signs`,
4752
+ example: `s3://${appKey(d.id)}?region=eu-west-1`,
4753
+ service: "minio",
4754
+ ...apps(d)
4755
+ });
4756
+ }
4757
+ for (const d of declarations.filter((d) => d.kind === "file-server")) {
4758
+ const url = provideKey(d.id, "url");
4759
+ if (has(url)) continue;
4760
+ if (d.of && minio.includes(d.of)) continue;
4761
+ add({
4762
+ key: url,
4763
+ id: d.id,
4764
+ what: `the public address '${d.id}' serves its bucket on — a CDN or the bucket's own domain`,
4765
+ example: `https://${appKey(d.id)}.${domain}`,
4766
+ service: "minio",
4767
+ ...apps(d)
4768
+ });
4769
+ }
4770
+ return {
4771
+ missing,
4772
+ minio,
4773
+ mailpit
4774
+ };
4775
+ }
4776
+ /**
4777
+ * `externalServices`, refusing a stage that lacks anything.
4778
+ *
4779
+ * @throws {ExternalServicesNotConfigured} naming every missing key
4780
+ */
4781
+ function assertExternalServices(input) {
4782
+ const services = externalServices(input);
4783
+ if (services.missing.length > 0) throw new ExternalServicesNotConfigured(input.stage, services.missing);
4784
+ return services;
4785
+ }
4786
+ /** The dev services a run uses, one entry per service it runs. */
4787
+ function devServicesUsed(services) {
4788
+ const used = [];
4789
+ if (services.mailpit.length > 0) used.push({
4790
+ service: "mailpit",
4791
+ ids: services.mailpit
4792
+ });
4793
+ if (services.minio.length > 0) used.push({
4794
+ service: "minio",
4795
+ ids: services.minio
4796
+ });
4797
+ return used;
4798
+ }
4799
+ /** The line a run prints for each dev service a deployed stage uses. */
4800
+ function devServiceWarning(stage, use) {
4801
+ return `⚠️ DEV SERVICE ON A DEPLOYED STAGE (${stage}): ${use.service === "mailpit" ? `Mailpit is catching mail for ${use.ids.join(", ")}. It delivers NO mail: nobody receives a sign-in link, a receipt or a reset` : `MinIO is storing ${use.ids.join(", ")}. Every object is on one container's disk, with no replication and no backup`}. It is not production-grade — set the stage's own keys in its secrets for that.`;
4802
+ }
4803
+ /**
4804
+ * Report each dev service a run uses: a loud line, and a `dev-service.used`
4805
+ * event a host can act on.
4806
+ */
4807
+ function reportDevServices(ctx, uses) {
4808
+ for (const use of uses) {
4809
+ ctx.logger.warn(`\n${devServiceWarning(ctx.stage, use)}`);
4810
+ ctx.emit({
4811
+ type: "dev-service.used",
4812
+ service: use.service,
4813
+ stage: ctx.stage,
4814
+ constructs: use.ids
4815
+ });
4816
+ }
4817
+ }
4818
+ //#endregion
4579
4819
  //#region src/target/dokploy/domain.ts
4580
4820
  /** A stage was deployed that `deploy.domains` gives no domain. */
4581
4821
  var NoDomainForStage = class extends Error {
@@ -5388,6 +5628,6 @@ function setPostgresBackupId(state, backupId) {
5388
5628
  if (state.backups) state.backups.postgresBackupId = backupId;
5389
5629
  }
5390
5630
  //#endregion
5391
- export { cacheBackendFor as $, derivedContainers as A, projectName as At, pgClient as B, resolveHost as C, applicationName as Ct, FAKE_ENV as D, isOwnedBy as Dt, keyFingerprint as E, imageRef as Et, applyPostgres as F, withCustomSecret as Ft, planFor as G, networkEnv as H, postgresDatabaseNames as I, composeBuildPaths as J, resourceName as K, postgresStatements as L, workspace_exports as M, maskPassword as Mt, LOCAL_CA_PATH as N, storage_exports as Nt, backendsOf as O, markerOf as Ot, forgetState as P, toEmbeddableSecrets as Pt, findBuildRoot as Q, quoteIdentifier as R, isMainFrontendApp as S, readKey as St, encryption_exports as T, imageName as Tt, envFor as U, appEnvKeys as V, localRolePassword as W, TURBO_VERSION as X, imageLayout as Y, detectPackageManager as Z, deployDocker as _, store_exports as _t, recordRelease as a, fakeKey as at, ensureDockerignore as b, keystoreProject as bt, setBackupState as c, createCredentialsPreload as ct, setGeneratedSecret as d, isPortAvailable as dt, eventsBackendFor as et, setPostgresBackupId as f, loadEnvFiles as ft, credentialsFileContent as g, secretsStoreFor as gt, credentialsBuildArg as h, isRemoteStore as ht, isDnsVerified as i, describeServices as it, reconcileWorkspace as j, initStageSecrets as jt, constructGlobs as k, ownershipMarker as kt, setDnsRecord as l, createEntryWrapper as lt, withGeneratedSecrets as m, prepareEntryCredentials as mt, getBackupState as n, storageBackendFor as nt, recordRollback as o, portKeys as ot, DeployJournal as p, loadSecretsForApp as pt, hostFor as q, getGeneratedSecret as r, DEFAULT_IMAGES as rt, setApplicationId as s, primaryPortKey as st, createEmptyState as t, providerOf as tt, setDnsVerification as u, findAvailablePort as ut, appDockerfile as v, FileSecretsStore as vt, encryptSecrets as w, deployIdentity as wt, validateImageRef as x, projectKey as xt, dockerCommand as y, getKeyPath as yt, composeFor as z };
5631
+ export { quoteIdentifier as $, assertExternalServices as A, prepareEntryCredentials as At, backendsOf as B, deployIdentity as Bt, isMainFrontendApp as C, primaryPortKey as Ct, ExternalServicesNotConfigured as D, isPortAvailable as Dt, DevServicesNeedServerTarget as E, findAvailablePort as Et, reportDevServices as F, getKeyPath as Ft, LOCAL_CA_PATH as G, ownershipMarker as Gt, derivedContainers as H, imageRef as Ht, encryptSecrets as I, keystoreProject as It, applyPolicies as J, maskPassword as Jt, forgetState as K, projectName as Kt, encryption_exports as L, projectKey as Lt, externalServices as M, secretsStoreFor as Mt, manifestServiceDeclarations as N, store_exports as Nt, STORAGE_KEY_PAIR as O, loadEnvFiles as Ot, parseDevServices as P, FileSecretsStore as Pt, postgresStatements as Q, keyFingerprint as R, readKey as Rt, NoDomainForStage as S, portKeys as St, DEV_SERVICES as T, createEntryWrapper as Tt, reconcileWorkspace as U, isOwnedBy as Ut, constructGlobs as V, imageName as Vt, workspace_exports as W, markerOf as Wt, bucketPolicies as X, toEmbeddableSecrets as Xt, applyPostgres as Y, storage_exports as Yt, postgresDatabaseNames as Z, withCustomSecret as Zt, deployDocker as _, providerOf as _t, recordRelease as a, envFor as at, ensureDockerignore as b, describeServices as bt, setBackupState as c, resourceName as ct, setGeneratedSecret as d, imageLayout as dt, composeFor as et, setPostgresBackupId as f, TURBO_VERSION as ft, credentialsFileContent as g, eventsBackendFor as gt, credentialsBuildArg as h, cacheBackendFor as ht, isDnsVerified as i, networkEnv as it, devServicesUsed as j, isRemoteStore as jt, UnknownDevService as k, loadSecretsForApp as kt, setDnsRecord as l, hostFor as lt, withGeneratedSecrets as m, findBuildRoot as mt, getBackupState as n, pgClient as nt, recordRollback as o, localRolePassword as ot, DeployJournal as p, detectPackageManager as pt, applyBuckets as q, initStageSecrets as qt, getGeneratedSecret as r, appEnvKeys as rt, setApplicationId as s, planFor as st, createEmptyState as t, bucketClient as tt, setDnsVerification as u, composeBuildPaths as ut, appDockerfile as v, storageBackendFor as vt, resolveHost as w, createCredentialsPreload as wt, validateImageRef as x, fakeKey as xt, dockerCommand as y, DEFAULT_IMAGES as yt, FAKE_ENV as z, applicationName as zt };
5392
5632
 
5393
- //# sourceMappingURL=state-DkUStoqJ.mjs.map
5633
+ //# sourceMappingURL=state-Bn5JDMFT.mjs.map