@astrale-os/adapter-cloudflare 0.4.10 → 0.5.0-beta.2

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 (128) hide show
  1. package/dist/build/codegen/identity.d.ts.map +1 -0
  2. package/dist/build/codegen/identity.js.map +1 -0
  3. package/dist/build/codegen/merge.d.ts.map +1 -0
  4. package/dist/build/codegen/merge.js.map +1 -0
  5. package/dist/build/codegen/worker.d.ts +12 -0
  6. package/dist/build/codegen/worker.d.ts.map +1 -0
  7. package/dist/build/codegen/worker.js +40 -0
  8. package/dist/build/codegen/worker.js.map +1 -0
  9. package/dist/{codegen → build/codegen}/wrangler.d.ts +6 -3
  10. package/dist/build/codegen/wrangler.d.ts.map +1 -0
  11. package/dist/{codegen → build/codegen}/wrangler.js +29 -10
  12. package/dist/build/codegen/wrangler.js.map +1 -0
  13. package/dist/build/frontend.d.ts +26 -0
  14. package/dist/build/frontend.d.ts.map +1 -0
  15. package/dist/build/frontend.js +263 -0
  16. package/dist/build/frontend.js.map +1 -0
  17. package/dist/{build.js → build/index.d.ts} +5 -4
  18. package/dist/build/index.d.ts.map +1 -0
  19. package/dist/{build.d.ts → build/index.js} +5 -5
  20. package/dist/build/index.js.map +1 -0
  21. package/dist/{parse-output.d.ts → build/parse-output.d.ts} +2 -0
  22. package/dist/build/parse-output.d.ts.map +1 -0
  23. package/dist/{parse-output.js → build/parse-output.js} +5 -0
  24. package/dist/build/parse-output.js.map +1 -0
  25. package/dist/build/prepare.d.ts +18 -0
  26. package/dist/build/prepare.d.ts.map +1 -0
  27. package/dist/build/prepare.js +117 -0
  28. package/dist/build/prepare.js.map +1 -0
  29. package/dist/build/worker.d.ts +15 -0
  30. package/dist/build/worker.d.ts.map +1 -0
  31. package/dist/build/worker.js +21 -0
  32. package/dist/build/worker.js.map +1 -0
  33. package/dist/{wrangler-cli.d.ts → build/wrangler-cli.d.ts} +8 -0
  34. package/dist/build/wrangler-cli.d.ts.map +1 -0
  35. package/dist/{wrangler-cli.js → build/wrangler-cli.js} +28 -4
  36. package/dist/build/wrangler-cli.js.map +1 -0
  37. package/dist/cloudflare.d.ts +21 -24
  38. package/dist/cloudflare.d.ts.map +1 -1
  39. package/dist/cloudflare.js +125 -191
  40. package/dist/cloudflare.js.map +1 -1
  41. package/dist/index.d.ts +4 -4
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +3 -3
  44. package/dist/index.js.map +1 -1
  45. package/dist/params.d.ts +13 -16
  46. package/dist/params.d.ts.map +1 -1
  47. package/dist/worker/index.d.ts +48 -0
  48. package/dist/worker/index.d.ts.map +1 -0
  49. package/dist/worker/index.js +186 -0
  50. package/dist/worker/index.js.map +1 -0
  51. package/package.json +13 -5
  52. package/src/build/codegen/worker.ts +53 -0
  53. package/src/{codegen → build/codegen}/wrangler.ts +34 -12
  54. package/src/build/frontend.ts +324 -0
  55. package/src/{build.ts → build/index.ts} +17 -4
  56. package/src/{parse-output.ts → build/parse-output.ts} +6 -0
  57. package/src/build/prepare.ts +161 -0
  58. package/src/build/worker.ts +37 -0
  59. package/src/{wrangler-cli.ts → build/wrangler-cli.ts} +44 -6
  60. package/src/cloudflare.ts +153 -223
  61. package/src/index.ts +4 -4
  62. package/src/params.ts +13 -17
  63. package/src/worker/index.ts +276 -0
  64. package/src/worker/tsconfig.json +10 -0
  65. package/template/astrale.config.ts +7 -7
  66. package/dist/assets-pack.d.ts +0 -8
  67. package/dist/assets-pack.d.ts.map +0 -1
  68. package/dist/assets-pack.js +0 -30
  69. package/dist/assets-pack.js.map +0 -1
  70. package/dist/build.d.ts.map +0 -1
  71. package/dist/build.js.map +0 -1
  72. package/dist/client.d.ts +0 -17
  73. package/dist/client.d.ts.map +0 -1
  74. package/dist/client.js +0 -59
  75. package/dist/client.js.map +0 -1
  76. package/dist/codegen/identity.d.ts.map +0 -1
  77. package/dist/codegen/identity.js.map +0 -1
  78. package/dist/codegen/merge.d.ts.map +0 -1
  79. package/dist/codegen/merge.js.map +0 -1
  80. package/dist/codegen/worker.d.ts +0 -51
  81. package/dist/codegen/worker.d.ts.map +0 -1
  82. package/dist/codegen/worker.js +0 -120
  83. package/dist/codegen/worker.js.map +0 -1
  84. package/dist/codegen/wrangler.d.ts.map +0 -1
  85. package/dist/codegen/wrangler.js.map +0 -1
  86. package/dist/parse-output.d.ts.map +0 -1
  87. package/dist/parse-output.js.map +0 -1
  88. package/dist/wrangler-cli.d.ts.map +0 -1
  89. package/dist/wrangler-cli.js.map +0 -1
  90. package/src/assets-pack.ts +0 -32
  91. package/src/client.ts +0 -89
  92. package/src/codegen/worker.ts +0 -136
  93. package/template/.env.example +0 -9
  94. package/template/.gitignore.template +0 -16
  95. package/template/CLAUDE.md +0 -13
  96. package/template/README.md +0 -47
  97. package/template/client/.gitignore.template +0 -4
  98. package/template/client/__tests__/app.test.tsx +0 -15
  99. package/template/client/components.json +0 -25
  100. package/template/client/index.html +0 -12
  101. package/template/client/package.json +0 -35
  102. package/template/client/src/app.tsx +0 -52
  103. package/template/client/src/components/ui/cn.ts +0 -6
  104. package/template/client/src/main.tsx +0 -9
  105. package/template/client/src/styles.css +0 -78
  106. package/template/client/tsconfig.json +0 -26
  107. package/template/client/vite.config.ts +0 -22
  108. package/template/client/vitest.config.ts +0 -13
  109. package/template/core/README.md +0 -7
  110. package/template/deps.ts +0 -9
  111. package/template/domain.ts +0 -11
  112. package/template/env.ts +0 -8
  113. package/template/icons.ts +0 -4
  114. package/template/integrations/README.md +0 -7
  115. package/template/oxlint.config.ts +0 -1
  116. package/template/package.json +0 -58
  117. package/template/pnpm-workspace.yaml +0 -31
  118. package/template/runtime/index.ts +0 -8
  119. package/template/schema/index.ts +0 -10
  120. package/template/simulation/README.md +0 -12
  121. package/template/tsconfig.json +0 -28
  122. package/template/vitest.config.ts +0 -7
  123. /package/dist/{codegen → build/codegen}/identity.d.ts +0 -0
  124. /package/dist/{codegen → build/codegen}/identity.js +0 -0
  125. /package/dist/{codegen → build/codegen}/merge.d.ts +0 -0
  126. /package/dist/{codegen → build/codegen}/merge.js +0 -0
  127. /package/src/{codegen → build/codegen}/identity.ts +0 -0
  128. /package/src/{codegen → build/codegen}/merge.ts +0 -0
