@astrale-os/adapter-astrale 0.1.0 → 0.2.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/dist/astrale.d.ts +5 -0
- package/dist/astrale.d.ts.map +1 -1
- package/dist/astrale.js +81 -2
- package/dist/astrale.js.map +1 -1
- package/package.json +3 -3
- package/src/astrale.ts +89 -3
package/dist/astrale.d.ts
CHANGED
|
@@ -29,4 +29,9 @@ import type { AstraleParams } from './params';
|
|
|
29
29
|
export declare function astrale(envs: Record<string, AstraleParams>): DomainAdapter<AstraleParams>;
|
|
30
30
|
/** Service name from the origin: first DNS label (e.g. `my-notes.example.dev` → `my-notes`). */
|
|
31
31
|
export declare function serviceNameFor(origin: string): string;
|
|
32
|
+
/** Per-instance-unique graph slug from the FULL origin (dots → dashes), e.g.
|
|
33
|
+
* `my-notes.example.dev` → `my-notes-example-dev`. The first DNS label alone
|
|
34
|
+
* (serviceNameFor) can collide across domains (`app.foo.dev` / `app.bar.dev`),
|
|
35
|
+
* so the service NODE is placed by this; the display name stays the short label. */
|
|
36
|
+
export declare function serviceSlugFor(origin: string): string;
|
|
32
37
|
//# sourceMappingURL=astrale.d.ts.map
|
package/dist/astrale.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"astrale.d.ts","sourceRoot":"","sources":["../src/astrale.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAmBpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAK7C,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,aAAa,CAAC,aAAa,CAAC,
|
|
1
|
+
{"version":3,"file":"astrale.d.ts","sourceRoot":"","sources":["../src/astrale.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAmBpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAK7C,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,aAAa,CAAC,aAAa,CAAC,CA8LzF;AAgED,gGAAgG;AAChG,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAGrD;AAED;;;oFAGoF;AACpF,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAKrD"}
|
package/dist/astrale.js
CHANGED
|
@@ -90,6 +90,20 @@ export function astrale(envs) {
|
|
|
90
90
|
// ship, produced locally with `wrangler deploy --dry-run` (no auth).
|
|
91
91
|
const { clientDir: _omitted, ...bundleCtx } = ctx;
|
|
92
92
|
const { configPath } = await prepare({}, bundleCtx, 'dev');
|
|
93
|
+
// The generated wrangler config is the single source of truth for the
|
|
94
|
+
// runtime contract the bundle is validated against (compat date + flags,
|
|
95
|
+
// incl. any `params.wrangler` overrides). Carry it to the managed deploy so
|
|
96
|
+
// the live script matches the local dry-run exactly — notably `nodejs_compat`
|
|
97
|
+
// for the `node:*` imports the worker runtime pulls in.
|
|
98
|
+
const wranglerConfig = JSON.parse(readFileSync(configPath, 'utf8'));
|
|
99
|
+
// Carry the worker's outbound service bindings (e.g. ROUTER → admin-router)
|
|
100
|
+
// to the managed deploy — without them the deployed worker can't ride the
|
|
101
|
+
// router to reach the kernel and its first credential verification 522s on
|
|
102
|
+
// the JWKS fetch. `SELF` is excluded: it targets the worker's LOCAL name,
|
|
103
|
+
// which the platform renames to the service node id on deploy.
|
|
104
|
+
const serviceBindings = (wranglerConfig.services ?? [])
|
|
105
|
+
.filter((s) => s.binding !== 'SELF')
|
|
106
|
+
.map((s) => ({ name: s.binding, service: s.service }));
|
|
93
107
|
const outDir = join(ctx.projectDir, '.astrale', 'dist-managed');
|
|
94
108
|
const bundlePath = await runWranglerBundle({
|
|
95
109
|
projectDir: ctx.projectDir,
|
|
@@ -107,8 +121,21 @@ export function astrale(envs) {
|
|
|
107
121
|
instance,
|
|
108
122
|
path: `/${servicesOrigin}/class.CloudflareWorker/deploy`,
|
|
109
123
|
data: {
|
|
124
|
+
// Graph placement of the service node (required by DeployParamsSchema).
|
|
125
|
+
// Root `/` always exists and the instance owner holds EDIT on it, while
|
|
126
|
+
// the services domain provisions no `/services` folder — so the service
|
|
127
|
+
// is a root child keyed by the origin slug (unique per instance); `name`
|
|
128
|
+
// stays the short display label.
|
|
129
|
+
path: `/${serviceSlugFor(ctx.domain.origin)}`,
|
|
110
130
|
name,
|
|
111
131
|
entry: 'index.mjs',
|
|
132
|
+
...(wranglerConfig.compatibility_date
|
|
133
|
+
? { compatibilityDate: wranglerConfig.compatibility_date }
|
|
134
|
+
: {}),
|
|
135
|
+
...(wranglerConfig.compatibility_flags
|
|
136
|
+
? { compatibilityFlags: wranglerConfig.compatibility_flags }
|
|
137
|
+
: {}),
|
|
138
|
+
...(serviceBindings.length ? { serviceBindings } : {}),
|
|
112
139
|
modules: [{ name: 'index.mjs', contentBase64: bundle.toString('base64'), kind: 'esm' }],
|
|
113
140
|
...(assetFiles.length
|
|
114
141
|
? {
|
|
@@ -146,6 +173,9 @@ export function astrale(envs) {
|
|
|
146
173
|
}
|
|
147
174
|
// 4. Install the domain on the instance from the hosted URL. The child
|
|
148
175
|
// kernel fetches the signed bundle, verifies it, and runs its postInstall.
|
|
176
|
+
// A managed deploy ALWAYS aliases identity — the domain's origin
|
|
177
|
+
// (`ctx.domain.origin`) is served from the platform host (`…svc.<routing>`)
|
|
178
|
+
// it never matches — so consent to the override is implicit and required.
|
|
149
179
|
log(`installing "${ctx.domain.origin}" on "${instance}" from ${url}…`);
|
|
150
180
|
await runAstrale(astraleBin(ctx.projectDir), ctx.projectDir, [
|
|
151
181
|
'instance',
|
|
@@ -153,6 +183,7 @@ export function astrale(envs) {
|
|
|
153
183
|
url,
|
|
154
184
|
'-i',
|
|
155
185
|
instance,
|
|
186
|
+
'--allow-identity-override',
|
|
156
187
|
'--json',
|
|
157
188
|
'--timeout',
|
|
158
189
|
'240000',
|
|
@@ -168,7 +199,42 @@ export function astrale(envs) {
|
|
|
168
199
|
},
|
|
169
200
|
});
|
|
170
201
|
}
|
|
171
|
-
/**
|
|
202
|
+
/** Serving MIME by file extension. The provider serves each asset with the type
|
|
203
|
+
* declared here VERBATIM — Cloudflare does NOT re-infer it from the path, so an
|
|
204
|
+
* unset type ships `application/octet-stream` and the browser DOWNLOADS the file
|
|
205
|
+
* (a blank page / "downloads bytes" when a view's SPA shell is fetched) instead
|
|
206
|
+
* of rendering it. Unknown extensions fall through to the provider's octet-stream
|
|
207
|
+
* default, which is the correct conservative choice. */
|
|
208
|
+
const ASSET_MIME = {
|
|
209
|
+
html: 'text/html; charset=utf-8',
|
|
210
|
+
js: 'text/javascript; charset=utf-8',
|
|
211
|
+
mjs: 'text/javascript; charset=utf-8',
|
|
212
|
+
css: 'text/css; charset=utf-8',
|
|
213
|
+
json: 'application/json; charset=utf-8',
|
|
214
|
+
map: 'application/json; charset=utf-8',
|
|
215
|
+
svg: 'image/svg+xml',
|
|
216
|
+
png: 'image/png',
|
|
217
|
+
jpg: 'image/jpeg',
|
|
218
|
+
jpeg: 'image/jpeg',
|
|
219
|
+
gif: 'image/gif',
|
|
220
|
+
webp: 'image/webp',
|
|
221
|
+
avif: 'image/avif',
|
|
222
|
+
ico: 'image/x-icon',
|
|
223
|
+
woff: 'font/woff',
|
|
224
|
+
woff2: 'font/woff2',
|
|
225
|
+
ttf: 'font/ttf',
|
|
226
|
+
otf: 'font/otf',
|
|
227
|
+
txt: 'text/plain; charset=utf-8',
|
|
228
|
+
xml: 'application/xml; charset=utf-8',
|
|
229
|
+
wasm: 'application/wasm',
|
|
230
|
+
webmanifest: 'application/manifest+json',
|
|
231
|
+
};
|
|
232
|
+
function assetMime(path) {
|
|
233
|
+
const dot = path.lastIndexOf('.');
|
|
234
|
+
return dot === -1 ? undefined : ASSET_MIME[path.slice(dot + 1).toLowerCase()];
|
|
235
|
+
}
|
|
236
|
+
/** Walk a built SPA dir into the services schema's `AssetFileSchema[]` (paths
|
|
237
|
+
* rooted at `/`), stamping each file's serving MIME from its extension. */
|
|
172
238
|
function readAssetFiles(distClientDir) {
|
|
173
239
|
const out = [];
|
|
174
240
|
if (!existsSync(distClientDir))
|
|
@@ -179,9 +245,12 @@ function readAssetFiles(distClientDir) {
|
|
|
179
245
|
if (statSync(full).isDirectory())
|
|
180
246
|
walk(full);
|
|
181
247
|
else {
|
|
248
|
+
const path = `/${relative(distClientDir, full).split('\\').join('/')}`;
|
|
249
|
+
const contentType = assetMime(path);
|
|
182
250
|
out.push({
|
|
183
|
-
path
|
|
251
|
+
path,
|
|
184
252
|
contentBase64: readFileSync(full).toString('base64'),
|
|
253
|
+
...(contentType ? { contentType } : {}),
|
|
185
254
|
});
|
|
186
255
|
}
|
|
187
256
|
}
|
|
@@ -194,6 +263,16 @@ export function serviceNameFor(origin) {
|
|
|
194
263
|
const label = origin.split('.')[0] ?? origin;
|
|
195
264
|
return label.toLowerCase().replace(/[^a-z0-9-]+/g, '-');
|
|
196
265
|
}
|
|
266
|
+
/** Per-instance-unique graph slug from the FULL origin (dots → dashes), e.g.
|
|
267
|
+
* `my-notes.example.dev` → `my-notes-example-dev`. The first DNS label alone
|
|
268
|
+
* (serviceNameFor) can collide across domains (`app.foo.dev` / `app.bar.dev`),
|
|
269
|
+
* so the service NODE is placed by this; the display name stays the short label. */
|
|
270
|
+
export function serviceSlugFor(origin) {
|
|
271
|
+
return origin
|
|
272
|
+
.toLowerCase()
|
|
273
|
+
.replace(/[^a-z0-9]+/g, '-')
|
|
274
|
+
.replace(/^-+|-+$/g, '');
|
|
275
|
+
}
|
|
197
276
|
/**
|
|
198
277
|
* Invoke the user's `astrale` CLI for one platform call (against the target
|
|
199
278
|
* INSTANCE) and parse its JSON output. The CLI owns identity (IdP session,
|
package/dist/astrale.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"astrale.js","sourceRoot":"","sources":["../src/astrale.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"astrale.js","sourceRoot":"","sources":["../src/astrale.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@astrale-os/adapter-astrale",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Deploy an Astrale domain as a managed service through the Astrale platform",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"adapter",
|
|
@@ -27,8 +27,8 @@
|
|
|
27
27
|
"./package.json": "./package.json"
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@astrale-os/
|
|
31
|
-
"@astrale-os/
|
|
30
|
+
"@astrale-os/sdk": "^0.1.7",
|
|
31
|
+
"@astrale-os/adapter-cloudflare": "^0.2.0"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
34
|
"@astrale-os/ox": ">=0.1.0 <1.0.0",
|
package/src/astrale.ts
CHANGED
|
@@ -119,6 +119,24 @@ export function astrale(envs: Record<string, AstraleParams>): DomainAdapter<Astr
|
|
|
119
119
|
// ship, produced locally with `wrangler deploy --dry-run` (no auth).
|
|
120
120
|
const { clientDir: _omitted, ...bundleCtx } = ctx
|
|
121
121
|
const { configPath } = await prepare({}, bundleCtx, 'dev')
|
|
122
|
+
// The generated wrangler config is the single source of truth for the
|
|
123
|
+
// runtime contract the bundle is validated against (compat date + flags,
|
|
124
|
+
// incl. any `params.wrangler` overrides). Carry it to the managed deploy so
|
|
125
|
+
// the live script matches the local dry-run exactly — notably `nodejs_compat`
|
|
126
|
+
// for the `node:*` imports the worker runtime pulls in.
|
|
127
|
+
const wranglerConfig = JSON.parse(readFileSync(configPath, 'utf8')) as {
|
|
128
|
+
compatibility_date?: string
|
|
129
|
+
compatibility_flags?: string[]
|
|
130
|
+
services?: Array<{ binding: string; service: string }>
|
|
131
|
+
}
|
|
132
|
+
// Carry the worker's outbound service bindings (e.g. ROUTER → admin-router)
|
|
133
|
+
// to the managed deploy — without them the deployed worker can't ride the
|
|
134
|
+
// router to reach the kernel and its first credential verification 522s on
|
|
135
|
+
// the JWKS fetch. `SELF` is excluded: it targets the worker's LOCAL name,
|
|
136
|
+
// which the platform renames to the service node id on deploy.
|
|
137
|
+
const serviceBindings = (wranglerConfig.services ?? [])
|
|
138
|
+
.filter((s) => s.binding !== 'SELF')
|
|
139
|
+
.map((s) => ({ name: s.binding, service: s.service }))
|
|
122
140
|
const outDir = join(ctx.projectDir, '.astrale', 'dist-managed')
|
|
123
141
|
const bundlePath = await runWranglerBundle({
|
|
124
142
|
projectDir: ctx.projectDir,
|
|
@@ -137,8 +155,21 @@ export function astrale(envs: Record<string, AstraleParams>): DomainAdapter<Astr
|
|
|
137
155
|
instance,
|
|
138
156
|
path: `/${servicesOrigin}/class.CloudflareWorker/deploy`,
|
|
139
157
|
data: {
|
|
158
|
+
// Graph placement of the service node (required by DeployParamsSchema).
|
|
159
|
+
// Root `/` always exists and the instance owner holds EDIT on it, while
|
|
160
|
+
// the services domain provisions no `/services` folder — so the service
|
|
161
|
+
// is a root child keyed by the origin slug (unique per instance); `name`
|
|
162
|
+
// stays the short display label.
|
|
163
|
+
path: `/${serviceSlugFor(ctx.domain.origin)}`,
|
|
140
164
|
name,
|
|
141
165
|
entry: 'index.mjs',
|
|
166
|
+
...(wranglerConfig.compatibility_date
|
|
167
|
+
? { compatibilityDate: wranglerConfig.compatibility_date }
|
|
168
|
+
: {}),
|
|
169
|
+
...(wranglerConfig.compatibility_flags
|
|
170
|
+
? { compatibilityFlags: wranglerConfig.compatibility_flags }
|
|
171
|
+
: {}),
|
|
172
|
+
...(serviceBindings.length ? { serviceBindings } : {}),
|
|
142
173
|
modules: [{ name: 'index.mjs', contentBase64: bundle.toString('base64'), kind: 'esm' }],
|
|
143
174
|
...(assetFiles.length
|
|
144
175
|
? {
|
|
@@ -180,6 +211,9 @@ export function astrale(envs: Record<string, AstraleParams>): DomainAdapter<Astr
|
|
|
180
211
|
|
|
181
212
|
// 4. Install the domain on the instance from the hosted URL. The child
|
|
182
213
|
// kernel fetches the signed bundle, verifies it, and runs its postInstall.
|
|
214
|
+
// A managed deploy ALWAYS aliases identity — the domain's origin
|
|
215
|
+
// (`ctx.domain.origin`) is served from the platform host (`…svc.<routing>`)
|
|
216
|
+
// it never matches — so consent to the override is implicit and required.
|
|
183
217
|
log(`installing "${ctx.domain.origin}" on "${instance}" from ${url}…`)
|
|
184
218
|
await runAstrale(astraleBin(ctx.projectDir), ctx.projectDir, [
|
|
185
219
|
'instance',
|
|
@@ -187,6 +221,7 @@ export function astrale(envs: Record<string, AstraleParams>): DomainAdapter<Astr
|
|
|
187
221
|
url,
|
|
188
222
|
'-i',
|
|
189
223
|
instance,
|
|
224
|
+
'--allow-identity-override',
|
|
190
225
|
'--json',
|
|
191
226
|
'--timeout',
|
|
192
227
|
'240000',
|
|
@@ -206,9 +241,46 @@ export function astrale(envs: Record<string, AstraleParams>): DomainAdapter<Astr
|
|
|
206
241
|
})
|
|
207
242
|
}
|
|
208
243
|
|
|
209
|
-
type AssetFile = { path: string; contentBase64: string }
|
|
244
|
+
type AssetFile = { path: string; contentBase64: string; contentType?: string }
|
|
245
|
+
|
|
246
|
+
/** Serving MIME by file extension. The provider serves each asset with the type
|
|
247
|
+
* declared here VERBATIM — Cloudflare does NOT re-infer it from the path, so an
|
|
248
|
+
* unset type ships `application/octet-stream` and the browser DOWNLOADS the file
|
|
249
|
+
* (a blank page / "downloads bytes" when a view's SPA shell is fetched) instead
|
|
250
|
+
* of rendering it. Unknown extensions fall through to the provider's octet-stream
|
|
251
|
+
* default, which is the correct conservative choice. */
|
|
252
|
+
const ASSET_MIME: Record<string, string> = {
|
|
253
|
+
html: 'text/html; charset=utf-8',
|
|
254
|
+
js: 'text/javascript; charset=utf-8',
|
|
255
|
+
mjs: 'text/javascript; charset=utf-8',
|
|
256
|
+
css: 'text/css; charset=utf-8',
|
|
257
|
+
json: 'application/json; charset=utf-8',
|
|
258
|
+
map: 'application/json; charset=utf-8',
|
|
259
|
+
svg: 'image/svg+xml',
|
|
260
|
+
png: 'image/png',
|
|
261
|
+
jpg: 'image/jpeg',
|
|
262
|
+
jpeg: 'image/jpeg',
|
|
263
|
+
gif: 'image/gif',
|
|
264
|
+
webp: 'image/webp',
|
|
265
|
+
avif: 'image/avif',
|
|
266
|
+
ico: 'image/x-icon',
|
|
267
|
+
woff: 'font/woff',
|
|
268
|
+
woff2: 'font/woff2',
|
|
269
|
+
ttf: 'font/ttf',
|
|
270
|
+
otf: 'font/otf',
|
|
271
|
+
txt: 'text/plain; charset=utf-8',
|
|
272
|
+
xml: 'application/xml; charset=utf-8',
|
|
273
|
+
wasm: 'application/wasm',
|
|
274
|
+
webmanifest: 'application/manifest+json',
|
|
275
|
+
}
|
|
210
276
|
|
|
211
|
-
|
|
277
|
+
function assetMime(path: string): string | undefined {
|
|
278
|
+
const dot = path.lastIndexOf('.')
|
|
279
|
+
return dot === -1 ? undefined : ASSET_MIME[path.slice(dot + 1).toLowerCase()]
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
/** Walk a built SPA dir into the services schema's `AssetFileSchema[]` (paths
|
|
283
|
+
* rooted at `/`), stamping each file's serving MIME from its extension. */
|
|
212
284
|
function readAssetFiles(distClientDir: string): AssetFile[] {
|
|
213
285
|
const out: AssetFile[] = []
|
|
214
286
|
if (!existsSync(distClientDir)) return out
|
|
@@ -217,9 +289,12 @@ function readAssetFiles(distClientDir: string): AssetFile[] {
|
|
|
217
289
|
const full = join(dir, entry)
|
|
218
290
|
if (statSync(full).isDirectory()) walk(full)
|
|
219
291
|
else {
|
|
292
|
+
const path = `/${relative(distClientDir, full).split('\\').join('/')}`
|
|
293
|
+
const contentType = assetMime(path)
|
|
220
294
|
out.push({
|
|
221
|
-
path
|
|
295
|
+
path,
|
|
222
296
|
contentBase64: readFileSync(full).toString('base64'),
|
|
297
|
+
...(contentType ? { contentType } : {}),
|
|
223
298
|
})
|
|
224
299
|
}
|
|
225
300
|
}
|
|
@@ -234,6 +309,17 @@ export function serviceNameFor(origin: string): string {
|
|
|
234
309
|
return label.toLowerCase().replace(/[^a-z0-9-]+/g, '-')
|
|
235
310
|
}
|
|
236
311
|
|
|
312
|
+
/** Per-instance-unique graph slug from the FULL origin (dots → dashes), e.g.
|
|
313
|
+
* `my-notes.example.dev` → `my-notes-example-dev`. The first DNS label alone
|
|
314
|
+
* (serviceNameFor) can collide across domains (`app.foo.dev` / `app.bar.dev`),
|
|
315
|
+
* so the service NODE is placed by this; the display name stays the short label. */
|
|
316
|
+
export function serviceSlugFor(origin: string): string {
|
|
317
|
+
return origin
|
|
318
|
+
.toLowerCase()
|
|
319
|
+
.replace(/[^a-z0-9]+/g, '-')
|
|
320
|
+
.replace(/^-+|-+$/g, '')
|
|
321
|
+
}
|
|
322
|
+
|
|
237
323
|
/**
|
|
238
324
|
* Invoke the user's `astrale` CLI for one platform call (against the target
|
|
239
325
|
* INSTANCE) and parse its JSON output. The CLI owns identity (IdP session,
|