@samebase/convex-hosting 0.0.0-stage → 0.3.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 (116) hide show
  1. package/CHANGELOG.md +127 -0
  2. package/INTEGRATION.md +399 -0
  3. package/LICENSE +201 -0
  4. package/NOTICE +7 -0
  5. package/README.md +470 -2
  6. package/dist/cli/args.d.ts +28 -0
  7. package/dist/cli/args.d.ts.map +1 -0
  8. package/dist/cli/args.js +148 -0
  9. package/dist/cli/args.js.map +1 -0
  10. package/dist/cli/argumentChunks.d.ts +3 -0
  11. package/dist/cli/argumentChunks.d.ts.map +1 -0
  12. package/dist/cli/argumentChunks.js +29 -0
  13. package/dist/cli/argumentChunks.js.map +1 -0
  14. package/dist/cli/commands.d.ts +8 -0
  15. package/dist/cli/commands.d.ts.map +1 -0
  16. package/dist/cli/commands.js +56 -0
  17. package/dist/cli/commands.js.map +1 -0
  18. package/dist/cli/componentName.d.ts +32 -0
  19. package/dist/cli/componentName.d.ts.map +1 -0
  20. package/dist/cli/componentName.js +43 -0
  21. package/dist/cli/componentName.js.map +1 -0
  22. package/dist/cli/deploy.d.ts +16 -0
  23. package/dist/cli/deploy.d.ts.map +1 -0
  24. package/dist/cli/deploy.js +283 -0
  25. package/dist/cli/deploy.js.map +1 -0
  26. package/dist/cli/deployEnvironment.d.ts +10 -0
  27. package/dist/cli/deployEnvironment.d.ts.map +1 -0
  28. package/dist/cli/deployEnvironment.js +12 -0
  29. package/dist/cli/deployEnvironment.js.map +1 -0
  30. package/dist/cli/index.d.ts +12 -0
  31. package/dist/cli/index.d.ts.map +1 -0
  32. package/dist/cli/index.js +60 -0
  33. package/dist/cli/index.js.map +1 -0
  34. package/dist/cli/upload.d.ts +22 -0
  35. package/dist/cli/upload.d.ts.map +1 -0
  36. package/dist/cli/upload.js +668 -0
  37. package/dist/cli/upload.js.map +1 -0
  38. package/dist/client/_generated/_ignore.d.ts +1 -0
  39. package/dist/client/_generated/_ignore.d.ts.map +1 -0
  40. package/dist/client/_generated/_ignore.js +3 -0
  41. package/dist/client/_generated/_ignore.js.map +1 -0
  42. package/dist/client/index.d.ts +119 -0
  43. package/dist/client/index.d.ts.map +1 -0
  44. package/dist/client/index.js +272 -0
  45. package/dist/client/index.js.map +1 -0
  46. package/dist/component/_generated/api.d.ts +38 -0
  47. package/dist/component/_generated/api.d.ts.map +1 -0
  48. package/dist/component/_generated/api.js +31 -0
  49. package/dist/component/_generated/api.js.map +1 -0
  50. package/dist/component/_generated/component.d.ts +43 -0
  51. package/dist/component/_generated/component.d.ts.map +1 -0
  52. package/dist/component/_generated/component.js +11 -0
  53. package/dist/component/_generated/component.js.map +1 -0
  54. package/dist/component/_generated/dataModel.d.ts +46 -0
  55. package/dist/component/_generated/dataModel.d.ts.map +1 -0
  56. package/dist/component/_generated/dataModel.js +11 -0
  57. package/dist/component/_generated/dataModel.js.map +1 -0
  58. package/dist/component/_generated/server.d.ts +121 -0
  59. package/dist/component/_generated/server.d.ts.map +1 -0
  60. package/dist/component/_generated/server.js +78 -0
  61. package/dist/component/_generated/server.js.map +1 -0
  62. package/dist/component/convex.config.d.ts +3 -0
  63. package/dist/component/convex.config.d.ts.map +1 -0
  64. package/dist/component/convex.config.js +3 -0
  65. package/dist/component/convex.config.js.map +1 -0
  66. package/dist/component/http.d.ts +4 -0
  67. package/dist/component/http.d.ts.map +1 -0
  68. package/dist/component/http.js +125 -0
  69. package/dist/component/http.js.map +1 -0
  70. package/dist/component/lib.d.ts +164 -0
  71. package/dist/component/lib.d.ts.map +1 -0
  72. package/dist/component/lib.js +768 -0
  73. package/dist/component/lib.js.map +1 -0
  74. package/dist/component/schema.d.ts +84 -0
  75. package/dist/component/schema.d.ts.map +1 -0
  76. package/dist/component/schema.js +69 -0
  77. package/dist/component/schema.js.map +1 -0
  78. package/dist/component/serving.d.ts +17 -0
  79. package/dist/component/serving.d.ts.map +1 -0
  80. package/dist/component/serving.js +150 -0
  81. package/dist/component/serving.js.map +1 -0
  82. package/dist/react/index.d.ts +59 -0
  83. package/dist/react/index.d.ts.map +1 -0
  84. package/dist/react/index.js +137 -0
  85. package/dist/react/index.js.map +1 -0
  86. package/package.json +78 -3
  87. package/src/cli/args.test.ts +79 -0
  88. package/src/cli/args.ts +153 -0
  89. package/src/cli/argumentChunks.test.ts +27 -0
  90. package/src/cli/argumentChunks.ts +40 -0
  91. package/src/cli/commands.ts +68 -0
  92. package/src/cli/componentName.test.ts +41 -0
  93. package/src/cli/componentName.ts +46 -0
  94. package/src/cli/deploy.ts +336 -0
  95. package/src/cli/deployEnvironment.test.ts +27 -0
  96. package/src/cli/deployEnvironment.ts +17 -0
  97. package/src/cli/index.ts +65 -0
  98. package/src/cli/upload.ts +885 -0
  99. package/src/client/_generated/_ignore.ts +1 -0
  100. package/src/client/index.test.ts +510 -0
  101. package/src/client/index.ts +355 -0
  102. package/src/client/setup.test.ts +22 -0
  103. package/src/component/_generated/api.ts +54 -0
  104. package/src/component/_generated/component.ts +55 -0
  105. package/src/component/_generated/dataModel.ts +60 -0
  106. package/src/component/_generated/server.ts +156 -0
  107. package/src/component/convex.config.ts +3 -0
  108. package/src/component/http.test.ts +223 -0
  109. package/src/component/http.ts +144 -0
  110. package/src/component/lib.test.ts +1007 -0
  111. package/src/component/lib.ts +862 -0
  112. package/src/component/schema.ts +75 -0
  113. package/src/component/serving.ts +158 -0
  114. package/src/component/setup.test.ts +11 -0
  115. package/src/react/index.tsx +197 -0
  116. package/src/test.ts +23 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lib.js","sourceRoot":"","sources":["../../src/component/lib.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,84 @@
