@samebase/convex-hosting 0.14.0 → 0.15.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/CHANGELOG.md +32 -0
- package/README.md +69 -34
- package/dist/cli/convex.d.ts +6 -0
- package/dist/cli/convex.js +22 -1
- package/dist/cli/convex.js.map +1 -1
- package/dist/cli/files.js +6 -1
- package/dist/cli/files.js.map +1 -1
- package/dist/cli/main.js +138 -20
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/manifest.d.ts +19 -0
- package/dist/cli/manifest.js +71 -0
- package/dist/cli/manifest.js.map +1 -0
- package/dist/cli/site-config.d.ts +32 -0
- package/dist/cli/site-config.js +15 -0
- package/dist/cli/site-config.js.map +1 -0
- package/dist/client/answer.d.ts +16 -0
- package/dist/client/answer.js +51 -0
- package/dist/client/answer.js.map +1 -0
- package/dist/client/index.d.ts +23 -3
- package/dist/client/index.js +57 -78
- package/dist/client/index.js.map +1 -1
- package/dist/client/manifest.d.ts +68 -0
- package/dist/client/manifest.js +48 -0
- package/dist/client/manifest.js.map +1 -0
- package/dist/client/version-module.d.ts +1 -1
- package/dist/component/_generated/component.d.ts +2 -18
- package/dist/component/lib.d.ts +15 -46
- package/dist/component/lib.js +35 -134
- package/dist/component/lib.js.map +1 -1
- package/dist/component/schema.d.ts +2 -2
- package/dist/component/schema.js +2 -2
- package/dist/workers-sdk/packages/workers-shared/asset-worker/src/assets-manifest.d.ts +14 -0
- package/dist/workers-sdk/packages/workers-shared/asset-worker/src/assets-manifest.js +84 -0
- package/dist/workers-sdk/packages/workers-shared/asset-worker/src/assets-manifest.js.map +1 -0
- package/package.json +2 -1
package/dist/cli/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { NormalizedAssetConfig } from "../workers-sdk/packages/workers-shared/asset-worker/src/types.js";
|
|
2
|
+
import { type AssetFiles } from "../client/manifest.js";
|
|
3
|
+
/** One file of a version, as the upload knows it. */
|
|
4
|
+
export type AssetEntry = {
|
|
5
|
+
/** The URL path, such as `/assets/index-a1b2.js`. */
|
|
6
|
+
path: string;
|
|
7
|
+
/** The hex SHA-256 of the bytes. */
|
|
8
|
+
sha256: string;
|
|
9
|
+
contentType: string | undefined;
|
|
10
|
+
url: string;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Builds the files that serving reads. The manifest is encoded as Miniflare encodes it for
|
|
14
|
+
* `wrangler dev`: a 20-byte header, then one 40-byte entry per path, sorted by the path hash. The
|
|
15
|
+
* content hash covers the bytes and the content type, as Cloudflare's covers the bytes and the
|
|
16
|
+
* extension, so the same bytes under two types are two entries with two ETags. The storage URLs
|
|
17
|
+
* differ only in a key, so what they share is written once.
|
|
18
|
+
*/
|
|
19
|
+
export declare function buildAssetFiles(cloudUrl: string, config: NormalizedAssetConfig, entries: AssetEntry[]): AssetFiles;
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
2
|
+
import { CONTENT_HASH_OFFSET, CONTENT_HASH_SIZE, ENTRY_SIZE, HEADER_SIZE, PATH_HASH_OFFSET, PATH_HASH_SIZE, } from "../workers-sdk/packages/workers-shared/utils/constants.js";
|
|
3
|
+
import { NO_CONTENT_TYPE, TAIL_CONTENT_TYPE, TAIL_URL, } from "../client/manifest.js";
|
|
4
|
+
const sha256 = (text) => createHash("sha256").update(text).digest();
|
|
5
|
+
/**
|
|
6
|
+
* Builds the files that serving reads. The manifest is encoded as Miniflare encodes it for
|
|
7
|
+
* `wrangler dev`: a 20-byte header, then one 40-byte entry per path, sorted by the path hash. The
|
|
8
|
+
* content hash covers the bytes and the content type, as Cloudflare's covers the bytes and the
|
|
9
|
+
* extension, so the same bytes under two types are two entries with two ETags. The storage URLs
|
|
10
|
+
* differ only in a key, so what they share is written once.
|
|
11
|
+
*/
|
|
12
|
+
export function buildAssetFiles(cloudUrl, config, entries) {
|
|
13
|
+
// Sorted, so the same files write the same version file.
|
|
14
|
+
const urls = [...new Set(entries.map(({ url }) => url))].sort();
|
|
15
|
+
const contentTypes = [
|
|
16
|
+
...new Set(entries.flatMap(({ contentType }) => (contentType === undefined ? [] : [contentType]))),
|
|
17
|
+
].sort();
|
|
18
|
+
const urlIndex = new Map(urls.map((url, index) => [url, index]));
|
|
19
|
+
const urlPrefix = sharedStart(urls);
|
|
20
|
+
const urlSuffix = sharedEnd(urls.map((url) => url.slice(urlPrefix.length)));
|
|
21
|
+
const keys = urls.map((url) => url.slice(urlPrefix.length, url.length - urlSuffix.length));
|
|
22
|
+
const urlKeyWidth = keys.reduce((width, key) => Math.max(width, key.length), 0);
|
|
23
|
+
const contentTypeIndex = new Map(contentTypes.map((type, index) => [type, index]));
|
|
24
|
+
const sorted = entries
|
|
25
|
+
.map((entry) => ({ entry, pathHash: sha256(entry.path).subarray(0, PATH_HASH_SIZE) }))
|
|
26
|
+
.sort((a, b) => Buffer.compare(a.pathHash, b.pathHash));
|
|
27
|
+
const manifest = Buffer.alloc(HEADER_SIZE + sorted.length * ENTRY_SIZE);
|
|
28
|
+
sorted.forEach(({ entry, pathHash }, i) => {
|
|
29
|
+
const offset = HEADER_SIZE + i * ENTRY_SIZE;
|
|
30
|
+
pathHash.copy(manifest, offset + PATH_HASH_OFFSET);
|
|
31
|
+
sha256(`${entry.sha256}\n${entry.contentType ?? ""}`).copy(manifest, offset + CONTENT_HASH_OFFSET, 0, CONTENT_HASH_SIZE);
|
|
32
|
+
const tail = offset + CONTENT_HASH_OFFSET + CONTENT_HASH_SIZE;
|
|
33
|
+
manifest.writeUInt32BE(urlIndex.get(entry.url) ?? 0, tail + TAIL_URL);
|
|
34
|
+
manifest.writeUInt16BE(entry.contentType === undefined
|
|
35
|
+
? NO_CONTENT_TYPE
|
|
36
|
+
: (contentTypeIndex.get(entry.contentType) ?? 0), tail + TAIL_CONTENT_TYPE);
|
|
37
|
+
});
|
|
38
|
+
return {
|
|
39
|
+
cloudUrl,
|
|
40
|
+
config,
|
|
41
|
+
manifest: manifest.toString("base64"),
|
|
42
|
+
contentTypes,
|
|
43
|
+
urlPrefix,
|
|
44
|
+
urlSuffix,
|
|
45
|
+
urlKeys: keys.map((key) => key.padEnd(urlKeyWidth)).join(""),
|
|
46
|
+
urlKeyWidth,
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
function sharedStart(texts) {
|
|
50
|
+
let start = texts[0] ?? "";
|
|
51
|
+
for (const text of texts) {
|
|
52
|
+
let length = 0;
|
|
53
|
+
while (length < start.length && start[length] === text[length])
|
|
54
|
+
length++;
|
|
55
|
+
start = start.slice(0, length);
|
|
56
|
+
}
|
|
57
|
+
return start;
|
|
58
|
+
}
|
|
59
|
+
function sharedEnd(texts) {
|
|
60
|
+
let end = texts[0] ?? "";
|
|
61
|
+
for (const text of texts) {
|
|
62
|
+
let length = 0;
|
|
63
|
+
while (length < Math.min(end.length, text.length) &&
|
|
64
|
+
end[end.length - 1 - length] === text[text.length - 1 - length]) {
|
|
65
|
+
length++;
|
|
66
|
+
}
|
|
67
|
+
end = end.slice(end.length - length);
|
|
68
|
+
}
|
|
69
|
+
return end;
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=manifest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/cli/manifest.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { Config } from "../component/lib.js";
|
|
2
|
+
/** A version's config as Cloudflare's handler takes it, which the site carries. */
|
|
3
|
+
export declare function siteConfig(config: Config): Required<{
|
|
4
|
+
account_id?: number | undefined;
|
|
5
|
+
script_id?: number | undefined;
|
|
6
|
+
debug?: boolean | undefined;
|
|
7
|
+
compatibility_date?: string | undefined;
|
|
8
|
+
compatibility_flags?: string[] | undefined;
|
|
9
|
+
html_handling?: "auto-trailing-slash" | "drop-trailing-slash" | "force-trailing-slash" | "none" | undefined;
|
|
10
|
+
not_found_handling?: "404-page" | "none" | "single-page-application" | undefined;
|
|
11
|
+
base_path?: string | undefined;
|
|
12
|
+
redirects?: {
|
|
13
|
+
version: 1;
|
|
14
|
+
staticRules: Record<string, {
|
|
15
|
+
status: number;
|
|
16
|
+
to: string;
|
|
17
|
+
lineNumber: number;
|
|
18
|
+
}>;
|
|
19
|
+
rules: Record<string, {
|
|
20
|
+
status: number;
|
|
21
|
+
to: string;
|
|
22
|
+
}>;
|
|
23
|
+
} | undefined;
|
|
24
|
+
headers?: {
|
|
25
|
+
version: 2;
|
|
26
|
+
rules: Record<string, {
|
|
27
|
+
set?: Record<string, string> | undefined;
|
|
28
|
+
unset?: string[] | undefined;
|
|
29
|
+
}>;
|
|
30
|
+
} | undefined;
|
|
31
|
+
has_static_routing?: boolean | undefined;
|
|
32
|
+
}>;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { normalizeConfiguration } from "../workers-sdk/packages/workers-shared/asset-worker/src/configuration.js";
|
|
2
|
+
import { AssetConfigSchema } from "../workers-sdk/packages/workers-shared/utils/types.js";
|
|
3
|
+
/**
|
|
4
|
+
* The compatibility date of Cloudflare's handler. From 2025-04-01 on, Cloudflare applies
|
|
5
|
+
* `not_found_handling` to a request with `Sec-Fetch-Mode: navigate` when a Worker exists.
|
|
6
|
+
*/
|
|
7
|
+
const COMPATIBILITY_DATE = "2025-04-01";
|
|
8
|
+
/** A version's config as Cloudflare's handler takes it, which the site carries. */
|
|
9
|
+
export function siteConfig(config) {
|
|
10
|
+
return normalizeConfiguration({
|
|
11
|
+
...AssetConfigSchema.parse(config),
|
|
12
|
+
compatibility_date: COMPATIBILITY_DATE,
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=site-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"site-config.js","sourceRoot":"","sources":["../../src/cli/site-config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0EAA0E,CAAC;AAClH,OAAO,EAAE,iBAAiB,EAAE,MAAM,uDAAuD,CAAC;AAE1F;;;GAGG;AACH,MAAM,kBAAkB,GAAG,YAAY,CAAC;AAExC,mFAAmF;AACnF,MAAM,UAAU,UAAU,CAAC,MAAc;IACvC,OAAO,sBAAsB,CAAC;QAC5B,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC;QAClC,kBAAkB,EAAE,kBAAkB;KACvC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type AssetFiles } from "./manifest.js";
|
|
2
|
+
/** An answer of Cloudflare's handler, and the storage URL of its body, if it has one. */
|
|
3
|
+
export type Answer = {
|
|
4
|
+
status: number;
|
|
5
|
+
headers: Headers;
|
|
6
|
+
url: string | null;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Runs Cloudflare's asset handler for `request` against the version's files, or returns `null` when
|
|
10
|
+
* no asset answers. `hasUserWorker` is Cloudflare's `has_user_worker`: whether the app has code that
|
|
11
|
+
* answers a miss. With it, Cloudflare's router asks `canFetch` first, which keeps
|
|
12
|
+
* `not_found_handling` for navigations only, and the app answers the other misses. Without it,
|
|
13
|
+
* every request goes to `handleRequest`, so `not_found_handling` applies to all of them, and an
|
|
14
|
+
* asset always answers.
|
|
15
|
+
*/
|
|
16
|
+
export declare function answer(files: AssetFiles, request: Request, hasUserWorker: boolean): Promise<Answer | null>;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { Analytics } from "../workers-sdk/packages/workers-shared/asset-worker/src/analytics.js";
|
|
2
|
+
import { canFetch, handleRequest, } from "../workers-sdk/packages/workers-shared/asset-worker/src/handler.js";
|
|
3
|
+
import { mockJaegerBinding } from "../workers-sdk/packages/workers-shared/utils/tracing.js";
|
|
4
|
+
import { manifestLookup } from "./manifest.js";
|
|
5
|
+
/**
|
|
6
|
+
* Runs Cloudflare's asset handler for `request` against the version's files, or returns `null` when
|
|
7
|
+
* no asset answers. `hasUserWorker` is Cloudflare's `has_user_worker`: whether the app has code that
|
|
8
|
+
* answers a miss. With it, Cloudflare's router asks `canFetch` first, which keeps
|
|
9
|
+
* `not_found_handling` for navigations only, and the app answers the other misses. Without it,
|
|
10
|
+
* every request goes to `handleRequest`, so `not_found_handling` applies to all of them, and an
|
|
11
|
+
* asset always answers.
|
|
12
|
+
*/
|
|
13
|
+
export async function answer(files, request, hasUserWorker) {
|
|
14
|
+
const env = { JAEGER: mockJaegerBinding() };
|
|
15
|
+
// `exists` returns the entry's ETag; `getByETag` gets the entry back for that ETag.
|
|
16
|
+
const lookup = manifestLookup(files);
|
|
17
|
+
const found = new Map();
|
|
18
|
+
const exists = async (pathname) => {
|
|
19
|
+
const hit = await lookup(pathname);
|
|
20
|
+
if (hit === null)
|
|
21
|
+
return null;
|
|
22
|
+
found.set(hit.eTag, hit);
|
|
23
|
+
return hit.eTag;
|
|
24
|
+
};
|
|
25
|
+
let body;
|
|
26
|
+
const getByETag = async (eTag) => {
|
|
27
|
+
body = found.get(eTag);
|
|
28
|
+
if (body === undefined)
|
|
29
|
+
throw new Error(`No entry has the ETag ${eTag}.`);
|
|
30
|
+
return {
|
|
31
|
+
// `withBody` replaces this placeholder with the stored file.
|
|
32
|
+
readableStream: new ReadableStream(),
|
|
33
|
+
contentType: body.contentType,
|
|
34
|
+
cacheStatus: "MISS",
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
if (hasUserWorker && !(await canFetch(request, env, files.config, exists)))
|
|
38
|
+
return null;
|
|
39
|
+
const response = await handleRequest(request, env, files.config, exists, getByETag, new Analytics());
|
|
40
|
+
// It describes Cloudflare's cache, which does not exist here.
|
|
41
|
+
response.headers.delete("CF-Cache-Status");
|
|
42
|
+
// The deployment's Cloudflare front caches 404 answers on static paths.
|
|
43
|
+
if (response.status === 404)
|
|
44
|
+
response.headers.set("Cache-Control", "no-store");
|
|
45
|
+
return {
|
|
46
|
+
status: response.status,
|
|
47
|
+
headers: response.headers,
|
|
48
|
+
url: response.body !== null && body !== undefined ? body.url : null,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=answer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"answer.js","sourceRoot":"","sources":["../../src/client/answer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sEAAsE,CAAC;AACjG,OAAO,EACL,QAAQ,EACR,aAAa,GACd,MAAM,oEAAoE,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,yDAAyD,CAAC;AAC5F,OAAO,EAAE,cAAc,EAAqC,MAAM,eAAe,CAAC;AAKlF;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,KAAiB,EACjB,OAAgB,EAChB,aAAsB;IAEtB,MAAM,GAAG,GAAG,EAAE,MAAM,EAAE,iBAAiB,EAAE,EAAE,CAAC;IAC5C,oFAAoF;IACpF,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IACrC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAuB,CAAC;IAC7C,MAAM,MAAM,GAAG,KAAK,EAAE,QAAgB,EAAE,EAAE;QACxC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;QACnC,IAAI,GAAG,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAC9B,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACzB,OAAO,GAAG,CAAC,IAAI,CAAC;IAClB,CAAC,CAAC;IACF,IAAI,IAA6B,CAAC;IAClC,MAAM,SAAS,GAAG,KAAK,EAAE,IAAY,EAAE,EAAE;QACvC,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACvB,IAAI,IAAI,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,GAAG,CAAC,CAAC;QAC1E,OAAO;YACL,6DAA6D;YAC7D,cAAc,EAAE,IAAI,cAAc,EAAE;YACpC,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,WAAW,EAAE,MAAe;SAC7B,CAAC;IACJ,CAAC,CAAC;IAEF,IAAI,aAAa,IAAI,CAAC,CAAC,MAAM,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACxF,MAAM,QAAQ,GAAG,MAAM,aAAa,CAClC,OAAO,EACP,GAAG,EACH,KAAK,CAAC,MAAM,EACZ,MAAM,EACN,SAAS,EACT,IAAI,SAAS,EAAE,CAChB,CAAC;IACF,8DAA8D;IAC9D,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAC3C,wEAAwE;IACxE,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG;QAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;IAC/E,OAAO;QACL,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,GAAG,EAAE,QAAQ,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI;KACpE,CAAC;AACJ,CAAC"}
|
package/dist/client/index.d.ts
CHANGED
|
@@ -1,15 +1,35 @@
|
|
|
1
1
|
import "./runtime.js";
|
|
2
2
|
import { type HttpRouter, type PublicHttpAction } from "convex/server";
|
|
3
3
|
import type { ComponentApi } from "../component/_generated/component.js";
|
|
4
|
+
import { type Assets } from "./manifest.js";
|
|
5
|
+
export type { Assets } from "./manifest.js";
|
|
6
|
+
/** What `routeAll` routes, each named as Cloudflare and Convex name it. */
|
|
7
|
+
export type RouteAllOptions = {
|
|
8
|
+
/** The app's router, from `httpRouter()`. */
|
|
9
|
+
http: HttpRouter;
|
|
10
|
+
/** The installed component: `components.hosting`. */
|
|
11
|
+
component: ComponentApi;
|
|
12
|
+
/** `assets` from `.convex-hosting/version.js`, which `convex-hosting deploy` writes. */
|
|
13
|
+
assets: Assets;
|
|
14
|
+
/**
|
|
15
|
+
* The Worker script: the object with `fetch(request)` that the app's server entry exports, the
|
|
16
|
+
* code that runs on a miss. Without it, the site is assets only.
|
|
17
|
+
*/
|
|
18
|
+
worker?: {
|
|
19
|
+
fetch(request: Request): Promise<Response>;
|
|
20
|
+
};
|
|
21
|
+
};
|
|
4
22
|
/**
|
|
5
23
|
* Routes the site on the app's router: `serveSite`'s action for every method Convex routes, at
|
|
6
24
|
* every path, as every request reaches a Cloudflare Worker with static assets. Convex answers HEAD
|
|
7
25
|
* through GET.
|
|
8
26
|
*
|
|
27
|
+
* ```ts
|
|
28
|
+
* routeAll({ http, component: components.hosting, assets, worker: server });
|
|
29
|
+
* ```
|
|
30
|
+
*
|
|
9
31
|
* Returns the action, for the paths that a component's HTTP prefix would otherwise take: Convex
|
|
10
32
|
* picks an exact route first, then the longest prefix, so an app whose session routes sit under a
|
|
11
33
|
* component's prefix registers them with `http.route({ path, method, handler })`.
|
|
12
34
|
*/
|
|
13
|
-
export declare function routeAll(
|
|
14
|
-
fetch(request: Request): Promise<Response>;
|
|
15
|
-
}): PublicHttpAction;
|
|
35
|
+
export declare function routeAll(options: RouteAllOptions): PublicHttpAction;
|
package/dist/client/index.js
CHANGED
|
@@ -1,25 +1,51 @@
|
|
|
1
1
|
import "./runtime.js";
|
|
2
2
|
import { httpActionGeneric, ROUTABLE_HTTP_METHODS, } from "convex/server";
|
|
3
|
+
import { answer } from "./answer.js";
|
|
4
|
+
import { ASSETS_FORMAT, MARK_HEADER } from "./manifest.js";
|
|
3
5
|
/**
|
|
4
|
-
* The HTTP action that serves the site, for `routeAll`: it answers a request with
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
* request
|
|
6
|
+
* The HTTP action that serves the site, for `routeAll`: it answers a request with an asset (another
|
|
7
|
+
* method than GET or HEAD on an asset answers 405), else with what `worker` answers, else 404. As on
|
|
8
|
+
* Cloudflare, the presence of a Worker script decides how `not_found_handling` applies: with
|
|
9
|
+
* `worker`, it applies to navigations only and `worker` answers the other misses; without it, it
|
|
10
|
+
* applies to every request.
|
|
11
|
+
*
|
|
12
|
+
* The assets are in the pushed code, so a request calls no function of the component: a file costs
|
|
13
|
+
* this action and the download of its bytes, any other answer this action alone.
|
|
11
14
|
*
|
|
12
15
|
* A page and a 404 answer `Cache-Control: no-store`. The deployment's Cloudflare front keeps that
|
|
13
16
|
* for a path without an extension and replaces it with a four-hour browser `max-age` for a path
|
|
14
17
|
* with one, so a browser that asks for a script before its upload ended keeps the 404; the deploy
|
|
15
18
|
* order prevents that case, because no page refers to a file that is not uploaded yet.
|
|
16
19
|
*/
|
|
17
|
-
function serveSite(component,
|
|
20
|
+
function serveSite({ component, assets, worker }) {
|
|
18
21
|
return httpActionGeneric(async (ctx, request) => {
|
|
19
|
-
|
|
22
|
+
// Read first: a mark says when its request reached this code.
|
|
23
|
+
const arrivedAt = Date.now();
|
|
24
|
+
if (assets.format !== ASSETS_FORMAT) {
|
|
25
|
+
return notServed(500, `.convex-hosting/version.js has format ${assets.format}, and this release of ` +
|
|
26
|
+
`@samebase/convex-hosting reads format ${ASSETS_FORMAT}. Deploy again.`);
|
|
27
|
+
}
|
|
28
|
+
if (request.headers.get(MARK_HEADER) === assets.markToken) {
|
|
29
|
+
const result = await ctx.runMutation(component.lib.markLive, {
|
|
30
|
+
versionId: assets.versionId,
|
|
31
|
+
arrivedAt,
|
|
32
|
+
});
|
|
33
|
+
return Response.json({ versionId: assets.versionId, result }, { headers: NO_STORE });
|
|
34
|
+
}
|
|
35
|
+
const { files } = assets;
|
|
36
|
+
// A first install pushes before its upload; the deploy pushes again when the upload ends.
|
|
37
|
+
if (files === null) {
|
|
38
|
+
return notServed(404, `Version ${assets.versionId} of the site is not uploaded yet.`);
|
|
39
|
+
}
|
|
40
|
+
// The storage URLs name the deployment they were taken from.
|
|
41
|
+
if (files.cloudUrl !== process.env.CONVEX_CLOUD_URL) {
|
|
42
|
+
return notServed(404, `Version ${assets.versionId} of the site was uploaded to ${files.cloudUrl}, not to this ` +
|
|
43
|
+
`deployment. Deploy to this deployment with convex-hosting deploy.`);
|
|
44
|
+
}
|
|
45
|
+
const asset = await answer(files, request, worker !== undefined);
|
|
20
46
|
if (asset !== null)
|
|
21
|
-
return asset;
|
|
22
|
-
// `
|
|
47
|
+
return await withBody(asset);
|
|
48
|
+
// `answer` answers every assets-only request itself, so this 404 only fails closed.
|
|
23
49
|
if (worker === undefined)
|
|
24
50
|
return new Response(null, { status: 404, headers: NO_STORE });
|
|
25
51
|
const page = await worker.fetch(request);
|
|
@@ -33,87 +59,39 @@ function serveSite(component, versionId, worker) {
|
|
|
33
59
|
* every path, as every request reaches a Cloudflare Worker with static assets. Convex answers HEAD
|
|
34
60
|
* through GET.
|
|
35
61
|
*
|
|
62
|
+
* ```ts
|
|
63
|
+
* routeAll({ http, component: components.hosting, assets, worker: server });
|
|
64
|
+
* ```
|
|
65
|
+
*
|
|
36
66
|
* Returns the action, for the paths that a component's HTTP prefix would otherwise take: Convex
|
|
37
67
|
* picks an exact route first, then the longest prefix, so an app whose session routes sit under a
|
|
38
68
|
* component's prefix registers them with `http.route({ path, method, handler })`.
|
|
39
69
|
*/
|
|
40
|
-
export function routeAll(
|
|
41
|
-
const
|
|
70
|
+
export function routeAll(options) {
|
|
71
|
+
const action = serveSite(options);
|
|
42
72
|
for (const method of ROUTABLE_HTTP_METHODS) {
|
|
43
|
-
http.route({ pathPrefix: "/", method, handler:
|
|
73
|
+
options.http.route({ pathPrefix: "/", method, handler: action });
|
|
44
74
|
}
|
|
45
|
-
return
|
|
75
|
+
return action;
|
|
46
76
|
}
|
|
47
|
-
/**
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
* A version that does not exist, is still uploading, or is being deleted answers 404, so a
|
|
52
|
-
* half-installed site does not render pages without their files. The first request for a `ready`
|
|
53
|
-
* version marks it live, which deletes the versions that were live before it; a version older than
|
|
54
|
-
* the live one is never marked.
|
|
55
|
-
*/
|
|
56
|
-
async function answer(ctx, component, request, versionId, hasUserWorker) {
|
|
57
|
-
const { state, asset } = await ctx.runQuery(component.lib.route, {
|
|
58
|
-
versionId,
|
|
59
|
-
method: request.method,
|
|
60
|
-
url: request.url,
|
|
61
|
-
headers: handlerHeaders(request.headers),
|
|
62
|
-
hasUserWorker,
|
|
63
|
-
});
|
|
64
|
-
if (state === null || state === "uploading" || state === "deleting") {
|
|
65
|
-
const problem = state === null
|
|
66
|
-
? "does not exist"
|
|
67
|
-
: state === "uploading"
|
|
68
|
-
? "is still uploading"
|
|
69
|
-
: "is being deleted";
|
|
70
|
-
return new Response(`Version ${versionId} of the site ${problem}.`, {
|
|
71
|
-
status: 404,
|
|
72
|
-
headers: NO_STORE,
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
// Only the pushed code knows which version the deployment runs, so its first request reports it.
|
|
76
|
-
if (state === "ready") {
|
|
77
|
-
await ctx.runMutation(component.lib.markLive, { versionId });
|
|
78
|
-
}
|
|
79
|
-
if (asset === null)
|
|
80
|
-
return null;
|
|
81
|
-
const headers = new Headers();
|
|
82
|
-
for (const { name, value } of asset.headers)
|
|
83
|
-
headers.append(name, value);
|
|
84
|
-
if (asset.bodyUrl === null)
|
|
85
|
-
return new Response(null, { status: asset.status, headers });
|
|
77
|
+
/** The response of `asset`, with the stored file as its body when it has one. */
|
|
78
|
+
async function withBody(asset) {
|
|
79
|
+
if (asset.url === null)
|
|
80
|
+
return new Response(null, { status: asset.status, headers: asset.headers });
|
|
86
81
|
// An app cannot read a component's storage, so the body comes from the storage URL.
|
|
87
82
|
let stored;
|
|
88
83
|
try {
|
|
89
|
-
stored = await fetch(asset.
|
|
84
|
+
stored = await fetch(asset.url);
|
|
90
85
|
}
|
|
91
86
|
catch {
|
|
92
|
-
return
|
|
87
|
+
return new Response(null, { status: 502, headers: NO_STORE });
|
|
93
88
|
}
|
|
94
|
-
// A deploy deleted the file
|
|
89
|
+
// A deploy deleted the file: this code was replaced, and a later version's mark deleted it.
|
|
95
90
|
if (stored.status === 404)
|
|
96
91
|
return new Response(null, { status: 404, headers: NO_STORE });
|
|
97
92
|
if (!stored.ok)
|
|
98
|
-
return
|
|
99
|
-
return new Response(stored.body, { status: asset.status, headers });
|
|
100
|
-
}
|
|
101
|
-
/**
|
|
102
|
-
* The request headers that Cloudflare's handler reads. It reads only the presence of
|
|
103
|
-
* `Authorization` and `Range`, so their values (a credential, for one) stay out of the query.
|
|
104
|
-
*/
|
|
105
|
-
function handlerHeaders(headers) {
|
|
106
|
-
const picked = {};
|
|
107
|
-
for (const name of ["if-none-match", "sec-fetch-mode"]) {
|
|
108
|
-
const value = headers.get(name);
|
|
109
|
-
if (value !== null)
|
|
110
|
-
picked[name] = value;
|
|
111
|
-
}
|
|
112
|
-
for (const name of ["authorization", "range"]) {
|
|
113
|
-
if (headers.has(name))
|
|
114
|
-
picked[name] = "";
|
|
115
|
-
}
|
|
116
|
-
return picked;
|
|
93
|
+
return new Response(null, { status: 502, headers: NO_STORE });
|
|
94
|
+
return new Response(stored.body, { status: asset.status, headers: asset.headers });
|
|
117
95
|
}
|
|
118
96
|
/**
|
|
119
97
|
* For the answers that no uploaded file gives. The deployment's Cloudflare front caches 404 answers
|
|
@@ -121,7 +99,8 @@ function handlerHeaders(headers) {
|
|
|
121
99
|
* missing for hours (the 0.3.2 incident).
|
|
122
100
|
*/
|
|
123
101
|
const NO_STORE = { "Cache-Control": "no-store" };
|
|
124
|
-
|
|
125
|
-
|
|
102
|
+
/** A site that cannot serve this request, named in the body. */
|
|
103
|
+
function notServed(status, message) {
|
|
104
|
+
return new Response(message, { status, headers: NO_STORE });
|
|
126
105
|
}
|
|
127
106
|
//# sourceMappingURL=index.js.map
|
package/dist/client/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,CAAC;AACtB,OAAO,EACL,iBAAiB,EACjB,qBAAqB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import type { NormalizedAssetConfig } from "../workers-sdk/packages/workers-shared/asset-worker/src/types.js";
|
|
2
|
+
/**
|
|
3
|
+
* The format of `Assets`. `serveSite` refuses assets of another format, which only a deploy with
|
|
4
|
+
* another release of this package writes.
|
|
5
|
+
*/
|
|
6
|
+
export declare const ASSETS_FORMAT = 1;
|
|
7
|
+
/**
|
|
8
|
+
* The header with which the CLI, after the push, asks the served code to mark its version live. Its
|
|
9
|
+
* value is the site's `markToken`; a request without it is an ordinary request.
|
|
10
|
+
*/
|
|
11
|
+
export declare const MARK_HEADER = "Convex-Hosting-Mark";
|
|
12
|
+
/** The path of that request, which names it in logs; the header alone decides. */
|
|
13
|
+
export declare const MARK_PATH = "/.convex-hosting/mark";
|
|
14
|
+
/**
|
|
15
|
+
* The static assets of one version, as `.convex-hosting/version.js` exports them under `assets`,
|
|
16
|
+
* Cloudflare's name for them: the version's id, and everything that serving reads, so that a
|
|
17
|
+
* request reads no database. `files` is `null` in the code that a first install pushes before its
|
|
18
|
+
* upload, which serves nothing.
|
|
19
|
+
*/
|
|
20
|
+
export type Assets = {
|
|
21
|
+
/** `ASSETS_FORMAT` of the release that wrote it. */
|
|
22
|
+
format: number;
|
|
23
|
+
versionId: string;
|
|
24
|
+
/**
|
|
25
|
+
* The CLI sends it after the push, so that only the CLI makes the served code mark its version
|
|
26
|
+
* live; another request with the header pays nothing more than any other request.
|
|
27
|
+
*/
|
|
28
|
+
markToken: string;
|
|
29
|
+
files: AssetFiles | null;
|
|
30
|
+
};
|
|
31
|
+
export type AssetFiles = {
|
|
32
|
+
/** The deployment's `CONVEX_CLOUD_URL` at the upload: the origin of every storage URL. */
|
|
33
|
+
cloudUrl: string;
|
|
34
|
+
/** Cloudflare's normalized `AssetConfig` for the version, as its handler takes it. */
|
|
35
|
+
config: NormalizedAssetConfig;
|
|
36
|
+
/**
|
|
37
|
+
* Cloudflare's asset manifest, in base64, which Cloudflare's own reader searches. The tail of an
|
|
38
|
+
* entry, which Cloudflare leaves zero, holds the indexes of its URL and its content type.
|
|
39
|
+
*/
|
|
40
|
+
manifest: string;
|
|
41
|
+
contentTypes: string[];
|
|
42
|
+
/**
|
|
43
|
+
* The storage URL of each stored file is `urlPrefix`, its key, and `urlSuffix`. The keys are one
|
|
44
|
+
* string, `urlKeyWidth` characters each, padded with spaces: Convex evaluates the module for
|
|
45
|
+
* every request, and one string costs less than an array of 100,000.
|
|
46
|
+
*/
|
|
47
|
+
urlPrefix: string;
|
|
48
|
+
urlSuffix: string;
|
|
49
|
+
urlKeys: string;
|
|
50
|
+
urlKeyWidth: number;
|
|
51
|
+
};
|
|
52
|
+
/** Where an entry's tail, after the content hash, keeps the index of its URL (a big-endian u32). */
|
|
53
|
+
export declare const TAIL_URL = 0;
|
|
54
|
+
/** Where the tail keeps the index of the content type (a big-endian u16). */
|
|
55
|
+
export declare const TAIL_CONTENT_TYPE = 4;
|
|
56
|
+
/** The content type index of an entry without a content type. */
|
|
57
|
+
export declare const NO_CONTENT_TYPE = 65535;
|
|
58
|
+
export type ManifestHit = {
|
|
59
|
+
/** The hex of the content hash, which is the ETag, as on Cloudflare. */
|
|
60
|
+
eTag: string;
|
|
61
|
+
url: string;
|
|
62
|
+
contentType: string | undefined;
|
|
63
|
+
};
|
|
64
|
+
/**
|
|
65
|
+
* Decodes the manifest once, like Cloudflare's `AssetsManifest`, and returns its lookup: it finds the
|
|
66
|
+
* entry of a path with Cloudflare's binary search, or returns `null`.
|
|
67
|
+
*/
|
|
68
|
+
export declare function manifestLookup(files: AssetFiles): (path: string) => Promise<ManifestHit | null>;
|