@webflow/cloud-app 0.1.0-beta.9 → 0.1.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 +20 -51
- package/dist/bindings.d.ts.map +1 -1
- package/dist/bindings.js +3 -2
- package/dist/bindings.js.map +1 -1
- package/dist/diagnostics.d.ts +23 -0
- package/dist/diagnostics.d.ts.map +1 -0
- package/dist/diagnostics.js +31 -0
- package/dist/diagnostics.js.map +1 -0
- package/dist/frameworks/astro/adapter-patches/assert-adapter-nested-under-mount.d.ts +3 -3
- package/dist/frameworks/astro/adapter-patches/assert-adapter-nested-under-mount.js +3 -3
- package/dist/frameworks/astro/adapter-patches/ensure-compatible-cloudflare-adapter.d.ts +34 -0
- package/dist/frameworks/astro/adapter-patches/ensure-compatible-cloudflare-adapter.d.ts.map +1 -0
- package/dist/frameworks/astro/adapter-patches/ensure-compatible-cloudflare-adapter.js +89 -0
- package/dist/frameworks/astro/adapter-patches/ensure-compatible-cloudflare-adapter.js.map +1 -0
- package/dist/frameworks/astro/adapter-patches/ensure-fixed-cloudflare-adapter.d.ts +2 -2
- package/dist/frameworks/astro/adapter-patches/ensure-fixed-cloudflare-adapter.js +2 -2
- package/dist/frameworks/astro/adapter-patches/resolve-cloudflare-adapter.d.ts +39 -0
- package/dist/frameworks/astro/adapter-patches/resolve-cloudflare-adapter.d.ts.map +1 -0
- package/dist/frameworks/astro/adapter-patches/resolve-cloudflare-adapter.js +93 -0
- package/dist/frameworks/astro/adapter-patches/resolve-cloudflare-adapter.js.map +1 -0
- package/dist/frameworks/astro/adapter-patches/strip-cloudflare-base-nesting.d.ts +2 -0
- package/dist/frameworks/astro/adapter-patches/strip-cloudflare-base-nesting.d.ts.map +1 -0
- package/dist/frameworks/astro/adapter-patches/strip-cloudflare-base-nesting.js +97 -0
- package/dist/frameworks/astro/adapter-patches/strip-cloudflare-base-nesting.js.map +1 -0
- package/dist/frameworks/astro/astro6.d.ts.map +1 -1
- package/dist/frameworks/astro/astro6.js +11 -9
- package/dist/frameworks/astro/astro6.js.map +1 -1
- package/dist/frameworks/astro/astro7.d.ts.map +1 -1
- package/dist/frameworks/astro/astro7.js +12 -9
- package/dist/frameworks/astro/astro7.js.map +1 -1
- package/dist/frameworks/astro/session-check.d.ts +27 -0
- package/dist/frameworks/astro/session-check.d.ts.map +1 -0
- package/dist/frameworks/astro/session-check.js +173 -0
- package/dist/frameworks/astro/session-check.js.map +1 -0
- package/dist/frameworks/astro/templates/astro.config.webflow.ts +86 -1
- package/dist/frameworks/astro/templates/v5/webflow-loader.ts +4 -1
- package/dist/frameworks/astro/templates/v6/webflow-loader.ts +4 -1
- package/dist/frameworks/astro/templates/v7/webflow-loader.ts +4 -1
- package/dist/frameworks/static/templates/wrangler.json +2 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -2
- package/dist/index.js.map +1 -1
- package/dist/pipeline.d.ts.map +1 -1
- package/dist/pipeline.js +12 -0
- package/dist/pipeline.js.map +1 -1
- package/dist/static-base-href.d.ts +31 -0
- package/dist/static-base-href.d.ts.map +1 -0
- package/dist/static-base-href.js +183 -0
- package/dist/static-base-href.js.map +1 -0
- package/dist/wrangler.d.ts.map +1 -1
- package/dist/wrangler.js +126 -5
- package/dist/wrangler.js.map +1 -1
- package/package.json +4 -4
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.stripCloudflareBaseNesting = stripCloudflareBaseNesting;
|
|
37
|
+
const fs = __importStar(require("node:fs"));
|
|
38
|
+
const path = __importStar(require("node:path"));
|
|
39
|
+
/**
|
|
40
|
+
* Resolve the real source subtree to copy static assets from, for Astro 6/7.
|
|
41
|
+
*
|
|
42
|
+
* WHY THIS EXISTS — it reconciles two facts that would otherwise double-nest assets:
|
|
43
|
+
* 1. The generated `astro.config` sets `base = mountPath`, so a CORRECT `@astrojs/cloudflare`
|
|
44
|
+
* (>= 13.3.1 on Astro 6, all 14.x on Astro 7) nests the client tree under
|
|
45
|
+
* `dist/client/<mount>/`.
|
|
46
|
+
* 2. `copyAssets` ALWAYS copies into `assets/<mount>/` — it re-appends the mount to the
|
|
47
|
+
* destination unconditionally.
|
|
48
|
+
* Handing `copyAssets` the whole `dist/client` makes (1)+(2) produce `assets/<mount>/<mount>/…`
|
|
49
|
+
* → `/app/app/_astro` → 404. So we descend into the already-nested `dist/client/<mount>/`
|
|
50
|
+
* first, and the copy re-applies the mount exactly once.
|
|
51
|
+
*
|
|
52
|
+
* Behavior by adapter:
|
|
53
|
+
* - Fixed adapter (the normal case): `<assetsPath>/<mount>/_astro` exists → the whole client
|
|
54
|
+
* tree really is nested there → descend into `<assetsPath>/<mount>`.
|
|
55
|
+
* - Buggy pre-13.3.1 adapter that emitted a FLAT tree (rare — `ensureFixedCloudflareAdapter`
|
|
56
|
+
* forces a fixed version, so this only survives a version we could not safely bump):
|
|
57
|
+
* no nested `_astro` → return `assetsPath` unchanged (copy the flat tree as-is).
|
|
58
|
+
* We key off the nested bundled-assets dir (`_astro`), NOT merely `<assetsPath>/<mount>`
|
|
59
|
+
* existing: on a flat build a same-named page route (e.g. a `src/pages/<mount>/` route) also
|
|
60
|
+
* produces `<assetsPath>/<mount>`, and descending into it would silently drop `_astro` and
|
|
61
|
+
* every other top-level output. Handles any nesting depth, including multi-segment mounts.
|
|
62
|
+
*
|
|
63
|
+
* NOTE: this is REQUIRED on every deploy with a nesting (i.e. fixed) adapter — it is NOT a
|
|
64
|
+
* buggy-adapter workaround. Removing it must be paired with removing the destination-side
|
|
65
|
+
* mount re-append in `copyAssets`; deleting only one reintroduces the double-nest 404.
|
|
66
|
+
*
|
|
67
|
+
* Background: withastro/astro#16276 (base-path bug in `@astrojs/cloudflare` 13.0.0–13.3.0,
|
|
68
|
+
* fixed in 13.3.1; all 14.x are fixed).
|
|
69
|
+
*
|
|
70
|
+
* @param cwd - project/workspace root that `assetsPath` is relative to.
|
|
71
|
+
* @param assetsPath - the framework's static assets path (e.g. `dist/client`), relative to `cwd`.
|
|
72
|
+
* @param cleanMountPath - the mount path with leading/trailing slashes trimmed.
|
|
73
|
+
* @returns the (possibly deeper) assets path, relative to `cwd`.
|
|
74
|
+
*/
|
|
75
|
+
/** True when `abs` is an existing directory (never throws). */
|
|
76
|
+
function isDirectory(abs) {
|
|
77
|
+
const stat = fs.statSync(abs, { throwIfNoEntry: false });
|
|
78
|
+
return stat?.isDirectory() === true;
|
|
79
|
+
}
|
|
80
|
+
function stripCloudflareBaseNesting(cwd, assetsPath, cleanMountPath) {
|
|
81
|
+
if (!cleanMountPath) {
|
|
82
|
+
return assetsPath;
|
|
83
|
+
}
|
|
84
|
+
// With a fixed adapter the whole client tree nests under exactly this known
|
|
85
|
+
// (possibly multi-segment) mount path. Only descend when the nested dir is the
|
|
86
|
+
// real client root — i.e. it contains the bundled-assets dir (`_astro`). A bare
|
|
87
|
+
// `<assetsPath>/<mount>` can also be a same-named page route on a flat build, and
|
|
88
|
+
// descending into that would drop `_astro` and every other top-level output.
|
|
89
|
+
const candidate = `${assetsPath}/${cleanMountPath}`;
|
|
90
|
+
const candidateAbs = path.join(cwd, candidate);
|
|
91
|
+
const nestedBundle = path.join(candidateAbs, '_astro');
|
|
92
|
+
if (isDirectory(candidateAbs) && isDirectory(nestedBundle)) {
|
|
93
|
+
return candidate;
|
|
94
|
+
}
|
|
95
|
+
return assetsPath;
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=strip-cloudflare-base-nesting.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"strip-cloudflare-base-nesting.js","sourceRoot":"","sources":["../../../../src/frameworks/astro/adapter-patches/strip-cloudflare-base-nesting.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6CA,gEAsBC;AAnED,4CAA8B;AAC9B,gDAAkC;AAElC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,+DAA+D;AAC/D,SAAS,WAAW,CAAC,GAAW;IAC9B,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC;IACzD,OAAO,IAAI,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC;AACtC,CAAC;AAED,SAAgB,0BAA0B,CACxC,GAAW,EACX,UAAkB,EAClB,cAAsB;IAEtB,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,4EAA4E;IAC5E,+EAA+E;IAC/E,gFAAgF;IAChF,kFAAkF;IAClF,6EAA6E;IAC7E,MAAM,SAAS,GAAG,GAAG,UAAU,IAAI,cAAc,EAAE,CAAC;IACpD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAC/C,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IACvD,IAAI,WAAW,CAAC,YAAY,CAAC,IAAI,WAAW,CAAC,YAAY,CAAC,EAAE,CAAC;QAC3D,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"astro6.d.ts","sourceRoot":"","sources":["../../../src/frameworks/astro/astro6.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,KAAK,EACV,WAAW,EACX,aAAa,EACb,WAAW,EACX,WAAW,EACX,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,EACvB,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"astro6.d.ts","sourceRoot":"","sources":["../../../src/frameworks/astro/astro6.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,KAAK,EACV,WAAW,EACX,aAAa,EACb,WAAW,EACX,WAAW,EACX,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,EACvB,MAAM,UAAU,CAAC;AAiBlB,qBAAa,aAAc,SAAQ,gBAAgB;IACjD,OAAgB,aAAa,SAAW;IAMxC,IAAI,IAAI,IAAI,aAAa,CAOxB;IAEQ,mBAAmB,IAAI,MAAM,GAAG,SAAS;IAQlD;;;;;;OAMG;WACa,MAAM,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,eAAe;IAgCtF,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAoD/B,oBAAoB,IAAI,cAAc;IAWtC,uBAAuB,IAAI,kBAAkB,EAAE;IAUzC,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IA8C1C,gBAAgB,IAAI,mBAAmB;IAQvC,qBAAqB,IAAI,MAAM,EAAE;IAIjC,uBAAuB,IAAI,MAAM;IAIjC,wBAAwB,IAAI,MAAM,EAAE;IAS9B,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAkEpC,eAAe,IAAI,MAAM;IAIzB,yBAAyB,IAAI,sBAAsB;WAWnC,uBAAuB,IAAI,WAAW;CAkBvD"}
|
|
@@ -49,7 +49,8 @@ const path = __importStar(require("node:path"));
|
|
|
49
49
|
const fs = __importStar(require("node:fs"));
|
|
50
50
|
const base_1 = require("../base");
|
|
51
51
|
const errors_1 = require("../errors");
|
|
52
|
-
const
|
|
52
|
+
const ensure_compatible_cloudflare_adapter_1 = require("./adapter-patches/ensure-compatible-cloudflare-adapter");
|
|
53
|
+
const resolve_cloudflare_adapter_1 = require("./adapter-patches/resolve-cloudflare-adapter");
|
|
53
54
|
const utils_1 = require("../../utils");
|
|
54
55
|
/** Base path for Astro 6 templates. */
|
|
55
56
|
const TEMPLATE_BASE = path.join(__dirname, 'templates', 'v6');
|
|
@@ -136,11 +137,12 @@ class Astro6Builder extends base_1.FrameworkBuilder {
|
|
|
136
137
|
// DEPENDENCIES
|
|
137
138
|
// ───────────────────────────────────────────────────────────────────────────
|
|
138
139
|
getCloudflareAdapter() {
|
|
139
|
-
//
|
|
140
|
+
// Range is resolved from the project's Astro version (Astro 6 -> `^13.3.1`). The
|
|
141
|
+
// floor is the first release that fixes the base-path bug (withastro/astro#16276);
|
|
140
142
|
// 13.0.0–13.3.0 emit the client tree without the base prefix and break mounted apps.
|
|
141
143
|
return {
|
|
142
144
|
name: '@astrojs/cloudflare',
|
|
143
|
-
version:
|
|
145
|
+
version: (0, resolve_cloudflare_adapter_1.resolveCloudflareAdapterRange)(this.getDependencyVersion('astro')),
|
|
144
146
|
peerDependencies: ['@cloudflare/vite-plugin'],
|
|
145
147
|
};
|
|
146
148
|
}
|
|
@@ -155,17 +157,17 @@ class Astro6Builder extends base_1.FrameworkBuilder {
|
|
|
155
157
|
}
|
|
156
158
|
async installDependencies() {
|
|
157
159
|
const { log, cwd, runCommand } = this.ctx;
|
|
158
|
-
// @astrojs/cloudflare < 13.3.1 has the base-path bug (withastro/astro#16276);
|
|
159
|
-
//
|
|
160
|
-
// unreachable rather than papering over broken (unprefixed) asset URLs.
|
|
160
|
+
// @astrojs/cloudflare < 13.3.1 has the base-path bug (withastro/astro#16276); clamp the
|
|
161
|
+
// adapter into the compatible range so the assets-copy guard (assertAdapterNestedUnderMount)
|
|
162
|
+
// is nearly unreachable rather than papering over broken (unprefixed) asset URLs. Shared
|
|
163
|
+
// with Astro 7 so the two paths can't silently diverge.
|
|
161
164
|
const adapter = this.getCloudflareAdapter();
|
|
162
|
-
await (0,
|
|
165
|
+
await (0, ensure_compatible_cloudflare_adapter_1.ensureCompatibleCloudflareAdapter)({
|
|
163
166
|
log,
|
|
164
167
|
runCommand,
|
|
165
168
|
cwd,
|
|
166
169
|
adapterName: adapter.name,
|
|
167
|
-
|
|
168
|
-
fixedFloor: '13.3.1',
|
|
170
|
+
compatibleRange: adapter.version,
|
|
169
171
|
declaredVersion: this.getDependencyVersion(adapter.name),
|
|
170
172
|
});
|
|
171
173
|
// Install peer dependencies.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"astro6.js","sourceRoot":"","sources":["../../../src/frameworks/astro/astro6.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;GAUG;AACH,gDAAkC;AAClC,4CAA8B;AAE9B,kCAA2C;AAY3C,sCAAqD;AACrD,
|
|
1
|
+
{"version":3,"file":"astro6.js","sourceRoot":"","sources":["../../../src/frameworks/astro/astro6.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"astro7.d.ts","sourceRoot":"","sources":["../../../src/frameworks/astro/astro7.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,KAAK,EACV,WAAW,EACX,aAAa,EACb,WAAW,EACX,WAAW,EACX,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,EACvB,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"astro7.d.ts","sourceRoot":"","sources":["../../../src/frameworks/astro/astro7.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,KAAK,EACV,WAAW,EACX,aAAa,EACb,WAAW,EACX,WAAW,EACX,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,EACvB,MAAM,UAAU,CAAC;AAiBlB,qBAAa,aAAc,SAAQ,gBAAgB;IACjD,OAAgB,aAAa,SAAW;IAMxC,IAAI,IAAI,IAAI,aAAa,CAOxB;IAEQ,mBAAmB,IAAI,MAAM,GAAG,SAAS;IAQlD;;;;;;OAMG;WACa,MAAM,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,eAAe;IA2BtF,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IA6C/B,oBAAoB,IAAI,cAAc;IAWtC,uBAAuB,IAAI,kBAAkB,EAAE;IAUzC,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IA8C1C,gBAAgB,IAAI,mBAAmB;IAQvC,qBAAqB,IAAI,MAAM,EAAE;IAIjC,uBAAuB,IAAI,MAAM;IAIjC,wBAAwB,IAAI,MAAM,EAAE;IAS9B,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAkEpC,eAAe,IAAI,MAAM;IAIzB,yBAAyB,IAAI,sBAAsB;WAWnC,uBAAuB,IAAI,WAAW;CAkBvD"}
|
|
@@ -54,7 +54,8 @@ const path = __importStar(require("node:path"));
|
|
|
54
54
|
const fs = __importStar(require("node:fs"));
|
|
55
55
|
const base_1 = require("../base");
|
|
56
56
|
const errors_1 = require("../errors");
|
|
57
|
-
const
|
|
57
|
+
const ensure_compatible_cloudflare_adapter_1 = require("./adapter-patches/ensure-compatible-cloudflare-adapter");
|
|
58
|
+
const resolve_cloudflare_adapter_1 = require("./adapter-patches/resolve-cloudflare-adapter");
|
|
58
59
|
const utils_1 = require("../../utils");
|
|
59
60
|
/** Base path for Astro 7 templates. */
|
|
60
61
|
const TEMPLATE_BASE = path.join(__dirname, 'templates', 'v7');
|
|
@@ -134,9 +135,12 @@ class Astro7Builder extends base_1.FrameworkBuilder {
|
|
|
134
135
|
// DEPENDENCIES
|
|
135
136
|
// ───────────────────────────────────────────────────────────────────────────
|
|
136
137
|
getCloudflareAdapter() {
|
|
138
|
+
// Range is resolved from the project's Astro version, not hardcoded: 14.2.0+
|
|
139
|
+
// needs an astro@7.2.0-only export while its peerDeps still claim `^7.0.0`,
|
|
140
|
+
// so an unbounded `^14.0.0` breaks Astro 7.0/7.1. See resolve-cloudflare-adapter.
|
|
137
141
|
return {
|
|
138
142
|
name: '@astrojs/cloudflare',
|
|
139
|
-
version:
|
|
143
|
+
version: (0, resolve_cloudflare_adapter_1.resolveCloudflareAdapterRange)(this.getDependencyVersion('astro')),
|
|
140
144
|
peerDependencies: ['@cloudflare/vite-plugin'],
|
|
141
145
|
};
|
|
142
146
|
}
|
|
@@ -151,18 +155,17 @@ class Astro7Builder extends base_1.FrameworkBuilder {
|
|
|
151
155
|
}
|
|
152
156
|
async installDependencies() {
|
|
153
157
|
const { log, cwd, runCommand } = this.ctx;
|
|
154
|
-
//
|
|
155
|
-
//
|
|
156
|
-
//
|
|
157
|
-
//
|
|
158
|
+
// Clamp the adapter into the range compatible with this project's Astro version:
|
|
159
|
+
// install it when absent, and force it back into range when the declared spec
|
|
160
|
+
// floats too high (`^14.0.0` -> 14.2.x on Astro 7.0/7.1) or too low. Shared with
|
|
161
|
+
// Astro 6 so the two paths can't silently diverge.
|
|
158
162
|
const adapter = this.getCloudflareAdapter();
|
|
159
|
-
await (0,
|
|
163
|
+
await (0, ensure_compatible_cloudflare_adapter_1.ensureCompatibleCloudflareAdapter)({
|
|
160
164
|
log,
|
|
161
165
|
runCommand,
|
|
162
166
|
cwd,
|
|
163
167
|
adapterName: adapter.name,
|
|
164
|
-
|
|
165
|
-
fixedFloor: '14.0.0',
|
|
168
|
+
compatibleRange: adapter.version,
|
|
166
169
|
declaredVersion: this.getDependencyVersion(adapter.name),
|
|
167
170
|
});
|
|
168
171
|
// Install peer dependencies.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"astro7.js","sourceRoot":"","sources":["../../../src/frameworks/astro/astro7.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;;GAeG;AACH,gDAAkC;AAClC,4CAA8B;AAE9B,kCAA2C;AAY3C,sCAAqD;AACrD,
|
|
1
|
+
{"version":3,"file":"astro7.js","sourceRoot":"","sources":["../../../src/frameworks/astro/astro7.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export declare const ASTRO_SESSION_BINDING = "SESSION";
|
|
2
|
+
/**
|
|
3
|
+
* Returns the project-relative path of the first source file that appears to
|
|
4
|
+
* use Astro sessions, or undefined. Skips dependencies, build output, dot-dirs
|
|
5
|
+
* and symlinks; stops after MAX_FILES files.
|
|
6
|
+
*/
|
|
7
|
+
export declare function findAstroSessionUsage(cwd: string): string | undefined;
|
|
8
|
+
/**
|
|
9
|
+
* Returns the ASTRO_SESSION_BINDING_MISSING warning line when an Astro app uses
|
|
10
|
+
* sessions but declares no SESSION KV binding, else undefined. Never throws for
|
|
11
|
+
* scan problems and never provisions anything: detection is a heuristic.
|
|
12
|
+
*
|
|
13
|
+
* `configFile` is the basename of the user's wrangler config, or undefined when
|
|
14
|
+
* the app has none. `bindingsSource` says where the effective bindings came
|
|
15
|
+
* from: when `webflow.json` declares any, wrangler's `kv_namespaces` are
|
|
16
|
+
* ignored, so the fix must point at `cloud.bindings.kv` instead.
|
|
17
|
+
*/
|
|
18
|
+
export declare function astroSessionBindingWarning(opts: {
|
|
19
|
+
framework: string;
|
|
20
|
+
cwd: string;
|
|
21
|
+
configFile: string | undefined;
|
|
22
|
+
kvNamespaces: ReadonlyArray<{
|
|
23
|
+
binding: string;
|
|
24
|
+
}>;
|
|
25
|
+
bindingsSource?: 'wrangler' | 'webflow.json';
|
|
26
|
+
}): string | undefined;
|
|
27
|
+
//# sourceMappingURL=session-check.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-check.d.ts","sourceRoot":"","sources":["../../../src/frameworks/astro/session-check.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,qBAAqB,YAAY,CAAC;AA+B/C;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CA4CrE;AAED;;;;;;;;;GASG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE;IAC/C,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,YAAY,EAAE,aAAa,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjD,cAAc,CAAC,EAAE,UAAU,GAAG,cAAc,CAAC;CAC9C,GAAG,MAAM,GAAG,SAAS,CAsCrB"}
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.ASTRO_SESSION_BINDING = void 0;
|
|
37
|
+
exports.findAstroSessionUsage = findAstroSessionUsage;
|
|
38
|
+
exports.astroSessionBindingWarning = astroSessionBindingWarning;
|
|
39
|
+
const fs = __importStar(require("node:fs"));
|
|
40
|
+
const path = __importStar(require("node:path"));
|
|
41
|
+
const diagnostics_1 = require("../../diagnostics");
|
|
42
|
+
// Astro sessions on Cloudflare use the KV binding named SESSION (the
|
|
43
|
+
// @astrojs/cloudflare default, which the platform's Astro config template
|
|
44
|
+
// does not override). Without it the app builds and deploys, then fails on the
|
|
45
|
+
// first session read or write with an error that does not name the binding.
|
|
46
|
+
exports.ASTRO_SESSION_BINDING = 'SESSION';
|
|
47
|
+
const SCAN_EXTENSIONS = new Set([
|
|
48
|
+
'.astro',
|
|
49
|
+
'.ts',
|
|
50
|
+
'.tsx',
|
|
51
|
+
'.mts',
|
|
52
|
+
'.cts',
|
|
53
|
+
'.js',
|
|
54
|
+
'.jsx',
|
|
55
|
+
'.mjs',
|
|
56
|
+
'.cjs',
|
|
57
|
+
]);
|
|
58
|
+
// Dependencies and build output: matches there are not the user's code.
|
|
59
|
+
const SKIP_DIRS = new Set(['node_modules', 'dist', 'build', 'clouduser']);
|
|
60
|
+
const MAX_FILES = 5000;
|
|
61
|
+
const MAX_FILE_BYTES = 1024 * 1024;
|
|
62
|
+
// Heuristic (no AST): the forms the Astro docs use for sessions in pages,
|
|
63
|
+
// middleware, endpoints and actions.
|
|
64
|
+
const SESSION_USAGE_PATTERNS = [
|
|
65
|
+
// Astro.session.get(...) in .astro files
|
|
66
|
+
/\bAstro\.session\b/,
|
|
67
|
+
// context.session / ctx.session in middleware, endpoints, actions
|
|
68
|
+
/\b(?:context|ctx)\.session\b/,
|
|
69
|
+
// ({ session }) => / (input, { session }) => / function GET({ session }) {
|
|
70
|
+
/\(\s*(?:[\w$]+\s*,\s*)?\{[^{}()]*\bsession\b[^{}()]*\}\s*(?::\s*[\w$.<>[\]]+\s*)?(?:,[^()]*)?\)\s*(?::\s*[^=>{;]+)?(?:=>|\{)/,
|
|
71
|
+
// const { session } = Astro / context / ctx
|
|
72
|
+
/\{[^{}]*\bsession\b[^{}]*\}\s*=\s*(?:Astro|context|ctx)\b/,
|
|
73
|
+
];
|
|
74
|
+
/**
|
|
75
|
+
* Returns the project-relative path of the first source file that appears to
|
|
76
|
+
* use Astro sessions, or undefined. Skips dependencies, build output, dot-dirs
|
|
77
|
+
* and symlinks; stops after MAX_FILES files.
|
|
78
|
+
*/
|
|
79
|
+
function findAstroSessionUsage(cwd) {
|
|
80
|
+
const stack = [cwd];
|
|
81
|
+
let scanned = 0;
|
|
82
|
+
while (stack.length > 0) {
|
|
83
|
+
const dir = stack.pop();
|
|
84
|
+
let entries;
|
|
85
|
+
try {
|
|
86
|
+
entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
87
|
+
}
|
|
88
|
+
catch {
|
|
89
|
+
continue;
|
|
90
|
+
}
|
|
91
|
+
entries.sort((a, b) => a.name.localeCompare(b.name));
|
|
92
|
+
const subdirs = [];
|
|
93
|
+
for (const entry of entries) {
|
|
94
|
+
const full = path.join(dir, entry.name);
|
|
95
|
+
if (entry.isDirectory()) {
|
|
96
|
+
if (!entry.name.startsWith('.') && !SKIP_DIRS.has(entry.name)) {
|
|
97
|
+
subdirs.push(full);
|
|
98
|
+
}
|
|
99
|
+
continue;
|
|
100
|
+
}
|
|
101
|
+
if (!entry.isFile() || !SCAN_EXTENSIONS.has(path.extname(entry.name))) {
|
|
102
|
+
continue;
|
|
103
|
+
}
|
|
104
|
+
if (++scanned > MAX_FILES) {
|
|
105
|
+
return undefined;
|
|
106
|
+
}
|
|
107
|
+
let source;
|
|
108
|
+
try {
|
|
109
|
+
if (fs.statSync(full).size > MAX_FILE_BYTES)
|
|
110
|
+
continue;
|
|
111
|
+
source = fs.readFileSync(full, 'utf8');
|
|
112
|
+
}
|
|
113
|
+
catch {
|
|
114
|
+
continue;
|
|
115
|
+
}
|
|
116
|
+
if (SESSION_USAGE_PATTERNS.some((pattern) => pattern.test(source))) {
|
|
117
|
+
return path.relative(cwd, full).split(path.sep).join('/');
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
// Reverse so the stack visits subdirectories in sorted order.
|
|
121
|
+
stack.push(...subdirs.reverse());
|
|
122
|
+
}
|
|
123
|
+
return undefined;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Returns the ASTRO_SESSION_BINDING_MISSING warning line when an Astro app uses
|
|
127
|
+
* sessions but declares no SESSION KV binding, else undefined. Never throws for
|
|
128
|
+
* scan problems and never provisions anything: detection is a heuristic.
|
|
129
|
+
*
|
|
130
|
+
* `configFile` is the basename of the user's wrangler config, or undefined when
|
|
131
|
+
* the app has none. `bindingsSource` says where the effective bindings came
|
|
132
|
+
* from: when `webflow.json` declares any, wrangler's `kv_namespaces` are
|
|
133
|
+
* ignored, so the fix must point at `cloud.bindings.kv` instead.
|
|
134
|
+
*/
|
|
135
|
+
function astroSessionBindingWarning(opts) {
|
|
136
|
+
const { framework, cwd, configFile, kvNamespaces, bindingsSource = 'wrangler' } = opts;
|
|
137
|
+
if (framework !== 'astro') {
|
|
138
|
+
return undefined;
|
|
139
|
+
}
|
|
140
|
+
if (kvNamespaces.some((kv) => kv.binding === exports.ASTRO_SESSION_BINDING)) {
|
|
141
|
+
return undefined;
|
|
142
|
+
}
|
|
143
|
+
const usedIn = findAstroSessionUsage(cwd);
|
|
144
|
+
if (!usedIn) {
|
|
145
|
+
return undefined;
|
|
146
|
+
}
|
|
147
|
+
const binding = `{ "binding": "${exports.ASTRO_SESSION_BINDING}" }`;
|
|
148
|
+
let fix;
|
|
149
|
+
if (bindingsSource === 'webflow.json') {
|
|
150
|
+
fix = `add ${binding} to "cloud.bindings.kv" in webflow.json.`;
|
|
151
|
+
}
|
|
152
|
+
else if (!configFile) {
|
|
153
|
+
fix = `create wrangler.json with "name", "compatibility_date" and "kv_namespaces": [${binding}].`;
|
|
154
|
+
}
|
|
155
|
+
else if (kvNamespaces.length > 0) {
|
|
156
|
+
fix = `add ${binding} to "kv_namespaces" in ${configFile}.`;
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
fix = `add "kv_namespaces": [${binding}] to ${configFile}.`;
|
|
160
|
+
}
|
|
161
|
+
const missing = bindingsSource === 'webflow.json'
|
|
162
|
+
? `webflow.json has no ${exports.ASTRO_SESSION_BINDING} KV binding in "cloud.bindings.kv"`
|
|
163
|
+
: configFile
|
|
164
|
+
? `${configFile} has no ${exports.ASTRO_SESSION_BINDING} KV binding`
|
|
165
|
+
: `there is no wrangler.json with a ${exports.ASTRO_SESSION_BINDING} KV binding`;
|
|
166
|
+
return (0, diagnostics_1.formatDiagnostic)({
|
|
167
|
+
level: 'warn',
|
|
168
|
+
code: diagnostics_1.DiagnosticCode.ASTRO_SESSION_BINDING_MISSING,
|
|
169
|
+
message: `${usedIn} uses Astro sessions, but ${missing}, so session reads and writes will fail at runtime.`,
|
|
170
|
+
fix,
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
//# sourceMappingURL=session-check.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-check.js","sourceRoot":"","sources":["../../../src/frameworks/astro/session-check.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4CA,sDA4CC;AAYD,gEA4CC;AAhJD,4CAA8B;AAC9B,gDAAkC;AAClC,mDAAqE;AAErE,qEAAqE;AACrE,0EAA0E;AAC1E,+EAA+E;AAC/E,4EAA4E;AAC/D,QAAA,qBAAqB,GAAG,SAAS,CAAC;AAE/C,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;IAC9B,QAAQ;IACR,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;CACP,CAAC,CAAC;AACH,wEAAwE;AACxE,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC;AAC1E,MAAM,SAAS,GAAG,IAAI,CAAC;AACvB,MAAM,cAAc,GAAG,IAAI,GAAG,IAAI,CAAC;AAEnC,0EAA0E;AAC1E,qCAAqC;AACrC,MAAM,sBAAsB,GAAa;IACvC,yCAAyC;IACzC,oBAAoB;IACpB,kEAAkE;IAClE,8BAA8B;IAC9B,2EAA2E;IAC3E,8HAA8H;IAC9H,4CAA4C;IAC5C,2DAA2D;CAC5D,CAAC;AAEF;;;;GAIG;AACH,SAAgB,qBAAqB,CAAC,GAAW;IAC/C,MAAM,KAAK,GAAa,CAAC,GAAG,CAAC,CAAC;IAC9B,IAAI,OAAO,GAAG,CAAC,CAAC;IAEhB,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,EAAY,CAAC;QAClC,IAAI,OAAoB,CAAC;QACzB,IAAI,CAAC;YACH,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QACzD,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAErD,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACxC,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACxB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC9D,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACrB,CAAC;gBACD,SAAS;YACX,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;gBACtE,SAAS;YACX,CAAC;YACD,IAAI,EAAE,OAAO,GAAG,SAAS,EAAE,CAAC;gBAC1B,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,IAAI,MAAc,CAAC;YACnB,IAAI,CAAC;gBACH,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,cAAc;oBAAE,SAAS;gBACtD,MAAM,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACzC,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;YACD,IAAI,sBAAsB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;gBACnE,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;QACD,8DAA8D;QAC9D,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,0BAA0B,CAAC,IAM1C;IACC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,GAAG,UAAU,EAAE,GAAG,IAAI,CAAC;IACvF,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;QAC1B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,KAAK,6BAAqB,CAAC,EAAE,CAAC;QACpE,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,MAAM,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC;IAC1C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,OAAO,GAAG,iBAAiB,6BAAqB,KAAK,CAAC;IAC5D,IAAI,GAAW,CAAC;IAChB,IAAI,cAAc,KAAK,cAAc,EAAE,CAAC;QACtC,GAAG,GAAG,OAAO,OAAO,0CAA0C,CAAC;IACjE,CAAC;SAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACvB,GAAG,GAAG,gFAAgF,OAAO,IAAI,CAAC;IACpG,CAAC;SAAM,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnC,GAAG,GAAG,OAAO,OAAO,0BAA0B,UAAU,GAAG,CAAC;IAC9D,CAAC;SAAM,CAAC;QACN,GAAG,GAAG,yBAAyB,OAAO,QAAQ,UAAU,GAAG,CAAC;IAC9D,CAAC;IAED,MAAM,OAAO,GACX,cAAc,KAAK,cAAc;QAC/B,CAAC,CAAC,uBAAuB,6BAAqB,oCAAoC;QAClF,CAAC,CAAC,UAAU;YACV,CAAC,CAAC,GAAG,UAAU,WAAW,6BAAqB,aAAa;YAC5D,CAAC,CAAC,oCAAoC,6BAAqB,aAAa,CAAC;IAC/E,OAAO,IAAA,8BAAgB,EAAC;QACtB,KAAK,EAAE,MAAM;QACb,IAAI,EAAE,4BAAc,CAAC,6BAA6B;QAClD,OAAO,EAAE,GAAG,MAAM,6BAA6B,OAAO,qDAAqD;QAC3G,GAAG;KACJ,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -16,6 +16,86 @@ export type WebflowOverridesOptions = {
|
|
|
16
16
|
reactDomServerAlias: Record<string, string> | undefined;
|
|
17
17
|
};
|
|
18
18
|
|
|
19
|
+
/**
|
|
20
|
+
* Merge our injected `resolve.alias` into the user's instead of overwriting it.
|
|
21
|
+
*
|
|
22
|
+
* `injected` is the production + React 19 `react-dom/server -> .edge` alias, or
|
|
23
|
+
* `undefined` when no injection is needed. Vite matches `resolve.alias` in array
|
|
24
|
+
* order (first match wins) and turns an object into an array in key order, so:
|
|
25
|
+
*
|
|
26
|
+
* - nothing to inject: return the user's alias untouched (including `undefined`);
|
|
27
|
+
* - no user alias: return ours as a plain object (nothing can shadow it);
|
|
28
|
+
* - user alias (object or array): normalize to `{ find, replacement }` entries
|
|
29
|
+
* and PREPEND ours, so our `react-dom/server` override always wins -- even over
|
|
30
|
+
* a broad user alias like `react-dom` that would otherwise match
|
|
31
|
+
* `react-dom/server` first and shadow it. Object form is converted to array
|
|
32
|
+
* form (equivalent matching semantics in Vite), giving both forms the same
|
|
33
|
+
* precedence.
|
|
34
|
+
*/
|
|
35
|
+
function mergeViteResolveAlias(
|
|
36
|
+
userAlias: unknown,
|
|
37
|
+
injected: Record<string, string> | undefined,
|
|
38
|
+
): unknown {
|
|
39
|
+
if (!injected || Object.keys(injected).length === 0) {
|
|
40
|
+
return userAlias;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
const injectedEntries = Object.entries(injected).map(([find, replacement]) => ({
|
|
44
|
+
find,
|
|
45
|
+
replacement,
|
|
46
|
+
}));
|
|
47
|
+
|
|
48
|
+
if (userAlias == null) {
|
|
49
|
+
return { ...injected };
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
const userEntries = Array.isArray(userAlias)
|
|
53
|
+
? userAlias
|
|
54
|
+
: Object.entries(userAlias as Record<string, string>).map(([find, replacement]) => ({
|
|
55
|
+
find,
|
|
56
|
+
replacement,
|
|
57
|
+
}));
|
|
58
|
+
|
|
59
|
+
return [...injectedEntries, ...userEntries];
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* `build.*` keys that move where Astro writes its output.
|
|
64
|
+
*
|
|
65
|
+
* Each Astro builder hardcodes the paths packaging reads back --
|
|
66
|
+
* `getOutputDeployMetadata()` returns `dist/client` + `dist/server/entry.mjs`
|
|
67
|
+
* (`dist` + `dist/_worker.js/index.js` on Astro 5). Honouring a user's
|
|
68
|
+
* override would build into paths the deploy step never looks at: a packaging
|
|
69
|
+
* failure, or static assets silently missing from the deploy.
|
|
70
|
+
*
|
|
71
|
+
* These are dropped rather than pinned to Webflow values, so Astro's own
|
|
72
|
+
* resolution -- and the Cloudflare adapter's overrides of it -- stay exactly
|
|
73
|
+
* as they were before any user build option was preserved.
|
|
74
|
+
*/
|
|
75
|
+
const OUTPUT_RELOCATING_BUILD_KEYS = ['client', 'server', 'serverEntry'] as const;
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* The user's `build` options minus anything that would relocate output.
|
|
79
|
+
*
|
|
80
|
+
* Warns per dropped key. This module runs inside the user's project during
|
|
81
|
+
* `astro build`, so the notice lands in the build log they can already read --
|
|
82
|
+
* without it, a dropped `build.client` would fail exactly the way the silent
|
|
83
|
+
* config clobber this function replaced used to fail.
|
|
84
|
+
*/
|
|
85
|
+
function preservableBuildOptions(userBuild: AstroUserConfig['build']): AstroUserConfig['build'] {
|
|
86
|
+
const preserved = { ...userBuild };
|
|
87
|
+
for (const key of OUTPUT_RELOCATING_BUILD_KEYS) {
|
|
88
|
+
if (key in preserved) {
|
|
89
|
+
console.warn(
|
|
90
|
+
`[webflow] Ignoring build.${key}: Webflow Cloud packages build output ` +
|
|
91
|
+
`from Astro's default paths, so a custom location would not be deployed.`,
|
|
92
|
+
);
|
|
93
|
+
}
|
|
94
|
+
delete preserved[key];
|
|
95
|
+
}
|
|
96
|
+
return preserved;
|
|
97
|
+
}
|
|
98
|
+
|
|
19
99
|
/**
|
|
20
100
|
* Wrap the user's Astro config with Webflow Cloud's required overrides.
|
|
21
101
|
* `userExport` is always provided — `{}` when the user ships no astro.config.*.
|
|
@@ -41,10 +121,15 @@ export function withWebflowOverrides(
|
|
|
41
121
|
...userExport.vite,
|
|
42
122
|
resolve: {
|
|
43
123
|
...userExport.vite?.resolve,
|
|
44
|
-
alias: opts.reactDomServerAlias,
|
|
124
|
+
alias: mergeViteResolveAlias(userExport.vite?.resolve?.alias, opts.reactDomServerAlias),
|
|
45
125
|
},
|
|
46
126
|
},
|
|
47
127
|
build: {
|
|
128
|
+
// Preserve the user's build options -- `assetsPrefix` is the only key we
|
|
129
|
+
// need to own. Replacing the whole object silently dropped everything
|
|
130
|
+
// else they set, notably `format`, which decides whether a prerendered
|
|
131
|
+
// route is written as `foo/index.html` or `foo.html`.
|
|
132
|
+
...preservableBuildOptions(userExport.build),
|
|
48
133
|
assetsPrefix: opts.deployUrl + (opts.mountPath === '/' ? '' : opts.mountPath),
|
|
49
134
|
},
|
|
50
135
|
image: {
|
|
@@ -12,7 +12,10 @@
|
|
|
12
12
|
*/
|
|
13
13
|
|
|
14
14
|
import type { ExternalImageService, ImageTransform, AstroConfig } from 'astro';
|
|
15
|
-
|
|
15
|
+
// The '.ts' extension is required: Astro's SSR module-runner resolves this
|
|
16
|
+
// file's imports under strict ESM during prerender, where an extensionless
|
|
17
|
+
// relative import fails with "Cannot find module './webflow-image-url'".
|
|
18
|
+
import { normalizeSrc, isRemote, buildImageUrl, computeSrcSetWidths } from './webflow-image-url.ts';
|
|
16
19
|
|
|
17
20
|
// Default implementation copied from Astro's baseService
|
|
18
21
|
function getTargetDimensions(options: ImageTransform) {
|
|
@@ -12,7 +12,10 @@
|
|
|
12
12
|
*/
|
|
13
13
|
|
|
14
14
|
import type { ExternalImageService, ImageTransform, AstroConfig } from 'astro';
|
|
15
|
-
|
|
15
|
+
// The '.ts' extension is required: Astro's SSR module-runner resolves this
|
|
16
|
+
// file's imports under strict ESM during prerender, where an extensionless
|
|
17
|
+
// relative import fails with "Cannot find module './webflow-image-url'".
|
|
18
|
+
import { normalizeSrc, isRemote, buildImageUrl, computeSrcSetWidths } from './webflow-image-url.ts';
|
|
16
19
|
|
|
17
20
|
// Default implementation copied from Astro's baseService
|
|
18
21
|
function getTargetDimensions(options: ImageTransform) {
|