@webflow/cloud-app 0.1.0-beta.8 → 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.
Files changed (58) hide show
  1. package/README.md +20 -51
  2. package/dist/bindings.d.ts +5 -0
  3. package/dist/bindings.d.ts.map +1 -1
  4. package/dist/bindings.js +10 -4
  5. package/dist/bindings.js.map +1 -1
  6. package/dist/compat-date.d.ts +68 -0
  7. package/dist/compat-date.d.ts.map +1 -0
  8. package/dist/compat-date.js +169 -0
  9. package/dist/compat-date.js.map +1 -0
  10. package/dist/diagnostics.d.ts +23 -0
  11. package/dist/diagnostics.d.ts.map +1 -0
  12. package/dist/diagnostics.js +31 -0
  13. package/dist/diagnostics.js.map +1 -0
  14. package/dist/frameworks/astro/adapter-patches/assert-adapter-nested-under-mount.d.ts +3 -3
  15. package/dist/frameworks/astro/adapter-patches/assert-adapter-nested-under-mount.js +3 -3
  16. package/dist/frameworks/astro/adapter-patches/ensure-compatible-cloudflare-adapter.d.ts +34 -0
  17. package/dist/frameworks/astro/adapter-patches/ensure-compatible-cloudflare-adapter.d.ts.map +1 -0
  18. package/dist/frameworks/astro/adapter-patches/ensure-compatible-cloudflare-adapter.js +89 -0
  19. package/dist/frameworks/astro/adapter-patches/ensure-compatible-cloudflare-adapter.js.map +1 -0
  20. package/dist/frameworks/astro/adapter-patches/ensure-fixed-cloudflare-adapter.d.ts +2 -2
  21. package/dist/frameworks/astro/adapter-patches/ensure-fixed-cloudflare-adapter.js +2 -2
  22. package/dist/frameworks/astro/adapter-patches/resolve-cloudflare-adapter.d.ts +39 -0
  23. package/dist/frameworks/astro/adapter-patches/resolve-cloudflare-adapter.d.ts.map +1 -0
  24. package/dist/frameworks/astro/adapter-patches/resolve-cloudflare-adapter.js +93 -0
  25. package/dist/frameworks/astro/adapter-patches/resolve-cloudflare-adapter.js.map +1 -0
  26. package/dist/frameworks/astro/astro6.d.ts.map +1 -1
  27. package/dist/frameworks/astro/astro6.js +11 -9
  28. package/dist/frameworks/astro/astro6.js.map +1 -1
  29. package/dist/frameworks/astro/astro7.d.ts.map +1 -1
  30. package/dist/frameworks/astro/astro7.js +12 -9
  31. package/dist/frameworks/astro/astro7.js.map +1 -1
  32. package/dist/frameworks/astro/session-check.d.ts +27 -0
  33. package/dist/frameworks/astro/session-check.d.ts.map +1 -0
  34. package/dist/frameworks/astro/session-check.js +173 -0
  35. package/dist/frameworks/astro/session-check.js.map +1 -0
  36. package/dist/frameworks/astro/templates/astro.config.webflow.ts +86 -1
  37. package/dist/frameworks/astro/templates/v5/webflow-loader.ts +4 -1
  38. package/dist/frameworks/astro/templates/v6/webflow-loader.ts +4 -1
  39. package/dist/frameworks/astro/templates/v7/webflow-loader.ts +4 -1
  40. package/dist/frameworks/static/templates/wrangler.json +2 -1
  41. package/dist/index.d.ts +5 -0
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +18 -1
  44. package/dist/index.js.map +1 -1
  45. package/dist/pipeline.d.ts.map +1 -1
  46. package/dist/pipeline.js +20 -1
  47. package/dist/pipeline.js.map +1 -1
  48. package/dist/static-base-href.d.ts +31 -0
  49. package/dist/static-base-href.d.ts.map +1 -0
  50. package/dist/static-base-href.js +183 -0
  51. package/dist/static-base-href.js.map +1 -0
  52. package/dist/types.d.ts +5 -0
  53. package/dist/types.d.ts.map +1 -1
  54. package/dist/wrangler.d.ts +5 -2
  55. package/dist/wrangler.d.ts.map +1 -1
  56. package/dist/wrangler.js +135 -7
  57. package/dist/wrangler.js.map +1 -1
  58. package/package.json +4 -4
