@dragonmastery/tamer 0.1.1 → 0.28.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.
Files changed (89) hide show
  1. package/README.md +569 -18
  2. package/dist/CFApiClient-DhbyyV71.mjs +868 -0
  3. package/dist/CFApiClient-DhbyyV71.mjs.map +1 -0
  4. package/dist/StateManager-DTqtLLVX.mjs +760 -0
  5. package/dist/StateManager-DTqtLLVX.mjs.map +1 -0
  6. package/dist/apply-B0b_jjGv.mjs +423 -0
  7. package/dist/apply-B0b_jjGv.mjs.map +1 -0
  8. package/dist/applyTarget-BetDYdeS.mjs +152 -0
  9. package/dist/applyTarget-BetDYdeS.mjs.map +1 -0
  10. package/dist/bootstrap-CBzPilB1.mjs +33 -0
  11. package/dist/bootstrap-CBzPilB1.mjs.map +1 -0
  12. package/dist/buildDispatchUploadForm-BoUB93b3.mjs +38 -0
  13. package/dist/buildDispatchUploadForm-BoUB93b3.mjs.map +1 -0
  14. package/dist/cloudflareSnapshot-B4FOaNr0.mjs +163 -0
  15. package/dist/cloudflareSnapshot-B4FOaNr0.mjs.map +1 -0
  16. package/dist/deploy-gHEQxhmx.mjs +119 -0
  17. package/dist/deploy-gHEQxhmx.mjs.map +1 -0
  18. package/dist/destroy-B21f3wgq.mjs +215 -0
  19. package/dist/destroy-B21f3wgq.mjs.map +1 -0
  20. package/dist/destroy-tenant-BW2nasnK.mjs +103 -0
  21. package/dist/destroy-tenant-BW2nasnK.mjs.map +1 -0
  22. package/dist/dev-Dt26nzMJ.mjs +103 -0
  23. package/dist/dev-Dt26nzMJ.mjs.map +1 -0
  24. package/dist/dns-records.resolve-C2T0m4NG.mjs +3 -0
  25. package/dist/dns-records.resolve-DwBR_1WI.mjs +47 -0
  26. package/dist/dns-records.resolve-DwBR_1WI.mjs.map +1 -0
  27. package/dist/dns-records.sync-Bpzz9H0s.mjs +75 -0
  28. package/dist/dns-records.sync-Bpzz9H0s.mjs.map +1 -0
  29. package/dist/doctor-C_hs7k2D.mjs +34 -0
  30. package/dist/doctor-C_hs7k2D.mjs.map +1 -0
  31. package/dist/drift-D5qzCTft.mjs +10 -0
  32. package/dist/drift-D8ZrSgTn.mjs +323 -0
  33. package/dist/drift-D8ZrSgTn.mjs.map +1 -0
  34. package/dist/events-BSwGdkGj.mjs +68 -0
  35. package/dist/events-BSwGdkGj.mjs.map +1 -0
  36. package/dist/fetchStackImports-B4ZJahOt.mjs +3817 -0
  37. package/dist/fetchStackImports-B4ZJahOt.mjs.map +1 -0
  38. package/dist/generator-CIMbcPzv.mjs +77 -0
  39. package/dist/generator-CIMbcPzv.mjs.map +1 -0
  40. package/dist/import-BrduwA9Z.mjs +164 -0
  41. package/dist/import-BrduwA9Z.mjs.map +1 -0
  42. package/dist/index.d.mts +6592 -56
  43. package/dist/index.d.mts.map +1 -1
  44. package/dist/index.mjs +18 -1
  45. package/dist/index.mjs.map +1 -0
  46. package/dist/loader-DP7yXqT6.mjs +518 -0
  47. package/dist/loader-DP7yXqT6.mjs.map +1 -0
  48. package/dist/logpush-job-xS7270FZ.mjs +1106 -0
  49. package/dist/logpush-job-xS7270FZ.mjs.map +1 -0
  50. package/dist/migrate-CahG6BYV.mjs +87 -0
  51. package/dist/migrate-CahG6BYV.mjs.map +1 -0
  52. package/dist/normalize-Bx0bpFop.mjs +236 -0
  53. package/dist/normalize-Bx0bpFop.mjs.map +1 -0
  54. package/dist/plan-DWvsvy1U.mjs +453 -0
  55. package/dist/plan-DWvsvy1U.mjs.map +1 -0
  56. package/dist/planFormat-CJw8Kq2s.mjs +119 -0
  57. package/dist/planFormat-CJw8Kq2s.mjs.map +1 -0
  58. package/dist/provision-tenant-WTKo93Y0.mjs +192 -0
  59. package/dist/provision-tenant-WTKo93Y0.mjs.map +1 -0
  60. package/dist/r2S3EmptyBucket-DD81ZWQ7.mjs +92 -0
  61. package/dist/r2S3EmptyBucket-DD81ZWQ7.mjs.map +1 -0
  62. package/dist/stackOutputs-W9mnnJuj.mjs +69 -0
  63. package/dist/stackOutputs-W9mnnJuj.mjs.map +1 -0
  64. package/dist/status-DLwREPjb.mjs +198 -0
  65. package/dist/status-DLwREPjb.mjs.map +1 -0
  66. package/dist/sync-f2K2blwm.mjs +90 -0
  67. package/dist/sync-f2K2blwm.mjs.map +1 -0
  68. package/dist/tamer.d.mts +1 -0
  69. package/dist/tamer.mjs +4553 -0
  70. package/dist/tamer.mjs.map +1 -0
  71. package/dist/tamerArtifactsR2-Ccgplu2Q.mjs +52 -0
  72. package/dist/tamerArtifactsR2-Ccgplu2Q.mjs.map +1 -0
  73. package/dist/types-CqxqYnrT.mjs +44 -0
  74. package/dist/types-CqxqYnrT.mjs.map +1 -0
  75. package/dist/verifyPlanFile-c16z1AMH.mjs +33 -0
  76. package/dist/verifyPlanFile-c16z1AMH.mjs.map +1 -0
  77. package/dist/wfp-delete-DysvX1u7.mjs +36 -0
  78. package/dist/wfp-delete-DysvX1u7.mjs.map +1 -0
  79. package/dist/wfp-put-jaVd_LjO.mjs +52 -0
  80. package/dist/wfp-put-jaVd_LjO.mjs.map +1 -0
  81. package/dist/worker-route-Be2IvOdr.mjs +263 -0
  82. package/dist/worker-route-Be2IvOdr.mjs.map +1 -0
  83. package/dist/workers-aGILs77X.mjs +87 -0
  84. package/dist/workers-aGILs77X.mjs.map +1 -0
  85. package/dist/wranglerSpawn-DmEz0ldT.mjs +24 -0
  86. package/dist/wranglerSpawn-DmEz0ldT.mjs.map +1 -0
  87. package/dist/zoneResolver-VoxLHM4N.mjs +32 -0
  88. package/dist/zoneResolver-VoxLHM4N.mjs.map +1 -0
  89. package/package.json +42 -4
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../src/generated/wrangler-types.ts"],"sourcesContent":[],"mappings":";;AASA;AAWA;AAOA;AAOA;;;;AAQS,UAjCQ,kBAAA,CAiCR;EACE,OAAA,EAAA,MAAA;EAAK,WAAA,CAAA,EAAA,MAAA;EAMC,aAAS,CAAA,EAAA,MAAA;EAOT,qBAAA,CAAA,EAAA,MAAA;EACF,cAAA,CAAA,EAAA,MAAA;EACG,gBAAA,CAAA,EAAA,MAAA;EACT,mBAAA,CAAA,EAAA,MAAA;;;AAEE,UAzCM,gBAAA,CAyCN;EAAK,OAAA,EAAA,MAAA;EAOJ,WAAA,CAAA,EAAA,MAAc;EAGd,YAAA,CAAA,EAAA,MAAA;;;UA5CK,mBAAA;;;;;;UAOA,cAAA;;;;;iBAKA;eACF;kBACG;SACT;WACE;;;;;;;;;UAMM,SAAA;;;;;;;iBAOA;eACF;kBACG;SACT;QACD,eAAe;WACZ;;;;;;;;;;;;;KAOC,cAAA,GAAiB;;KAGjB,mBAAA,GAAsB"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/generated/wrangler-types.generated.ts","../src/generated/wrangler-types.ts","../src/dx/cloudflare-bindings.ts","../src/types.ts","../src/dx/normalize.ts","../src/dx/index.ts"],"sourcesContent":[],"mappings":";;AASA;;;;;AAOA;AAYA;AAaY,KAhCA,KAAA,GAgCA,MAAA,GAhCiB,WAgCI,GAhCU,aAgCV,GAhC0B,iBAgC1B;AAihEjC;;;;;;AAiHU,KA3pEE,oBAAA,GA2pEF,UAAA,GAAA,UAAA,GAAA,cAAA,GAAA,MAAA,GAAA,MAAA,GAAA,cAAA,GAAA,mBAAA;;;;;AAiOkB,KAh3EhB,IAAA,GAg3EgB,MAAA,GAAA,MAAA,GAAA,OAAA,GAAA,IAAA,GA32ExB,IA22EwB,EAAA,GAAA;EA2BZ,CAAA,CAAA,EAAA,MAAA,CAAA,EAp4EG,IAo4EH;CAOA;;;;;AAqwBF,KA1oGF,qBAAA,GA0oGE;EAOA;;;EA0fe,IAAA,EAAA,MAAA;EAAqB;AAoOlD;AASA;EASiB,UAAA,EAAA,MAAA;EAYA;AA+BjB;AAWA;EAsDW,WAAA,CAAA,EAAA,MAAA;EAMQ;;;EAoBL,WAAA,CAAA,EAAA,MAAA;CAiCL,EAAA;;;;;;;;;UAvhEQ,cAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAsDN;;;;;;mBAMQ,cAAc,gBAAgB;;;;;;;;;;;;;;;;;;;;eAoBlC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAiCL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cA6MI;oBACM;aACP;YACD;;;;;;;;;;;;;;;;;4BAiBgB;;;;;;;;;;;;;;;;;;;;;;;;;;;gBA2BZ;;;;;;;gBAOA;;;;;;;;;;;;;;;;;;;iBAmBC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAieI;;;;;;+BAMU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BAgPL;;;;;;;;;;;;;;;;;;;;;;;;;;;cA2BZ;;;;;;;cAOA;;;;;;;;;;;;;;;;;;;eAmBC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAieI;;;;;;6BAMU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAieI;;;;;;+BAMU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BAgPL;;;;;;;;;;;;;;;;;;;;;;;;;;;cA2BZ;;;;;;;cAOA;;;;;;;;;;;;;;;;;;;eAmBC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAieI;;;;;;6BAMU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
package/dist/index.mjs CHANGED
@@ -1 +1,18 @@
1
- export { };
1
+ import { a as cf, c as TAMER_OVERLAY_ENV_KEY, d as defineWorker, f as getDispatchNamespaces, i as CfBinding, l as defineConfig, m as getLogpushJobs, n as materializeTamerResolvable, o as cfBindingSpecToTamerRef, p as getDnsRecords, r as materializeVars, s as isCfBinding, t as materializeCloudflareBindings, u as defineProjectOverlay } from "./normalize-Bx0bpFop.mjs";
2
+
3
+ //#region src/dx/index.ts
4
+ /**
5
+ * Like {@link defineConfig}, but first replaces {@link CfBinding} nodes under
6
+ * the object tree with `${tamer:…}` strings. Use when you default-export the
7
+ * config object directly without going through `loadConfig` (e.g. some tests).
8
+ *
9
+ * `tamer` CLI `loadConfig` also runs {@link materializeCloudflareBindings}, so
10
+ * `export default { … cf.r2("x").name … }` works without this wrapper.
11
+ */
12
+ function defineCloudflareConfig(config) {
13
+ return defineConfig(materializeCloudflareBindings(config));
14
+ }
15
+
16
+ //#endregion
17
+ export { CfBinding, TAMER_OVERLAY_ENV_KEY, cf, cfBindingSpecToTamerRef, defineCloudflareConfig, defineConfig, defineProjectOverlay, defineWorker, getDispatchNamespaces, getDnsRecords, getLogpushJobs, isCfBinding, materializeCloudflareBindings, materializeTamerResolvable, materializeVars };
18
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../src/dx/index.ts"],"sourcesContent":["export {\n cf,\n CfBinding,\n cfBindingSpecToTamerRef,\n isCfBinding,\n type CfBindingSpec,\n type CfLogpushPipelinesField,\n type CfResourceField,\n type CfResourceKind,\n} from \"./cloudflare-bindings.js\";\nexport {\n materializeCloudflareBindings,\n materializeTamerResolvable,\n materializeVars,\n} from \"./normalize.js\";\n\nimport type { CfiConfig } from \"../types.js\";\nimport { defineConfig } from \"../types.js\";\nimport { materializeCloudflareBindings } from \"./normalize.js\";\n\n/**\n * Like {@link defineConfig}, but first replaces {@link CfBinding} nodes under\n * the object tree with `${tamer:…}` strings. Use when you default-export the\n * config object directly without going through `loadConfig` (e.g. some tests).\n *\n * `tamer` CLI `loadConfig` also runs {@link materializeCloudflareBindings}, so\n * `export default { … cf.r2(\"x\").name … }` works without this wrapper.\n */\nexport function defineCloudflareConfig(config: unknown): CfiConfig {\n return defineConfig(materializeCloudflareBindings(config) as CfiConfig);\n}\n"],"mappings":";;;;;;;;;;;AA4BA,SAAgB,uBAAuB,QAA4B;AACjE,QAAO,aAAa,8BAA8B,OAAO,CAAc"}
@@ -0,0 +1,518 @@
1
+ import { c as TAMER_OVERLAY_ENV_KEY, t as materializeCloudflareBindings } from "./normalize-Bx0bpFop.mjs";
2
+ import { a as boolean, c as number, d as string, f as union, i as array, l as object, n as _enum, r as any, s as literal, u as record } from "./tamer.mjs";
3
+ import { basename, dirname, resolve } from "path";
4
+ import { existsSync } from "fs";
5
+
6
+ //#region src/core/config/merge-project-overlay.ts
7
+ /**
8
+ * Deep-merge `tamer/env/<env>.config.ts` onto `tamer/project.config.ts`.
9
+ * See docs/design-tamer-project-config.md.
10
+ */
11
+ function isPlainObject(v) {
12
+ return v !== null && typeof v === "object" && !Array.isArray(v) && !(v instanceof Date);
13
+ }
14
+ function validateOverlayWorkers(projectWorkers, overlayWorkers) {
15
+ for (const k of Object.keys(overlayWorkers)) if (!(k in projectWorkers)) throw new Error(`Tamer env overlay: unknown worker key "${k}". Declare "${k}" in tamer/project.config.ts first — overlays may only patch existing workers.`);
16
+ }
17
+ function mergeWorkerResources(base, patch) {
18
+ const out = { ...base };
19
+ for (const k of Object.keys(patch)) {
20
+ const pk = patch[k];
21
+ if (pk !== void 0) out[k] = pk;
22
+ }
23
+ return out;
24
+ }
25
+ function mergeEnvMap(base, patch) {
26
+ const out = { ...base };
27
+ for (const k of Object.keys(patch)) {
28
+ const b = base[k];
29
+ const p = patch[k];
30
+ if (isPlainObject(b) && isPlainObject(p)) out[k] = mergeWorkerConfig(b, p);
31
+ else out[k] = p;
32
+ }
33
+ return out;
34
+ }
35
+ function mergeWorkerConfig(base, patch) {
36
+ const out = { ...base };
37
+ for (const key of Object.keys(patch)) {
38
+ const pv = patch[key];
39
+ if (pv === void 0) continue;
40
+ if (key === "vars") {
41
+ const bv = isPlainObject(base.vars) ? base.vars : {};
42
+ const ov = isPlainObject(patch.vars) ? patch.vars : {};
43
+ out.vars = {
44
+ ...bv,
45
+ ...ov
46
+ };
47
+ continue;
48
+ }
49
+ if (key === "tamerRoutes") {
50
+ out.tamerRoutes = pv;
51
+ continue;
52
+ }
53
+ if (key === "tamerStaleRouteSweepZones") {
54
+ out.tamerStaleRouteSweepZones = pv;
55
+ continue;
56
+ }
57
+ if (key === "resources") {
58
+ if (isPlainObject(base.resources) && isPlainObject(pv)) out.resources = mergeWorkerResources(base.resources, pv);
59
+ else out.resources = pv;
60
+ continue;
61
+ }
62
+ if (key === "env") {
63
+ if (isPlainObject(base.env) && isPlainObject(pv)) out.env = mergeEnvMap(base.env, pv);
64
+ else out.env = pv;
65
+ continue;
66
+ }
67
+ if (key === "local") {
68
+ if (isPlainObject(base.local) && isPlainObject(pv)) out.local = mergeWorkerConfig(base.local, pv);
69
+ else out.local = pv;
70
+ continue;
71
+ }
72
+ out[key] = pv;
73
+ }
74
+ return out;
75
+ }
76
+ function mergeWorkersRecord(base, patch) {
77
+ const out = { ...base };
78
+ for (const k of Object.keys(patch)) {
79
+ const b = base[k];
80
+ const p = patch[k];
81
+ if (isPlainObject(b) && isPlainObject(p)) out[k] = mergeWorkerConfig(b, p);
82
+ else out[k] = p;
83
+ }
84
+ return out;
85
+ }
86
+ /**
87
+ * Merge env overlay onto project config (both plain objects from `default` exports).
88
+ * Does not run {@link materializeCloudflareBindings} — caller does that on the result.
89
+ */
90
+ function mergeProjectOverlay(project, overlay) {
91
+ const out = { ...project };
92
+ for (const key of Object.keys(overlay)) {
93
+ const ov = overlay[key];
94
+ if (ov === void 0) continue;
95
+ const pv = project[key];
96
+ switch (key) {
97
+ case "tenant":
98
+ if (isPlainObject(pv) && isPlainObject(ov)) out[key] = {
99
+ ...pv,
100
+ ...ov
101
+ };
102
+ else out[key] = ov;
103
+ break;
104
+ case "naming":
105
+ out[key] = ov;
106
+ break;
107
+ case "workers":
108
+ if (!isPlainObject(pv) || !isPlainObject(ov)) {
109
+ out[key] = ov;
110
+ break;
111
+ }
112
+ validateOverlayWorkers(pv, ov);
113
+ out[key] = mergeWorkersRecord(pv, ov);
114
+ break;
115
+ case "worker":
116
+ if (isPlainObject(pv) && isPlainObject(ov)) out[key] = mergeWorkerConfig(pv, ov);
117
+ else out[key] = ov;
118
+ break;
119
+ case "outputs":
120
+ if (isPlainObject(pv) && isPlainObject(ov)) out[key] = {
121
+ ...pv,
122
+ ...ov
123
+ };
124
+ else out[key] = ov;
125
+ break;
126
+ case "logpushJobs":
127
+ case "dispatchNamespaces":
128
+ case "dnsRecords":
129
+ out[key] = ov;
130
+ break;
131
+ default: out[key] = ov;
132
+ }
133
+ }
134
+ return out;
135
+ }
136
+
137
+ //#endregion
138
+ //#region src/core/config/resolve-config-sources.ts
139
+ function isProjectFileName(file) {
140
+ return file === "project.config.ts" || file === "tamer.project.config.ts";
141
+ }
142
+ function projectDirForMergedEntry(absProject) {
143
+ const dir = dirname(absProject);
144
+ if (basename(absProject) === "project.config.ts") return dir;
145
+ return dir;
146
+ }
147
+ function overlayPathForNestedLayout(projectDir, env) {
148
+ return resolve(projectDir, "env", `${env}.config.ts`);
149
+ }
150
+ function overlayPathForFlatLayout(projectRoot, env) {
151
+ return resolve(projectRoot, `tamer.env.${env}.ts`);
152
+ }
153
+ function rejectLegacyTamerConfigFile(context) {
154
+ throw new Error(`${context}: tamer.config.ts is not supported. Move the default export to tamer/project.config.ts and optional per-env overlays to tamer/env/<env>.config.ts (or use tamer.project.config.ts at the repo root with optional tamer.env.<env>.ts).`);
155
+ }
156
+ /**
157
+ * Resolve which config file(s) to load. See docs/design-tamer-project-config.md.
158
+ *
159
+ * - **Merged:** `tamer/project.config.ts` or `tamer.project.config.ts`, plus optional env overlay.
160
+ * - **Single:** explicit `--config` path to any `.ts` file **except** `tamer.config.ts` (e.g. alternate snapshots in tests).
161
+ */
162
+ function resolveConfigSources(cwd, explicitConfigPath, env) {
163
+ if (explicitConfigPath) {
164
+ const abs = resolve(cwd, explicitConfigPath);
165
+ const file = basename(abs);
166
+ if (file === "tamer.config.ts") rejectLegacyTamerConfigFile("--config");
167
+ if (isProjectFileName(file)) {
168
+ const projectDir = projectDirForMergedEntry(abs);
169
+ let overlay = null;
170
+ if (env) if (file === "project.config.ts") {
171
+ const candidate = overlayPathForNestedLayout(projectDir, env);
172
+ if (existsSync(candidate)) overlay = candidate;
173
+ } else {
174
+ const candidate = overlayPathForFlatLayout(dirname(abs), env);
175
+ if (existsSync(candidate)) overlay = candidate;
176
+ }
177
+ return {
178
+ mode: "merged",
179
+ projectPath: abs,
180
+ overlayPath: overlay
181
+ };
182
+ }
183
+ return {
184
+ mode: "single",
185
+ path: abs
186
+ };
187
+ }
188
+ const nestedProject = resolve(cwd, "tamer", "project.config.ts");
189
+ if (existsSync(nestedProject)) {
190
+ let overlay = null;
191
+ if (env) {
192
+ const candidate = overlayPathForNestedLayout(dirname(nestedProject), env);
193
+ if (existsSync(candidate)) overlay = candidate;
194
+ }
195
+ return {
196
+ mode: "merged",
197
+ projectPath: nestedProject,
198
+ overlayPath: overlay
199
+ };
200
+ }
201
+ const flatProject = resolve(cwd, "tamer.project.config.ts");
202
+ if (existsSync(flatProject)) {
203
+ let overlay = null;
204
+ if (env) {
205
+ const candidate = overlayPathForFlatLayout(cwd, env);
206
+ if (existsSync(candidate)) overlay = candidate;
207
+ }
208
+ return {
209
+ mode: "merged",
210
+ projectPath: flatProject,
211
+ overlayPath: overlay
212
+ };
213
+ }
214
+ if (existsSync(resolve(cwd, "tamer.config.ts"))) rejectLegacyTamerConfigFile("Config discovery");
215
+ throw new Error(`No Tamer project config under ${cwd}. Create tamer/project.config.ts (or tamer.project.config.ts at the repo root).`);
216
+ }
217
+
218
+ //#endregion
219
+ //#region src/core/config/loader.ts
220
+ const TENANT_SHARD_ROLE_RE = /^[a-z][a-z0-9_-]*$/;
221
+ const TenantMetaSchema = object({
222
+ id: string().min(1),
223
+ name: string().min(1),
224
+ slug: string().min(1),
225
+ d1Shards: array(string().min(1).refine((s) => TENANT_SHARD_ROLE_RE.test(s), { error: "tenant.d1Shards entries must be lowercase ASCII (letters, digits, `_`, `-`) and start with a letter" })).optional().refine((arr) => !arr || new Set(arr).size === arr.length, "tenant.d1Shards must not contain duplicate roles"),
226
+ protectedEnvs: array(string().min(1)).optional(),
227
+ ephemeralEnvPattern: string().min(1).optional().refine((s) => {
228
+ if (s == null) return true;
229
+ try {
230
+ new RegExp(s);
231
+ return true;
232
+ } catch {
233
+ return false;
234
+ }
235
+ }, "tenant.ephemeralEnvPattern must be a valid JavaScript RegExp source string")
236
+ });
237
+ const D1ResourceConfigSchema = object({
238
+ logicalName: string().min(1),
239
+ type: _enum(["single", "sharded"]),
240
+ ownership: _enum(["managed", "external"]).optional(),
241
+ databaseName: string().optional(),
242
+ binding: string().optional(),
243
+ migrationsDir: string().optional(),
244
+ migrationsTable: string().optional(),
245
+ preserveOnDestroy: boolean().optional()
246
+ }).refine((d) => d.ownership !== "external" || typeof d.databaseName === "string" && d.databaseName.length > 0, { error: "resources.d1: ownership 'external' requires non-empty databaseName" }).refine((d) => d.ownership !== "external" || d.type === "single", { error: "resources.d1: ownership 'external' only supports type 'single'" });
247
+ const R2ResourceConfigSchema = object({
248
+ logicalName: string().min(1),
249
+ binding: string().optional()
250
+ });
251
+ const KVResourceConfigSchema = object({
252
+ logicalName: string().min(1),
253
+ binding: string().optional()
254
+ });
255
+ const QueueResourceConfigSchema = object({
256
+ logicalName: string().min(1),
257
+ binding: string().optional(),
258
+ consumerOnly: boolean().optional()
259
+ });
260
+ const HyperdriveSecretSchema = union([string(), object({ fromEnv: string().min(1) })]);
261
+ const HyperdriveOriginSchema = object({
262
+ scheme: _enum([
263
+ "postgres",
264
+ "postgresql",
265
+ "mysql"
266
+ ]),
267
+ host: string().min(1),
268
+ port: number().optional(),
269
+ database: string().min(1),
270
+ user: string().min(1),
271
+ password: HyperdriveSecretSchema,
272
+ access_client_id: string().optional(),
273
+ access_client_secret: HyperdriveSecretSchema.optional()
274
+ });
275
+ const HyperdriveResourceConfigSchema = object({
276
+ logicalName: string().min(1),
277
+ binding: string().optional(),
278
+ origin: HyperdriveOriginSchema,
279
+ caching: object({
280
+ disabled: boolean().optional(),
281
+ max_age: number().optional(),
282
+ stale_while_revalidate: number().optional()
283
+ }).optional(),
284
+ mtls: object({
285
+ ca_certificate_id: string().optional(),
286
+ mtls_certificate_id: string().optional()
287
+ }).optional(),
288
+ localConnectionString: string().optional()
289
+ });
290
+ const VectorizeResourceConfigSchema = object({
291
+ logicalName: string().min(1),
292
+ binding: string().optional(),
293
+ dimensions: number().int().positive(),
294
+ metric: _enum([
295
+ "cosine",
296
+ "euclidean",
297
+ "dot-product"
298
+ ]),
299
+ description: string().optional()
300
+ });
301
+ const AIGatewayResourceConfigSchema = object({
302
+ logicalName: string().min(1),
303
+ cacheTtl: number().int().nonnegative().optional(),
304
+ cacheInvalidateOnUpdate: boolean().optional(),
305
+ collectLogs: boolean().optional(),
306
+ authentication: boolean().optional(),
307
+ rateLimitingInterval: number().int().nonnegative().optional(),
308
+ rateLimitingLimit: number().int().nonnegative().optional(),
309
+ rateLimitingTechnique: _enum(["fixed", "sliding"]).optional()
310
+ });
311
+ const DispatchNamespaceResourceSchema = object({
312
+ logicalName: string().min(1),
313
+ namespace: string().min(1),
314
+ envSuffix: boolean().optional()
315
+ });
316
+ const LogpushJobR2DestinationSchema = object({
317
+ bucketLogicalName: string().min(1),
318
+ pathPrefix: string().optional(),
319
+ accessKeyIdEnv: string().min(1),
320
+ secretAccessKeyEnv: string().min(1)
321
+ });
322
+ const LogpushJobPipelinesIngestSchema = object({
323
+ streamId: string().min(1),
324
+ pipelineId: string().min(1),
325
+ bearerTokenEnv: string().min(1)
326
+ });
327
+ const LogpushJobPipelinesAutoSchema = object({
328
+ catalogBucketLogicalName: string().min(1),
329
+ tableName: string().min(1),
330
+ namespace: string().min(1).optional(),
331
+ tableNameAppendTimestamp: boolean().optional(),
332
+ sinkRowGroupBytes: number().int().positive().optional(),
333
+ sinkRollingFileSizeBytes: number().int().positive().optional(),
334
+ sinkRollingIntervalSeconds: number().int().positive().optional()
335
+ });
336
+ const LogpushJobResourceConfigSchema = object({
337
+ logicalName: string().min(1),
338
+ dataset: literal("workers_trace_events"),
339
+ jobName: string().optional(),
340
+ r2: LogpushJobR2DestinationSchema.optional(),
341
+ pipelinesIngest: LogpushJobPipelinesIngestSchema.optional(),
342
+ pipelinesAuto: LogpushJobPipelinesAutoSchema.optional(),
343
+ destinationConfEnv: string().min(1).optional(),
344
+ destinationConfFromJobId: number().int().positive().optional(),
345
+ destinationConfFromJobIdEnv: string().min(1).optional(),
346
+ filter: string().min(1).optional(),
347
+ fieldNames: array(string()).optional(),
348
+ enabled: boolean().optional()
349
+ }).refine((d) => {
350
+ const hasR2 = Boolean(d.r2);
351
+ const n = (d.destinationConfEnv ? 1 : 0) + (d.destinationConfFromJobId != null ? 1 : 0) + (d.destinationConfFromJobIdEnv ? 1 : 0) + (d.pipelinesIngest ? 1 : 0) + (d.pipelinesAuto ? 1 : 0);
352
+ if (hasR2) return n === 0;
353
+ return n === 1;
354
+ }, { error: "logpushJobs: set exactly one of r2 | pipelinesIngest | pipelinesAuto | destinationConfEnv | destinationConfFromJobId | destinationConfFromJobIdEnv" }).refine((d) => !(d.destinationConfFromJobId != null && d.destinationConfFromJobIdEnv), { error: "logpushJobs: use only one of destinationConfFromJobId or destinationConfFromJobIdEnv" }).refine((d) => !(d.pipelinesIngest && d.pipelinesAuto), { error: "logpushJobs: use only one of pipelinesIngest or pipelinesAuto" });
355
+ const DnsRecordResourceConfigSchema = object({
356
+ logicalName: string().min(1),
357
+ zoneId: string().min(1),
358
+ type: _enum([
359
+ "A",
360
+ "AAAA",
361
+ "CNAME",
362
+ "TXT",
363
+ "MX",
364
+ "NS",
365
+ "CAA",
366
+ "SRV",
367
+ "PTR",
368
+ "HTTPS",
369
+ "SVCB"
370
+ ]),
371
+ name: string().min(1),
372
+ content: string().min(1),
373
+ ttl: number().int().positive().optional(),
374
+ proxied: boolean().optional(),
375
+ priority: number().int().nonnegative().optional(),
376
+ comment: string().optional(),
377
+ skipEnvs: array(string()).optional(),
378
+ preserveOnDestroy: boolean().optional()
379
+ });
380
+ const PipelineResourceConfigSchema = object({
381
+ logicalName: string().min(1),
382
+ sql: string().min(1),
383
+ binding: string().min(1).optional()
384
+ });
385
+ const WorkflowResourceConfigSchema = object({
386
+ logicalName: string().min(1),
387
+ className: string().min(1),
388
+ scriptName: string().min(1).optional(),
389
+ binding: string().min(1).optional(),
390
+ limits: object({ steps: number().int().positive().optional() }).optional()
391
+ });
392
+ const SecretsStoreResourceConfigSchema = object({ logicalName: string().min(1) });
393
+ const SecretsStoreSecretBindingSchema = object({
394
+ binding: string().min(1),
395
+ store: string().min(1),
396
+ secretName: string().min(1)
397
+ });
398
+ const WorkerResourcesSchema = object({
399
+ d1: array(D1ResourceConfigSchema).optional(),
400
+ r2: array(R2ResourceConfigSchema).optional(),
401
+ kv: array(KVResourceConfigSchema).optional(),
402
+ queues: array(QueueResourceConfigSchema).optional(),
403
+ hyperdrive: array(HyperdriveResourceConfigSchema).optional(),
404
+ vectorize: array(VectorizeResourceConfigSchema).optional(),
405
+ aiGateway: array(AIGatewayResourceConfigSchema).optional(),
406
+ pipelines: array(PipelineResourceConfigSchema).optional(),
407
+ workflows: array(WorkflowResourceConfigSchema).optional(),
408
+ secretsStores: array(SecretsStoreResourceConfigSchema).optional(),
409
+ secretsStoreSecrets: array(SecretsStoreSecretBindingSchema).optional()
410
+ });
411
+ const WranglerRouteSchema = object({
412
+ pattern: string(),
413
+ custom_domain: boolean().optional(),
414
+ zone_name: string().optional(),
415
+ zone_id: string().optional()
416
+ });
417
+ const WranglerAssetsSchema = object({
418
+ directory: string(),
419
+ binding: string().optional(),
420
+ not_found_handling: _enum(["single-page-application", "return-404"]).optional()
421
+ });
422
+ const EnvOverrideSchema = object({
423
+ vars: record(string(), string()).optional(),
424
+ scriptName: string().optional(),
425
+ wranglerOutFile: string().optional(),
426
+ route: union([WranglerRouteSchema, array(WranglerRouteSchema)]).optional(),
427
+ routes: array(WranglerRouteSchema).optional()
428
+ }).passthrough();
429
+ const WorkerConfigSchema = object({
430
+ path: string().optional(),
431
+ config: string().optional(),
432
+ scriptName: string().optional(),
433
+ wranglerOutFile: string().optional(),
434
+ dispatchNamespace: string().optional(),
435
+ main: string().optional(),
436
+ compatibility_date: string().optional(),
437
+ compatibility_flags: array(string()).optional(),
438
+ limits: record(string(), union([number(), string()])).optional(),
439
+ workers_dev: boolean().optional(),
440
+ preview_urls: boolean().optional(),
441
+ resources: WorkerResourcesSchema.optional(),
442
+ alias: record(string(), string()).optional(),
443
+ vars: record(string(), string()).optional(),
444
+ local: EnvOverrideSchema.optional(),
445
+ env: record(string(), EnvOverrideSchema).optional(),
446
+ assets: WranglerAssetsSchema.optional(),
447
+ route: union([WranglerRouteSchema, array(WranglerRouteSchema)]).optional(),
448
+ routes: array(WranglerRouteSchema).optional()
449
+ }).passthrough();
450
+ const CfiConfigSchema = object({
451
+ tenant: TenantMetaSchema,
452
+ account_id: string().optional(),
453
+ compatibility_date: string().optional(),
454
+ naming: any().optional(),
455
+ dispatchNamespaces: array(DispatchNamespaceResourceSchema).optional(),
456
+ dnsRecords: array(DnsRecordResourceConfigSchema).optional(),
457
+ logpushJobs: array(LogpushJobResourceConfigSchema).optional(),
458
+ stack: object({
459
+ name: string().regex(/^[a-zA-Z][a-zA-Z0-9_-]*$/, { error: "stack.name must match /^[a-zA-Z][a-zA-Z0-9_-]*$/ (CloudFormation-style identifier)" }).optional(),
460
+ description: string().min(1).optional()
461
+ }).optional(),
462
+ outputs: record(string().regex(/^[a-zA-Z][a-zA-Z0-9_-]*$/, { error: "outputs key must match /^[a-zA-Z][a-zA-Z0-9_-]*$/ (CloudFormation-style identifier)" }), string().min(1)).optional(),
463
+ worker: WorkerConfigSchema.optional(),
464
+ workers: record(string(), WorkerConfigSchema).optional()
465
+ }).refine((data) => (data.worker ?? data.workers) && !(data.worker && data.workers), { error: "Must have either worker or workers, not both" });
466
+ async function loadConfig(configPath, options = {}) {
467
+ const sources = resolveConfigSources(options.cwd ?? process.cwd(), configPath, options.env);
468
+ let raw;
469
+ if (sources.mode === "single") {
470
+ raw = (await import(sources.path)).default;
471
+ if (!raw) throw new Error(`No default export in ${sources.path}`);
472
+ } else {
473
+ const projectRaw = (await import(sources.projectPath)).default;
474
+ if (!projectRaw || typeof projectRaw !== "object") throw new Error(`No default export in ${sources.projectPath}`);
475
+ let merged = projectRaw;
476
+ if (sources.overlayPath) {
477
+ const overlayRaw = (await import(sources.overlayPath)).default;
478
+ if (!overlayRaw || typeof overlayRaw !== "object") throw new Error(`Env overlay must default-export an object: ${sources.overlayPath}`);
479
+ const overlayObj = overlayRaw;
480
+ const declaredEnv = overlayObj[TAMER_OVERLAY_ENV_KEY];
481
+ if (declaredEnv !== void 0) {
482
+ if (typeof declaredEnv !== "string") throw new Error(`Env overlay ${sources.overlayPath}: ${TAMER_OVERLAY_ENV_KEY} must be a string`);
483
+ if (options.env !== declaredEnv) throw new Error(`Env overlay ${sources.overlayPath} sets ${TAMER_OVERLAY_ENV_KEY} "${declaredEnv}" but this load uses --env "${options.env ?? "(none)"}".`);
484
+ }
485
+ const { [TAMER_OVERLAY_ENV_KEY]: _strip, ...overlayRest } = overlayObj;
486
+ merged = mergeProjectOverlay(merged, overlayRest);
487
+ }
488
+ raw = merged;
489
+ }
490
+ const parsed = CfiConfigSchema.safeParse(materializeCloudflareBindings(raw));
491
+ if (!parsed.success) throw new Error(`Invalid Tamer project config: ${parsed.error.message}`);
492
+ return parsed.data;
493
+ }
494
+ async function getWorkers(config, baseDir) {
495
+ const cwd = baseDir ?? process.cwd();
496
+ if ("worker" in config && config.worker) return [["default", await resolveWorkerConfigRef(config.worker, cwd)]];
497
+ if ("workers" in config && config.workers) {
498
+ const entries = [];
499
+ for (const [key, wc] of Object.entries(config.workers)) entries.push([key, await resolveWorkerConfigRef(wc, cwd)]);
500
+ return entries;
501
+ }
502
+ return [];
503
+ }
504
+ async function resolveWorkerConfigRef(wc, baseDir) {
505
+ if (!wc.config) return wc;
506
+ const configPath = resolve(baseDir, wc.config);
507
+ const loaded = (await import(configPath)).default;
508
+ if (!loaded) throw new Error(`No default export in ${configPath}`);
509
+ return {
510
+ ...loaded,
511
+ path: wc.path,
512
+ config: wc.config
513
+ };
514
+ }
515
+
516
+ //#endregion
517
+ export { loadConfig as n, getWorkers as t };
518
+ //# sourceMappingURL=loader-DP7yXqT6.mjs.map