1
+ declare const _default: import("convex/server").SchemaDefinition<{
2
+ staticAssets: import("convex/server").TableDefinition<import("convex/values").VObject<{
3
+ storageId?: import("convex/values").GenericId<"_storage"> | undefined;
4
+ blobId?: string | undefined;
5
+ path: string;
6
+ deploymentId: string;
7
+ contentType: string;
8
+ }, {
9
+ path: import("convex/values").VString<string, "required">;
10
+ storageId: import("convex/values").VId<import("convex/values").GenericId<"_storage"> | undefined, "optional">;
11
+ blobId: import("convex/values").VString<string | undefined, "optional">;
12
+ contentType: import("convex/values").VString<string, "required">;
13
+ deploymentId: import("convex/values").VString<string, "required">;
14
+ }, "required", "path" | "deploymentId" | "storageId" | "blobId" | "contentType">, {
15
+ by_path: ["path", "_creationTime"];
16
+ by_deploymentId: ["deploymentId", "_creationTime"];
17
+ by_storageId: ["storageId", "_creationTime"];
18
+ }, {}, {}>;
19
+ retiredAssets: import("convex/server").TableDefinition<import("convex/values").VObject<{
20
+ path: string;
21
+ deploymentId: string;
22
+ storageId: import("convex/values").GenericId<"_storage">;
23
+ contentType: string;
24
+ expiresAt: number;
25
+ }, {
26
+ path: import("convex/values").VString<string, "required">;
27
+ storageId: import("convex/values").VId<import("convex/values").GenericId<"_storage">, "required">;
28
+ contentType: import("convex/values").VString<string, "required">;
29
+ deploymentId: import("convex/values").VString<string, "required">;
30
+ expiresAt: import("convex/values").VFloat64<number, "required">;
31
+ }, "required", "path" | "deploymentId" | "storageId" | "contentType" | "expiresAt">, {
32
+ by_path: ["path", "_creationTime"];
33
+ by_storageId: ["storageId", "_creationTime"];
34
+ by_expiresAt: ["expiresAt", "_creationTime"];
35
+ }, {}, {}>;
36
+ stagedAssets: import("convex/server").TableDefinition<import("convex/values").VObject<{
37
+ storageId?: import("convex/values").GenericId<"_storage"> | undefined;
38
+ blobId?: string | undefined;
39
+ path: string;
40
+ deploymentId: string;
41
+ contentType: string;
42
+ }, {
43
+ path: import("convex/values").VString<string, "required">;
44
+ storageId: import("convex/values").VId<import("convex/values").GenericId<"_storage"> | undefined, "optional">;
45
+ blobId: import("convex/values").VString<string | undefined, "optional">;
46
+ contentType: import("convex/values").VString<string, "required">;
47
+ deploymentId: import("convex/values").VString<string, "required">;
48
+ }, "required", "path" | "deploymentId" | "storageId" | "blobId" | "contentType">, {
49
+ by_deploymentId: ["deploymentId", "_creationTime"];
50
+ by_storageId: ["storageId", "_creationTime"];
51
+ }, {}, {}>;
52
+ pendingBlobCleanup: import("convex/server").TableDefinition<import("convex/values").VObject<{
53
+ blobId: string;
54
+ }, {
55
+ blobId: import("convex/values").VString<string, "required">;
56
+ }, "required", "blobId">, {
57
+ by_blobId: ["blobId", "_creationTime"];
58
+ }, {}, {}>;
59
+ pendingStorageCleanup: import("convex/server").TableDefinition<import("convex/values").VObject<{
60
+ storageId: import("convex/values").GenericId<"_storage">;
61
+ }, {
62
+ storageId: import("convex/values").VId<import("convex/values").GenericId<"_storage">, "required">;
63
+ }, "required", "storageId">, {
64
+ by_storageId: ["storageId", "_creationTime"];
65
+ }, {}, {}>;
66
+ cleanupState: import("convex/server").TableDefinition<import("convex/values").VObject<{
67
+ pendingBlobCleanupCount: number;
68
+ }, {
69
+ pendingBlobCleanupCount: import("convex/values").VFloat64<number, "required">;
70
+ }, "required", "pendingBlobCleanupCount">, {}, {}, {}>;
71
+ deploymentInfo: import("convex/server").TableDefinition<import("convex/values").VObject<{
72
+ spaFallback?: boolean | undefined;
73
+ pendingBlobCleanupCount?: number | undefined;
74
+ currentDeploymentId: string;
75
+ deployedAt: number;
76
+ }, {
77
+ currentDeploymentId: import("convex/values").VString<string, "required">;
78
+ deployedAt: import("convex/values").VFloat64<number, "required">;
79
+ spaFallback: import("convex/values").VBoolean<boolean | undefined, "optional">;
80
+ pendingBlobCleanupCount: import("convex/values").VFloat64<number | undefined, "optional">;
81
+ }, "required", "currentDeploymentId" | "spaFallback" | "pendingBlobCleanupCount" | "deployedAt">, {}, {}, {}>;
82
+ }, true>;
83
+ export default _default;
84
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/component/schema.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,wBAuEG"}
@@ -0,0 +1,69 @@
1
+ import { defineSchema, defineTable } from "convex/server";
2
+ import { v } from "convex/values";
3
+ export default defineSchema({
4
+ staticAssets: defineTable({
5
+ path: v.string(), // URL path, e.g., "/index.html", "/assets/main-abc123.js"
6
+ storageId: v.optional(v.id("_storage")), // Reference to Convex file storage (used for HTML + non-CDN assets)
7
+ blobId: v.optional(v.string()), // convex-fs blob ID (used for CDN-served assets)
8
+ contentType: v.string(), // MIME type, e.g., "text/html; charset=utf-8"
9
+ deploymentId: v.string(), // UUID for garbage collection
10
+ })
11
+ .index("by_path", ["path"])
12
+ .index("by_deploymentId", ["deploymentId"])
13
+ .index("by_storageId", ["storageId"]),
14
+ // Publication moves replaced storage files here. Missing non-HTML paths with
15
+ // an extension can still resolve to these files. A later upload removes them
16
+ // after expiresAt, at least seven days after replacement.
17
+ retiredAssets: defineTable({
18
+ path: v.string(),
19
+ storageId: v.id("_storage"),
20
+ contentType: v.string(),
21
+ deploymentId: v.string(),
22
+ expiresAt: v.number(),
23
+ })
24
+ .index("by_path", ["path"])
25
+ .index("by_storageId", ["storageId"])
26
+ .index("by_expiresAt", ["expiresAt"]),
27
+ // Uploads stage their manifest in small chunks because the Convex CLI takes
28
+ // function arguments on the command line. Only publishDeployment copies a
29
+ // complete staged manifest into staticAssets, so partial uploads are never
30
+ // visible to HTTP requests.
31
+ stagedAssets: defineTable({
32
+ path: v.string(),
33
+ storageId: v.optional(v.id("_storage")),
34
+ blobId: v.optional(v.string()),
35
+ contentType: v.string(),
36
+ deploymentId: v.string(),
37
+ })
38
+ .index("by_deploymentId", ["deploymentId"])
39
+ .index("by_storageId", ["storageId"]),
40
+ // Old ConvexFS blobs are app-owned, so the component cannot delete them.
41
+ // Persist the IDs until the CLI's app-level delete function succeeds. This
42
+ // also makes cleanup recoverable when a publish response is lost.
43
+ pendingBlobCleanup: defineTable({
44
+ blobId: v.string(),
45
+ }).index("by_blobId", ["blobId"]),
46
+ // Storage IDs from the previous live manifest are queued by the atomic
47
+ // publish, then deleted in bounded follow-up mutations. This avoids both a
48
+ // large publish transaction and races with unrelated concurrent uploads.
49
+ pendingStorageCleanup: defineTable({
50
+ storageId: v.id("_storage"),
51
+ }).index("by_storageId", ["storageId"]),
52
+ // Cleanup may be queued before the first successful deployment exists, so
53
+ // its count cannot live only on deploymentInfo.
54
+ cleanupState: defineTable({
55
+ pendingBlobCleanupCount: v.number(),
56
+ }),
57
+ // Singleton table to track the current deployment
58
+ // Clients subscribe to this to know when to reload
59
+ deploymentInfo: defineTable({
60
+ currentDeploymentId: v.string(),
61
+ deployedAt: v.number(), // timestamp
62
+ // SPA fallback config for the current deployment. Set at upload time
63
+ // (`--no-spa` turns it off). Absent means enabled. Travels with the
64
+ // deploy so the serving behavior matches the code that was shipped.
65
+ spaFallback: v.optional(v.boolean()),
66
+ pendingBlobCleanupCount: v.optional(v.number()),
67
+ }),
68
+ });
69
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/component/schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ export declare function getSetupHtml(): string;
2
+ export declare function getMimeType(path: string): string;
3
+ export declare function hasFileExtension(path: string): boolean;
4
+ export declare function isHashedAsset(path: string): boolean;
5
+ export declare function isHtmlContentType(contentType: string): boolean;
6
+ export declare function cacheControlFor(path: string): string;
7
+ /**
8
+ * Decode the URL pathname before looking it up in the asset table. A malformed
9
+ * escape sequence is a bad request, not a missing static asset.
10
+ */
11
+ export declare function decodeRequestPath(pathname: string): string | null;
12
+ /**
13
+ * If-None-Match uses weak comparison for GET and HEAD requests. Browsers and
14
+ * proxies may send a weak validator or a comma-separated list of validators.
15
+ */
16
+ export declare function etagMatches(ifNoneMatch: string | null, currentEtag: string): boolean;
17
+ //# sourceMappingURL=serving.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serving.d.ts","sourceRoot":"","sources":["../../src/component/serving.ts"],"names":[],"mappings":"AA0BA,wBAAgB,YAAY,IAAI,MAAM,CA0ErC;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGhD;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGtD;AAMD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGnD;AAED,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAE9D;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIpD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAMjE;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAUpF"}
@@ -0,0 +1,150 @@
1
+ // Pure, dependency-free helpers shared by the HTTP handler (http.ts) and the
2
+ // asset-resolution query (lib.ts). Kept separate so lib.ts can reuse them
3
+ // without importing the HTTP router.
4
+ const MIME_TYPES = {
5
+ ".html": "text/html; charset=utf-8",
6
+ ".js": "application/javascript; charset=utf-8",
7
+ ".mjs": "application/javascript; charset=utf-8",
8
+ ".css": "text/css; charset=utf-8",
9
+ ".json": "application/json; charset=utf-8",
10
+ ".png": "image/png",
11
+ ".jpg": "image/jpeg",
12
+ ".jpeg": "image/jpeg",
13
+ ".gif": "image/gif",
14
+ ".svg": "image/svg+xml",
15
+ ".ico": "image/x-icon",
16
+ ".webp": "image/webp",
17
+ ".woff": "font/woff",
18
+ ".woff2": "font/woff2",
19
+ ".ttf": "font/ttf",
20
+ ".txt": "text/plain; charset=utf-8",
21
+ ".map": "application/json",
22
+ ".webmanifest": "application/manifest+json",
23
+ ".xml": "application/xml",
24
+ };
25
+ export function getSetupHtml() {
26
+ return `<!DOCTYPE html>
27
+ <html lang="en">
28
+ <head>
29
+ <meta charset="UTF-8">
30
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
31
+ <title>Convex Hosting</title>
32
+ <style>
33
+ * { box-sizing: border-box; }
34
+ body {
35
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
36
+ max-width: 640px;
37
+ margin: 0 auto;
38
+ padding: 40px 20px;
39
+ background: #fafafa;
40
+ color: #333;
41
+ line-height: 1.6;
42
+ }
43
+ h1 { color: #111; margin-bottom: 8px; }
44
+ .subtitle { color: #666; margin-bottom: 32px; }
45
+ code {
46
+ background: #e8e8e8;
47
+ padding: 2px 6px;
48
+ border-radius: 4px;
49
+ font-size: 14px;
50
+ }
51
+ pre {
52
+ background: #1a1a1a;
53
+ color: #f0f0f0;
54
+ padding: 16px;
55
+ border-radius: 8px;
56
+ overflow-x: auto;
57
+ font-size: 14px;
58
+ }
59
+ .step { margin-bottom: 24px; }
60
+ .step-num {
61
+ display: inline-block;
62
+ background: #333;
63
+ color: white;
64
+ width: 24px;
65
+ height: 24px;
66
+ border-radius: 50%;
67
+ text-align: center;
68
+ font-size: 14px;
69
+ line-height: 24px;
70
+ margin-right: 8px;
71
+ }
72
+ a { color: #0070f3; }
73
+ </style>
74
+ </head>
75
+ <body>
76
+ <h1>Almost there!</h1>
77
+ <p class="subtitle">Your Convex backend is running, but no static files have been deployed yet.</p>
78
+
79
+ <div class="step">
80
+ <span class="step-num">1</span>
81
+ <strong>Build your frontend</strong>
82
+ <pre>npm run build</pre>
83
+ </div>
84
+
85
+ <div class="step">
86
+ <span class="step-num">2</span>
87
+ <strong>Deploy your static files</strong>
88
+ <pre>npx @samebase/convex-hosting deploy</pre>
89
+ </div>
90
+
91
+ <p>Or deploy everything in one command:</p>
92
+ <pre>npm run deploy</pre>
93
+
94
+ <p style="margin-top: 32px; color: #666; font-size: 14px;">
95
+ Learn more at <a href="https://github.com/samebase/convex-hosting">github.com/samebase/convex-hosting</a>
96
+ </p>
97
+ </body>
98
+ </html>`;
99
+ }
100
+ export function getMimeType(path) {
101
+ const ext = path.substring(path.lastIndexOf(".")).toLowerCase();
102
+ return MIME_TYPES[ext] || "application/octet-stream";
103
+ }
104
+ export function hasFileExtension(path) {
105
+ const lastSegment = path.split("/").pop() || "";
106
+ return lastSegment.includes(".") && !lastSegment.startsWith(".");
107
+ }
108
+ // Bundler content-hash suffix: e.g. `index-lj_vq_aF.js`,
109
+ // `index-D3LP-ukt.js`, or `style-B71cUw87.css`. Requiring at least one
110
+ // non-letter avoids treating ordinary names such as `privacy-policy.html` as
111
+ // content-addressed assets.
112
+ export function isHashedAsset(path) {
113
+ const match = path.match(/[-.]([\dA-Za-z_-]{6,32})\.[A-Za-z\d]+$/);
114
+ return match !== null && /[\d_-]/.test(match[1]);
115
+ }
116
+ export function isHtmlContentType(contentType) {
117
+ return contentType.startsWith("text/html");
118
+ }
119
+ export function cacheControlFor(path) {
120
+ return !path.toLowerCase().endsWith(".html") && isHashedAsset(path)
121
+ ? "public, max-age=31536000, immutable"
122
+ : "public, max-age=0, must-revalidate";
123
+ }
124
+ /**
125
+ * Decode the URL pathname before looking it up in the asset table. A malformed
126
+ * escape sequence is a bad request, not a missing static asset.
127
+ */
128
+ export function decodeRequestPath(pathname) {
129
+ try {
130
+ return decodeURIComponent(pathname);
131
+ }
132
+ catch {
133
+ return null;
134
+ }
135
+ }
136
+ /**
137
+ * If-None-Match uses weak comparison for GET and HEAD requests. Browsers and
138
+ * proxies may send a weak validator or a comma-separated list of validators.
139
+ */
140
+ export function etagMatches(ifNoneMatch, currentEtag) {
141
+ if (!ifNoneMatch)
142
+ return false;
143
+ const normalize = (value) => value.trim().replace(/^W\//, "").trim();
144
+ const normalizedCurrent = normalize(currentEtag);
145
+ return ifNoneMatch.split(",").some((candidate) => {
146
+ const normalizedCandidate = normalize(candidate);
147
+ return normalizedCandidate === "*" || normalizedCandidate === normalizedCurrent;
148
+ });
149
+ }
150
+ //# sourceMappingURL=serving.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serving.js","sourceRoot":"","sources":["../../src/component/serving.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,0EAA0E;AAC1E,qCAAqC;AAErC,MAAM,UAAU,GAA2B;IACzC,OAAO,EAAE,0BAA0B;IACnC,KAAK,EAAE,uCAAuC;IAC9C,MAAM,EAAE,uCAAuC;IAC/C,MAAM,EAAE,yBAAyB;IACjC,OAAO,EAAE,iCAAiC;IAC1C,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,YAAY;IACpB,OAAO,EAAE,YAAY;IACrB,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,eAAe;IACvB,MAAM,EAAE,cAAc;IACtB,OAAO,EAAE,YAAY;IACrB,OAAO,EAAE,WAAW;IACpB,QAAQ,EAAE,YAAY;IACtB,MAAM,EAAE,UAAU;IAClB,MAAM,EAAE,2BAA2B;IACnC,MAAM,EAAE,kBAAkB;IAC1B,cAAc,EAAE,2BAA2B;IAC3C,MAAM,EAAE,iBAAiB;CAC1B,CAAC;AAEF,MAAM,UAAU,YAAY;IAC1B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAwED,CAAC;AACT,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAChE,OAAO,UAAU,CAAC,GAAG,CAAC,IAAI,0BAA0B,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;IAChD,OAAO,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACnE,CAAC;AAED,yDAAyD;AACzD,uEAAuE;AACvE,6EAA6E;AAC7E,4BAA4B;AAC5B,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;IACnE,OAAO,KAAK,KAAK,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,WAAmB;IACnD,OAAO,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC;QACjE,CAAC,CAAC,qCAAqC;QACvC,CAAC,CAAC,oCAAoC,CAAC;AAC3C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAgB;IAChD,IAAI,CAAC;QACH,OAAO,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,WAA0B,EAAE,WAAmB;IACzE,IAAI,CAAC,WAAW;QAAE,OAAO,KAAK,CAAC;IAE/B,MAAM,SAAS,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7E,MAAM,iBAAiB,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;IAEjD,OAAO,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE;QAC/C,MAAM,mBAAmB,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;QACjD,OAAO,mBAAmB,KAAK,GAAG,IAAI,mBAAmB,KAAK,iBAAiB,CAAC;IAClF,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,59 @@
1
+ import { type CSSProperties, type JSX } from "react";
2
+ import { type FunctionReference } from "convex/server";
3
+ type DeploymentInfo = {
4
+ _id: string;
5
+ _creationTime: number;
6
+ currentDeploymentId: string;
7
+ deployedAt: number;
8
+ spaFallback?: boolean;
9
+ } | null;
10
+ type DeploymentQueryRef = FunctionReference<"query", "public", Record<string, never>, DeploymentInfo>;
11
+ /**
12
+ * Hook to detect when a new deployment is available.
13
+ *
14
+ * @param getCurrentDeployment - Optional query reference. Defaults to
15
+ * `api.hosting.getCurrentDeployment` (resolved by path). If you've
16
+ * re-exported the deployment query under a different module name, pass the
17
+ * reference explicitly.
18
+ *
19
+ * @example
20
+ * ```tsx
21
+ * import { useDeploymentUpdates } from "@samebase/convex-hosting/react";
22
+ *
23
+ * function App() {
24
+ * const { updateAvailable, reload } = useDeploymentUpdates();
25
+ * return updateAvailable ? <button onClick={reload}>Reload</button> : null;
26
+ * }
27
+ * ```
28
+ */
29
+ export declare function useDeploymentUpdates(getCurrentDeployment?: DeploymentQueryRef): {
30
+ updateAvailable: boolean;
31
+ reload: () => void;
32
+ dismiss: () => void;
33
+ deployment: DeploymentInfo;
34
+ /**
35
+ * When set, the deployment query isn't exported from the app; the banner
36
+ * won't work until the user wires it up. The string is suitable to render
37
+ * during local development so the missing setup is obvious.
38
+ */
39
+ setupError: string | null;
40
+ };
41
+ /**
42
+ * Ready-to-use banner shown when a new deployment is available.
43
+ *
44
+ * @example
45
+ * ```tsx
46
+ * import { UpdateBanner } from "@samebase/convex-hosting/react";
47
+ * <UpdateBanner />
48
+ * ```
49
+ */
50
+ export declare function UpdateBanner({ getCurrentDeployment, message, buttonText, dismissable, className, style, }?: {
51
+ getCurrentDeployment?: DeploymentQueryRef;
52
+ message?: string;
53
+ buttonText?: string;
54
+ dismissable?: boolean;
55
+ className?: string;
56
+ style?: CSSProperties;
57
+ }): JSX.Element | null;
58
+ export {};
59
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAqB,KAAK,aAAa,EAAE,KAAK,GAAG,EAAE,MAAM,OAAO,CAAC;AACxE,OAAO,EAAyB,KAAK,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAE9E,KAAK,cAAc,GAAG;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,GAAG,IAAI,CAAC;AAET,KAAK,kBAAkB,GAAG,iBAAiB,CACzC,OAAO,EACP,QAAQ,EACR,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACrB,cAAc,CACf,CAAC;AAQF;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,oBAAoB,CAAC,oBAAoB,CAAC,EAAE,kBAAkB;;;;;IAuC1E;;;;OAIG;;EAGN;AAkBD;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,EAC3B,oBAAoB,EACpB,OAAuC,EACvC,UAAqB,EACrB,WAAkB,EAClB,SAAS,EACT,KAAK,GACN,GAAE;IACD,oBAAoB,CAAC,EAAE,kBAAkB,CAAC;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;CAClB,GAAG,GAAG,CAAC,OAAO,GAAG,IAAI,CAgE1B"}
@@ -0,0 +1,137 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useQuery_experimental } from "convex/react";
4
+ import { useState, useMemo } from "react";
5
+ import { makeFunctionReference } from "convex/server";
6
+ const DEFAULT_QUERY_REF = makeFunctionReference("hosting:getCurrentDeployment");
7
+ /* eslint-disable react-refresh/only-export-components */
8
+ /**
9
+ * Hook to detect when a new deployment is available.
10
+ *
11
+ * @param getCurrentDeployment - Optional query reference. Defaults to
12
+ * `api.hosting.getCurrentDeployment` (resolved by path). If you've
13
+ * re-exported the deployment query under a different module name, pass the
14
+ * reference explicitly.
15
+ *
16
+ * @example
17
+ * ```tsx
18
+ * import { useDeploymentUpdates } from "@samebase/convex-hosting/react";
19
+ *
20
+ * function App() {
21
+ * const { updateAvailable, reload } = useDeploymentUpdates();
22
+ * return updateAvailable ? <button onClick={reload}>Reload</button> : null;
23
+ * }
24
+ * ```
25
+ */
26
+ export function useDeploymentUpdates(getCurrentDeployment) {
27
+ const result = useQuery_experimental({
28
+ query: getCurrentDeployment ?? DEFAULT_QUERY_REF,
29
+ args: {},
30
+ });
31
+ const deployment = result.status === "success" ? result.data : null;
32
+ const setupError = result.status === "error" ? deploymentQuerySetupHelp(getCurrentDeployment) : null;
33
+ const [initialDeploymentId, setInitialDeploymentId] = useState(null);
34
+ const [dismissedDeploymentId, setDismissedDeploymentId] = useState(null);
35
+ if (deployment && initialDeploymentId === null) {
36
+ setInitialDeploymentId(deployment.currentDeploymentId);
37
+ }
38
+ const updateAvailable = useMemo(() => {
39
+ if (!deployment || initialDeploymentId === null)
40
+ return false;
41
+ const hasNew = deployment.currentDeploymentId !== initialDeploymentId;
42
+ const isDismissed = deployment.currentDeploymentId === dismissedDeploymentId;
43
+ return hasNew && !isDismissed;
44
+ }, [deployment, initialDeploymentId, dismissedDeploymentId]);
45
+ const reload = () => {
46
+ window.location.reload();
47
+ };
48
+ const dismiss = () => {
49
+ if (deployment) {
50
+ setDismissedDeploymentId(deployment.currentDeploymentId);
51
+ }
52
+ };
53
+ return {
54
+ updateAvailable,
55
+ reload,
56
+ dismiss,
57
+ deployment,
58
+ /**
59
+ * When set, the deployment query isn't exported from the app; the banner
60
+ * won't work until the user wires it up. The string is suitable to render
61
+ * during local development so the missing setup is obvious.
62
+ */
63
+ setupError,
64
+ };
65
+ }
66
+ function deploymentQuerySetupHelp(ref) {
67
+ if (ref) {
68
+ return "Deployment query failed. Verify the function you passed to useDeploymentUpdates is deployed.";
69
+ }
70
+ return [
71
+ "@samebase/convex-hosting: UpdateBanner requires you to expose the deployment query.",
72
+ "Create convex/hosting.ts:",
73
+ "",
74
+ ' import { exposeDeploymentQuery } from "@samebase/convex-hosting";',
75
+ ' import { components } from "./_generated/api";',
76
+ " export const { getCurrentDeployment } = exposeDeploymentQuery(",
77
+ " components.hosting,",
78
+ " );",
79
+ ].join("\n");
80
+ }
81
+ /**
82
+ * Ready-to-use banner shown when a new deployment is available.
83
+ *
84
+ * @example
85
+ * ```tsx
86
+ * import { UpdateBanner } from "@samebase/convex-hosting/react";
87
+ * <UpdateBanner />
88
+ * ```
89
+ */
90
+ export function UpdateBanner({ getCurrentDeployment, message = "A new version is available!", buttonText = "Reload", dismissable = true, className, style, } = {}) {
91
+ const { updateAvailable, reload, dismiss, setupError } = useDeploymentUpdates(getCurrentDeployment);
92
+ if (setupError) {
93
+ if (typeof console !== "undefined") {
94
+ console.warn(setupError);
95
+ }
96
+ return null;
97
+ }
98
+ if (!updateAvailable)
99
+ return null;
100
+ const defaultStyle = {
101
+ position: "fixed",
102
+ bottom: "1rem",
103
+ right: "1rem",
104
+ backgroundColor: "#1a1a2e",
105
+ color: "#fff",
106
+ padding: "1rem 1.5rem",
107
+ borderRadius: "8px",
108
+ boxShadow: "0 4px 12px rgba(0, 0, 0, 0.3)",
109
+ display: "flex",
110
+ alignItems: "center",
111
+ gap: "1rem",
112
+ zIndex: 9999,
113
+ fontFamily: "system-ui, -apple-system, sans-serif",
114
+ fontSize: "14px",
115
+ ...style,
116
+ };
117
+ const buttonStyle = {
118
+ backgroundColor: "#4f46e5",
119
+ color: "#fff",
120
+ border: "none",
121
+ padding: "0.5rem 1rem",
122
+ borderRadius: "4px",
123
+ cursor: "pointer",
124
+ fontWeight: 500,
125
+ };
126
+ const dismissStyle = {
127
+ background: "none",
128
+ border: "none",
129
+ color: "#888",
130
+ cursor: "pointer",
131
+ padding: "0.25rem",
132
+ fontSize: "18px",
133
+ lineHeight: 1,
134
+ };
135
+ return (_jsxs("div", { className: className, style: defaultStyle, children: [_jsx("span", { children: message }), _jsx("button", { onClick: reload, style: buttonStyle, children: buttonText }), dismissable && (_jsx("button", { onClick: dismiss, style: dismissStyle, "aria-label": "Dismiss", children: "\u00D7" }))] }));
136
+ }
137
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.tsx"],"names":[],"mappings":"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"}