@webflow/cloud-app 0.1.0 → 1.0.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 +7 -50
- package/dist/assetVersionToken.d.ts +9 -0
- package/dist/assetVersionToken.d.ts.map +1 -0
- package/dist/assetVersionToken.js +37 -0
- package/dist/assetVersionToken.js.map +1 -0
- package/dist/bindings.d.ts +7 -125
- package/dist/bindings.d.ts.map +1 -1
- package/dist/config/package-json.d.ts +2 -29
- package/dist/config/package-json.d.ts.map +1 -1
- package/dist/config/package-json.js +2 -2
- package/dist/config/package-json.js.map +1 -1
- package/dist/failure-diagnostic.d.ts +19 -0
- package/dist/failure-diagnostic.d.ts.map +1 -0
- package/dist/failure-diagnostic.js +140 -0
- package/dist/failure-diagnostic.js.map +1 -0
- package/dist/frameworks/base.d.ts +13 -1
- package/dist/frameworks/base.d.ts.map +1 -1
- package/dist/frameworks/base.js +16 -0
- package/dist/frameworks/base.js.map +1 -1
- package/dist/frameworks/nextjs/index.d.ts +12 -0
- package/dist/frameworks/nextjs/index.d.ts.map +1 -1
- package/dist/frameworks/nextjs/index.js +36 -1
- package/dist/frameworks/nextjs/index.js.map +1 -1
- package/dist/frameworks/nextjs/supportPolicy.d.ts +28 -0
- package/dist/frameworks/nextjs/supportPolicy.d.ts.map +1 -0
- package/dist/frameworks/nextjs/supportPolicy.js +127 -0
- package/dist/frameworks/nextjs/supportPolicy.js.map +1 -0
- package/dist/frameworks/registry.d.ts +1 -1
- package/dist/frameworks/registry.d.ts.map +1 -1
- package/dist/frameworks/types.d.ts +12 -0
- package/dist/frameworks/types.d.ts.map +1 -1
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +18 -2
- package/dist/index.js.map +1 -1
- package/dist/pipeline.d.ts.map +1 -1
- package/dist/pipeline.js +8 -0
- package/dist/pipeline.js.map +1 -1
- package/dist/wrangler.d.ts +7 -155
- package/dist/wrangler.d.ts.map +1 -1
- package/dist/wrangler.js +5 -1
- package/dist/wrangler.js.map +1 -1
- package/package.json +7 -4
- package/dist/frameworks/astro/adapter-patches/ensure-fixed-cloudflare-adapter.d.ts +0 -36
- package/dist/frameworks/astro/adapter-patches/ensure-fixed-cloudflare-adapter.d.ts.map +0 -1
- package/dist/frameworks/astro/adapter-patches/ensure-fixed-cloudflare-adapter.js +0 -94
- package/dist/frameworks/astro/adapter-patches/ensure-fixed-cloudflare-adapter.js.map +0 -1
- package/dist/frameworks/astro/adapter-patches/strip-cloudflare-base-nesting.d.ts +0 -2
- package/dist/frameworks/astro/adapter-patches/strip-cloudflare-base-nesting.d.ts.map +0 -1
- package/dist/frameworks/astro/adapter-patches/strip-cloudflare-base-nesting.js +0 -97
- package/dist/frameworks/astro/adapter-patches/strip-cloudflare-base-nesting.js.map +0 -1
package/README.md
CHANGED
|
@@ -10,13 +10,7 @@ config, runs the build, and produces a worker-ready output directory. No
|
|
|
10
10
|
`wrangler.json`, no adapter packages in your `package.json`, no generated config
|
|
11
11
|
files in your tree — all of that happens in an ephemeral build workspace.
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
use, so a build is identical wherever it runs.
|
|
15
|
-
|
|
16
|
-
> **Status:** early. The public API and the host port seam below are stable; the
|
|
17
|
-
> framework build pipeline is being extracted from the canonical
|
|
18
|
-
> (cosmic-builder) implementation. `buildApp` throws `NotImplementedError` until
|
|
19
|
-
> that lands.
|
|
13
|
+
> **Status:** early. The public API and the host port seam below are stable.
|
|
20
14
|
|
|
21
15
|
## Install
|
|
22
16
|
|
|
@@ -42,16 +36,16 @@ const result = await buildApp({
|
|
|
42
36
|
console.log(result.framework, result.deploymentType, result.entrypointPath);
|
|
43
37
|
```
|
|
44
38
|
|
|
45
|
-
## Ports — running the
|
|
39
|
+
## Ports — running the engine anywhere
|
|
46
40
|
|
|
47
41
|
Everything environment-specific is injected, so the engine itself is pure build
|
|
48
|
-
logic
|
|
42
|
+
logic: no auth, no secrets, no vendor SDKs baked in.
|
|
49
43
|
|
|
50
44
|
| Port | Required | Default | Why a host overrides it |
|
|
51
45
|
| ------------ | -------- | ----------------------------------------- | ---------------------------------------------------------------------- |
|
|
52
|
-
| `logger` | yes | `consoleLogger` / `silentLogger` provided | route output into
|
|
46
|
+
| `logger` | yes | `consoleLogger` / `silentLogger` provided | route output into a spinner, structured logs, etc. |
|
|
53
47
|
| `runCommand` | yes | `nodeCommandRunner` provided | control/sandbox how `npm`, the framework build, and `wrangler` execute |
|
|
54
|
-
| `telemetry` | no | `noopTelemetry` |
|
|
48
|
+
| `telemetry` | no | `noopTelemetry` | forward build events into your own tracing |
|
|
55
49
|
| `fs` | no | `nodeFileSystem` | plug in a virtual filesystem (e.g. browser-based agents) |
|
|
56
50
|
|
|
57
51
|
## `webflow.json`
|
|
@@ -76,7 +70,7 @@ You declare the binding name (and, for R2/D1, the resource name) — Webflow Clo
|
|
|
76
70
|
provisions the resource and namespaces it per environment. KV ids / D1
|
|
77
71
|
`database_id`s are assigned for you; omit them. Limits: up to 5 of each type; R2
|
|
78
72
|
bucket names are lowercase alphanumeric + hyphens, ≤27 chars. (`vars` is not
|
|
79
|
-
supported yet
|
|
73
|
+
supported yet.)
|
|
80
74
|
|
|
81
75
|
The deploy-contract fields (`contract_version`, `framework`, `deployment_type`,
|
|
82
76
|
`entrypoint_path`, `skip_no_bundle`) are filled in by the build and validated
|
|
@@ -86,45 +80,8 @@ before output is produced.
|
|
|
86
80
|
## Development
|
|
87
81
|
|
|
88
82
|
```bash
|
|
89
|
-
npm install
|
|
83
|
+
npm install
|
|
90
84
|
npm test # jest
|
|
91
85
|
npm run build # tsc → dist/
|
|
92
86
|
npm run type-check
|
|
93
87
|
```
|
|
94
|
-
|
|
95
|
-
## How consumers resolve this package
|
|
96
|
-
|
|
97
|
-
Two consumers build with this engine: the Webflow CLI (`apps/webflow-cli`, same
|
|
98
|
-
monorepo) and the cosmic-builder image (`webflow/infrastructure`, a separate
|
|
99
|
-
repo). Which copy of `@webflow/cloud-app` they load is decided by **where
|
|
100
|
-
`npm install` ran**, not by how the code is bundled and not at runtime — a
|
|
101
|
-
`require("@webflow/cloud-app")` just reads whatever `npm` put in `node_modules`.
|
|
102
|
-
|
|
103
|
-
| Scenario | `node_modules/@webflow/cloud-app` is… | Source |
|
|
104
|
-
| ---------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | ------------------------------------- |
|
|
105
|
-
| End user runs `npm i -g @webflow/webflow-cli` | the registry copy npm fetched | npm registry |
|
|
106
|
-
| Engineer working in the webflow-cli repo (`npm ci`, build, run local `dist`) | a symlink to `apps/webflow-cloud-app` | workspace (repo tree) |
|
|
107
|
-
| CI for webflow-cli (unit, regression) | a symlink to `apps/webflow-cloud-app` | workspace (repo tree) |
|
|
108
|
-
| CI for webflow-cli (e2e, temp workspace outside the repo) | a tarball packed from this folder, or the published version the CLI depends on while it lags | workspace (repo tree) or npm registry |
|
|
109
|
-
| cosmic-builder (separate repo) | the registry copy npm fetched | npm registry |
|
|
110
|
-
|
|
111
|
-
- **Inside this monorepo the CLI uses the workspace copy while it depends on
|
|
112
|
-
this package's current version.** `apps/webflow-cli` depends on it through an
|
|
113
|
-
npm alias to an exact version (`npm:@webflow/cloud-app@<version>`, enforced in
|
|
114
|
-
CI by `npm run check:cloud-app-pin`). While that version equals this package's
|
|
115
|
-
version, npm links the workspace copy, so editing the source here takes effect
|
|
116
|
-
on the next build. When this package has moved ahead, the CLI keeps using the
|
|
117
|
-
published version its alias names until the alias is changed on purpose.
|
|
118
|
-
- **The published CLI uses the registry copy.** The engine is kept external in
|
|
119
|
-
the CLI's tsup bundle (it is CJS, not inlined), so the shipped `dist` keeps
|
|
120
|
-
`require("@webflow/cloud-app")` and resolves it at the user's install time.
|
|
121
|
-
The alias names an exact version, so released builds resolve exactly that
|
|
122
|
-
version from npm.
|
|
123
|
-
- **cosmic-builder is a different repo**, so it has no workspace copy and always
|
|
124
|
-
resolves from the registry. That is why publishing to npm still
|
|
125
|
-
matters even though the CLI links the workspace in development.
|
|
126
|
-
|
|
127
|
-
## Publishing
|
|
128
|
-
|
|
129
|
-
Release instructions for the Cloud team are in
|
|
130
|
-
[RELEASING.md](./RELEASING.md).
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** Hosts check this before requesting versioned framework output from a release. */
|
|
2
|
+
export declare const ASSET_VERSION_TOKEN_SUPPORT = 1;
|
|
3
|
+
/** Typed host input wins over customer/process env during template rendering. */
|
|
4
|
+
export declare function assetVersionTemplateEnvironment(token: string | undefined): {
|
|
5
|
+
WEBFLOW_ASSET_VERSION_TOKEN: string;
|
|
6
|
+
};
|
|
7
|
+
/** Run after dependency installation; older frameworks silently ignore this input. */
|
|
8
|
+
export declare function assertAssetVersionFrameworkSupport(token: string | undefined, framework: 'nextjs' | 'astro', cwd: string): void;
|
|
9
|
+
//# sourceMappingURL=assetVersionToken.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assetVersionToken.d.ts","sourceRoot":"","sources":["../src/assetVersionToken.ts"],"names":[],"mappings":"AAKA,oFAAoF;AACpF,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAS7C,iFAAiF;AACjF,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG;IAC1E,2BAA2B,EAAE,MAAM,CAAC;CACrC,CAEA;AAED,sFAAsF;AACtF,wBAAgB,kCAAkC,CAChD,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,SAAS,EAAE,QAAQ,GAAG,OAAO,EAC7B,GAAG,EAAE,MAAM,GACV,IAAI,CAaN"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.ASSET_VERSION_TOKEN_SUPPORT = void 0;
|
|
7
|
+
exports.assetVersionTemplateEnvironment = assetVersionTemplateEnvironment;
|
|
8
|
+
exports.assertAssetVersionFrameworkSupport = assertAssetVersionFrameworkSupport;
|
|
9
|
+
const zod_1 = require("zod");
|
|
10
|
+
const node_fs_1 = __importDefault(require("node:fs"));
|
|
11
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
12
|
+
const semver_1 = require("semver");
|
|
13
|
+
/** Hosts check this before requesting versioned framework output from a release. */
|
|
14
|
+
exports.ASSET_VERSION_TOKEN_SUPPORT = 1;
|
|
15
|
+
const tokenSchema = zod_1.z
|
|
16
|
+
.string()
|
|
17
|
+
.min(1)
|
|
18
|
+
.max(128)
|
|
19
|
+
.regex(/^[A-Za-z0-9_-]+$/)
|
|
20
|
+
.refine((token) => !token.startsWith('dpl_'), 'The dpl_ prefix is reserved');
|
|
21
|
+
/** Typed host input wins over customer/process env during template rendering. */
|
|
22
|
+
function assetVersionTemplateEnvironment(token) {
|
|
23
|
+
return { WEBFLOW_ASSET_VERSION_TOKEN: token === undefined ? '' : tokenSchema.parse(token) };
|
|
24
|
+
}
|
|
25
|
+
/** Run after dependency installation; older frameworks silently ignore this input. */
|
|
26
|
+
function assertAssetVersionFrameworkSupport(token, framework, cwd) {
|
|
27
|
+
if (token === undefined)
|
|
28
|
+
return;
|
|
29
|
+
const packageName = framework === 'nextjs' ? 'next' : 'astro';
|
|
30
|
+
const installed = zod_1.z
|
|
31
|
+
.object({ version: zod_1.z.string() })
|
|
32
|
+
.parse(JSON.parse(node_fs_1.default.readFileSync(node_path_1.default.join(cwd, 'node_modules', packageName, 'package.json'), 'utf8')));
|
|
33
|
+
const supported = framework === 'nextjs' ? '>=14.1.4' : '>=5.15.0';
|
|
34
|
+
if (!(0, semver_1.satisfies)(installed.version, supported, { includePrerelease: true }))
|
|
35
|
+
throw new Error(`Asset version tokens require ${framework} ${supported}`);
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=assetVersionToken.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assetVersionToken.js","sourceRoot":"","sources":["../src/assetVersionToken.ts"],"names":[],"mappings":";;;;;;AAgBA,0EAIC;AAGD,gFAiBC;AAxCD,6BAAwB;AACxB,sDAAyB;AACzB,0DAA6B;AAC7B,mCAAmC;AAEnC,oFAAoF;AACvE,QAAA,2BAA2B,GAAG,CAAC,CAAC;AAE7C,MAAM,WAAW,GAAG,OAAC;KAClB,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,CAAC;KACN,GAAG,CAAC,GAAG,CAAC;KACR,KAAK,CAAC,kBAAkB,CAAC;KACzB,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,6BAA6B,CAAC,CAAC;AAE/E,iFAAiF;AACjF,SAAgB,+BAA+B,CAAC,KAAyB;IAGvE,OAAO,EAAE,2BAA2B,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;AAC9F,CAAC;AAED,sFAAsF;AACtF,SAAgB,kCAAkC,CAChD,KAAyB,EACzB,SAA6B,EAC7B,GAAW;IAEX,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO;IAChC,MAAM,WAAW,GAAG,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;IAC9D,MAAM,SAAS,GAAG,OAAC;SAChB,MAAM,CAAC,EAAE,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,EAAE,CAAC;SAC/B,KAAK,CACJ,IAAI,CAAC,KAAK,CACR,iBAAE,CAAC,YAAY,CAAC,mBAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,EAAE,WAAW,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CACrF,CACF,CAAC;IACJ,MAAM,SAAS,GAAG,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC;IACnE,IAAI,CAAC,IAAA,kBAAS,EAAC,SAAS,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC;QACvE,MAAM,IAAI,KAAK,CAAC,gCAAgC,SAAS,IAAI,SAAS,EAAE,CAAC,CAAC;AAC9E,CAAC"}
|
package/dist/bindings.d.ts
CHANGED
|
@@ -20,151 +20,33 @@ export declare const MAX_BINDINGS_PER_TYPE = 5;
|
|
|
20
20
|
export declare const KvBindingSchema: z.ZodObject<{
|
|
21
21
|
binding: z.ZodString;
|
|
22
22
|
id: z.ZodOptional<z.ZodString>;
|
|
23
|
-
},
|
|
24
|
-
binding: z.ZodString;
|
|
25
|
-
id: z.ZodOptional<z.ZodString>;
|
|
26
|
-
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
27
|
-
binding: z.ZodString;
|
|
28
|
-
id: z.ZodOptional<z.ZodString>;
|
|
29
|
-
}, z.ZodTypeAny, "passthrough">>;
|
|
23
|
+
}, z.core.$loose>;
|
|
30
24
|
export declare const R2BindingSchema: z.ZodObject<{
|
|
31
25
|
binding: z.ZodString;
|
|
32
26
|
bucket_name: z.ZodString;
|
|
33
|
-
},
|
|
34
|
-
binding: z.ZodString;
|
|
35
|
-
bucket_name: z.ZodString;
|
|
36
|
-
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
37
|
-
binding: z.ZodString;
|
|
38
|
-
bucket_name: z.ZodString;
|
|
39
|
-
}, z.ZodTypeAny, "passthrough">>;
|
|
27
|
+
}, z.core.$loose>;
|
|
40
28
|
export declare const D1BindingSchema: z.ZodObject<{
|
|
41
29
|
binding: z.ZodString;
|
|
42
30
|
database_name: z.ZodString;
|
|
43
31
|
database_id: z.ZodOptional<z.ZodString>;
|
|
44
32
|
migrations_dir: z.ZodOptional<z.ZodString>;
|
|
45
|
-
},
|
|
46
|
-
binding: z.ZodString;
|
|
47
|
-
database_name: z.ZodString;
|
|
48
|
-
database_id: z.ZodOptional<z.ZodString>;
|
|
49
|
-
migrations_dir: z.ZodOptional<z.ZodString>;
|
|
50
|
-
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
51
|
-
binding: z.ZodString;
|
|
52
|
-
database_name: z.ZodString;
|
|
53
|
-
database_id: z.ZodOptional<z.ZodString>;
|
|
54
|
-
migrations_dir: z.ZodOptional<z.ZodString>;
|
|
55
|
-
}, z.ZodTypeAny, "passthrough">>;
|
|
33
|
+
}, z.core.$loose>;
|
|
56
34
|
export declare const BindingsSchema: z.ZodObject<{
|
|
57
35
|
kv: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
58
36
|
binding: z.ZodString;
|
|
59
37
|
id: z.ZodOptional<z.ZodString>;
|
|
60
|
-
},
|
|
61
|
-
binding: z.ZodString;
|
|
62
|
-
id: z.ZodOptional<z.ZodString>;
|
|
63
|
-
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
64
|
-
binding: z.ZodString;
|
|
65
|
-
id: z.ZodOptional<z.ZodString>;
|
|
66
|
-
}, z.ZodTypeAny, "passthrough">>, "many">>;
|
|
67
|
-
r2: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
68
|
-
binding: z.ZodString;
|
|
69
|
-
bucket_name: z.ZodString;
|
|
70
|
-
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
71
|
-
binding: z.ZodString;
|
|
72
|
-
bucket_name: z.ZodString;
|
|
73
|
-
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
74
|
-
binding: z.ZodString;
|
|
75
|
-
bucket_name: z.ZodString;
|
|
76
|
-
}, z.ZodTypeAny, "passthrough">>, "many">>;
|
|
77
|
-
d1: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
78
|
-
binding: z.ZodString;
|
|
79
|
-
database_name: z.ZodString;
|
|
80
|
-
database_id: z.ZodOptional<z.ZodString>;
|
|
81
|
-
migrations_dir: z.ZodOptional<z.ZodString>;
|
|
82
|
-
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
83
|
-
binding: z.ZodString;
|
|
84
|
-
database_name: z.ZodString;
|
|
85
|
-
database_id: z.ZodOptional<z.ZodString>;
|
|
86
|
-
migrations_dir: z.ZodOptional<z.ZodString>;
|
|
87
|
-
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
88
|
-
binding: z.ZodString;
|
|
89
|
-
database_name: z.ZodString;
|
|
90
|
-
database_id: z.ZodOptional<z.ZodString>;
|
|
91
|
-
migrations_dir: z.ZodOptional<z.ZodString>;
|
|
92
|
-
}, z.ZodTypeAny, "passthrough">>, "many">>;
|
|
93
|
-
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
94
|
-
kv: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
95
|
-
binding: z.ZodString;
|
|
96
|
-
id: z.ZodOptional<z.ZodString>;
|
|
97
|
-
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
98
|
-
binding: z.ZodString;
|
|
99
|
-
id: z.ZodOptional<z.ZodString>;
|
|
100
|
-
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
101
|
-
binding: z.ZodString;
|
|
102
|
-
id: z.ZodOptional<z.ZodString>;
|
|
103
|
-
}, z.ZodTypeAny, "passthrough">>, "many">>;
|
|
38
|
+
}, z.core.$loose>>>;
|
|
104
39
|
r2: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
105
40
|
binding: z.ZodString;
|
|
106
41
|
bucket_name: z.ZodString;
|
|
107
|
-
},
|
|
108
|
-
binding: z.ZodString;
|
|
109
|
-
bucket_name: z.ZodString;
|
|
110
|
-
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
111
|
-
binding: z.ZodString;
|
|
112
|
-
bucket_name: z.ZodString;
|
|
113
|
-
}, z.ZodTypeAny, "passthrough">>, "many">>;
|
|
42
|
+
}, z.core.$loose>>>;
|
|
114
43
|
d1: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
115
44
|
binding: z.ZodString;
|
|
116
45
|
database_name: z.ZodString;
|
|
117
46
|
database_id: z.ZodOptional<z.ZodString>;
|
|
118
47
|
migrations_dir: z.ZodOptional<z.ZodString>;
|
|
119
|
-
},
|
|
120
|
-
|
|
121
|
-
database_name: z.ZodString;
|
|
122
|
-
database_id: z.ZodOptional<z.ZodString>;
|
|
123
|
-
migrations_dir: z.ZodOptional<z.ZodString>;
|
|
124
|
-
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
125
|
-
binding: z.ZodString;
|
|
126
|
-
database_name: z.ZodString;
|
|
127
|
-
database_id: z.ZodOptional<z.ZodString>;
|
|
128
|
-
migrations_dir: z.ZodOptional<z.ZodString>;
|
|
129
|
-
}, z.ZodTypeAny, "passthrough">>, "many">>;
|
|
130
|
-
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
131
|
-
kv: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
132
|
-
binding: z.ZodString;
|
|
133
|
-
id: z.ZodOptional<z.ZodString>;
|
|
134
|
-
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
135
|
-
binding: z.ZodString;
|
|
136
|
-
id: z.ZodOptional<z.ZodString>;
|
|
137
|
-
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
138
|
-
binding: z.ZodString;
|
|
139
|
-
id: z.ZodOptional<z.ZodString>;
|
|
140
|
-
}, z.ZodTypeAny, "passthrough">>, "many">>;
|
|
141
|
-
r2: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
142
|
-
binding: z.ZodString;
|
|
143
|
-
bucket_name: z.ZodString;
|
|
144
|
-
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
145
|
-
binding: z.ZodString;
|
|
146
|
-
bucket_name: z.ZodString;
|
|
147
|
-
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
148
|
-
binding: z.ZodString;
|
|
149
|
-
bucket_name: z.ZodString;
|
|
150
|
-
}, z.ZodTypeAny, "passthrough">>, "many">>;
|
|
151
|
-
d1: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
152
|
-
binding: z.ZodString;
|
|
153
|
-
database_name: z.ZodString;
|
|
154
|
-
database_id: z.ZodOptional<z.ZodString>;
|
|
155
|
-
migrations_dir: z.ZodOptional<z.ZodString>;
|
|
156
|
-
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
157
|
-
binding: z.ZodString;
|
|
158
|
-
database_name: z.ZodString;
|
|
159
|
-
database_id: z.ZodOptional<z.ZodString>;
|
|
160
|
-
migrations_dir: z.ZodOptional<z.ZodString>;
|
|
161
|
-
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
162
|
-
binding: z.ZodString;
|
|
163
|
-
database_name: z.ZodString;
|
|
164
|
-
database_id: z.ZodOptional<z.ZodString>;
|
|
165
|
-
migrations_dir: z.ZodOptional<z.ZodString>;
|
|
166
|
-
}, z.ZodTypeAny, "passthrough">>, "many">>;
|
|
167
|
-
}, z.ZodTypeAny, "passthrough">>;
|
|
48
|
+
}, z.core.$loose>>>;
|
|
49
|
+
}, z.core.$loose>;
|
|
168
50
|
export type WebflowBindings = z.infer<typeof BindingsSchema>;
|
|
169
51
|
/** Parse the raw `cloud.bindings` block. Returns undefined if it's absent/invalid-shaped. */
|
|
170
52
|
export declare function parseBindings(raw: unknown): WebflowBindings | undefined;
|
package/dist/bindings.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bindings.d.ts","sourceRoot":"","sources":["../src/bindings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,uEAAuE;AACvE,eAAO,MAAM,qBAAqB,IAAI,CAAC;AAUvC,eAAO,MAAM,eAAe
|
|
1
|
+
{"version":3,"file":"bindings.d.ts","sourceRoot":"","sources":["../src/bindings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,uEAAuE;AACvE,eAAO,MAAM,qBAAqB,IAAI,CAAC;AAUvC,eAAO,MAAM,eAAe;;;iBAEZ,CAAC;AACjB,eAAO,MAAM,eAAe;;;iBAEZ,CAAC;AACjB,eAAO,MAAM,eAAe;;;;;iBAOZ,CAAC;AAEjB,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;iBAMX,CAAC;AAEjB,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE7D,6FAA6F;AAC7F,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,eAAe,GAAG,SAAS,CAGvE;AAED,+DAA+D;AAC/D,wBAAgB,cAAc,CAAC,QAAQ,EAAE,eAAe,GAAG,SAAS,GAAG,OAAO,CAG7E;AAED,2GAA2G;AAC3G,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAgBvD;AAED,wFAAwF;AACxF,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI,CAmBhE;AAED;;;GAGG;AACH,eAAO,MAAM,2BAA2B,eAAe,CAAC;AAExD;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,eAAe,EACzB,IAAI,SAAgB,GACnB,YAAY,CAmBd"}
|
|
@@ -5,41 +5,14 @@ import { z } from 'zod';
|
|
|
5
5
|
* Only the fields used by the framework builder are validated here.
|
|
6
6
|
*/
|
|
7
7
|
export declare const PackageJsonSchema: z.ZodObject<{
|
|
8
|
-
/** Package name */
|
|
9
8
|
name: z.ZodOptional<z.ZodString>;
|
|
10
|
-
/** Package version */
|
|
11
9
|
version: z.ZodOptional<z.ZodString>;
|
|
12
|
-
/** Production dependencies (package name -> version specifier) */
|
|
13
10
|
dependencies: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
14
|
-
/** Development dependencies (package name -> version specifier) */
|
|
15
11
|
devDependencies: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
16
|
-
/** Runtime declarations. `node` is deliberately retained as unknown so the
|
|
17
|
-
* toolchain resolver can warn and fall back for a malformed customer
|
|
18
|
-
* declaration rather than rejecting the entire package.json. */
|
|
19
12
|
engines: z.ZodOptional<z.ZodObject<{
|
|
20
13
|
node: z.ZodOptional<z.ZodUnknown>;
|
|
21
|
-
},
|
|
22
|
-
|
|
23
|
-
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
24
|
-
node: z.ZodOptional<z.ZodUnknown>;
|
|
25
|
-
}, z.ZodTypeAny, "passthrough">>>;
|
|
26
|
-
}, "strip", z.ZodTypeAny, {
|
|
27
|
-
name?: string | undefined;
|
|
28
|
-
version?: string | undefined;
|
|
29
|
-
dependencies?: Record<string, string> | undefined;
|
|
30
|
-
devDependencies?: Record<string, string> | undefined;
|
|
31
|
-
engines?: z.objectOutputType<{
|
|
32
|
-
node: z.ZodOptional<z.ZodUnknown>;
|
|
33
|
-
}, z.ZodTypeAny, "passthrough"> | undefined;
|
|
34
|
-
}, {
|
|
35
|
-
name?: string | undefined;
|
|
36
|
-
version?: string | undefined;
|
|
37
|
-
dependencies?: Record<string, string> | undefined;
|
|
38
|
-
devDependencies?: Record<string, string> | undefined;
|
|
39
|
-
engines?: z.objectInputType<{
|
|
40
|
-
node: z.ZodOptional<z.ZodUnknown>;
|
|
41
|
-
}, z.ZodTypeAny, "passthrough"> | undefined;
|
|
42
|
-
}>;
|
|
14
|
+
}, z.core.$loose>>;
|
|
15
|
+
}, z.core.$strip>;
|
|
43
16
|
/**
|
|
44
17
|
* Package.json structure (minimal fields we need).
|
|
45
18
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package-json.d.ts","sourceRoot":"","sources":["../../src/config/package-json.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;GAIG;AACH,eAAO,MAAM,iBAAiB
|
|
1
|
+
{"version":3,"file":"package-json.d.ts","sourceRoot":"","sources":["../../src/config/package-json.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;GAIG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;iBAkB5B,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAoBpE"}
|
|
@@ -49,9 +49,9 @@ exports.PackageJsonSchema = zod_1.z.object({
|
|
|
49
49
|
/** Package version */
|
|
50
50
|
version: zod_1.z.string().optional(),
|
|
51
51
|
/** Production dependencies (package name -> version specifier) */
|
|
52
|
-
dependencies: zod_1.z.record(zod_1.z.string()).optional(),
|
|
52
|
+
dependencies: zod_1.z.record(zod_1.z.string(), zod_1.z.string()).optional(),
|
|
53
53
|
/** Development dependencies (package name -> version specifier) */
|
|
54
|
-
devDependencies: zod_1.z.record(zod_1.z.string()).optional(),
|
|
54
|
+
devDependencies: zod_1.z.record(zod_1.z.string(), zod_1.z.string()).optional(),
|
|
55
55
|
/** Runtime declarations. `node` is deliberately retained as unknown so the
|
|
56
56
|
* toolchain resolver can warn and fall back for a malformed customer
|
|
57
57
|
* declaration rather than rejecting the entire package.json. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package-json.js","sourceRoot":"","sources":["../../src/config/package-json.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4CA,0CAoBC;AAhED,4CAA8B;AAC9B,gDAAkC;AAElC,6BAAwB;AAExB;;;;GAIG;AACU,QAAA,iBAAiB,GAAG,OAAC,CAAC,MAAM,CAAC;IACxC,mBAAmB;IACnB,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,sBAAsB;IACtB,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,kEAAkE;IAClE,YAAY,EAAE,OAAC,CAAC,MAAM,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;
|
|
1
|
+
{"version":3,"file":"package-json.js","sourceRoot":"","sources":["../../src/config/package-json.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4CA,0CAoBC;AAhED,4CAA8B;AAC9B,gDAAkC;AAElC,6BAAwB;AAExB;;;;GAIG;AACU,QAAA,iBAAiB,GAAG,OAAC,CAAC,MAAM,CAAC;IACxC,mBAAmB;IACnB,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,sBAAsB;IACtB,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,kEAAkE;IAClE,YAAY,EAAE,OAAC,CAAC,MAAM,CAAC,OAAC,CAAC,MAAM,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACzD,mEAAmE;IACnE,eAAe,EAAE,OAAC,CAAC,MAAM,CAAC,OAAC,CAAC,MAAM,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC5D;;oEAEgE;IAChE,OAAO,EAAE,OAAC;SACP,MAAM,CAAC;QACN,IAAI,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;KAC7B,CAAC;SACD,WAAW,EAAE;SACb,QAAQ,EAAE;CACd,CAAC,CAAC;AAOH;;;;;;;;GAQG;AACH,SAAgB,eAAe,CAAC,GAAW;IACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAChD,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QACtD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAEvD,IAAI,QAAiB,CAAC;IACtB,IAAI,CAAC;QACH,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,iCAAiC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,IAAI,CAAC;QACH,OAAO,yBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,uCAAuC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IACzE,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public build-failure diagnostics for hosts. `diagnoseBuildFailure` maps an
|
|
3
|
+
* error, walking a bounded and cycle-safe cause chain, to a
|
|
4
|
+
* `BuildFailureDiagnostic`: a `BuildFailureKind` from `BUILD_FAILURE_KINDS`, a
|
|
5
|
+
* bounded snake_case code and the optional
|
|
6
|
+
* `BuildFailureStage` it was called with. These values are safe to attach to
|
|
7
|
+
* telemetry and never include error messages or stacks.
|
|
8
|
+
*/
|
|
9
|
+
export declare const BUILD_FAILURE_KINDS: readonly ["detection", "validation", "config", "build", "toolchain", "command", "unknown"];
|
|
10
|
+
export type BuildFailureKind = (typeof BUILD_FAILURE_KINDS)[number];
|
|
11
|
+
export type BuildFailureStage = 'detect' | 'validate' | 'installDependencies' | 'prepareConfig' | 'build' | 'postBuild' | 'wranglerDryRun' | 'package' | 'upload' | 'unknown';
|
|
12
|
+
export interface BuildFailureDiagnostic {
|
|
13
|
+
kind: BuildFailureKind;
|
|
14
|
+
/** Bounded snake_case sub-code, e.g. 'npm_eresolve', 'node_provision_failed', 'command_failed'. */
|
|
15
|
+
code: string;
|
|
16
|
+
stage?: BuildFailureStage;
|
|
17
|
+
}
|
|
18
|
+
export declare function diagnoseBuildFailure(error: unknown, stage?: BuildFailureStage): BuildFailureDiagnostic;
|
|
19
|
+
//# sourceMappingURL=failure-diagnostic.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"failure-diagnostic.d.ts","sourceRoot":"","sources":["../src/failure-diagnostic.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAYH,eAAO,MAAM,mBAAmB,4FAQtB,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEpE,MAAM,MAAM,iBAAiB,GACzB,QAAQ,GACR,UAAU,GACV,qBAAqB,GACrB,eAAe,GACf,OAAO,GACP,WAAW,GACX,gBAAgB,GAChB,SAAS,GACT,QAAQ,GACR,SAAS,CAAC;AAEd,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,gBAAgB,CAAC;IACvB,mGAAmG;IACnG,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,iBAAiB,CAAC;CAC3B;AAyFD,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,OAAO,EACd,KAAK,CAAC,EAAE,iBAAiB,GACxB,sBAAsB,CAuCxB"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Public build-failure diagnostics for hosts. `diagnoseBuildFailure` maps an
|
|
4
|
+
* error, walking a bounded and cycle-safe cause chain, to a
|
|
5
|
+
* `BuildFailureDiagnostic`: a `BuildFailureKind` from `BUILD_FAILURE_KINDS`, a
|
|
6
|
+
* bounded snake_case code and the optional
|
|
7
|
+
* `BuildFailureStage` it was called with. These values are safe to attach to
|
|
8
|
+
* telemetry and never include error messages or stacks.
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.BUILD_FAILURE_KINDS = void 0;
|
|
12
|
+
exports.diagnoseBuildFailure = diagnoseBuildFailure;
|
|
13
|
+
const errors_1 = require("./errors");
|
|
14
|
+
const errors_2 = require("./frameworks/errors");
|
|
15
|
+
const command_runner_1 = require("./ports/command-runner");
|
|
16
|
+
const errors_3 = require("./toolchain/errors");
|
|
17
|
+
exports.BUILD_FAILURE_KINDS = [
|
|
18
|
+
'detection',
|
|
19
|
+
'validation',
|
|
20
|
+
'config',
|
|
21
|
+
'build',
|
|
22
|
+
'toolchain',
|
|
23
|
+
'command',
|
|
24
|
+
'unknown',
|
|
25
|
+
];
|
|
26
|
+
const MAX_CAUSE_LINKS = 5;
|
|
27
|
+
const CODE_PATTERN = /^[a-z0-9_]{1,40}$/;
|
|
28
|
+
const NPM_ERROR_CODE_PATTERN = /npm (?:ERR!|error) code (\S+)/;
|
|
29
|
+
// Subprocess output can contain project-controlled text. Only known codes may
|
|
30
|
+
// become telemetry values; a character/length bound does not bound cardinality.
|
|
31
|
+
// This is a curated telemetry allowlist, not an exhaustive npm error registry.
|
|
32
|
+
// References for npm codes, usage errors, integrity errors, and system/DNS errors:
|
|
33
|
+
// https://github.com/npm/cli/blob/v11.4.2/lib/utils/error-message.js
|
|
34
|
+
// https://github.com/npm/cli/blob/v11.4.2/lib/base-cmd.js
|
|
35
|
+
// https://github.com/npm/ssri/blob/main/lib/index.js
|
|
36
|
+
// https://docs.libuv.org/en/v1.x/errors.html#error-constants
|
|
37
|
+
// Legacy request socket timeout: https://github.com/request/request/blob/master/request.js
|
|
38
|
+
const NPM_ERROR_CODES = new Set([
|
|
39
|
+
'ERESOLVE',
|
|
40
|
+
'ETARGET',
|
|
41
|
+
'E404',
|
|
42
|
+
'E401',
|
|
43
|
+
'E403',
|
|
44
|
+
'EINTEGRITY',
|
|
45
|
+
'ENOTFOUND',
|
|
46
|
+
'EAI_AGAIN',
|
|
47
|
+
'ECONNRESET',
|
|
48
|
+
'ECONNREFUSED',
|
|
49
|
+
'ETIMEDOUT',
|
|
50
|
+
'ESOCKETTIMEDOUT',
|
|
51
|
+
'ENETUNREACH',
|
|
52
|
+
'EACCES',
|
|
53
|
+
'EPERM',
|
|
54
|
+
'ENOSPC',
|
|
55
|
+
'ENOENT',
|
|
56
|
+
'EEXIST',
|
|
57
|
+
'EUSAGE',
|
|
58
|
+
'EBADENGINE',
|
|
59
|
+
]);
|
|
60
|
+
const NODE_TOOLCHAIN_CODES = {
|
|
61
|
+
NVM_PROVISION_FAILED: 'node_provision_failed',
|
|
62
|
+
NODE_RUNTIME_VERIFICATION_FAILED: 'node_runtime_verification_failed',
|
|
63
|
+
};
|
|
64
|
+
/**
|
|
65
|
+
* Hosts carry structurally identical framework error trees with no inheritance
|
|
66
|
+
* link to this package — the CLI's legacy builder and cosmic-builder's legacy
|
|
67
|
+
* engine each define their own `Framework*Error` classes — so `name` is the
|
|
68
|
+
* only shared contract, and nothing else about the object is inspected.
|
|
69
|
+
*/
|
|
70
|
+
const FRAMEWORK_ERROR_NAMES = {
|
|
71
|
+
FrameworkDetectionError: { kind: 'detection', code: 'detection_failed' },
|
|
72
|
+
FrameworkValidationError: { kind: 'validation', code: 'validation_failed' },
|
|
73
|
+
FrameworkConfigError: { kind: 'config', code: 'config_failed' },
|
|
74
|
+
FrameworkBuildError: { kind: 'build', code: 'build_failed' },
|
|
75
|
+
};
|
|
76
|
+
function boundCode(kind, code) {
|
|
77
|
+
if (typeof code === 'string' && CODE_PATTERN.test(code))
|
|
78
|
+
return code;
|
|
79
|
+
return kind === 'command' ? 'command_failed' : `${kind}_unknown`;
|
|
80
|
+
}
|
|
81
|
+
function diagnostic(kind, code, stage) {
|
|
82
|
+
return { kind, code: boundCode(kind, code), stage };
|
|
83
|
+
}
|
|
84
|
+
function commandFailureCode(error) {
|
|
85
|
+
const match = NPM_ERROR_CODE_PATTERN.exec(error.stderr) ?? NPM_ERROR_CODE_PATTERN.exec(error.stdout);
|
|
86
|
+
if (!match || !NPM_ERROR_CODES.has(match[1].toUpperCase()))
|
|
87
|
+
return 'command_failed';
|
|
88
|
+
return `npm_${match[1].toLowerCase()}`;
|
|
89
|
+
}
|
|
90
|
+
function causeOf(error) {
|
|
91
|
+
if (typeof error !== 'object' || error === null)
|
|
92
|
+
return undefined;
|
|
93
|
+
return error.cause;
|
|
94
|
+
}
|
|
95
|
+
function frameworkErrorByName(error) {
|
|
96
|
+
if (typeof error !== 'object' || error === null)
|
|
97
|
+
return undefined;
|
|
98
|
+
const { name } = error;
|
|
99
|
+
if (typeof name !== 'string' || !Object.hasOwn(FRAMEWORK_ERROR_NAMES, name))
|
|
100
|
+
return undefined;
|
|
101
|
+
return FRAMEWORK_ERROR_NAMES[name];
|
|
102
|
+
}
|
|
103
|
+
function diagnoseBuildFailure(error, stage) {
|
|
104
|
+
const seen = new Set();
|
|
105
|
+
let current = error;
|
|
106
|
+
for (let link = 0; link < MAX_CAUSE_LINKS; link++) {
|
|
107
|
+
if (seen.has(current))
|
|
108
|
+
break;
|
|
109
|
+
seen.add(current);
|
|
110
|
+
if (current instanceof errors_2.FrameworkDetectionError) {
|
|
111
|
+
return diagnostic('detection', 'detection_failed', stage);
|
|
112
|
+
}
|
|
113
|
+
if (current instanceof errors_2.FrameworkValidationError) {
|
|
114
|
+
return diagnostic('validation', 'validation_failed', stage);
|
|
115
|
+
}
|
|
116
|
+
if (current instanceof errors_2.FrameworkConfigError) {
|
|
117
|
+
return diagnostic('config', 'config_failed', stage);
|
|
118
|
+
}
|
|
119
|
+
if (current instanceof errors_2.FrameworkBuildError) {
|
|
120
|
+
return diagnostic('build', 'build_failed', stage);
|
|
121
|
+
}
|
|
122
|
+
if (current instanceof errors_3.NodeToolchainError) {
|
|
123
|
+
return diagnostic('toolchain', NODE_TOOLCHAIN_CODES[current.code], stage);
|
|
124
|
+
}
|
|
125
|
+
if (current instanceof command_runner_1.CommandError) {
|
|
126
|
+
return diagnostic('command', commandFailureCode(current), stage);
|
|
127
|
+
}
|
|
128
|
+
const frameworkByName = frameworkErrorByName(current);
|
|
129
|
+
if (frameworkByName) {
|
|
130
|
+
return diagnostic(frameworkByName.kind, frameworkByName.code, stage);
|
|
131
|
+
}
|
|
132
|
+
if (current instanceof errors_1.WebflowAppError)
|
|
133
|
+
break;
|
|
134
|
+
current = causeOf(current);
|
|
135
|
+
if (current === undefined)
|
|
136
|
+
break;
|
|
137
|
+
}
|
|
138
|
+
return diagnostic('unknown', 'unknown', stage);
|
|
139
|
+
}
|
|
140
|
+
//# sourceMappingURL=failure-diagnostic.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"failure-diagnostic.js","sourceRoot":"","sources":["../src/failure-diagnostic.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { BuildContext, BuildOutput, FrameworkInfo, PackageJson, WebflowJson, DetectionResult, AdapterPackage, IntegrationPackage, WebflowLoaderConfig, NodeVersionRequirement } from './types';
|
|
1
|
+
import type { BuildContext, BuildOutput, FrameworkInfo, FrameworkSupportStatus, PackageJson, WebflowJson, DetectionResult, AdapterPackage, IntegrationPackage, WebflowLoaderConfig, NodeVersionRequirement } from './types';
|
|
2
2
|
export declare abstract class FrameworkBuilder {
|
|
3
3
|
/**
|
|
4
4
|
* Canonical framework name (e.g. 'nextjs', 'astro', 'vite').
|
|
@@ -109,6 +109,18 @@ export declare abstract class FrameworkBuilder {
|
|
|
109
109
|
* the deploy contract).
|
|
110
110
|
*/
|
|
111
111
|
getFrameworkVersion(): string | undefined;
|
|
112
|
+
/**
|
|
113
|
+
* Optional framework support status (e.g. Next.js EOL window). Default null;
|
|
114
|
+
* frameworks that track support override. Called after dependencies are
|
|
115
|
+
* installed so the concrete installed version is available.
|
|
116
|
+
*/
|
|
117
|
+
getFrameworkSupport(): FrameworkSupportStatus | null;
|
|
118
|
+
/**
|
|
119
|
+
* Emit an out-of-support warning (via `log`) and record version / supported
|
|
120
|
+
* tags (via `telemetry`) when {@link getFrameworkSupport} returns a status.
|
|
121
|
+
* Default no-op; Next.js overrides.
|
|
122
|
+
*/
|
|
123
|
+
reportFrameworkSupport(): FrameworkSupportStatus | null;
|
|
112
124
|
/** Check if a dependency exists in package.json (deps or devDeps). */
|
|
113
125
|
protected hasDependency(name: string): boolean;
|
|
114
126
|
/** Get a dependency version from package.json (deps or devDeps). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/frameworks/base.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EACV,YAAY,EACZ,WAAW,EACX,aAAa,EACb,WAAW,EACX,WAAW,EACX,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,EACvB,MAAM,SAAS,CAAC;AAEjB,8BAAsB,gBAAgB;IACpC;;;OAGG;IACH,MAAM,CAAC,aAAa,SAAM;IAE1B,SAAS,CAAC,GAAG,EAAE,YAAY,CAAC;gBAEhB,GAAG,EAAE,YAAY;IAQ7B;;OAEG;IACH,QAAQ,KAAK,IAAI,IAAI,aAAa,CAAC;IAEnC;;;;;OAKG;IACH,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,WAAW,EAAE,YAAY,CAAC,EAAE,WAAW,GAAG,eAAe;IAIrF;;;;;;;OAOG;IACH,MAAM,CAAC,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAInD;;;;;OAKG;IACH,MAAM,CAAC,uBAAuB,IAAI,WAAW;IAI7C;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAElC;;OAEG;IACH,QAAQ,CAAC,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAE7C;;;OAGG;IACH,QAAQ,CAAC,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAEvC;;;;;OAKG;IACH,QAAQ,CAAC,eAAe,IAAI,MAAM,GAAG,IAAI;IAEzC;;;OAGG;IACH,uBAAuB,IAAI,WAAW;IAItC,yDAAyD;IACzD,QAAQ,CAAC,uBAAuB,IAAI,MAAM;IAM1C;;;OAGG;IACH,QAAQ,CAAC,oBAAoB,IAAI,cAAc,GAAG,IAAI;IAEtD;;;OAGG;IACH,QAAQ,CAAC,uBAAuB,IAAI,kBAAkB,EAAE;IAExD;;;OAGG;IACH,QAAQ,CAAC,gBAAgB,IAAI,mBAAmB,GAAG,IAAI;IAEvD;;;OAGG;IACH,QAAQ,CAAC,yBAAyB,IAAI,sBAAsB,GAAG,IAAI;IAMnE;;;OAGG;IACG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAIhC;;;OAGG;IACH,wBAAwB,IAAI,MAAM,EAAE;IAIpC;;;OAGG;IACH,qBAAqB,IAAI,MAAM,EAAE;IAIjC;;;;;;;;;OASG;IACH,mBAAmB,IAAI,MAAM,GAAG,SAAS;
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/frameworks/base.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EACV,YAAY,EACZ,WAAW,EACX,aAAa,EACb,sBAAsB,EACtB,WAAW,EACX,WAAW,EACX,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,EACvB,MAAM,SAAS,CAAC;AAEjB,8BAAsB,gBAAgB;IACpC;;;OAGG;IACH,MAAM,CAAC,aAAa,SAAM;IAE1B,SAAS,CAAC,GAAG,EAAE,YAAY,CAAC;gBAEhB,GAAG,EAAE,YAAY;IAQ7B;;OAEG;IACH,QAAQ,KAAK,IAAI,IAAI,aAAa,CAAC;IAEnC;;;;;OAKG;IACH,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,WAAW,EAAE,YAAY,CAAC,EAAE,WAAW,GAAG,eAAe;IAIrF;;;;;;;OAOG;IACH,MAAM,CAAC,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAInD;;;;;OAKG;IACH,MAAM,CAAC,uBAAuB,IAAI,WAAW;IAI7C;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAElC;;OAEG;IACH,QAAQ,CAAC,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAE7C;;;OAGG;IACH,QAAQ,CAAC,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAEvC;;;;;OAKG;IACH,QAAQ,CAAC,eAAe,IAAI,MAAM,GAAG,IAAI;IAEzC;;;OAGG;IACH,uBAAuB,IAAI,WAAW;IAItC,yDAAyD;IACzD,QAAQ,CAAC,uBAAuB,IAAI,MAAM;IAM1C;;;OAGG;IACH,QAAQ,CAAC,oBAAoB,IAAI,cAAc,GAAG,IAAI;IAEtD;;;OAGG;IACH,QAAQ,CAAC,uBAAuB,IAAI,kBAAkB,EAAE;IAExD;;;OAGG;IACH,QAAQ,CAAC,gBAAgB,IAAI,mBAAmB,GAAG,IAAI;IAEvD;;;OAGG;IACH,QAAQ,CAAC,yBAAyB,IAAI,sBAAsB,GAAG,IAAI;IAMnE;;;OAGG;IACG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAIhC;;;OAGG;IACH,wBAAwB,IAAI,MAAM,EAAE;IAIpC;;;OAGG;IACH,qBAAqB,IAAI,MAAM,EAAE;IAIjC;;;;;;;;;OASG;IACH,mBAAmB,IAAI,MAAM,GAAG,SAAS;IAIzC;;;;OAIG;IACH,mBAAmB,IAAI,sBAAsB,GAAG,IAAI;IAIpD;;;;OAIG;IACH,sBAAsB,IAAI,sBAAsB,GAAG,IAAI;IAQvD,sEAAsE;IACtE,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAK9C,oEAAoE;IACpE,SAAS,CAAC,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAKhE;;;;;OAKG;IACH,SAAS,CAAC,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAMtE,gCAAgC;IAChC,SAAS,KAAK,GAAG,wBAEhB;IAED,wCAAwC;IACxC,SAAS,KAAK,UAAU,+BAEvB;IAED,mCAAmC;IACnC,SAAS,KAAK,SAAS,2BAEtB;IAED,oCAAoC;IACpC,SAAS,KAAK,EAAE,gCAEf;IAED,4DAA4D;IAC5D,SAAS,KAAK,GAAG,WAEhB;CACF"}
|
package/dist/frameworks/base.js
CHANGED
|
@@ -125,6 +125,22 @@ class FrameworkBuilder {
|
|
|
125
125
|
getFrameworkVersion() {
|
|
126
126
|
return undefined;
|
|
127
127
|
}
|
|
128
|
+
/**
|
|
129
|
+
* Optional framework support status (e.g. Next.js EOL window). Default null;
|
|
130
|
+
* frameworks that track support override. Called after dependencies are
|
|
131
|
+
* installed so the concrete installed version is available.
|
|
132
|
+
*/
|
|
133
|
+
getFrameworkSupport() {
|
|
134
|
+
return null;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Emit an out-of-support warning (via `log`) and record version / supported
|
|
138
|
+
* tags (via `telemetry`) when {@link getFrameworkSupport} returns a status.
|
|
139
|
+
* Default no-op; Next.js overrides.
|
|
140
|
+
*/
|
|
141
|
+
reportFrameworkSupport() {
|
|
142
|
+
return null;
|
|
143
|
+
}
|
|
128
144
|
// ═══════════════════════════════════════════════════════════════════════════
|
|
129
145
|
// PROTECTED HELPER METHODS
|
|
130
146
|
// ═══════════════════════════════════════════════════════════════════════════
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/frameworks/base.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;GAMG;AACH,+CAAiC;
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/frameworks/base.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;GAMG;AACH,+CAAiC;AAgBjC,MAAsB,gBAAgB;IACpC;;;OAGG;IACH,MAAM,CAAC,aAAa,GAAG,EAAE,CAAC;IAEhB,GAAG,CAAe;IAE5B,YAAY,GAAiB;QAC3B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAWD;;;;;OAKG;IACH,MAAM,CAAC,MAAM,CAAC,YAAyB,EAAE,YAA0B;QACjE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAC7B,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,qBAAqB,CAAC,IAAY;QACvC,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,uBAAuB;QAC5B,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;IAC3F,CAAC;IA4BD;;;OAGG;IACH,uBAAuB;QACrB,OAAQ,IAAI,CAAC,WAAuC,CAAC,uBAAuB,EAAE,CAAC;IACjF,CAAC;IAiCD,8EAA8E;IAC9E,gDAAgD;IAChD,8EAA8E;IAE9E;;;OAGG;IACH,KAAK,CAAC,SAAS;QACb,iBAAiB;IACnB,CAAC;IAED;;;OAGG;IACH,wBAAwB;QACtB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;;OAGG;IACH,qBAAqB;QACnB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;;;;;;;;OASG;IACH,mBAAmB;QACjB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;OAIG;IACH,mBAAmB;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,sBAAsB;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,8EAA8E;IAC9E,2BAA2B;IAC3B,8EAA8E;IAE9E,sEAAsE;IAC5D,aAAa,CAAC,IAAY;QAClC,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;QACjC,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC,YAAY,IAAI,EAAE,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC;IACjG,CAAC;IAED,oEAAoE;IAC1D,oBAAoB,CAAC,IAAY;QACzC,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;QACjC,OAAO,WAAW,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,CAAC;IACjF,CAAC;IAED;;;;;OAKG;IACO,uBAAuB,CAAC,OAAe;QAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAChD,IAAI,CAAC,IAAI;YAAE,OAAO,SAAS,CAAC;QAC5B,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACtC,CAAC;IAED,gCAAgC;IAChC,IAAc,GAAG;QACf,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IACtB,CAAC;IAED,wCAAwC;IACxC,IAAc,UAAU;QACtB,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC;IAC7B,CAAC;IAED,mCAAmC;IACnC,IAAc,SAAS;QACrB,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;IAC5B,CAAC;IAED,oCAAoC;IACpC,IAAc,EAAE;QACd,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IACrB,CAAC;IAED,4DAA4D;IAC5D,IAAc,GAAG;QACf,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IACtB,CAAC;;AAtOH,4CAuOC"}
|