hatchkit 0.1.2 → 0.1.4
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/dist/completion.d.ts +2 -0
- package/dist/completion.d.ts.map +1 -0
- package/dist/completion.js +207 -0
- package/dist/completion.js.map +1 -0
- package/dist/config.d.ts +33 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +439 -127
- package/dist/config.js.map +1 -1
- package/dist/deploy/coolify-mongo.d.ts +12 -0
- package/dist/deploy/coolify-mongo.d.ts.map +1 -0
- package/dist/deploy/coolify-mongo.js +109 -0
- package/dist/deploy/coolify-mongo.js.map +1 -0
- package/dist/deploy/gpu.d.ts +9 -2
- package/dist/deploy/gpu.d.ts.map +1 -1
- package/dist/deploy/gpu.js +63 -39
- package/dist/deploy/gpu.js.map +1 -1
- package/dist/deploy/keys.d.ts +6 -2
- package/dist/deploy/keys.d.ts.map +1 -1
- package/dist/deploy/keys.js +16 -2
- package/dist/deploy/keys.js.map +1 -1
- package/dist/deploy/pages.d.ts +2 -0
- package/dist/deploy/pages.d.ts.map +1 -0
- package/dist/deploy/pages.js +537 -0
- package/dist/deploy/pages.js.map +1 -0
- package/dist/deploy/rename-domain.d.ts +55 -0
- package/dist/deploy/rename-domain.d.ts.map +1 -0
- package/dist/deploy/rename-domain.js +290 -0
- package/dist/deploy/rename-domain.js.map +1 -0
- package/dist/deploy/terraform.d.ts.map +1 -1
- package/dist/deploy/terraform.js +90 -0
- package/dist/deploy/terraform.js.map +1 -1
- package/dist/dns.d.ts +7 -0
- package/dist/dns.d.ts.map +1 -0
- package/dist/dns.js +124 -0
- package/dist/dns.js.map +1 -0
- package/dist/doctor.d.ts +13 -0
- package/dist/doctor.d.ts.map +1 -0
- package/dist/doctor.js +368 -0
- package/dist/doctor.js.map +1 -0
- package/dist/explain.d.ts +4 -0
- package/dist/explain.d.ts.map +1 -0
- package/dist/explain.js +173 -0
- package/dist/explain.js.map +1 -0
- package/dist/index.js +521 -61
- package/dist/index.js.map +1 -1
- package/dist/prompts.d.ts +15 -2
- package/dist/prompts.d.ts.map +1 -1
- package/dist/prompts.js +52 -7
- package/dist/prompts.js.map +1 -1
- package/dist/provision/glitchtip.d.ts +3 -0
- package/dist/provision/glitchtip.d.ts.map +1 -1
- package/dist/provision/glitchtip.js +18 -0
- package/dist/provision/glitchtip.js.map +1 -1
- package/dist/provision/index.d.ts +26 -0
- package/dist/provision/index.d.ts.map +1 -1
- package/dist/provision/index.js +435 -60
- package/dist/provision/index.js.map +1 -1
- package/dist/provision/openpanel.d.ts +7 -0
- package/dist/provision/openpanel.d.ts.map +1 -1
- package/dist/provision/openpanel.js +113 -48
- package/dist/provision/openpanel.js.map +1 -1
- package/dist/provision/resend.d.ts +23 -1
- package/dist/provision/resend.d.ts.map +1 -1
- package/dist/provision/resend.js +62 -1
- package/dist/provision/resend.js.map +1 -1
- package/dist/provision/write-env.d.ts +31 -0
- package/dist/provision/write-env.d.ts.map +1 -0
- package/dist/provision/write-env.js +94 -0
- package/dist/provision/write-env.js.map +1 -0
- package/dist/scaffold/app.js +8 -0
- package/dist/scaffold/app.js.map +1 -1
- package/dist/scaffold/dotenvx.d.ts.map +1 -1
- package/dist/scaffold/dotenvx.js +8 -1
- package/dist/scaffold/dotenvx.js.map +1 -1
- package/dist/scaffold/infra.d.ts.map +1 -1
- package/dist/scaffold/infra.js +18 -1
- package/dist/scaffold/infra.js.map +1 -1
- package/dist/scaffold/manifest.d.ts +4 -2
- package/dist/scaffold/manifest.d.ts.map +1 -1
- package/dist/scaffold/manifest.js +1 -1
- package/dist/scaffold/manifest.js.map +1 -1
- package/dist/scaffold/ml-client.d.ts +9 -2
- package/dist/scaffold/ml-client.d.ts.map +1 -1
- package/dist/scaffold/ml-client.js +11 -1
- package/dist/scaffold/ml-client.js.map +1 -1
- package/dist/status.d.ts +30 -0
- package/dist/status.d.ts.map +1 -0
- package/dist/status.js +169 -0
- package/dist/status.js.map +1 -0
- package/dist/templates/addons/analytics/sentry.ts.hbs +6 -0
- package/dist/templates/base/env.example.hbs +10 -0
- package/dist/templates/base/src/config.ts.hbs +24 -4
- package/dist/utils/cloudflare-api.d.ts +30 -0
- package/dist/utils/cloudflare-api.d.ts.map +1 -0
- package/dist/utils/cloudflare-api.js +85 -0
- package/dist/utils/cloudflare-api.js.map +1 -0
- package/dist/utils/coolify-api.d.ts +47 -1
- package/dist/utils/coolify-api.d.ts.map +1 -1
- package/dist/utils/coolify-api.js +75 -4
- package/dist/utils/coolify-api.js.map +1 -1
- package/dist/utils/flags.d.ts.map +1 -1
- package/dist/utils/flags.js +4 -0
- package/dist/utils/flags.js.map +1 -1
- package/dist/utils/inwx-api.d.ts +36 -0
- package/dist/utils/inwx-api.d.ts.map +1 -0
- package/dist/utils/inwx-api.js +105 -0
- package/dist/utils/inwx-api.js.map +1 -0
- package/dist/utils/secrets.d.ts +8 -1
- package/dist/utils/secrets.d.ts.map +1 -1
- package/dist/utils/secrets.js +8 -1
- package/dist/utils/secrets.js.map +1 -1
- package/package.json +5 -4
- package/scripts/release-prep.mjs +130 -0
package/dist/scaffold/infra.js
CHANGED
|
@@ -19,6 +19,13 @@ export function generateTfvars(config) {
|
|
|
19
19
|
addSubdomain(config.subdomain, "Web app + API paths");
|
|
20
20
|
addSubdomain(`api.${config.subdomain}`, "REST API");
|
|
21
21
|
addSubdomain("admin", "Coolify dashboard");
|
|
22
|
+
// The stack-level dns_provider defaults to "inwx" for backward compat,
|
|
23
|
+
// but the user's CLI config is the source of truth — emit whichever
|
|
24
|
+
// provider they configured. "manual" maps to "inwx" because the stack
|
|
25
|
+
// only accepts "inwx" | "cloudflare"; manual DNS skips Terraform DNS
|
|
26
|
+
// entirely and is handled upstream.
|
|
27
|
+
const cfgProvider = getConfig().providers.dns?.provider ?? "inwx";
|
|
28
|
+
const stackDnsProvider = cfgProvider === "cloudflare" ? "cloudflare" : "inwx";
|
|
22
29
|
if (config.deployTarget === "new") {
|
|
23
30
|
return renderString(TFVARS_TEMPLATE, {
|
|
24
31
|
name: config.name,
|
|
@@ -26,6 +33,8 @@ export function generateTfvars(config) {
|
|
|
26
33
|
serverLocation: config.serverLocation || "nbg1",
|
|
27
34
|
domain: config.baseDomain,
|
|
28
35
|
subdomains,
|
|
36
|
+
dnsProvider: stackDnsProvider,
|
|
37
|
+
cloudflareProxied: true,
|
|
29
38
|
s3Enabled: config.features.includes("s3") && config.s3Provider !== "existing",
|
|
30
39
|
s3BucketName: `${config.name}-assets`,
|
|
31
40
|
s3Location: config.serverLocation || "nbg1",
|
|
@@ -35,6 +44,8 @@ export function generateTfvars(config) {
|
|
|
35
44
|
return renderString(DNS_ONLY_TFVARS_TEMPLATE, {
|
|
36
45
|
domain: config.baseDomain,
|
|
37
46
|
subdomains,
|
|
47
|
+
dnsProvider: stackDnsProvider,
|
|
48
|
+
cloudflareProxied: true,
|
|
38
49
|
targetIpv4: config.serverIp || "",
|
|
39
50
|
targetIpv6: "",
|
|
40
51
|
});
|
|
@@ -127,6 +138,9 @@ server_location = "{{serverLocation}}"
|
|
|
127
138
|
ssh_key_name = "deploy-key"
|
|
128
139
|
ssh_public_key = "ssh-ed25519 CHANGE_ME"
|
|
129
140
|
|
|
141
|
+
dns_provider = "{{dnsProvider}}"
|
|
142
|
+
cloudflare_proxied = {{cloudflareProxied}}
|
|
143
|
+
|
|
130
144
|
domain = "{{domain}}"
|
|
131
145
|
subdomains = {
|
|
132
146
|
{{#each subdomains}}
|
|
@@ -146,7 +160,10 @@ s3_location = "{{s3Location}}"
|
|
|
146
160
|
s3_enabled = false
|
|
147
161
|
{{/if}}
|
|
148
162
|
`;
|
|
149
|
-
const DNS_ONLY_TFVARS_TEMPLATE = `
|
|
163
|
+
const DNS_ONLY_TFVARS_TEMPLATE = `dns_provider = "{{dnsProvider}}"
|
|
164
|
+
cloudflare_proxied = {{cloudflareProxied}}
|
|
165
|
+
|
|
166
|
+
domain = "{{domain}}"
|
|
150
167
|
subdomains = {
|
|
151
168
|
{{#each subdomains}}
|
|
152
169
|
"{{@key}}" = "{{this}}"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"infra.js","sourceRoot":"","sources":["../../src/scaffold/infra.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"infra.js","sourceRoot":"","sources":["../../src/scaffold/infra.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,8 +23,10 @@ export interface ProjectManifest {
|
|
|
23
23
|
/** Where the app deploys. `existing` vs `new` is public-safe; the
|
|
24
24
|
* actual serverId/IP is not in the manifest. */
|
|
25
25
|
deployTarget: "existing" | "new";
|
|
26
|
-
/** GPU
|
|
27
|
-
|
|
26
|
+
/** GPU platforms each ML service was deployed to. First entry is
|
|
27
|
+
* the runtime default (`ML_BACKEND`); change `ML_BACKEND` on the
|
|
28
|
+
* deploy to flip which one serves traffic. */
|
|
29
|
+
gpuPlatforms?: GpuPlatform[];
|
|
28
30
|
/** HF model ID for custom-hf, if selected. HF models are public. */
|
|
29
31
|
customHfModelId?: string;
|
|
30
32
|
/** GPU tier (T4/A10G/A100/H100) — public product names. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/scaffold/manifest.ts"],"names":[],"mappings":"AA+BA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,eAAO,MAAM,iBAAiB,mBAAmB,CAAC;AAClD,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAElC,MAAM,WAAW,eAAe;IAC9B,qEAAqE;IACrE,OAAO,EAAE,OAAO,gBAAgB,CAAC;IACjC,iEAAiE;IACjE,UAAU,EAAE,MAAM,CAAC;IACnB,qCAAqC;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAC;IACb,gEAAgE;IAChE,MAAM,EAAE,MAAM,CAAC;IACf,0CAA0C;IAC1C,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,0CAA0C;IAC1C,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB;6DACyD;IACzD,UAAU,EAAE,UAAU,CAAC;IACvB;qDACiD;IACjD,YAAY,EAAE,UAAU,GAAG,KAAK,CAAC;IACjC
|
|
1
|
+
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/scaffold/manifest.ts"],"names":[],"mappings":"AA+BA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,eAAO,MAAM,iBAAiB,mBAAmB,CAAC;AAClD,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAElC,MAAM,WAAW,eAAe;IAC9B,qEAAqE;IACrE,OAAO,EAAE,OAAO,gBAAgB,CAAC;IACjC,iEAAiE;IACjE,UAAU,EAAE,MAAM,CAAC;IACnB,qCAAqC;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAC;IACb,gEAAgE;IAChE,MAAM,EAAE,MAAM,CAAC;IACf,0CAA0C;IAC1C,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,0CAA0C;IAC1C,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB;6DACyD;IACzD,UAAU,EAAE,UAAU,CAAC;IACvB;qDACiD;IACjD,YAAY,EAAE,UAAU,GAAG,KAAK,CAAC;IACjC;;mDAE+C;IAC/C,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7B,oEAAoE;IACpE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,2DAA2D;IAC3D,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;oEACgE;IAChE,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/D;AAED;;oEAEoE;AACpE,wBAAgB,UAAU,CACxB,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,YAAY,EACnB,UAAU,EAAE,MAAM,GACjB,eAAe,CAoBjB;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,GAAG,IAAI,CAGhF;AAED;;;gCAGgC;AAChC,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAiBvE"}
|
|
@@ -44,7 +44,7 @@ export function toManifest(config, ports, cliVersion) {
|
|
|
44
44
|
mlServices: [...config.mlServices],
|
|
45
45
|
s3Provider: config.s3Provider,
|
|
46
46
|
deployTarget: config.deployTarget,
|
|
47
|
-
|
|
47
|
+
gpuPlatforms: config.gpuPlatforms,
|
|
48
48
|
customHfModelId: config.customHfModelId,
|
|
49
49
|
customHfGpuType: config.customHfGpuType,
|
|
50
50
|
ports: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/scaffold/manifest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAIjC,MAAM,CAAC,MAAM,iBAAiB,GAAG,gBAAgB,CAAC;AAClD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/scaffold/manifest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAIjC,MAAM,CAAC,MAAM,iBAAiB,GAAG,gBAAgB,CAAC;AAClD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAoClC;;oEAEoE;AACpE,MAAM,UAAU,UAAU,CACxB,MAAqB,EACrB,KAAmB,EACnB,UAAkB;IAElB,OAAO;QACL,OAAO,EAAE,gBAAgB;QACzB,UAAU;QACV,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACtC,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,QAAQ,EAAE,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC9B,UAAU,EAAE,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC;QAClC,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,eAAe,EAAE,MAAM,CAAC,eAAe;QACvC,eAAe,EAAE,MAAM,CAAC,eAAe;QACvC,KAAK,EAAE;YACL,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,SAAS,EAAE,KAAK,CAAC,SAAS;SAC3B;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,SAAiB,EAAE,QAAyB;IACxE,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;IAChD,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;AACzE,CAAC;AAED;;;gCAGgC;AAChC,MAAM,UAAU,YAAY,CAAC,UAAkB;IAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;IACjD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IACnD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,eAAe,IAAI,uBAAwB,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;IACtF,CAAC;IACD,IACE,CAAC,MAAM;QACP,OAAO,MAAM,KAAK,QAAQ;QACzB,MAAgC,CAAC,OAAO,KAAK,gBAAgB,EAC9D,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,eAAe,IAAI,kCAAkC,gBAAgB,GAAG,CAAC,CAAC;IAC5F,CAAC;IACD,OAAO,MAAyB,CAAC;AACnC,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type MlServiceEntry } from "../config.js";
|
|
2
|
-
import type { MlService, ProjectConfig } from "../prompts.js";
|
|
2
|
+
import type { GpuPlatform, MlService, ProjectConfig } from "../prompts.js";
|
|
3
3
|
/** Resolve ML services — reuse existing or mark for deployment.
|
|
4
4
|
* Services in config.forceRedeployMl bypass the registry and always
|
|
5
5
|
* go to the deploy list, which recovers from stale registry entries. */
|
|
@@ -10,8 +10,15 @@ export declare function resolveMlServices(config: ProjectConfig): Promise<{
|
|
|
10
10
|
}>;
|
|
11
11
|
deploy: MlService[];
|
|
12
12
|
}>;
|
|
13
|
-
/** Get the env var name for an ML service endpoint
|
|
13
|
+
/** Get the env var name for an ML service's *active* endpoint — what
|
|
14
|
+
* the runtime client reads after picking `ML_BACKEND`. Kept stable
|
|
15
|
+
* for back-compat with starter code that already references
|
|
16
|
+
* `ML_<SERVICE>_ENDPOINT`. */
|
|
14
17
|
export declare function mlEnvVarName(service: MlService): string;
|
|
18
|
+
/** Per-platform URL env (`ML_<SERVICE>_<PLATFORM>_URL`) — set by the
|
|
19
|
+
* deploy step so the runtime can flip backends via `ML_BACKEND`
|
|
20
|
+
* without redeploying the ML pipelines themselves. */
|
|
21
|
+
export declare function mlPlatformUrlEnv(service: MlService, platform: GpuPlatform): string;
|
|
15
22
|
/** Print ML service resolution summary. */
|
|
16
23
|
export declare function printMlSummary(reuse: Array<{
|
|
17
24
|
service: MlService;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ml-client.d.ts","sourceRoot":"","sources":["../../src/scaffold/ml-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,cAAc,EAAiB,MAAM,cAAc,CAAC;AAClE,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"ml-client.d.ts","sourceRoot":"","sources":["../../src/scaffold/ml-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,cAAc,EAAiB,MAAM,cAAc,CAAC;AAClE,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE3E;;yEAEyE;AACzE,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC;IACtE,KAAK,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,SAAS,CAAC;QAAC,KAAK,EAAE,cAAc,CAAA;KAAE,CAAC,CAAC;IAC5D,MAAM,EAAE,SAAS,EAAE,CAAC;CACrB,CAAC,CAeD;AAED;;;+BAG+B;AAC/B,wBAAgB,YAAY,CAAC,OAAO,EAAE,SAAS,GAAG,MAAM,CAGvD;AAED;;uDAEuD;AACvD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,GAAG,MAAM,CAGlF;AAED,2CAA2C;AAC3C,wBAAgB,cAAc,CAC5B,KAAK,EAAE,KAAK,CAAC;IAAE,OAAO,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,cAAc,CAAA;CAAE,CAAC,EAC3D,MAAM,EAAE,SAAS,EAAE,GAClB,IAAI,CAUN"}
|
|
@@ -18,11 +18,21 @@ export async function resolveMlServices(config) {
|
|
|
18
18
|
}
|
|
19
19
|
return { reuse, deploy };
|
|
20
20
|
}
|
|
21
|
-
/** Get the env var name for an ML service endpoint
|
|
21
|
+
/** Get the env var name for an ML service's *active* endpoint — what
|
|
22
|
+
* the runtime client reads after picking `ML_BACKEND`. Kept stable
|
|
23
|
+
* for back-compat with starter code that already references
|
|
24
|
+
* `ML_<SERVICE>_ENDPOINT`. */
|
|
22
25
|
export function mlEnvVarName(service) {
|
|
23
26
|
const name = service.replace(/-/g, "_").toUpperCase();
|
|
24
27
|
return `ML_${name}_ENDPOINT`;
|
|
25
28
|
}
|
|
29
|
+
/** Per-platform URL env (`ML_<SERVICE>_<PLATFORM>_URL`) — set by the
|
|
30
|
+
* deploy step so the runtime can flip backends via `ML_BACKEND`
|
|
31
|
+
* without redeploying the ML pipelines themselves. */
|
|
32
|
+
export function mlPlatformUrlEnv(service, platform) {
|
|
33
|
+
const svc = service.replace(/-/g, "_").toUpperCase();
|
|
34
|
+
return `ML_${svc}_${platform.toUpperCase()}_URL`;
|
|
35
|
+
}
|
|
26
36
|
/** Print ML service resolution summary. */
|
|
27
37
|
export function printMlSummary(reuse, deploy) {
|
|
28
38
|
if (reuse.length > 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ml-client.js","sourceRoot":"","sources":["../../src/scaffold/ml-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAuB,aAAa,EAAE,MAAM,cAAc,CAAC;AAGlE;;yEAEyE;AACzE,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,MAAqB;IAI3D,MAAM,QAAQ,GAAG,aAAa,EAAE,CAAC;IACjC,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC;IACvD,MAAM,KAAK,GAAyD,EAAE,CAAC;IACvE,MAAM,MAAM,GAAgB,EAAE,CAAC;IAE/B,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACxC,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YAChD,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACpD,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC3B,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"ml-client.js","sourceRoot":"","sources":["../../src/scaffold/ml-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAuB,aAAa,EAAE,MAAM,cAAc,CAAC;AAGlE;;yEAEyE;AACzE,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,MAAqB;IAI3D,MAAM,QAAQ,GAAG,aAAa,EAAE,CAAC;IACjC,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC;IACvD,MAAM,KAAK,GAAyD,EAAE,CAAC;IACvE,MAAM,MAAM,GAAgB,EAAE,CAAC;IAE/B,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACxC,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YAChD,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACpD,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC3B,CAAC;AAED;;;+BAG+B;AAC/B,MAAM,UAAU,YAAY,CAAC,OAAkB;IAC7C,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;IACtD,OAAO,MAAM,IAAI,WAAW,CAAC;AAC/B,CAAC;AAED;;uDAEuD;AACvD,MAAM,UAAU,gBAAgB,CAAC,OAAkB,EAAE,QAAqB;IACxE,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;IACrD,OAAO,MAAM,GAAG,IAAI,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;AACnD,CAAC;AAED,2CAA2C;AAC3C,MAAM,UAAU,cAAc,CAC5B,KAA2D,EAC3D,MAAmB;IAEnB,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC,CAAC;QAC5D,KAAK,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,KAAK,EAAE,CAAC;YACvC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,OAAO,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,kCAAkC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IACnF,CAAC;AACH,CAAC"}
|
package/dist/status.d.ts
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export interface ProviderSnapshot {
|
|
2
|
+
key: string;
|
|
3
|
+
label: string;
|
|
4
|
+
configured: boolean;
|
|
5
|
+
detail?: string;
|
|
6
|
+
/** If not configured, how to configure it. */
|
|
7
|
+
configureCommand?: string;
|
|
8
|
+
}
|
|
9
|
+
export interface StatusSnapshot {
|
|
10
|
+
version: string;
|
|
11
|
+
configPath: string;
|
|
12
|
+
providers: ProviderSnapshot[];
|
|
13
|
+
mlServiceCount: number;
|
|
14
|
+
mlServices: Array<{
|
|
15
|
+
name: string;
|
|
16
|
+
endpoint: string;
|
|
17
|
+
platform: string;
|
|
18
|
+
}>;
|
|
19
|
+
/** One-line next-best-step based on what's missing. */
|
|
20
|
+
nextStep: string;
|
|
21
|
+
/** Ordered suggestions for discoverability in the menu. */
|
|
22
|
+
suggestions: Array<{
|
|
23
|
+
command: string;
|
|
24
|
+
why: string;
|
|
25
|
+
}>;
|
|
26
|
+
}
|
|
27
|
+
export declare function collectStatus(): StatusSnapshot;
|
|
28
|
+
export declare function renderStatusHuman(s: StatusSnapshot): string;
|
|
29
|
+
export declare function renderMenu(s: StatusSnapshot): string;
|
|
30
|
+
//# sourceMappingURL=status.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../src/status.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,gBAAgB,EAAE,CAAC;IAC9B,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACxE,uDAAuD;IACvD,QAAQ,EAAE,MAAM,CAAC;IACjB,2DAA2D;IAC3D,WAAW,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACtD;AAED,wBAAgB,aAAa,IAAI,cAAc,CAuF9C;AA6CD,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,cAAc,GAAG,MAAM,CAwB3D;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,cAAc,GAAG,MAAM,CAyBpD"}
|
package/dist/status.js
ADDED
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Shared status collection — what's configured, what's blocked, what's
|
|
3
|
+
* next. Used by the top-level menu, `hatchkit status`, `hatchkit doctor`,
|
|
4
|
+
* and the MCP server.
|
|
5
|
+
*
|
|
6
|
+
* Returns structured data (no chalk, no side-effects). The caller picks
|
|
7
|
+
* a renderer (human/json).
|
|
8
|
+
*/
|
|
9
|
+
import chalk from "chalk";
|
|
10
|
+
import { getConfig, getConfigPath, getMlServices } from "./config.js";
|
|
11
|
+
import { getCliVersion } from "./utils/version.js";
|
|
12
|
+
export function collectStatus() {
|
|
13
|
+
const config = getConfig();
|
|
14
|
+
const providers = [];
|
|
15
|
+
providers.push({
|
|
16
|
+
key: "github",
|
|
17
|
+
label: "GitHub (gh CLI)",
|
|
18
|
+
configured: config.providers.github.status === "configured",
|
|
19
|
+
configureCommand: "hatchkit setup",
|
|
20
|
+
});
|
|
21
|
+
providers.push({
|
|
22
|
+
key: "coolify",
|
|
23
|
+
label: "Coolify",
|
|
24
|
+
configured: config.providers.coolify?.status === "configured",
|
|
25
|
+
detail: config.providers.coolify?.url,
|
|
26
|
+
configureCommand: "hatchkit config add coolify",
|
|
27
|
+
});
|
|
28
|
+
providers.push({
|
|
29
|
+
key: "hetzner",
|
|
30
|
+
label: "Hetzner Cloud",
|
|
31
|
+
configured: config.providers.hetzner?.status === "configured",
|
|
32
|
+
configureCommand: "hatchkit config add hetzner",
|
|
33
|
+
});
|
|
34
|
+
providers.push({
|
|
35
|
+
key: "dns",
|
|
36
|
+
label: "DNS",
|
|
37
|
+
configured: config.providers.dns?.status === "configured",
|
|
38
|
+
detail: config.providers.dns?.provider,
|
|
39
|
+
configureCommand: "hatchkit config add dns",
|
|
40
|
+
});
|
|
41
|
+
const s3Providers = Object.keys(config.providers.s3);
|
|
42
|
+
providers.push({
|
|
43
|
+
key: "s3",
|
|
44
|
+
label: "S3",
|
|
45
|
+
configured: s3Providers.length > 0,
|
|
46
|
+
detail: s3Providers.length > 0 ? s3Providers.join(", ") : undefined,
|
|
47
|
+
configureCommand: "hatchkit config add s3",
|
|
48
|
+
});
|
|
49
|
+
const gpuProviders = Object.keys(config.providers.gpu);
|
|
50
|
+
providers.push({
|
|
51
|
+
key: "gpu",
|
|
52
|
+
label: "GPU",
|
|
53
|
+
configured: gpuProviders.length > 0,
|
|
54
|
+
detail: gpuProviders.length > 0 ? gpuProviders.join(", ") : undefined,
|
|
55
|
+
configureCommand: "hatchkit config add gpu",
|
|
56
|
+
});
|
|
57
|
+
providers.push({
|
|
58
|
+
key: "glitchtip",
|
|
59
|
+
label: "GlitchTip (errors)",
|
|
60
|
+
configured: !!config.providers.glitchtip && config.providers.glitchtip.status === "configured",
|
|
61
|
+
configureCommand: "hatchkit config add glitchtip",
|
|
62
|
+
});
|
|
63
|
+
providers.push({
|
|
64
|
+
key: "openpanel",
|
|
65
|
+
label: "OpenPanel (analytics)",
|
|
66
|
+
configured: !!config.providers.openpanel && config.providers.openpanel.status === "configured",
|
|
67
|
+
configureCommand: "hatchkit config add openpanel",
|
|
68
|
+
});
|
|
69
|
+
providers.push({
|
|
70
|
+
key: "resend",
|
|
71
|
+
label: "Resend (email)",
|
|
72
|
+
configured: !!config.providers.resend && config.providers.resend.status === "configured",
|
|
73
|
+
configureCommand: "hatchkit config add resend",
|
|
74
|
+
});
|
|
75
|
+
const services = getMlServices();
|
|
76
|
+
const mlServiceList = Object.entries(services).map(([name, entry]) => ({
|
|
77
|
+
name,
|
|
78
|
+
endpoint: entry.endpoint,
|
|
79
|
+
platform: entry.platform,
|
|
80
|
+
}));
|
|
81
|
+
const nextStep = computeNextStep(providers);
|
|
82
|
+
const suggestions = computeSuggestions(providers);
|
|
83
|
+
return {
|
|
84
|
+
version: getCliVersion(),
|
|
85
|
+
configPath: getConfigPath(),
|
|
86
|
+
providers,
|
|
87
|
+
mlServiceCount: mlServiceList.length,
|
|
88
|
+
mlServices: mlServiceList,
|
|
89
|
+
nextStep,
|
|
90
|
+
suggestions,
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
function computeNextStep(providers) {
|
|
94
|
+
const required = ["github", "coolify", "hetzner", "dns"];
|
|
95
|
+
const firstMissing = providers.find((p) => required.includes(p.key) && !p.configured);
|
|
96
|
+
if (firstMissing) {
|
|
97
|
+
return `Run \`${firstMissing.configureCommand}\` — ${firstMissing.label} is required for full scaffolds.`;
|
|
98
|
+
}
|
|
99
|
+
return "You're set up. Try `hatchkit create` to scaffold a new project.";
|
|
100
|
+
}
|
|
101
|
+
function computeSuggestions(providers) {
|
|
102
|
+
const out = [];
|
|
103
|
+
const has = (k) => providers.find((p) => p.key === k)?.configured;
|
|
104
|
+
if (!has("github") || !has("coolify") || !has("hetzner") || !has("dns")) {
|
|
105
|
+
out.push({
|
|
106
|
+
command: "hatchkit setup",
|
|
107
|
+
why: "first-time onboarding wires up GitHub + Coolify + Hetzner + DNS at once",
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
if (has("coolify") && has("hetzner") && has("dns")) {
|
|
111
|
+
out.push({ command: "hatchkit create", why: "scaffold and (optionally) deploy a new project" });
|
|
112
|
+
}
|
|
113
|
+
out.push({
|
|
114
|
+
command: "hatchkit doctor",
|
|
115
|
+
why: "health-check every configured provider with contextual fix hints",
|
|
116
|
+
});
|
|
117
|
+
out.push({
|
|
118
|
+
command: "hatchkit add <project>",
|
|
119
|
+
why: "add per-project GlitchTip / OpenPanel / Resend clients",
|
|
120
|
+
});
|
|
121
|
+
out.push({
|
|
122
|
+
command: "hatchkit explain",
|
|
123
|
+
why: "one-page mental model of how the pieces fit together",
|
|
124
|
+
});
|
|
125
|
+
return out;
|
|
126
|
+
}
|
|
127
|
+
// ---------------------------------------------------------------------------
|
|
128
|
+
// Renderers
|
|
129
|
+
// ---------------------------------------------------------------------------
|
|
130
|
+
export function renderStatusHuman(s) {
|
|
131
|
+
const lines = [];
|
|
132
|
+
lines.push(chalk.bold(" Provider Status:"));
|
|
133
|
+
lines.push("");
|
|
134
|
+
for (const p of s.providers) {
|
|
135
|
+
const icon = p.configured ? chalk.green("✓") : chalk.dim("·");
|
|
136
|
+
const detail = p.detail ? chalk.dim(` (${p.detail})`) : "";
|
|
137
|
+
const hint = p.configured ? "" : chalk.dim(` — ${p.configureCommand ?? "not configured"}`);
|
|
138
|
+
lines.push(` ${icon} ${p.label.padEnd(24)}${detail}${hint}`);
|
|
139
|
+
}
|
|
140
|
+
lines.push("");
|
|
141
|
+
lines.push(` ML Services: ${s.mlServiceCount > 0 ? chalk.green(`${s.mlServiceCount} registered`) : chalk.dim("none")}`);
|
|
142
|
+
for (const m of s.mlServices) {
|
|
143
|
+
lines.push(chalk.dim(` ${m.name}: ${m.endpoint} (${m.platform})`));
|
|
144
|
+
}
|
|
145
|
+
lines.push("");
|
|
146
|
+
lines.push(` ${chalk.bold("Next:")} ${s.nextStep}`);
|
|
147
|
+
lines.push(chalk.dim(` Config: ${s.configPath}`));
|
|
148
|
+
lines.push("");
|
|
149
|
+
return lines.join("\n");
|
|
150
|
+
}
|
|
151
|
+
export function renderMenu(s) {
|
|
152
|
+
const lines = [];
|
|
153
|
+
const configured = s.providers.filter((p) => p.configured).length;
|
|
154
|
+
const total = s.providers.length;
|
|
155
|
+
lines.push(` ${chalk.bold("Hatchkit")} — scaffold, deploy, and provision full-stack projects`);
|
|
156
|
+
lines.push(` ${chalk.dim(`${configured}/${total} providers configured`)} ${chalk.dim("·")} ${chalk.dim(s.version ? `v${s.version}` : "")}`);
|
|
157
|
+
lines.push("");
|
|
158
|
+
lines.push(` ${chalk.bold("Next:")} ${s.nextStep}`);
|
|
159
|
+
lines.push("");
|
|
160
|
+
lines.push(chalk.bold(" Suggested commands:"));
|
|
161
|
+
for (const sug of s.suggestions) {
|
|
162
|
+
lines.push(` ${chalk.cyan(sug.command.padEnd(28))} ${chalk.dim(sug.why)}`);
|
|
163
|
+
}
|
|
164
|
+
lines.push("");
|
|
165
|
+
lines.push(chalk.dim(" Run `hatchkit help <command>` for detail, or `hatchkit explain` for the mental model."));
|
|
166
|
+
lines.push("");
|
|
167
|
+
return lines.join("\n");
|
|
168
|
+
}
|
|
169
|
+
//# sourceMappingURL=status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../src/status.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAuBnD,MAAM,UAAU,aAAa;IAC3B,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,SAAS,GAAuB,EAAE,CAAC;IAEzC,SAAS,CAAC,IAAI,CAAC;QACb,GAAG,EAAE,QAAQ;QACb,KAAK,EAAE,iBAAiB;QACxB,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,KAAK,YAAY;QAC3D,gBAAgB,EAAE,gBAAgB;KACnC,CAAC,CAAC;IACH,SAAS,CAAC,IAAI,CAAC;QACb,GAAG,EAAE,SAAS;QACd,KAAK,EAAE,SAAS;QAChB,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,KAAK,YAAY;QAC7D,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG;QACrC,gBAAgB,EAAE,6BAA6B;KAChD,CAAC,CAAC;IACH,SAAS,CAAC,IAAI,CAAC;QACb,GAAG,EAAE,SAAS;QACd,KAAK,EAAE,eAAe;QACtB,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,KAAK,YAAY;QAC7D,gBAAgB,EAAE,6BAA6B;KAChD,CAAC,CAAC;IACH,SAAS,CAAC,IAAI,CAAC;QACb,GAAG,EAAE,KAAK;QACV,KAAK,EAAE,KAAK;QACZ,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,KAAK,YAAY;QACzD,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,QAAQ;QACtC,gBAAgB,EAAE,yBAAyB;KAC5C,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACrD,SAAS,CAAC,IAAI,CAAC;QACb,GAAG,EAAE,IAAI;QACT,KAAK,EAAE,IAAI;QACX,UAAU,EAAE,WAAW,CAAC,MAAM,GAAG,CAAC;QAClC,MAAM,EAAE,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;QACnE,gBAAgB,EAAE,wBAAwB;KAC3C,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACvD,SAAS,CAAC,IAAI,CAAC;QACb,GAAG,EAAE,KAAK;QACV,KAAK,EAAE,KAAK;QACZ,UAAU,EAAE,YAAY,CAAC,MAAM,GAAG,CAAC;QACnC,MAAM,EAAE,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;QACrE,gBAAgB,EAAE,yBAAyB;KAC5C,CAAC,CAAC;IAEH,SAAS,CAAC,IAAI,CAAC;QACb,GAAG,EAAE,WAAW;QAChB,KAAK,EAAE,oBAAoB;QAC3B,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,KAAK,YAAY;QAC9F,gBAAgB,EAAE,+BAA+B;KAClD,CAAC,CAAC;IACH,SAAS,CAAC,IAAI,CAAC;QACb,GAAG,EAAE,WAAW;QAChB,KAAK,EAAE,uBAAuB;QAC9B,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,KAAK,YAAY;QAC9F,gBAAgB,EAAE,+BAA+B;KAClD,CAAC,CAAC;IACH,SAAS,CAAC,IAAI,CAAC;QACb,GAAG,EAAE,QAAQ;QACb,KAAK,EAAE,gBAAgB;QACvB,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,KAAK,YAAY;QACxF,gBAAgB,EAAE,4BAA4B;KAC/C,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,aAAa,EAAE,CAAC;IACjC,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QACrE,IAAI;QACJ,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;KACzB,CAAC,CAAC,CAAC;IAEJ,MAAM,QAAQ,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;IAC5C,MAAM,WAAW,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAElD,OAAO;QACL,OAAO,EAAE,aAAa,EAAE;QACxB,UAAU,EAAE,aAAa,EAAE;QAC3B,SAAS;QACT,cAAc,EAAE,aAAa,CAAC,MAAM;QACpC,UAAU,EAAE,aAAa;QACzB,QAAQ;QACR,WAAW;KACZ,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,SAA6B;IACpD,MAAM,QAAQ,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IACzD,MAAM,YAAY,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IACtF,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,SAAS,YAAY,CAAC,gBAAgB,QAAQ,YAAY,CAAC,KAAK,kCAAkC,CAAC;IAC5G,CAAC;IACD,OAAO,iEAAiE,CAAC;AAC3E,CAAC;AAED,SAAS,kBAAkB,CACzB,SAA6B;IAE7B,MAAM,GAAG,GAA4C,EAAE,CAAC;IACxD,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC;IAE1E,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACxE,GAAG,CAAC,IAAI,CAAC;YACP,OAAO,EAAE,gBAAgB;YACzB,GAAG,EAAE,yEAAyE;SAC/E,CAAC,CAAC;IACL,CAAC;IACD,IAAI,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACnD,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,GAAG,EAAE,gDAAgD,EAAE,CAAC,CAAC;IAClG,CAAC;IACD,GAAG,CAAC,IAAI,CAAC;QACP,OAAO,EAAE,iBAAiB;QAC1B,GAAG,EAAE,kEAAkE;KACxE,CAAC,CAAC;IACH,GAAG,CAAC,IAAI,CAAC;QACP,OAAO,EAAE,wBAAwB;QACjC,GAAG,EAAE,wDAAwD;KAC9D,CAAC,CAAC;IACH,GAAG,CAAC,IAAI,CAAC;QACP,OAAO,EAAE,kBAAkB;QAC3B,GAAG,EAAE,sDAAsD;KAC5D,CAAC,CAAC;IACH,OAAO,GAAG,CAAC;AACb,CAAC;AAED,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E,MAAM,UAAU,iBAAiB,CAAC,CAAiB;IACjD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAC7C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9D,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,MAAM,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,gBAAgB,IAAI,gBAAgB,EAAE,CAAC,CAAC;QAC5F,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,GAAG,IAAI,EAAE,CAAC,CAAC;IAChE,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CACR,kBACE,CAAC,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,cAAc,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CACzF,EAAE,CACH,CAAC;IACF,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;IACxE,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IACrD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IACnD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,CAAiB;IAC1C,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,UAAU,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;IAClE,MAAM,KAAK,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC;IACjC,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,wDAAwD,CAAC,CAAC;IAChG,KAAK,CAAC,IAAI,CACR,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,UAAU,IAAI,KAAK,uBAAuB,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,GAAG,CAC5F,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CACjC,EAAE,CACJ,CAAC;IACF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IACrD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAChD,KAAK,MAAM,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChF,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CACR,KAAK,CAAC,GAAG,CACP,yFAAyF,CAC1F,CACF,CAAC;IACF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
|
|
@@ -3,10 +3,16 @@ import type { Express } from "express";
|
|
|
3
3
|
import { config } from "../config.js";
|
|
4
4
|
|
|
5
5
|
export function initSentry(app: Express): void {
|
|
6
|
+
// No DSN = no init. `hatchkit add` writes GLITCHTIP_DSN to
|
|
7
|
+
// .env.production by default; dev doesn't get one (dev error noise
|
|
8
|
+
// pollutes real metrics). Pass `--enable-dev-obs` to opt in.
|
|
6
9
|
if (!config.GLITCHTIP_DSN) return;
|
|
7
10
|
|
|
8
11
|
Sentry.init({
|
|
9
12
|
dsn: config.GLITCHTIP_DSN,
|
|
13
|
+
// `environment` drives GlitchTip's UI filter. DEPLOY_ENV wins so
|
|
14
|
+
// staging deploys tag correctly even when NODE_ENV is "production".
|
|
15
|
+
environment: process.env.DEPLOY_ENV || process.env.NODE_ENV || "development",
|
|
10
16
|
integrations: [
|
|
11
17
|
Sentry.httpIntegration(),
|
|
12
18
|
Sentry.expressIntegration({ app }),
|
|
@@ -38,9 +38,19 @@ S3_ACCESS_KEY=
|
|
|
38
38
|
S3_SECRET_KEY=
|
|
39
39
|
S3_REGION=
|
|
40
40
|
{{/if}}
|
|
41
|
+
|
|
42
|
+
# Active ML backend. Set to one of the platforms you deployed to
|
|
43
|
+
# (modal / runpod / hf / replicate). The runtime resolves
|
|
44
|
+
# ML_<SERVICE>_<BACKEND>_URL first, falling back to ML_<SERVICE>_ENDPOINT.
|
|
45
|
+
# Leave blank to use the deploy-time default (the first platform passed
|
|
46
|
+
# to `gpuPlatforms` at scaffold time).
|
|
47
|
+
ML_BACKEND=
|
|
41
48
|
{{#if has3d}}
|
|
42
49
|
|
|
43
50
|
# ML: 3D Model Extraction
|
|
51
|
+
# Per-platform URLs are populated by hatchkit at deploy time:
|
|
52
|
+
# ML_3D_EXTRACTION_MODAL_URL=...
|
|
53
|
+
# ML_3D_EXTRACTION_RUNPOD_URL=...
|
|
44
54
|
ML_3D_EXTRACTION_ENDPOINT=
|
|
45
55
|
{{/if}}
|
|
46
56
|
{{#if hasSubtitles}}
|
|
@@ -1,9 +1,29 @@
|
|
|
1
|
+
/** Resolve an ML service endpoint by picking the URL for the active
|
|
2
|
+
* backend. Falls back to `ML_<SERVICE>_ENDPOINT` (set by hatchkit's
|
|
3
|
+
* deploy step to the default platform's URL) when no per-platform
|
|
4
|
+
* URL is set for the chosen backend.
|
|
5
|
+
*
|
|
6
|
+
* Switch backends by setting `ML_BACKEND` on the deploy:
|
|
7
|
+
* ML_BACKEND=runpod → reads ML_<SERVICE>_RUNPOD_URL
|
|
8
|
+
* ML_BACKEND=modal → reads ML_<SERVICE>_MODAL_URL
|
|
9
|
+
* Defaults to whatever was first in `gpuPlatforms` at scaffold time
|
|
10
|
+
* (captured in `ML_<SERVICE>_ENDPOINT`). */
|
|
11
|
+
function mlEndpoint(service: string): string {
|
|
12
|
+
const backend = (process.env.ML_BACKEND || "").toUpperCase();
|
|
13
|
+
if (backend) {
|
|
14
|
+
const perPlatform = process.env[`ML_${service}_${backend}_URL`];
|
|
15
|
+
if (perPlatform) return perPlatform;
|
|
16
|
+
}
|
|
17
|
+
return process.env[`ML_${service}_ENDPOINT`] || "";
|
|
18
|
+
}
|
|
19
|
+
|
|
1
20
|
export const config = {
|
|
2
21
|
PORT: parseInt(process.env.PORT || "3000", 10),
|
|
3
22
|
FRONTEND_URL: process.env.FRONTEND_URL || "http://localhost:3000",
|
|
4
23
|
MONGODB_URI: process.env.MONGODB_URI || "mongodb://localhost:27017/{{name}}",
|
|
5
24
|
AUTH_SECRET: process.env.AUTH_SECRET || "change-me",
|
|
6
25
|
AUTH_URL: process.env.AUTH_URL || "http://localhost:3000",
|
|
26
|
+
ML_BACKEND: process.env.ML_BACKEND || "",
|
|
7
27
|
{{#if websocket}}
|
|
8
28
|
REDIS_URL: process.env.REDIS_URL || "redis://localhost:6379",
|
|
9
29
|
{{/if}}
|
|
@@ -22,15 +42,15 @@ export const config = {
|
|
|
22
42
|
S3_REGION: process.env.S3_REGION || "us-east-1",
|
|
23
43
|
{{/if}}
|
|
24
44
|
{{#if has3d}}
|
|
25
|
-
ML_3D_EXTRACTION_ENDPOINT:
|
|
45
|
+
ML_3D_EXTRACTION_ENDPOINT: mlEndpoint("3D_EXTRACTION"),
|
|
26
46
|
{{/if}}
|
|
27
47
|
{{#if hasSubtitles}}
|
|
28
|
-
ML_SUBTITLES_ENDPOINT:
|
|
48
|
+
ML_SUBTITLES_ENDPOINT: mlEndpoint("SUBTITLES"),
|
|
29
49
|
{{/if}}
|
|
30
50
|
{{#if hasImageRecognition}}
|
|
31
|
-
ML_IMAGE_RECOGNITION_ENDPOINT:
|
|
51
|
+
ML_IMAGE_RECOGNITION_ENDPOINT: mlEndpoint("IMAGE_RECOGNITION"),
|
|
32
52
|
{{/if}}
|
|
33
53
|
{{#if hasBgRemoval}}
|
|
34
|
-
ML_BACKGROUND_REMOVAL_ENDPOINT:
|
|
54
|
+
ML_BACKGROUND_REMOVAL_ENDPOINT: mlEndpoint("BACKGROUND_REMOVAL"),
|
|
35
55
|
{{/if}}
|
|
36
56
|
} as const;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export interface CloudflareZone {
|
|
2
|
+
id: string;
|
|
3
|
+
name: string;
|
|
4
|
+
name_servers: string[];
|
|
5
|
+
status: string;
|
|
6
|
+
}
|
|
7
|
+
export interface CloudflareApiOptions {
|
|
8
|
+
token: string;
|
|
9
|
+
/** Optional: filter to one account. Useful if the token spans multiple. */
|
|
10
|
+
accountId?: string;
|
|
11
|
+
}
|
|
12
|
+
/** Cloudflare REST API client. */
|
|
13
|
+
export declare class CloudflareApi {
|
|
14
|
+
private token;
|
|
15
|
+
private accountId?;
|
|
16
|
+
constructor(options: CloudflareApiOptions);
|
|
17
|
+
private request;
|
|
18
|
+
/** Verify the token. "active" means it works. */
|
|
19
|
+
verifyToken(): Promise<string>;
|
|
20
|
+
/**
|
|
21
|
+
* List all zones accessible with this token, optionally filtered to one
|
|
22
|
+
* account. Paginates through the whole result set (CF caps per_page at
|
|
23
|
+
* 50). Safety valve: hard stop at 20 pages (= 1000 zones) to avoid
|
|
24
|
+
* runaway loops if the API misbehaves.
|
|
25
|
+
*/
|
|
26
|
+
listZones(): Promise<CloudflareZone[]>;
|
|
27
|
+
/** Look up a single zone by name. Returns null if not found. */
|
|
28
|
+
getZoneByName(name: string): Promise<CloudflareZone | null>;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=cloudflare-api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloudflare-api.d.ts","sourceRoot":"","sources":["../../src/utils/cloudflare-api.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,2EAA2E;IAC3E,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAiBD,kCAAkC;AAClC,qBAAa,aAAa;IACxB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,SAAS,CAAC,CAAS;gBAEf,OAAO,EAAE,oBAAoB;YAK3B,OAAO;IAoBrB,iDAAiD;IAC3C,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;IAKpC;;;;;OAKG;IACG,SAAS,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IA2B5C,gEAAgE;IAC1D,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;CAMlE"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
// Cloudflare REST API client.
|
|
2
|
+
//
|
|
3
|
+
// Minimal wrapper used by the `hatchkit dns link-to-cloudflare` command
|
|
4
|
+
// to verify a token and list the zones in an account so we can
|
|
5
|
+
// cross-reference them against domains registered at INWX. The DNS record
|
|
6
|
+
// creation itself goes through Terraform (modules/cloudflare-dns) during
|
|
7
|
+
// a normal `hatchkit create` flow — this client is for the standalone
|
|
8
|
+
// migration / reconciliation command.
|
|
9
|
+
//
|
|
10
|
+
// NB: `hatchkit gh-pages` has its own inline Cloudflare DNS helper for
|
|
11
|
+
// record CRUD. That path is separate and doesn't share this class.
|
|
12
|
+
const API_BASE = "https://api.cloudflare.com/client/v4";
|
|
13
|
+
/** Cloudflare REST API client. */
|
|
14
|
+
export class CloudflareApi {
|
|
15
|
+
token;
|
|
16
|
+
accountId;
|
|
17
|
+
constructor(options) {
|
|
18
|
+
this.token = options.token;
|
|
19
|
+
this.accountId = options.accountId;
|
|
20
|
+
}
|
|
21
|
+
async request(method, path, body) {
|
|
22
|
+
const res = await fetch(`${API_BASE}${path}`, {
|
|
23
|
+
method,
|
|
24
|
+
headers: {
|
|
25
|
+
Authorization: `Bearer ${this.token}`,
|
|
26
|
+
"Content-Type": "application/json",
|
|
27
|
+
Accept: "application/json",
|
|
28
|
+
},
|
|
29
|
+
body: body ? JSON.stringify(body) : undefined,
|
|
30
|
+
});
|
|
31
|
+
const json = (await res.json().catch(() => null));
|
|
32
|
+
if (!res.ok || !json || !json.success) {
|
|
33
|
+
const errMsg = json?.errors?.map((e) => `${e.code}: ${e.message}`).join("; ") ?? res.statusText;
|
|
34
|
+
throw new Error(`Cloudflare ${method} ${path} failed: ${errMsg}`);
|
|
35
|
+
}
|
|
36
|
+
return json.result;
|
|
37
|
+
}
|
|
38
|
+
/** Verify the token. "active" means it works. */
|
|
39
|
+
async verifyToken() {
|
|
40
|
+
const data = await this.request("GET", "/user/tokens/verify");
|
|
41
|
+
return data.status;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* List all zones accessible with this token, optionally filtered to one
|
|
45
|
+
* account. Paginates through the whole result set (CF caps per_page at
|
|
46
|
+
* 50). Safety valve: hard stop at 20 pages (= 1000 zones) to avoid
|
|
47
|
+
* runaway loops if the API misbehaves.
|
|
48
|
+
*/
|
|
49
|
+
async listZones() {
|
|
50
|
+
const all = [];
|
|
51
|
+
let page = 1;
|
|
52
|
+
while (page <= 20) {
|
|
53
|
+
const query = new URLSearchParams({ per_page: "50", page: String(page) });
|
|
54
|
+
if (this.accountId)
|
|
55
|
+
query.set("account.id", this.accountId);
|
|
56
|
+
const path = `/zones?${query.toString()}`;
|
|
57
|
+
const res = await fetch(`${API_BASE}${path}`, {
|
|
58
|
+
headers: {
|
|
59
|
+
Authorization: `Bearer ${this.token}`,
|
|
60
|
+
Accept: "application/json",
|
|
61
|
+
},
|
|
62
|
+
});
|
|
63
|
+
const json = (await res.json());
|
|
64
|
+
if (!res.ok || !json.success) {
|
|
65
|
+
const errMsg = json?.errors?.map((e) => `${e.code}: ${e.message}`).join("; ") ?? res.statusText;
|
|
66
|
+
throw new Error(`Cloudflare GET /zones failed: ${errMsg}`);
|
|
67
|
+
}
|
|
68
|
+
all.push(...json.result);
|
|
69
|
+
const totalPages = json.result_info?.total_pages ?? 1;
|
|
70
|
+
if (page >= totalPages)
|
|
71
|
+
break;
|
|
72
|
+
page += 1;
|
|
73
|
+
}
|
|
74
|
+
return all;
|
|
75
|
+
}
|
|
76
|
+
/** Look up a single zone by name. Returns null if not found. */
|
|
77
|
+
async getZoneByName(name) {
|
|
78
|
+
const query = new URLSearchParams({ name });
|
|
79
|
+
if (this.accountId)
|
|
80
|
+
query.set("account.id", this.accountId);
|
|
81
|
+
const data = await this.request("GET", `/zones?${query.toString()}`);
|
|
82
|
+
return data[0] ?? null;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=cloudflare-api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloudflare-api.js","sourceRoot":"","sources":["../../src/utils/cloudflare-api.ts"],"names":[],"mappings":"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"}
|