@rebasepro/server 0.24.0 → 0.24.1-canary.g19596ef
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/README.md +27 -2
- package/dist/GCSStorageController-DEga1ULx.js +402 -0
- package/dist/GCSStorageController-DEga1ULx.js.map +1 -0
- package/dist/S3StorageController-Btx-6bJ5.js +480 -0
- package/dist/S3StorageController-Btx-6bJ5.js.map +1 -0
- package/dist/api/errors.d.ts +32 -0
- package/dist/api/live-schema-routes.d.ts +27 -3
- package/dist/api/mount-path.d.ts +30 -0
- package/dist/api/mount.d.ts +6 -13
- package/dist/api/rest/api-generator.d.ts +53 -1
- package/dist/api/rest/auth-collection-writes.d.ts +28 -21
- package/dist/api/rest/field-access-query.d.ts +28 -8
- package/dist/api/rest/field-ops.d.ts +19 -7
- package/dist/api/rest/query-body.d.ts +10 -0
- package/dist/api/rest/write-validation.d.ts +7 -5
- package/dist/api/schema-editor-routes.d.ts +10 -1
- package/dist/api/sql-export-routes.d.ts +8 -0
- package/dist/api/types.d.ts +35 -0
- package/dist/{ast-schema-editor-CWqS_sLJ.js → ast-schema-editor-mCeSC03x.js} +3 -3
- package/dist/{ast-schema-editor-CWqS_sLJ.js.map → ast-schema-editor-mCeSC03x.js.map} +1 -1
- package/dist/auth/access.d.ts +62 -11
- package/dist/auth/admin-user-ops.d.ts +24 -2
- package/dist/auth/admin-users-route.d.ts +1 -0
- package/dist/auth/api-keys/api-key-middleware.d.ts +10 -3
- package/dist/auth/api-keys/api-key-routes.d.ts +4 -1
- package/dist/auth/builtin-auth-adapter.d.ts +13 -0
- package/dist/auth/email-change-routes.d.ts +3 -0
- package/dist/auth/expired-token-sweep.d.ts +5 -1
- package/dist/auth/interfaces.d.ts +10 -0
- package/dist/auth/jwks-routes.d.ts +5 -1
- package/dist/auth/jwt-crypto.d.ts +7 -0
- package/dist/auth/jwt-keys.d.ts +4 -0
- package/dist/auth/jwt.d.ts +282 -166
- package/dist/auth/magic-link-routes.d.ts +3 -0
- package/dist/auth/mfa-crypto.d.ts +9 -3
- package/dist/auth/mfa-gate.d.ts +4 -2
- package/dist/auth/mfa-routes.d.ts +6 -0
- package/dist/auth/middleware.d.ts +9 -2
- package/dist/auth/otp-routes.d.ts +3 -0
- package/dist/auth/rate-limiter.d.ts +61 -34
- package/dist/auth/registration-policy.d.ts +17 -0
- package/dist/auth/require-auth.d.ts +1 -1
- package/dist/auth/routes.d.ts +16 -0
- package/dist/auth/session-routes.d.ts +6 -0
- package/dist/auth/token-revocation.d.ts +6 -0
- package/dist/auth/user-picking.d.ts +37 -0
- package/dist/auth/verify-credential.d.ts +25 -4
- package/dist/{auth-DMLngxn_.js → auth-CSBky1mt.js} +2927 -1882
- package/dist/auth-CSBky1mt.js.map +1 -0
- package/dist/auth_adapter-CIItCTc8.js +21 -0
- package/dist/auth_adapter-CIItCTc8.js.map +1 -0
- package/dist/backend/create-backend.d.ts +281 -0
- package/dist/backend/default-backend.d.ts +35 -0
- package/dist/backend/no-collections.d.ts +19 -0
- package/dist/backend/options.d.ts +912 -0
- package/dist/backend/scope.d.ts +23 -0
- package/dist/backend/services.d.ts +54 -0
- package/dist/backend-DTAOsLQc.js.map +1 -1
- package/dist/backup/backup-common.d.ts +14 -3
- package/dist/backup/backup-routes.d.ts +23 -2
- package/dist/backup/backup-storage.d.ts +3 -1
- package/dist/backup/index.d.ts +3 -1
- package/dist/{backup-CN0s50D2.js → backup-DBGRUVTS.js} +178 -37
- package/dist/backup-DBGRUVTS.js.map +1 -0
- package/dist/boot/boot.d.ts +2 -2
- package/dist/boot/driver.d.ts +3 -0
- package/dist/boot/env.d.ts +9 -2
- package/dist/boot/http-server.d.ts +22 -0
- package/dist/boot/options.d.ts +16 -1
- package/dist/boot/provision.d.ts +4 -2
- package/dist/boot/resource-adapters.d.ts +11 -14
- package/dist/boot/runtime-cors.d.ts +17 -0
- package/dist/boot/sources.d.ts +9 -0
- package/dist/boot/static-routing.d.ts +9 -0
- package/dist/{contract-routes-fz8i4pxs.js → contract-routes-DiFwiLg2.js} +5 -21
- package/dist/contract-routes-DiFwiLg2.js.map +1 -0
- package/dist/cron/cron-loader.d.ts +77 -18
- package/dist/cron/cron-routes.d.ts +1 -1
- package/dist/cron/cron-scheduler.d.ts +69 -3
- package/dist/cron/cron-store.d.ts +33 -5
- package/dist/cron/define-cron.d.ts +6 -2
- package/dist/cron/index.d.ts +3 -3
- package/dist/cron-loader-NHqRfKF0.js +202 -0
- package/dist/cron-loader-NHqRfKF0.js.map +1 -0
- package/dist/{cron-routes-Bc-SB0Se.js → cron-routes-DsH8Jwn5.js} +29 -6
- package/dist/cron-routes-DsH8Jwn5.js.map +1 -0
- package/dist/{cron-scheduler-CYQgco86.js → cron-scheduler-D1DT0nw5.js} +300 -34
- package/dist/cron-scheduler-D1DT0nw5.js.map +1 -0
- package/dist/cron-store-DEpVstUU.js +577 -0
- package/dist/cron-store-DEpVstUU.js.map +1 -0
- package/dist/{ddl-bootstrap-BaqMSa4Y.js → ddl-bootstrap-BNqi2NZe.js} +2 -2
- package/dist/{ddl-bootstrap-BaqMSa4Y.js.map → ddl-bootstrap-BNqi2NZe.js.map} +1 -1
- package/dist/email/smtp-email-service.d.ts +23 -0
- package/dist/email/types.d.ts +18 -0
- package/dist/env.d.ts +0 -37
- package/dist/{errors-D6_y86c5.js → errors-Cqp86KnA.js} +166 -7
- package/dist/errors-Cqp86KnA.js.map +1 -0
- package/dist/filter-dialect-O1HK6Nvr.js +1628 -0
- package/dist/filter-dialect-O1HK6Nvr.js.map +1 -0
- package/dist/{function-loader-D7o5Epjj.js → function-loader-DbCSoNJj.js} +69 -39
- package/dist/function-loader-DbCSoNJj.js.map +1 -0
- package/dist/{function-routes-CaNG4waN.js → function-routes-BSTClQNa.js} +6 -5
- package/dist/function-routes-BSTClQNa.js.map +1 -0
- package/dist/functions/context.d.ts +9 -0
- package/dist/functions/define-function.d.ts +10 -6
- package/dist/functions/function-loader.d.ts +75 -18
- package/dist/functions/function-routes.d.ts +2 -1
- package/dist/functions/index.d.ts +5 -4
- package/dist/functions/index.js +59 -15
- package/dist/functions/index.js.map +1 -1
- package/dist/functions/internal.d.ts +2 -2
- package/dist/functions/proxy.d.ts +6 -2
- package/dist/functions/request-timeout.d.ts +7 -5
- package/dist/history/history-routes.d.ts +9 -0
- package/dist/history/retention-sweep.d.ts +81 -0
- package/dist/{history-recorder-Nr8zLvoU.js → history-recorder-RZ1Ow4YY.js} +4 -4
- package/dist/{history-recorder-Nr8zLvoU.js.map → history-recorder-RZ1Ow4YY.js.map} +1 -1
- package/dist/{history-store-rcAm_xFR.js → history-store-DPofGVDp.js} +2 -2
- package/dist/{history-store-rcAm_xFR.js.map → history-store-DPofGVDp.js.map} +1 -1
- package/dist/index.d.ts +24 -11
- package/dist/index.es.js +24758 -20153
- package/dist/index.es.js.map +1 -1
- package/dist/init/docs.d.ts +35 -10
- package/dist/init/process-safety.d.ts +7 -2
- package/dist/init/shutdown.d.ts +18 -3
- package/dist/init.d.ts +49 -865
- package/dist/internal-tables-L2t39RdT.js +136 -0
- package/dist/internal-tables-L2t39RdT.js.map +1 -0
- package/dist/jobs/job-queue.d.ts +8 -0
- package/dist/jobs/job-store.d.ts +24 -0
- package/dist/jobs/types.d.ts +25 -4
- package/dist/{jobs-DqYNfquG.js → jobs-8G-_agld.js} +235 -25
- package/dist/jobs-8G-_agld.js.map +1 -0
- package/dist/{jwt-R6bSPMjk.js → jwt-CBaFc34Y.js} +530 -455
- package/dist/jwt-CBaFc34Y.js.map +1 -0
- package/dist/{keys-GAVZqbqx.js → keys-COzQ2aE8.js} +2 -2
- package/dist/{keys-GAVZqbqx.js.map → keys-COzQ2aE8.js.map} +1 -1
- package/dist/load-failure-L5hvfDoG.js +80 -0
- package/dist/load-failure-L5hvfDoG.js.map +1 -0
- package/dist/{logger-D-S-hO5e.js → logger-Bt32sHFw.js} +17 -4
- package/dist/logger-Bt32sHFw.js.map +1 -0
- package/dist/{logs-routes-DAdv37GI.js → logs-routes-DQJhrf-b.js} +3 -3
- package/dist/{logs-routes-DAdv37GI.js.map → logs-routes-DQJhrf-b.js.map} +1 -1
- package/dist/mcp/mcp-routes.d.ts +6 -0
- package/dist/mcp/mcp-tools.d.ts +8 -0
- package/dist/mcp/oauth-routes.d.ts +7 -0
- package/dist/metrics/index.d.ts +18 -0
- package/dist/metrics/pool-wait.d.ts +50 -0
- package/dist/offline-QNQgsPOq-B2yGeXkn.js +3305 -0
- package/dist/offline-QNQgsPOq-B2yGeXkn.js.map +1 -0
- package/dist/offline-store-Cm5sAX81-CALiO4Gn.js +1915 -0
- package/dist/offline-store-Cm5sAX81-CALiO4Gn.js.map +1 -0
- package/dist/{openapi-generator-DAq_XVDu.js → openapi-generator-CeGW2dLC.js} +366 -82
- package/dist/openapi-generator-CeGW2dLC.js.map +1 -0
- package/dist/policy-PdzX-Opd.js +121 -0
- package/dist/policy-PdzX-Opd.js.map +1 -0
- package/dist/project_manifest-R6y_KHms.js +59 -0
- package/dist/project_manifest-R6y_KHms.js.map +1 -0
- package/dist/{proxy-qRlqeUmO.js → proxy-BEKbsil6.js} +5 -4
- package/dist/proxy-BEKbsil6.js.map +1 -0
- package/dist/{query-parser-BgiKJKvc.js → query-parser-ECxP0nDw.js} +511 -16
- package/dist/query-parser-ECxP0nDw.js.map +1 -0
- package/dist/{request-timeout-DgH7j8qO.js → request-timeout-BiRelY-U.js} +17 -10
- package/dist/request-timeout-BiRelY-U.js.map +1 -0
- package/dist/resumable-upload-threshold-CKv-Ry0l.js +24 -0
- package/dist/resumable-upload-threshold-CKv-Ry0l.js.map +1 -0
- package/dist/schema-edit/apply-schema-change.d.ts +10 -0
- package/dist/schema-edit/local-source.d.ts +29 -0
- package/dist/schema-edit/remote-source.d.ts +13 -3
- package/dist/schema-edit/source-editor.d.ts +28 -0
- package/dist/{schema-editor-routes-oIyuWl3L.js → schema-editor-routes-DRXBAbZy.js} +55 -11
- package/dist/schema-editor-routes-DRXBAbZy.js.map +1 -0
- package/dist/services/outbound-post.d.ts +50 -0
- package/dist/services/outbound-url-guard.d.ts +34 -5
- package/dist/services/routed-realtime-service.d.ts +5 -0
- package/dist/services/webhook-service.d.ts +66 -14
- package/dist/singleton.d.ts +9 -5
- package/dist/soft-delete-params-CBryZXMq.js +668 -0
- package/dist/soft-delete-params-CBryZXMq.js.map +1 -0
- package/dist/sql-export-routes-D8ZaRvoR.js +240 -0
- package/dist/sql-export-routes-D8ZaRvoR.js.map +1 -0
- package/dist/{src-CatHFUym.js → src-D5Y3N-S4.js} +2 -1
- package/dist/{src-CatHFUym.js.map → src-D5Y3N-S4.js.map} +1 -1
- package/dist/storage/GCSStorageController.d.ts +46 -2
- package/dist/storage/LocalStorageController.d.ts +67 -2
- package/dist/storage/S3StorageController.d.ts +37 -3
- package/dist/storage/image-transform.d.ts +15 -0
- package/dist/storage/maintenance-routes.d.ts +23 -0
- package/dist/storage/maintenance.d.ts +126 -0
- package/dist/storage/rendition-cache.d.ts +9 -11
- package/dist/storage/request-principals.d.ts +30 -0
- package/dist/storage/routes.d.ts +20 -0
- package/dist/storage/source-variables.d.ts +10 -0
- package/dist/storage/streams.d.ts +42 -0
- package/dist/storage/tus-handler.d.ts +46 -2
- package/dist/storage/types.d.ts +82 -7
- package/dist/storage/upload-validation.d.ts +13 -0
- package/dist/storage-resumable-VO-cMpse-C_YX71pO.js +125 -0
- package/dist/storage-resumable-VO-cMpse-C_YX71pO.js.map +1 -0
- package/dist/strings.es-BeZWAodn.js +256 -0
- package/dist/strings.es-BeZWAodn.js.map +1 -0
- package/dist/upload-validation-CVobI5xO.js +172 -0
- package/dist/upload-validation-CVobI5xO.js.map +1 -0
- package/dist/utils/byte-size.d.ts +10 -0
- package/dist/utils/compression.d.ts +6 -0
- package/dist/utils/load-failure.d.ts +14 -0
- package/dist/utils/logger.d.ts +9 -0
- package/package.json +5 -5
- package/dist/GCSStorageController-BSiP1c-f.js +0 -256
- package/dist/GCSStorageController-BSiP1c-f.js.map +0 -1
- package/dist/S3StorageController-CAwFRgjV.js +0 -276
- package/dist/S3StorageController-CAwFRgjV.js.map +0 -1
- package/dist/auth-DMLngxn_.js.map +0 -1
- package/dist/backup-CN0s50D2.js.map +0 -1
- package/dist/contract-routes-fz8i4pxs.js.map +0 -1
- package/dist/cron-loader-CwaANlOG.js +0 -118
- package/dist/cron-loader-CwaANlOG.js.map +0 -1
- package/dist/cron-routes-Bc-SB0Se.js.map +0 -1
- package/dist/cron-scheduler-CYQgco86.js.map +0 -1
- package/dist/cron-store-D2Q9-Aco.js +0 -300
- package/dist/cron-store-D2Q9-Aco.js.map +0 -1
- package/dist/dynamic-import-X40pTZUQ.js +0 -23
- package/dist/dynamic-import-X40pTZUQ.js.map +0 -1
- package/dist/errors-D6_y86c5.js.map +0 -1
- package/dist/function-loader-D7o5Epjj.js.map +0 -1
- package/dist/function-routes-CaNG4waN.js.map +0 -1
- package/dist/jobs-DqYNfquG.js.map +0 -1
- package/dist/jwt-R6bSPMjk.js.map +0 -1
- package/dist/logger-D-S-hO5e.js.map +0 -1
- package/dist/openapi-generator-DAq_XVDu.js.map +0 -1
- package/dist/proxy-qRlqeUmO.js.map +0 -1
- package/dist/query-parser-BgiKJKvc.js.map +0 -1
- package/dist/request-timeout-DgH7j8qO.js.map +0 -1
- package/dist/schema-editor-routes-oIyuWl3L.js.map +0 -1
- package/dist/soft-delete-params-BWPilMPF.js +0 -59
- package/dist/soft-delete-params-BWPilMPF.js.map +0 -1
- package/dist/src-I3aG1PcY.js +0 -6870
- package/dist/src-I3aG1PcY.js.map +0 -1
- package/dist/types-BfKcm9do.js +0 -39
- package/dist/types-BfKcm9do.js.map +0 -1
package/dist/functions/index.js
CHANGED
|
@@ -96,13 +96,15 @@ var INSTANCE_SLOT = Symbol.for("@rebasepro/server:singleton-instance");
|
|
|
96
96
|
* A *function* that answers "which client is this call for", for hosts where
|
|
97
97
|
* one answer per process is the wrong shape.
|
|
98
98
|
*
|
|
99
|
-
*
|
|
100
|
-
*
|
|
101
|
-
*
|
|
102
|
-
*
|
|
103
|
-
*
|
|
104
|
-
*
|
|
105
|
-
* request
|
|
99
|
+
* {@link INSTANCE_SLOT} is one answer per process: the default backend's. A
|
|
100
|
+
* Node process can hold several backends, and the code each one runs — a
|
|
101
|
+
* function, a cron job, a hook — must see that one, so the server registers a
|
|
102
|
+
* resolver reading the backend scope it enters per request (an
|
|
103
|
+
* `AsyncLocalStorage`, host-side, in `backend/scope.ts`). An isolate-based
|
|
104
|
+
* host is different in the same way: the environment arrives attached to the
|
|
105
|
+
* **request**, not to the module, so there is nothing to publish at import
|
|
106
|
+
* time, and an isolate can be reused across requests that must not share
|
|
107
|
+
* state. The resolver is consulted first.
|
|
106
108
|
*
|
|
107
109
|
* This exists now, before there is a host that needs it, because of what it
|
|
108
110
|
* protects: `rebase` is a lazy Proxy, so every property access already goes
|
|
@@ -123,10 +125,13 @@ function getInstance() {
|
|
|
123
125
|
return global[INSTANCE_SLOT] ?? null;
|
|
124
126
|
}
|
|
125
127
|
/**
|
|
126
|
-
* The server-side Rebase
|
|
128
|
+
* The server-side Rebase client, as a module-level handle.
|
|
127
129
|
*
|
|
128
|
-
*
|
|
129
|
-
*
|
|
130
|
+
* Inside a request, cron run or job a backend serves, it is that backend's
|
|
131
|
+
* client (`backend.rebase`) — so with two backends in one process, each one's
|
|
132
|
+
* functions see their own. Anywhere else it is the process default's, which
|
|
133
|
+
* `initializeRebaseBackend` (or `setDefaultBackend`) installs. Provides access
|
|
134
|
+
* to all app-scoped services: **data**, **auth**, **storage**, and **email**.
|
|
130
135
|
*
|
|
131
136
|
* **Admin data plane** (`rebase.dataAsAdmin`):
|
|
132
137
|
* Backed by the native DataDriver — calls go directly to the database without
|
|
@@ -185,12 +190,25 @@ var rebase = new Proxy({}, {
|
|
|
185
190
|
return instance[prop];
|
|
186
191
|
},
|
|
187
192
|
set(_, prop) {
|
|
188
|
-
throw new Error(`Cannot set rebase.${String(prop)} directly. The singleton is read-only.
|
|
193
|
+
throw new Error(`Cannot set rebase.${String(prop)} directly. The singleton is read-only. Install a backend with setDefaultBackend(backend), or use backend.rebase.`);
|
|
189
194
|
}
|
|
190
195
|
});
|
|
191
196
|
//#endregion
|
|
192
197
|
//#region src/functions/define-function.ts
|
|
193
198
|
/**
|
|
199
|
+
* The `rebase` handle, seen through the `Database` a function names.
|
|
200
|
+
*
|
|
201
|
+
* One object serves every function; `DB` only describes it. It resolves, per
|
|
202
|
+
* call, to the backend serving the request — the same answer the imported
|
|
203
|
+
* `rebase` gives. Each collection accessor on `dataAsAdmin` is resolved by
|
|
204
|
+
* name at call time, so a generated `Database` adds compile-time checks and
|
|
205
|
+
* changes nothing the object does — the same reason the browser client's
|
|
206
|
+
* `createRebaseClient<Database>()` is one implementation for every `Database`.
|
|
207
|
+
*/
|
|
208
|
+
function typedSingleton() {
|
|
209
|
+
return rebase;
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
194
212
|
* Typed authoring contract for a custom backend function.
|
|
195
213
|
*
|
|
196
214
|
* A custom function is a file in the `functionsDir` that default-exports a
|
|
@@ -227,7 +245,7 @@ var rebase = new Proxy({}, {
|
|
|
227
245
|
*/
|
|
228
246
|
function defineFunction(definition) {
|
|
229
247
|
const app = new Hono();
|
|
230
|
-
const returned = definition(app, { rebase });
|
|
248
|
+
const returned = definition(app, { rebase: typedSingleton() });
|
|
231
249
|
return returned instanceof Hono ? returned : app;
|
|
232
250
|
}
|
|
233
251
|
//#endregion
|
|
@@ -393,6 +411,17 @@ function getRequestId(c) {
|
|
|
393
411
|
return read(c, "requestId");
|
|
394
412
|
}
|
|
395
413
|
/**
|
|
414
|
+
* The signal aborted when this request outlasts the functions timeout and is
|
|
415
|
+
* answered `504 FUNCTION_TIMEOUT`. Pass it to `fetch` and anything else that
|
|
416
|
+
* takes one, so the work stops with the request instead of running on after
|
|
417
|
+
* the caller was told it failed.
|
|
418
|
+
*
|
|
419
|
+
* Never aborts when the timeout is off, or outside the functions router.
|
|
420
|
+
*/
|
|
421
|
+
function getSignal(c) {
|
|
422
|
+
return read(c, "functionSignal") ?? new AbortController().signal;
|
|
423
|
+
}
|
|
424
|
+
/**
|
|
396
425
|
* Whether a Rebase auth middleware has run on this request.
|
|
397
426
|
*
|
|
398
427
|
* Both middlewares populate `driver` for *every* outcome, anonymous included,
|
|
@@ -686,6 +715,8 @@ function isProduction() {
|
|
|
686
715
|
* not be undone, because the originals were gone.
|
|
687
716
|
*/
|
|
688
717
|
var configuredLevel;
|
|
718
|
+
/** Every line to stderr, when a command's stdout is its result. See {@link setLogOutput}. */
|
|
719
|
+
var everyLineToStderr = false;
|
|
689
720
|
function getMinLevel() {
|
|
690
721
|
if (configuredLevel) return configuredLevel;
|
|
691
722
|
const env = (hostEnv().LOG_LEVEL || "info").trim().toLowerCase();
|
|
@@ -907,13 +938,13 @@ function createLogger(rawDefaultFields = {}) {
|
|
|
907
938
|
...merged
|
|
908
939
|
};
|
|
909
940
|
const line = JSON.stringify(entry);
|
|
910
|
-
if (level === "error") writeLine("err", line);
|
|
941
|
+
if (level === "error" || everyLineToStderr) writeLine("err", line);
|
|
911
942
|
else writeLine("out", line);
|
|
912
943
|
} else {
|
|
913
944
|
const prefix = level === "error" ? "❌" : level === "warn" ? "⚠️" : level === "info" ? "ℹ️" : "🐛";
|
|
914
945
|
const extra = Object.keys(merged).length > 0 ? ` ${JSON.stringify(merged)}` : "";
|
|
915
946
|
const out = `${prefix} [${level.toUpperCase()}] ${safeMessage}${extra}`;
|
|
916
|
-
if (level === "error") console.error(out);
|
|
947
|
+
if (level === "error" || everyLineToStderr) console.error(out);
|
|
917
948
|
else if (level === "warn") console.warn(out);
|
|
918
949
|
else console.log(out);
|
|
919
950
|
}
|
|
@@ -1004,6 +1035,8 @@ function logBackgroundFailure(c, error) {
|
|
|
1004
1035
|
}
|
|
1005
1036
|
//#endregion
|
|
1006
1037
|
//#region src/api/errors.ts
|
|
1038
|
+
/** What a caller is told when the database cannot be reached. Retryable, and not about them. */
|
|
1039
|
+
var DATABASE_UNAVAILABLE_MESSAGE = "The database could not be reached, so this request was not served. Retry shortly; if it keeps happening, the server's database is down or unreachable from it.";
|
|
1007
1040
|
/**
|
|
1008
1041
|
* Standardized API error class.
|
|
1009
1042
|
* Throw this from any route handler — the errorHandler middleware
|
|
@@ -1076,8 +1109,19 @@ var ApiError = class ApiError extends Error {
|
|
|
1076
1109
|
static serviceUnavailable(message, code = "SERVICE_UNAVAILABLE") {
|
|
1077
1110
|
return new ApiError(503, code, message);
|
|
1078
1111
|
}
|
|
1112
|
+
/**
|
|
1113
|
+
* `503 DATABASE_UNAVAILABLE`: the database could not be reached. What
|
|
1114
|
+
* every door answers then — the data API, sign-in, the admin routes and
|
|
1115
|
+
* the realtime socket — so a client sees one retryable answer, sent with
|
|
1116
|
+
* `Retry-After`, rather than a permission failure or a crash.
|
|
1117
|
+
*
|
|
1118
|
+
* @see isDatabaseUnreachable
|
|
1119
|
+
*/
|
|
1120
|
+
static databaseUnavailable(message = DATABASE_UNAVAILABLE_MESSAGE) {
|
|
1121
|
+
return new ApiError(503, "DATABASE_UNAVAILABLE", message);
|
|
1122
|
+
}
|
|
1079
1123
|
};
|
|
1080
1124
|
//#endregion
|
|
1081
|
-
export { ApiError, defineFunction, env, getApiKey, getDriver, getEnv, getRequestId, getRoles, getScopes, getUser, getUserId, hasRole, hasScope, identityResolved, isAdmin, isAuthenticated, isNodeRuntime, lazyResource, rebase, requireAdmin, requireAuth, requireDriver, requireEnv, requireRole, requireScope, runtimeKey, waitUntil };
|
|
1125
|
+
export { ApiError, defineFunction, env, getApiKey, getDriver, getEnv, getRequestId, getRoles, getScopes, getSignal, getUser, getUserId, hasRole, hasScope, identityResolved, isAdmin, isAuthenticated, isNodeRuntime, lazyResource, rebase, requireAdmin, requireAuth, requireDriver, requireEnv, requireRole, requireScope, runtimeKey, waitUntil };
|
|
1082
1126
|
|
|
1083
1127
|
//# sourceMappingURL=index.js.map
|