@@ -2,34 +2,49 @@
2
2
  * `cloudflare(envs)` — the Cloudflare deployment adapter.
3
3
  *
4
4
  * Owns everything target-specific: it codegens the Worker entry + wrangler
5
- * config (the dev never sees a `wrangler.jsonc`), builds the optional client
5
+ * config (the dev never sees a `wrangler.jsonc`), materializes the optional frontend
6
6
  * SPA, and shells out to `wrangler`. `watch` → `wrangler dev` (local URL);
7
7
  * `deploy` → `wrangler deploy` (workers.dev or a custom-domain URL); secrets →
8
8
  * `wrangler secret bulk`. Both `watch` and `deploy` return the URL the CLI
9
9
  * prints and `astrale domain install <url>` consumes.
10
10
  */
11
11
  import { defineAdapter } from '@astrale-os/sdk';
12
- import { mkdir, rename, writeFile } from 'node:fs/promises';
13
- import { join } from 'node:path';
14
- import { buildClient, resolveClientDir } from './client';
15
- import { ensureIdentity } from './codegen/identity';
16
- import { generateWorkerEntry } from './codegen/worker';
17
- import { generateWranglerConfig } from './codegen/wrangler';
18
- import { bulkPutSecrets, runWranglerDeploy, runWranglerDev } from './wrangler-cli';
19
- const DEFAULT_PORT = 8787;
12
+ import { bulkPutSecrets, buildCloudflareWorker, buildFrontend, logTo, prepare, runWranglerDeploy, runWranglerDev, runWranglerTypes, watchFrontend, } from './build/index.js';
20
13
  export function cloudflare(envs) {
14
+ return cloudflareWithDependencies(envs, {
15
+ bulkPutSecrets,
16
+ buildCloudflareWorker,
17
+ buildFrontend,
18
+ logTo,
19
+ prepare,
20
+ runWranglerDeploy,
21
+ runWranglerDev,
22
+ runWranglerTypes,
23
+ watchFrontend,
24
+ waitUntilLive,
25
+ });
26
+ }
27
+ /** Exact orchestration seam used by adapter-level deployment qualification. */
28
+ export function cloudflareWithDependencies(envs, dependencies) {
21
29
  return defineAdapter({
22
30
  name: 'cloudflare',
23
31
  envs,
32
+ async build(params, ctx) {
33
+ await dependencies.buildCloudflareWorker({
34
+ params,
35
+ context: ctx,
36
+ onLog: dependencies.logTo(),
37
+ });
38
+ },
24
39
  async watch(params, ctx) {
25
- const clientDir = resolveCloudflareClientDir(params, ctx);
26
- const { configPath, port } = await prepare(params, ctx, 'dev', {
27
- servesClient: Boolean(clientDir),
28
- bundleAssets: Boolean(clientDir),
40
+ const onLog = dependencies.logTo();
41
+ const frontend = await dependencies.buildFrontend({
42
+ definition: ctx.definition,
43
+ projectDir: ctx.projectDir,
44
+ onLog,
29
45
  });
30
- if (clientDir)
31
- await buildClient(clientDir, ctx.projectDir, logTo());
32
- const handle = await runWranglerDev({
46
+ const { configPath, port } = await dependencies.prepare(params, ctx, 'dev', frontend);
47
+ const handle = await dependencies.runWranglerDev({
33
48
  projectDir: ctx.projectDir,
34
49
  configPath,
35
50
  port,
@@ -37,54 +52,100 @@ export function cloudflare(envs) {
37
52
  autoPickPort: params.port === undefined,
38
53
  ...(params.host ? { ip: '0.0.0.0' } : {}),
39
54
  onReload: ctx.onReload,
40
- onLog: logTo(),
55
+ onLog,
41
56
  });
57
+ let frontendWatch;
58
+ try {
59
+ frontendWatch = dependencies.watchFrontend({
60
+ definition: ctx.definition,
61
+ projectDir: ctx.projectDir,
62
+ onLog,
63
+ // Routes and source recipes are immutable for this watch generation.
64
+ // Wrangler already observes the atomically swapped asset stage, so a
65
+ // source rebuild needs no config regeneration.
66
+ onRebuild: ctx.onReload,
67
+ });
68
+ }
69
+ catch (error) {
70
+ try {
71
+ await handle.stop();
72
+ }
73
+ catch (cleanupError) {
74
+ throw new AggregateError([error, cleanupError], 'cloudflare frontend watcher startup failed and Wrangler cleanup also failed');
75
+ }
76
+ throw error;
77
+ }
42
78
  // With --host the actionable URL is the PUBLIC one (the tunnel/proxy
43
79
  // front), not the local bind — print and spec-stamp that.
44
- return { url: params.host ?? handle.url, stop: handle.stop };
80
+ return {
81
+ url: params.host ?? handle.url,
82
+ async stop() {
83
+ const errors = [];
84
+ try {
85
+ await frontendWatch?.stop();
86
+ }
87
+ catch (error) {
88
+ errors.push(error);
89
+ }
90
+ try {
91
+ await handle.stop();
92
+ }
93
+ catch (error) {
94
+ errors.push(error);
95
+ }
96
+ if (errors.length === 1)
97
+ throw errors[0];
98
+ if (errors.length > 1) {
99
+ throw new AggregateError(errors, 'cloudflare development cleanup failed');
100
+ }
101
+ },
102
+ };
45
103
  },
46
104
  // Config hot-regen: rewrite the generated files only — the running
47
105
  // `wrangler dev` watches its `--config` (and the worker entry) and reloads
48
106
  // them itself, so a `astrale.config.ts` edit lands without a restart.
49
- // Mirrors `watch`'s prep exactly (codegen + client build), minus the spawn.
107
+ // Mirrors `watch`'s prep exactly (codegen + frontend build), minus the spawn.
50
108
  async regenerate(params, ctx) {
51
- const clientDir = resolveCloudflareClientDir(params, ctx);
52
- await prepare(params, ctx, 'dev', {
53
- servesClient: Boolean(clientDir),
54
- bundleAssets: Boolean(clientDir),
109
+ const frontend = await dependencies.buildFrontend({
110
+ definition: ctx.definition,
111
+ projectDir: ctx.projectDir,
112
+ onLog: dependencies.logTo(),
113
+ });
114
+ const { configPath } = await dependencies.prepare(params, ctx, 'dev', frontend);
115
+ await dependencies.runWranglerTypes({
116
+ projectDir: ctx.projectDir,
117
+ configPath,
118
+ onLog: dependencies.logTo(),
55
119
  });
56
- if (clientDir)
57
- await buildClient(clientDir, ctx.projectDir, logTo());
58
120
  },
59
121
  async deploy(params, ctx) {
60
- const clientDir = resolveCloudflareClientDir(params, ctx);
61
- const { configPath, fallbackConfigPath, workerName: name, } = await prepare(params, ctx, 'deploy', {
62
- servesClient: Boolean(clientDir),
63
- bundleAssets: Boolean(clientDir),
122
+ const frontend = await dependencies.buildFrontend({
123
+ definition: ctx.definition,
124
+ projectDir: ctx.projectDir,
125
+ onLog: dependencies.logTo(),
64
126
  });
65
- if (clientDir)
66
- await buildClient(clientDir, ctx.projectDir, logTo());
67
- const { url } = await runWranglerDeploy({
127
+ const { configPath, fallbackConfigPath, workerName: name, } = await dependencies.prepare(params, ctx, 'deploy', frontend);
128
+ const { url, deploymentVersion } = await dependencies.runWranglerDeploy({
68
129
  projectDir: ctx.projectDir,
69
130
  configPath,
70
131
  workerName: name,
71
132
  ...(fallbackConfigPath ? { fallbackConfigPath } : {}),
72
133
  ...(params.route ? { route: params.route } : {}),
73
- onLog: logTo(),
134
+ onLog: dependencies.logTo(),
74
135
  });
75
136
  if (Object.keys(ctx.secrets).length > 0) {
76
- await bulkPutSecrets({
137
+ await dependencies.bulkPutSecrets({
77
138
  projectDir: ctx.projectDir,
78
139
  configPath,
79
140
  secrets: ctx.secrets,
80
- onLog: logTo(),
141
+ onLog: dependencies.logTo(),
81
142
  });
82
143
  }
83
144
  // A first deploy on a fresh `*.workers.dev` host can take ~30-60s to
84
145
  // propagate; an `astrale domain install <url>` issued right away would
85
146
  // 404 (Cloudflare 1042). Block until the URL actually serves so the
86
147
  // install line we print is immediately actionable.
87
- await waitUntilLive(url, logTo());
148
+ await dependencies.waitUntilLive(url, dependencies.logTo(), deploymentVersion);
88
149
  return { url };
89
150
  },
90
151
  secretsFile(params) {
@@ -92,132 +153,47 @@ export function cloudflare(envs) {
92
153
  },
93
154
  });
94
155
  }
95
- function resolveCloudflareClientDir(params, ctx) {
96
- return resolveClientDir({
97
- adapterName: 'cloudflare',
98
- env: ctx.env,
99
- projectDir: ctx.projectDir,
100
- domain: ctx.domain,
101
- ...(params.client ? { client: params.client } : {}),
102
- });
103
- }
104
- // ── codegen orchestration ──────────────────────────────────────────────────
105
- export async function prepare(params, ctx, mode, clientAssets = {
106
- servesClient: false,
107
- bundleAssets: false,
108
- }) {
109
- const astraleDir = join(ctx.projectDir, '.astrale');
110
- await mkdir(astraleDir, { recursive: true });
111
- await ensureIdentity(astraleDir, ctx.domain.origin);
112
- const name = workerName(params, ctx.domain.origin);
113
- // Instance-router service binding (on by default → admin-router): lets the
114
- // worker reach other instances' hosts internally, so a cross-instance JWKS
115
- // fetch doesn't 522. Resolved once, fed to BOTH codegens below.
116
- const router = resolveRouter(params.router);
117
- // Two distinct client signals: the WORKER's `/ui` hook and Wrangler's local
118
- // assets binding. Direct Cloudflare deploys use both; managed deploys ship
119
- // assets separately but still need the worker hook.
120
- const servesClient = clientAssets.servesClient;
121
- const bundleAssets = clientAssets.bundleAssets;
122
- await writeFileAtomic(join(astraleDir, 'worker.gen.ts'),
123
- // Everything else — schema/methods/deps/views/functions/requires/postInstall —
124
- // rides the `...domain` spread the generated entry imports from `../domain`;
125
- // the only remaining build-time signal is whether to wire the /ui asset hook.
126
- generateWorkerEntry({
127
- origin: ctx.domain.origin,
128
- hasClient: servesClient,
129
- ...(router
130
- ? {
131
- router: {
132
- binding: router.binding,
133
- hostSuffix: router.hostSuffix,
134
- minLabels: router.minLabels,
135
- },
136
- }
137
- : {}),
138
- }));
139
- // Pin the worker's canonical serving URL (its `iss` identity) for routed
140
- // deploys: a routed worker may ALSO be reachable via `*.workers.dev`, so
141
- // resolving the URL from the per-request Host would let `iss` drift between
142
- // hostnames. Dev + workers.dev-only deploys are single-host, so the worker
143
- // falls back to the per-request Host (always the canonical URL there).
144
- // An explicit `vars.WORKER_URL` (e.g. a tunnel/proxy front) wins.
145
- // Dev behind a tunnel/proxy (`--host`) pins WORKER_URL the same way a routed
146
- // deploy does — the per-request Host there is the proxy's INTERNAL hostname
147
- // and would corrupt the worker's `iss`.
148
- const workerUrl = mode === 'deploy' && params.route
149
- ? `https://${params.route}`
150
- : mode === 'dev' && params.host
151
- ? params.host
152
- : undefined;
153
- // Dev injects secrets as local vars (the gitignored .astrale config never
154
- // ships); deploy keeps secrets out of the config and pushes them encrypted.
155
- const vars = {
156
- ...(workerUrl ? { WORKER_URL: workerUrl } : {}),
157
- ...(mode === 'dev' ? { ...params.vars, ...ctx.secrets } : { ...params.vars }),
158
- };
159
- const baseConfig = {
160
- workerName: name,
161
- ...(mode === 'deploy' && params.route ? { route: params.route } : {}),
162
- hasClient: bundleAssets,
163
- vars,
164
- // Router service binding flows into BOTH the SELF and SELF-less fallback
165
- // configs — the first-deploy two-pass must keep it. `admin-router` already
166
- // exists, so unlike SELF it always resolves (no first-deploy chicken-egg).
167
- ...(router ? { router: { binding: router.binding, service: router.service } } : {}),
168
- // Escape hatch: extra bindings (KV/R2/D1/queues/…) deep-merged on top. Same
169
- // overlay in dev and deploy — it's infra, not env-specific plumbing — and it
170
- // flows into both the SELF and the SELF-less fallback config below.
171
- ...(params.wrangler ? { wrangler: params.wrangler } : {}),
172
- };
173
- // Always self-bind: it enables autobinding (a handler calling its own domain).
174
- // Locally the dev registry resolves it; on deploy the first deploy of a fresh
175
- // worker can't (the script doesn't exist yet), so we also emit a SELF-less
176
- // fallback config that `runWranglerDeploy` uses for a one-time two-pass deploy.
177
- const configPath = join(astraleDir, 'wrangler.gen.jsonc');
178
- await writeFileAtomic(configPath, generateWranglerConfig({ ...baseConfig, selfBinding: true }));
179
- let fallbackConfigPath;
180
- if (mode === 'deploy') {
181
- fallbackConfigPath = join(astraleDir, 'wrangler.no-self.gen.jsonc');
182
- await writeFileAtomic(fallbackConfigPath, generateWranglerConfig({ ...baseConfig, selfBinding: false }));
183
- }
184
- return {
185
- configPath,
186
- ...(fallbackConfigPath ? { fallbackConfigPath } : {}),
187
- port: params.port ?? DEFAULT_PORT,
188
- workerName: name,
189
- };
190
- }
191
- /**
192
- * Write-then-rename: hot-regen rewrites these files while a live `wrangler dev`
193
- * watches them — a plain `writeFile` can be read truncated mid-write.
194
- */
195
- async function writeFileAtomic(path, content) {
196
- const tmp = `${path}.tmp`;
197
- await writeFile(tmp, content);
198
- await rename(tmp, path);
199
- }
200
156
  /**
201
- * Poll the deployed URL until the worker answers (anything but the Cloudflare
202
- * 1042 "no script on this host" 404), or give up after `timeoutMs`. Resolves
203
- * silently on the fast path; logs only when propagation actually makes us wait.
157
+ * Poll until the deployed Worker health endpoint returns exactly 200.
204
158
  */
205
- async function waitUntilLive(url, onLog, timeoutMs = 90_000) {
159
+ async function waitUntilLive(url, onLog, expectedDeploymentVersion, timeoutMs = 90_000) {
206
160
  const probe = new URL('/health', url);
161
+ const metadata = new URL('/meta', url);
207
162
  const deadline = Date.now() + timeoutMs;
208
163
  let waited = false;
164
+ let lastStatus;
165
+ let lastDeploymentVersion;
209
166
  for (;;) {
210
167
  try {
211
168
  const res = await fetch(probe, { redirect: 'manual' });
212
- if (res.status !== 404)
213
- return;
169
+ lastStatus = res.status;
170
+ await res.body?.cancel();
171
+ if (res.status === 200) {
172
+ if (expectedDeploymentVersion === undefined)
173
+ return;
174
+ const meta = await fetch(metadata, { redirect: 'manual' });
175
+ if (meta.status === 200) {
176
+ const body = (await meta.json());
177
+ lastDeploymentVersion =
178
+ typeof body.deploymentVersion === 'string' ? body.deploymentVersion : undefined;
179
+ if (lastDeploymentVersion === expectedDeploymentVersion)
180
+ return;
181
+ }
182
+ else {
183
+ await meta.body?.cancel();
184
+ }
185
+ }
214
186
  }
215
187
  catch {
216
188
  // Network hiccup — treat like "not live yet" and keep polling.
217
189
  }
218
190
  if (Date.now() >= deadline) {
219
- onLog(`URL not reachable yet after ${Math.round(timeoutMs / 1000)}s — it may need a moment.`);
220
- return;
191
+ throw new Error(`deployed Worker health did not reach HTTP 200 within ${Math.round(timeoutMs / 1000)}s` +
192
+ (lastStatus === undefined ? '' : ` (last status ${lastStatus})`) +
193
+ (expectedDeploymentVersion === undefined
194
+ ? ''
195
+ : `; deployment version ${JSON.stringify(lastDeploymentVersion)} ` +
196
+ `did not reach ${JSON.stringify(expectedDeploymentVersion)}`));
221
197
  }
222
198
  if (!waited) {
223
199
  waited = true;
@@ -226,46 +202,4 @@ async function waitUntilLive(url, onLog, timeoutMs = 90_000) {
226
202
  await new Promise((r) => setTimeout(r, 3000));
227
203
  }
228
204
  }
229
- const WORKER_NAME_RE = /^[a-z0-9][a-z0-9-]*$/;
230
- export function workerName(params, origin) {
231
- // An explicit name is the deployed worker's identity (and the SELF service
232
- // target) — validate and reject an invalid one rather than silently rewriting
233
- // it, so the dev fixes it instead of deploying under a surprising name.
234
- if (params.workerName !== undefined) {
235
- if (!WORKER_NAME_RE.test(params.workerName) || params.workerName.length > 63) {
236
- throw new Error(`cloudflare adapter: invalid \`workerName\` "${params.workerName}". A Cloudflare worker ` +
237
- 'name must be lowercase, start with a letter or digit, contain only letters, digits and ' +
238
- 'dashes, and be at most 63 chars.');
239
- }
240
- return params.workerName;
241
- }
242
- // Derive from the origin: lowercase, collapse non-alphanumerics to a dash, then
243
- // SLICE before trimming dashes so a cut landing mid-dash can't leave a trailing
244
- // "-" (which wrangler rejects).
245
- return origin
246
- .toLowerCase()
247
- .replace(/[^a-z0-9]+/g, '-')
248
- .slice(0, 54)
249
- .replace(/^-+|-+$/g, '');
250
- }
251
- /**
252
- * Resolve the instance-router config. ON by default (targets `admin-router`) so
253
- * every adapter-deployed worker can reach other instances' hosts internally and
254
- * verify cross-instance credentials without a 522; `false` disables it. The
255
- * returned shape carries every value the worker- and wrangler-codegen need.
256
- */
257
- export function resolveRouter(ir) {
258
- if (ir === false)
259
- return undefined;
260
- const cfg = ir ?? {};
261
- return {
262
- binding: cfg.binding ?? 'ROUTER',
263
- service: cfg.service ?? 'admin-router',
264
- hostSuffix: cfg.hostSuffix ?? '.astrale.ai',
265
- minLabels: cfg.minLabels ?? 4,
266
- };
267
- }
268
- export function logTo() {
269
- return (line) => process.stderr.write(`\x1b[2m ${line}\x1b[0m\n`);
270
- }
271
205
  //# sourceMappingURL=cloudflare.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cloudflare.js","sourceRoot":"","sources":["../src/cloudflare.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cloudflare.js","sourceRoot":"","sources":["../src/cloudflare.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -5,8 +5,8 @@
5
5
  * import { cloudflare } from '@astrale-os/adapter-cloudflare'
6
6
  *
7
7
  * adapter: cloudflare({
8
- * dev: { client: { dir: 'client' }, secrets: '.env.dev' },
9
- * prod: { client: { dir: 'client' }, route: 'crm.acme.dev', secrets: '.env.prod' },
8
+ * dev: { secrets: '.env.dev' },
9
+ * prod: { route: 'crm.acme.dev', secrets: '.env.prod' },
10
10
  * })
11
11
  *
12
12
  * `dev` runs `wrangler dev` locally; an env with no `route` ships to
@@ -16,6 +16,6 @@
16
16
  * `@astrale-os/adapter-astrale`, which builds the same bundle via this package's
17
17
  * `/build` toolkit and ships it through the Astrale platform.
18
18
  */
19
- export { cloudflare } from './cloudflare';
20
- export type { CloudflareParams } from './params';
19
+ export { cloudflare } from './cloudflare.js';
20
+ export type { CloudflareParams } from './params.js';
21
21
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,YAAY,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA"}
package/dist/index.js CHANGED
@@ -5,8 +5,8 @@
5
5
  * import { cloudflare } from '@astrale-os/adapter-cloudflare'
6
6
  *
7
7
  * adapter: cloudflare({
8
- * dev: { client: { dir: 'client' }, secrets: '.env.dev' },
9
- * prod: { client: { dir: 'client' }, route: 'crm.acme.dev', secrets: '.env.prod' },
8
+ * dev: { secrets: '.env.dev' },
9
+ * prod: { route: 'crm.acme.dev', secrets: '.env.prod' },
10
10
  * })
11
11
  *
12
12
  * `dev` runs `wrangler dev` locally; an env with no `route` ships to
@@ -16,5 +16,5 @@
16
16
  * `@astrale-os/adapter-astrale`, which builds the same bundle via this package's
17
17
  * `/build` toolkit and ships it through the Astrale platform.
18
18
  */
19
- export { cloudflare } from './cloudflare';
19
+ export { cloudflare } from './cloudflare.js';
20
20
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA"}
package/dist/params.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- import type { ClientConfig } from './client';
2
1
  /**
3
2
  * `CloudflareParams` — the provider-typed config for the Cloudflare adapter.
4
3
  *
@@ -12,18 +11,16 @@ import type { ClientConfig } from './client';
12
11
  * • remote (custom) — `deploy()` with `route`; URL = https://<route>
13
12
  */
14
13
  export interface CloudflareParams {
15
- /** Frontend assets to build and serve for this env's mounted `/ui` views. */
16
- client?: ClientConfig;
17
14
  /**
18
15
  * Custom route / hostname for a routed deploy, e.g. `'crm.acme.dev'`. Omit to
19
16
  * deploy to `*.workers.dev`. Ignored by local `wrangler dev` (URL is
20
17
  * localhost) but still used as the placeholder base domain there.
21
18
  */
22
- route?: string;
19
+ readonly route?: string;
23
20
  /** Gitignored secrets file (whole contents = secrets), e.g. `'.env.dev'`. */
24
- secrets?: string;
21
+ readonly secrets?: string;
25
22
  /** Local dev port for `wrangler dev`. Default 8787. */
26
- port?: number;
23
+ readonly port?: number;
27
24
  /**
28
25
  * Public URL the dev server is reached through (tunnel / sandbox preview /
29
26
  * reverse proxy), e.g. `'https://my-box.preview.dev'`. Sets BOTH effects an
@@ -32,13 +29,13 @@ export interface CloudflareParams {
32
29
  * identity (`iss`) doesn't drift to the proxy's internal hostname.
33
30
  * Usually injected by `pnpm dev --host <url>` rather than written here.
34
31
  */
35
- host?: string;
32
+ readonly host?: string;
36
33
  /** Override the Worker name. Default: derived from the domain origin. */
37
- workerName?: string;
34
+ readonly workerName?: string;
38
35
  /** Run `wrangler dev --remote` (edge isolate) instead of local workerd. */
39
- remote?: boolean;
36
+ readonly remote?: boolean;
40
37
  /** Extra plain (non-secret) vars to inject as Worker vars. */
41
- vars?: Record<string, string>;
38
+ readonly vars?: Record<string, string>;
42
39
  /**
43
40
  * Escape hatch: raw wrangler config deep-merged over the generated base. Use
44
41
  * it to declare extra bindings the adapter has no typed field for — KV, R2,
@@ -57,7 +54,7 @@ export interface CloudflareParams {
57
54
  * the reserved binding names `SELF` and `ASSETS`. Durable Objects need extra
58
55
  * worker-entry codegen and aren't supported through this field yet.
59
56
  */
60
- wrangler?: Record<string, unknown>;
57
+ readonly wrangler?: Record<string, unknown>;
61
58
  /**
62
59
  * Route subrequests to platform INSTANCE hostnames through a service binding
63
60
  * instead of the public edge. A Cloudflare Worker can't fetch a same-zone
@@ -80,15 +77,15 @@ export interface CloudflareParams {
80
77
  * router: false // opt out
81
78
  * router: { service: 'my-router' } // override target
82
79
  */
83
- router?: false | {
80
+ readonly router?: false | {
84
81
  /** Router Worker the binding targets. Default `'admin-router'`. */
85
- service?: string;
82
+ readonly service?: string;
86
83
  /** Service-binding name the worker reads. Default `'ROUTER'`. */
87
- binding?: string;
84
+ readonly binding?: string;
88
85
  /** Host suffix that marks an instance host. Default `'.astrale.ai'`. */
89
- hostSuffix?: string;
86
+ readonly hostSuffix?: string;
90
87
  /** Min dot-separated label count for an instance host. Default `4` (`<slug>.<region>.astrale.ai`). */
91
- minLabels?: number;
88
+ readonly minLabels?: number;
92
89
  };
93
90
  }
94
91
  //# sourceMappingURL=params.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"params.d.ts","sourceRoot":"","sources":["../src/params.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAE5C;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,gBAAgB;IAC/B,6EAA6E;IAC7E,MAAM,CAAC,EAAE,YAAY,CAAA;IACrB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,uDAAuD;IACvD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;;;;;;OAOG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,yEAAyE;IACzE,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,2EAA2E;IAC3E,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,8DAA8D;IAC9D,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC7B;;;;;;;;;;;;;;;;;OAiBG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAClC;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,MAAM,CAAC,EACH,KAAK,GACL;QACE,mEAAmE;QACnE,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,iEAAiE;QACjE,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,wEAAwE;QACxE,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,sGAAsG;QACtG,SAAS,CAAC,EAAE,MAAM,CAAA;KACnB,CAAA;CACN"}
1
+ {"version":3,"file":"params.d.ts","sourceRoot":"","sources":["../src/params.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,6EAA6E;IAC7E,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,uDAAuD;IACvD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB;;;;;;;OAOG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,yEAAyE;IACzE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,2EAA2E;IAC3E,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;IACzB,8DAA8D;IAC9D,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACtC;;;;;;;;;;;;;;;;;OAiBG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC3C;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,QAAQ,CAAC,MAAM,CAAC,EACZ,KAAK,GACL;QACE,mEAAmE;QACnE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;QACzB,iEAAiE;QACjE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;QACzB,wEAAwE;QACxE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;QAC5B,sGAAsG;QACtG,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAC5B,CAAA;CACN"}
@@ -0,0 +1,48 @@
1
+ import type { schema } from '@astrale-os/kernel-dsl/v1';
2
+ import type { DomainDefinition } from '@astrale-os/sdk';
3
+ import type { Application, RemoteDeploymentInput, RemoteIdentityInput } from '@astrale-os/sdk/server';
4
+ import type { ExecutionContext } from 'hono';
5
+ /** SDK-owned Publication manifest passed through without adapter interpretation. */
6
+ export type CloudflareManifest = NonNullable<RemoteDeploymentInput['manifest']>;
7
+ export interface Fetcher {
8
+ fetch(request: Request): Response | Promise<Response>;
9
+ }
10
+ /** Adapter-owned bindings generated into every Cloudflare deployment. */
11
+ export interface CloudflareAdapterBindings {
12
+ /** Native Cloudflare deployment metadata (direct Wrangler deployments). */
13
+ readonly ASTRALE_VERSION_METADATA?: {
14
+ readonly id: string;
15
+ readonly tag: string;
16
+ readonly timestamp: string;
17
+ };
18
+ /** Content-derived generation supplied by providers without version metadata. */
19
+ readonly ASTRALE_DEPLOYMENT_VERSION?: string;
20
+ readonly WORKER_URL?: string;
21
+ readonly ASSETS?: Fetcher;
22
+ readonly SELF?: Fetcher;
23
+ readonly FRONTEND_DEV_URL?: string;
24
+ readonly DISPATCHER?: {
25
+ get(name: string): Fetcher;
26
+ };
27
+ }
28
+ export interface CloudflareWorkerConfig<S extends schema.DomainSchema, Bindings extends CloudflareAdapterBindings, Environment> {
29
+ readonly definition: DomainDefinition<S>;
30
+ readonly privateKey: RemoteIdentityInput['privateKey'] | ((bindings: Bindings) => RemoteIdentityInput['privateKey']);
31
+ /** Compose provider bindings into the exact Domain environment once per deployment generation. */
32
+ readonly resolveEnvironment?: (bindings: Bindings) => Environment | Promise<Environment>;
33
+ readonly manifest?: CloudflareManifest;
34
+ readonly resolveUrl?: (bindings: Bindings, requestOrigin: string) => string;
35
+ readonly selfBinding?: (bindings: Bindings) => Fetcher | null | undefined;
36
+ readonly routeSubrequest?: (url: URL, bindings: Bindings) => Fetcher | null | undefined;
37
+ }
38
+ export interface CloudflareWorker<Environment> {
39
+ fetch(request: Request, environment: Environment, executionContext?: ExecutionContext): Response | Promise<Response>;
40
+ }
41
+ /**
42
+ * Compose one Cloudflare module Worker without request-global mutation.
43
+ * Environment bindings are captured once per immutable serving URL/version generation.
44
+ */
45
+ export declare function cloudflareWorkerEntry<Bindings extends CloudflareAdapterBindings, Environment = Bindings>(): <const S extends schema.DomainSchema>(config: CloudflareWorkerConfig<S, Bindings, Environment>) => CloudflareWorker<Bindings>;
46
+ /** Close an evicted Application before its environment bindings leave the cache. */
47
+ export declare function closeEvictedApplication(application: Pick<Application, 'close'>, now?: () => number): Promise<void>;
48
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/worker/index.ts"],"names":[],"mappings":"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"}