@@ -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":"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"}
@@ -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
- import { normalizeSrc, isRemote, buildImageUrl, computeSrcSetWidths } from './webflow-image-url';
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
- import { normalizeSrc, isRemote, buildImageUrl, computeSrcSetWidths } from './webflow-image-url';
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) {
@@ -11,7 +11,10 @@
11
11
  */
12
12
 
13
13
  import type { ExternalImageService, ImageTransform, AstroConfig } from 'astro';
14
- import { normalizeSrc, isRemote, buildImageUrl, computeSrcSetWidths } from './webflow-image-url';
14
+ // The '.ts' extension is required: Astro's SSR module-runner resolves this
15
+ // file's imports under strict ESM during prerender, where an extensionless
16
+ // relative import fails with "Cannot find module './webflow-image-url'".
17
+ import { normalizeSrc, isRemote, buildImageUrl, computeSrcSetWidths } from './webflow-image-url.ts';
15
18
 
16
19
  // Default implementation copied from Astro's baseService
17
20
  function getTargetDimensions(options: ImageTransform) {
@@ -2,6 +2,7 @@
2
2
  "name": "webflow-cloud-static-app",
3
3
  "compatibility_date": "2025-03-03",
4
4
  "assets": {
5
- "directory": "assets"
5
+ "directory": "assets",
6
+ "not_found_handling": "404-page"
6
7
  }
7
8
  }
package/dist/index.d.ts CHANGED
@@ -28,6 +28,11 @@ export { loadWebflowJson } from './config/webflow-json';
28
28
  export type { WebflowJson } from './config/webflow-json';
29
29
  export { handleWranglerJson, loadWranglerJson } from './wrangler';
30
30
  export type { WranglerJson } from './wrangler';
31
+ export { DiagnosticCode, DIAGNOSTIC_LINE_PATTERN, formatDiagnostic, parseDiagnostic, } from './diagnostics';
32
+ export type { Diagnostic, DiagnosticLevel } from './diagnostics';
33
+ export { ASTRO_SESSION_BINDING, astroSessionBindingWarning, findAstroSessionUsage, } from './frameworks/astro/session-check';
34
+ export { COMPAT_DATE_FLOOR, COMPAT_DATE_RECORD_FILE, applyCompatDateAtBuild, resolveCompatDate, } from './compat-date';
35
+ export type { CompatDateInputs, CompatDateRecord, CompatDateResolution, CompatDateSource, } from './compat-date';
31
36
  export { createWebflowJson, deriveCloudFields } from './create-webflow-json';
32
37
  export { BindingsSchema, parseBindings, hasAnyBindings, validateBindings, validateR2BucketName, bindingsToWranglerJson, MAX_BINDINGS_PER_TYPE, } from './bindings';
33
38
  export type { WebflowBindings } from './bindings';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EAAE,kBAAkB,EAAa,MAAM,SAAS,CAAC;AAS7D,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,6BAA6B,EAAE,MAAM,sBAAsB,CAAC;AAC3F,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,YAAY,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAC9F,YAAY,EACV,eAAe,EACf,mBAAmB,EACnB,uBAAuB,EACvB,4BAA4B,EAC5B,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAI3B,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,sBAAsB,EACtB,8BAA8B,EAC9B,sBAAsB,EACtB,kBAAkB,EAClB,eAAe,EACf,qBAAqB,EACrB,uBAAuB,EACvB,kBAAkB,EAClB,aAAa,EACb,aAAa,EACb,aAAa,EACb,aAAa,EACb,WAAW,EACX,aAAa,EACb,cAAc,EACd,wBAAwB,EACxB,mBAAmB,EACnB,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,uBAAuB,CAAC;AAI/B,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC1B,iCAAiC,EACjC,mBAAmB,EACnB,qBAAqB,EACrB,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC5F,YAAY,EACV,YAAY,EACZ,aAAa,EACb,WAAW,EACX,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,sBAAsB,EACtB,WAAW,GACZ,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,YAAY,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGzD,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAClE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAG7E,OAAO,EACL,cAAc,EACd,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGlD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAItC,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,sBAAsB,CAAC;AAE9B;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,OAAO,GAAG,kBAAkB,CAsB7F"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -14,7 +14,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.RESERVED_ENV_VAR_PREFIXES = exports.RESERVED_ENV_VAR_NAMES = exports.isReservedEnvVarName = exports.buildApp = exports.MAX_BINDINGS_PER_TYPE = exports.bindingsToWranglerJson = exports.validateR2BucketName = exports.validateBindings = exports.hasAnyBindings = exports.parseBindings = exports.BindingsSchema = exports.deriveCloudFields = exports.createWebflowJson = exports.loadWranglerJson = exports.handleWranglerJson = exports.loadWebflowJson = exports.loadPackageJson = exports.SERVER_ENTRYPOINT_FILES = exports.RUNTIME_BUILD_INDICATORS = exports.STATIC_ASSET_EXCLUDES = exports.ASSET_ROOT_METADATA = exports.findRuntimeBuildIndicatorsInPaths = exports.findRuntimeBuildIndicators = exports.shouldExcludeStaticAsset = exports.FrameworkDetectionError = exports.FrameworkConfigError = exports.FrameworkBuildError = exports.FrameworkValidationError = exports.FrameworkError = exports.StaticBuilder = exports.ViteBuilder = exports.NextJsBuilder = exports.Astro7Builder = exports.Astro6Builder = exports.Astro5Builder = exports.ALLOWED_FRAMEWORKS = exports.getCustomerMajorVersion = exports.validateFrameworkName = exports.detectStaticApp = exports.resolveIsStaticApp = exports.detectAndCreateBuilder = exports.detectFrameworkFromBuiltOutput = exports.detectFrameworkBuilder = exports.FRAMEWORK_BUILDERS = exports.FrameworkBuilder = exports.NodeToolchainError = exports.DEFAULT_NODE_TOOLCHAIN_POLICY = exports.resolveNodeToolchain = exports.NotImplementedError = exports.WebflowAppError = void 0;
17
+ exports.deriveCloudFields = exports.createWebflowJson = exports.resolveCompatDate = exports.applyCompatDateAtBuild = exports.COMPAT_DATE_RECORD_FILE = exports.COMPAT_DATE_FLOOR = exports.findAstroSessionUsage = exports.astroSessionBindingWarning = exports.ASTRO_SESSION_BINDING = exports.parseDiagnostic = exports.formatDiagnostic = exports.DIAGNOSTIC_LINE_PATTERN = exports.DiagnosticCode = exports.loadWranglerJson = exports.handleWranglerJson = exports.loadWebflowJson = exports.loadPackageJson = exports.SERVER_ENTRYPOINT_FILES = exports.RUNTIME_BUILD_INDICATORS = exports.STATIC_ASSET_EXCLUDES = exports.ASSET_ROOT_METADATA = exports.findRuntimeBuildIndicatorsInPaths = exports.findRuntimeBuildIndicators = exports.shouldExcludeStaticAsset = exports.FrameworkDetectionError = exports.FrameworkConfigError = exports.FrameworkBuildError = exports.FrameworkValidationError = exports.FrameworkError = exports.StaticBuilder = exports.ViteBuilder = exports.NextJsBuilder = exports.Astro7Builder = exports.Astro6Builder = exports.Astro5Builder = exports.ALLOWED_FRAMEWORKS = exports.getCustomerMajorVersion = exports.validateFrameworkName = exports.detectStaticApp = exports.resolveIsStaticApp = exports.detectAndCreateBuilder = exports.detectFrameworkFromBuiltOutput = exports.detectFrameworkBuilder = exports.FRAMEWORK_BUILDERS = exports.FrameworkBuilder = exports.NodeToolchainError = exports.DEFAULT_NODE_TOOLCHAIN_POLICY = exports.resolveNodeToolchain = exports.NotImplementedError = exports.WebflowAppError = void 0;
18
+ exports.RESERVED_ENV_VAR_PREFIXES = exports.RESERVED_ENV_VAR_NAMES = exports.isReservedEnvVarName = exports.buildApp = exports.MAX_BINDINGS_PER_TYPE = exports.bindingsToWranglerJson = exports.validateR2BucketName = exports.validateBindings = exports.hasAnyBindings = exports.parseBindings = exports.BindingsSchema = void 0;
18
19
  exports.detectFramework = detectFramework;
19
20
  const package_json_1 = require("./config/package-json");
20
21
  const registry_1 = require("./frameworks/registry");
@@ -70,6 +71,22 @@ Object.defineProperty(exports, "loadWebflowJson", { enumerable: true, get: funct
70
71
  var wrangler_1 = require("./wrangler");
71
72
  Object.defineProperty(exports, "handleWranglerJson", { enumerable: true, get: function () { return wrangler_1.handleWranglerJson; } });
72
73
  Object.defineProperty(exports, "loadWranglerJson", { enumerable: true, get: function () { return wrangler_1.loadWranglerJson; } });
74
+ // Machine-readable build diagnostics (`[cloud:<level>:<CODE>] ... Fix: ...`).
75
+ var diagnostics_1 = require("./diagnostics");
76
+ Object.defineProperty(exports, "DiagnosticCode", { enumerable: true, get: function () { return diagnostics_1.DiagnosticCode; } });
77
+ Object.defineProperty(exports, "DIAGNOSTIC_LINE_PATTERN", { enumerable: true, get: function () { return diagnostics_1.DIAGNOSTIC_LINE_PATTERN; } });
78
+ Object.defineProperty(exports, "formatDiagnostic", { enumerable: true, get: function () { return diagnostics_1.formatDiagnostic; } });
79
+ Object.defineProperty(exports, "parseDiagnostic", { enumerable: true, get: function () { return diagnostics_1.parseDiagnostic; } });
80
+ var session_check_1 = require("./frameworks/astro/session-check");
81
+ Object.defineProperty(exports, "ASTRO_SESSION_BINDING", { enumerable: true, get: function () { return session_check_1.ASTRO_SESSION_BINDING; } });
82
+ Object.defineProperty(exports, "astroSessionBindingWarning", { enumerable: true, get: function () { return session_check_1.astroSessionBindingWarning; } });
83
+ Object.defineProperty(exports, "findAstroSessionUsage", { enumerable: true, get: function () { return session_check_1.findAstroSessionUsage; } });
84
+ // Build-phase compatibility_date policy: settle the date once at build, record it for the deploy.
85
+ var compat_date_1 = require("./compat-date");
86
+ Object.defineProperty(exports, "COMPAT_DATE_FLOOR", { enumerable: true, get: function () { return compat_date_1.COMPAT_DATE_FLOOR; } });
87
+ Object.defineProperty(exports, "COMPAT_DATE_RECORD_FILE", { enumerable: true, get: function () { return compat_date_1.COMPAT_DATE_RECORD_FILE; } });
88
+ Object.defineProperty(exports, "applyCompatDateAtBuild", { enumerable: true, get: function () { return compat_date_1.applyCompatDateAtBuild; } });
89
+ Object.defineProperty(exports, "resolveCompatDate", { enumerable: true, get: function () { return compat_date_1.resolveCompatDate; } });
73
90
  var create_webflow_json_1 = require("./create-webflow-json");
74
91
  Object.defineProperty(exports, "createWebflowJson", { enumerable: true, get: function () { return create_webflow_json_1.createWebflowJson; } });
75
92
  Object.defineProperty(exports, "deriveCloudFields", { enumerable: true, get: function () { return create_webflow_json_1.deriveCloudFields; } });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../src/pipeline.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAIpE,OAAO,EAAmB,KAAK,WAAW,EAAE,MAAM,uBAAuB,CAAC;AA8B1E,+EAA+E;AAC/E,wBAAgB,UAAU,CACxB,GAAG,EAAE,YAAY,EACjB,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,WAAW,GAAG,SAAS,GACnC,IAAI,CAwDN;AAyCD;;;;GAIG;AACH,wBAAsB,QAAQ,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CAkI1E"}
1
+ {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../src/pipeline.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAIpE,OAAO,EAAmB,KAAK,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAgC1E,+EAA+E;AAC/E,wBAAgB,UAAU,CACxB,GAAG,EAAE,YAAY,EACjB,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,WAAW,GAAG,SAAS,GACnC,IAAI,CAoEN;AAiDD;;;;GAIG;AACH,wBAAsB,QAAQ,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CAoI1E"}
package/dist/pipeline.js CHANGED
@@ -57,7 +57,9 @@ const registry_1 = require("./frameworks/registry");
57
57
  const errors_1 = require("./frameworks/errors");
58
58
  const utils_1 = require("./utils");
59
59
  const wrangler_1 = require("./wrangler");
60
+ const compat_date_1 = require("./compat-date");
60
61
  const create_webflow_json_1 = require("./create-webflow-json");
62
+ const static_base_href_1 = require("./static-base-href");
61
63
  /** Top-level entries never copied into the build workspace. */
62
64
  const ISOLATE_EXCLUDE = new Set(['node_modules', '.git']);
63
65
  /**
@@ -131,6 +133,17 @@ function copyAssets(ctx, frameworkName, output, cwd, out, webflowJson) {
131
133
  exclude: output.staticAssetsExclude?.[0],
132
134
  });
133
135
  log.info(`copied ${count} asset${count === 1 ? '' : 's'}`);
136
+ // Static apps ship hand-written HTML with relative asset URLs. Served under a
137
+ // mount path those resolve against the request URL (/mount → /styles.css, a
138
+ // 404) instead of the asset location. Inject a document-relative <base> so
139
+ // relative URLs resolve correctly at any depth. Framework apps bake the mount
140
+ // into their own URLs, so this is static-only. (No-op at the root mount.)
141
+ if (frameworkName === 'static') {
142
+ const changed = (0, static_base_href_1.injectBaseHrefIntoTree)(log, path.join(out, `assets${prefix}`), prefix);
143
+ if (changed > 0) {
144
+ log.info(`injected <base> into ${changed} HTML file${changed === 1 ? '' : 's'}`);
145
+ }
146
+ }
134
147
  }
135
148
  /**
136
149
  * Assemble the deploy-ready output directory: static assets, the
@@ -145,6 +158,10 @@ function collectOutput(ctx, frameworkName, output, cwd, out) {
145
158
  if (webflowJson) {
146
159
  fs.writeFileSync(path.join(out, 'webflow.json'), JSON.stringify(webflowJson));
147
160
  }
161
+ // The date the build settled on, for the deploy to apply (see compat-date.ts).
162
+ if (fs.statSync(path.join(cwd, compat_date_1.COMPAT_DATE_RECORD_FILE), { throwIfNoEntry: false })) {
163
+ fs.copyFileSync(path.join(cwd, compat_date_1.COMPAT_DATE_RECORD_FILE), path.join(out, compat_date_1.COMPAT_DATE_RECORD_FILE));
164
+ }
148
165
  // Ship clouduser.wrangler.json (user bindings + migrations) for the deployer.
149
166
  // The framework-written wrangler.json is intentionally NOT shipped — the
150
167
  // deployer regenerates it.
@@ -214,7 +231,9 @@ async function buildApp(options) {
214
231
  await builder.validate();
215
232
  await builder.installDependencies();
216
233
  // 5. Wrangler synthesis (sole writer of wrangler.json), then framework config.
217
- (0, wrangler_1.handleWranglerJson)(log, builder, workspaceDir);
234
+ (0, wrangler_1.handleWranglerJson)(log, builder, workspaceDir, {
235
+ compatDatePolicy: options.compatDatePolicy,
236
+ });
218
237
  await builder.prepareConfig();
219
238
  // 6. Emit the contract-validated webflow.json (producer self-check inside).
220
239
  (0, create_webflow_json_1.createWebflowJson)(log, workspaceDir, frameworkName, builder);
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../src/pipeline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../src/pipeline.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import type { Logger } from './ports/logger';
2
+ /**
3
+ * The `<base>` href for a static app served under `prefix` (the mount / asset
4
+ * path prefix) and an optional document sub-directory, or `null` for a root
5
+ * mount, where relative URLs already resolve correctly and no base is needed.
6
+ * Always a single leading + trailing slash so relative URLs resolve against
7
+ * that directory; each segment is percent-encoded so a space/unicode mount
8
+ * yields a valid URL matching the served (encoded) asset path.
9
+ */
10
+ export declare function staticBaseHref(prefix: string, subDir?: string): string | null;
11
+ /**
12
+ * Insert `<base href>` into one HTML document, ignoring any match inside an HTML
13
+ * comment. Returns the input unchanged when the document already declares a real
14
+ * `<base href>` (the author's wins) — a bare `<base target>`, a `<base-card>`
15
+ * custom element, or a commented-out `<base>` do not count. The tag goes
16
+ * immediately after the opening `<head>` so it precedes any URL-bearing element;
17
+ * a document with no `<head>`/`<html>` gets a minimal `<head>` wrapper after any
18
+ * leading doctype, so the base never precedes the doctype (quirks mode).
19
+ */
20
+ export declare function injectBaseHref(html: string, baseHref: string): string;
21
+ /**
22
+ * Inject a document-relative `<base>` into every `.html`/`.htm` file under
23
+ * `dir`, where `prefix` is the mount / asset-path prefix the tree is served
24
+ * under. Each file's base points at its own sub-directory within the mount.
25
+ * Files are read and written as binary (`latin1`) so non-UTF-8 content survives
26
+ * the round-trip untouched (the injected tag is ASCII). Symlinks are not
27
+ * followed (matches the asset copy policy). A root mount (`/`) is a no-op.
28
+ * Returns the number of files changed.
29
+ */
30
+ export declare function injectBaseHrefIntoTree(log: Logger, dir: string, prefix: string): number;
31
+ //# sourceMappingURL=static-base-href.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"static-base-href.d.ts","sourceRoot":"","sources":["../src/static-base-href.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAgC7C;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,SAAK,GAAG,MAAM,GAAG,IAAI,CASzE;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CA4BrE;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CA4CvF"}