@dragonmastery/tamer 0.1.2 → 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.
- package/README.md +569 -18
- package/dist/CFApiClient-DhbyyV71.mjs +868 -0
- package/dist/CFApiClient-DhbyyV71.mjs.map +1 -0
- package/dist/StateManager-DTqtLLVX.mjs +760 -0
- package/dist/StateManager-DTqtLLVX.mjs.map +1 -0
- package/dist/apply-B0b_jjGv.mjs +423 -0
- package/dist/apply-B0b_jjGv.mjs.map +1 -0
- package/dist/applyTarget-BetDYdeS.mjs +152 -0
- package/dist/applyTarget-BetDYdeS.mjs.map +1 -0
- package/dist/bootstrap-CBzPilB1.mjs +33 -0
- package/dist/bootstrap-CBzPilB1.mjs.map +1 -0
- package/dist/buildDispatchUploadForm-BoUB93b3.mjs +38 -0
- package/dist/buildDispatchUploadForm-BoUB93b3.mjs.map +1 -0
- package/dist/cloudflareSnapshot-B4FOaNr0.mjs +163 -0
- package/dist/cloudflareSnapshot-B4FOaNr0.mjs.map +1 -0
- package/dist/deploy-gHEQxhmx.mjs +119 -0
- package/dist/deploy-gHEQxhmx.mjs.map +1 -0
- package/dist/destroy-B21f3wgq.mjs +215 -0
- package/dist/destroy-B21f3wgq.mjs.map +1 -0
- package/dist/destroy-tenant-BW2nasnK.mjs +103 -0
- package/dist/destroy-tenant-BW2nasnK.mjs.map +1 -0
- package/dist/dev-Dt26nzMJ.mjs +103 -0
- package/dist/dev-Dt26nzMJ.mjs.map +1 -0
- package/dist/dns-records.resolve-C2T0m4NG.mjs +3 -0
- package/dist/dns-records.resolve-DwBR_1WI.mjs +47 -0
- package/dist/dns-records.resolve-DwBR_1WI.mjs.map +1 -0
- package/dist/dns-records.sync-Bpzz9H0s.mjs +75 -0
- package/dist/dns-records.sync-Bpzz9H0s.mjs.map +1 -0
- package/dist/doctor-C_hs7k2D.mjs +34 -0
- package/dist/doctor-C_hs7k2D.mjs.map +1 -0
- package/dist/drift-D5qzCTft.mjs +10 -0
- package/dist/drift-D8ZrSgTn.mjs +323 -0
- package/dist/drift-D8ZrSgTn.mjs.map +1 -0
- package/dist/events-BSwGdkGj.mjs +68 -0
- package/dist/events-BSwGdkGj.mjs.map +1 -0
- package/dist/fetchStackImports-B4ZJahOt.mjs +3817 -0
- package/dist/fetchStackImports-B4ZJahOt.mjs.map +1 -0
- package/dist/generator-CIMbcPzv.mjs +77 -0
- package/dist/generator-CIMbcPzv.mjs.map +1 -0
- package/dist/import-BrduwA9Z.mjs +164 -0
- package/dist/import-BrduwA9Z.mjs.map +1 -0
- package/dist/index.d.mts +5568 -1297
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +18 -1
- package/dist/index.mjs.map +1 -0
- package/dist/loader-DP7yXqT6.mjs +518 -0
- package/dist/loader-DP7yXqT6.mjs.map +1 -0
- package/dist/logpush-job-xS7270FZ.mjs +1106 -0
- package/dist/logpush-job-xS7270FZ.mjs.map +1 -0
- package/dist/migrate-CahG6BYV.mjs +87 -0
- package/dist/migrate-CahG6BYV.mjs.map +1 -0
- package/dist/normalize-Bx0bpFop.mjs +236 -0
- package/dist/normalize-Bx0bpFop.mjs.map +1 -0
- package/dist/plan-DWvsvy1U.mjs +453 -0
- package/dist/plan-DWvsvy1U.mjs.map +1 -0
- package/dist/planFormat-CJw8Kq2s.mjs +119 -0
- package/dist/planFormat-CJw8Kq2s.mjs.map +1 -0
- package/dist/provision-tenant-WTKo93Y0.mjs +192 -0
- package/dist/provision-tenant-WTKo93Y0.mjs.map +1 -0
- package/dist/r2S3EmptyBucket-DD81ZWQ7.mjs +92 -0
- package/dist/r2S3EmptyBucket-DD81ZWQ7.mjs.map +1 -0
- package/dist/stackOutputs-W9mnnJuj.mjs +69 -0
- package/dist/stackOutputs-W9mnnJuj.mjs.map +1 -0
- package/dist/status-DLwREPjb.mjs +198 -0
- package/dist/status-DLwREPjb.mjs.map +1 -0
- package/dist/sync-f2K2blwm.mjs +90 -0
- package/dist/sync-f2K2blwm.mjs.map +1 -0
- package/dist/tamer.d.mts +1 -0
- package/dist/tamer.mjs +4553 -0
- package/dist/tamer.mjs.map +1 -0
- package/dist/tamerArtifactsR2-Ccgplu2Q.mjs +52 -0
- package/dist/tamerArtifactsR2-Ccgplu2Q.mjs.map +1 -0
- package/dist/types-CqxqYnrT.mjs +44 -0
- package/dist/types-CqxqYnrT.mjs.map +1 -0
- package/dist/verifyPlanFile-c16z1AMH.mjs +33 -0
- package/dist/verifyPlanFile-c16z1AMH.mjs.map +1 -0
- package/dist/wfp-delete-DysvX1u7.mjs +36 -0
- package/dist/wfp-delete-DysvX1u7.mjs.map +1 -0
- package/dist/wfp-put-jaVd_LjO.mjs +52 -0
- package/dist/wfp-put-jaVd_LjO.mjs.map +1 -0
- package/dist/worker-route-Be2IvOdr.mjs +263 -0
- package/dist/worker-route-Be2IvOdr.mjs.map +1 -0
- package/dist/workers-aGILs77X.mjs +87 -0
- package/dist/workers-aGILs77X.mjs.map +1 -0
- package/dist/wranglerSpawn-DmEz0ldT.mjs +24 -0
- package/dist/wranglerSpawn-DmEz0ldT.mjs.map +1 -0
- package/dist/zoneResolver-VoxLHM4N.mjs +32 -0
- package/dist/zoneResolver-VoxLHM4N.mjs.map +1 -0
- package/package.json +38 -3
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/generated/wrangler-types.generated.ts","../src/generated/wrangler-types.ts"],"sourcesContent":[],"mappings":"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"}
|
|
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
|
-
|
|
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
|