@mistriwork/engine 0.0.0-stage → 1.0.0-rc.10
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/LICENSE +21 -0
- package/README.md +17 -2
- package/dist/adapters/adapter.d.ts +693 -0
- package/dist/adapters/adapter.js +444 -0
- package/dist/adapters/cache/cacheStore.d.ts +75 -0
- package/dist/adapters/cache/cacheStore.js +160 -0
- package/dist/adapters/cache/resp.d.ts +52 -0
- package/dist/adapters/cache/resp.js +237 -0
- package/dist/adapters/commands/canonicalJson.d.ts +19 -0
- package/dist/adapters/commands/canonicalJson.js +154 -0
- package/dist/adapters/connect.d.ts +29 -0
- package/dist/adapters/connect.js +40 -0
- package/dist/adapters/connectionBudget.d.ts +101 -0
- package/dist/adapters/connectionBudget.js +128 -0
- package/dist/adapters/dbLatency.d.ts +35 -0
- package/dist/adapters/dbLatency.js +79 -0
- package/dist/adapters/epochCache.d.ts +50 -0
- package/dist/adapters/epochCache.js +85 -0
- package/dist/adapters/http/egress.d.ts +48 -0
- package/dist/adapters/http/egress.js +175 -0
- package/dist/adapters/http/httpAdapter.d.ts +71 -0
- package/dist/adapters/http/httpAdapter.js +512 -0
- package/dist/adapters/http/httpDescription.d.ts +32 -0
- package/dist/adapters/http/httpDescription.js +246 -0
- package/dist/adapters/http/openapi.d.ts +98 -0
- package/dist/adapters/http/openapi.js +487 -0
- package/dist/adapters/layoutRefusal.d.ts +24 -0
- package/dist/adapters/layoutRefusal.js +35 -0
- package/dist/adapters/net/networkPolicy.d.ts +44 -0
- package/dist/adapters/net/networkPolicy.js +123 -0
- package/dist/adapters/net/untrustedDatabase.d.ts +18 -0
- package/dist/adapters/net/untrustedDatabase.js +120 -0
- package/dist/adapters/poolAdmission.d.ts +43 -0
- package/dist/adapters/poolAdmission.js +184 -0
- package/dist/adapters/poolMetrics.d.ts +121 -0
- package/dist/adapters/poolMetrics.js +185 -0
- package/dist/adapters/postgres.d.ts +436 -0
- package/dist/adapters/postgres.js +1890 -0
- package/dist/adapters/postgresCatalog.d.ts +96 -0
- package/dist/adapters/postgresCatalog.js +387 -0
- package/dist/adapters/postgresCatalogDigest.d.ts +30 -0
- package/dist/adapters/postgresCatalogDigest.js +87 -0
- package/dist/adapters/postgresCatalogRows.d.ts +62 -0
- package/dist/adapters/postgresCatalogRows.js +37 -0
- package/dist/adapters/postgresDates.d.ts +1 -0
- package/dist/adapters/postgresDates.js +39 -0
- package/dist/adapters/postgresMaintenance.d.ts +33 -0
- package/dist/adapters/postgresMaintenance.js +179 -0
- package/dist/adapters/postgresPool.d.ts +255 -0
- package/dist/adapters/postgresPool.js +838 -0
- package/dist/adapters/postgresPooler.d.ts +28 -0
- package/dist/adapters/postgresPooler.js +267 -0
- package/dist/adapters/postgresReadCatalog.d.ts +31 -0
- package/dist/adapters/postgresReadCatalog.js +226 -0
- package/dist/adapters/postgresReadSnapshot.d.ts +46 -0
- package/dist/adapters/postgresReadSnapshot.js +133 -0
- package/dist/adapters/postgresSchemaEpoch.d.ts +24 -0
- package/dist/adapters/postgresSchemaEpoch.js +149 -0
- package/dist/adapters/postgresTransactionHandle.d.ts +173 -0
- package/dist/adapters/postgresTransactionHandle.js +524 -0
- package/dist/adapters/postgresValues.d.ts +30 -0
- package/dist/adapters/postgresValues.js +75 -0
- package/dist/adapters/replicas.d.ts +70 -0
- package/dist/adapters/replicas.js +208 -0
- package/dist/adapters/reservedSql.d.ts +38 -0
- package/dist/adapters/reservedSql.js +264 -0
- package/dist/adapters/rolePrivileges.d.ts +17 -0
- package/dist/adapters/rolePrivileges.js +22 -0
- package/dist/adapters/scoped/keyRows.d.ts +65 -0
- package/dist/adapters/scoped/keyRows.js +173 -0
- package/dist/adapters/scoped/postgresScopeCatalog.d.ts +16 -0
- package/dist/adapters/scoped/postgresScopeCatalog.js +117 -0
- package/dist/adapters/scoped/scopedCommandOperations.d.ts +5 -0
- package/dist/adapters/scoped/scopedCommandOperations.js +48 -0
- package/dist/adapters/scoped/scopedReads.d.ts +20 -0
- package/dist/adapters/scoped/scopedReads.js +174 -0
- package/dist/adapters/scoped/scopedTransaction.d.ts +89 -0
- package/dist/adapters/scoped/scopedTransaction.js +303 -0
- package/dist/adapters/scoped/sqliteScopeCatalog.d.ts +16 -0
- package/dist/adapters/scoped/sqliteScopeCatalog.js +241 -0
- package/dist/adapters/scoped/updateGuard.d.ts +3 -0
- package/dist/adapters/scoped/updateGuard.js +40 -0
- package/dist/adapters/serverSettings.d.ts +45 -0
- package/dist/adapters/serverSettings.js +46 -0
- package/dist/adapters/sqlite.d.ts +262 -0
- package/dist/adapters/sqlite.js +1434 -0
- package/dist/adapters/sqliteCostlyReads.d.ts +33 -0
- package/dist/adapters/sqliteCostlyReads.js +49 -0
- package/dist/adapters/sqliteDecimals.d.ts +22 -0
- package/dist/adapters/sqliteDecimals.js +57 -0
- package/dist/adapters/sqliteHandles.d.ts +43 -0
- package/dist/adapters/sqliteHandles.js +143 -0
- package/dist/adapters/sqliteStatementProcess.d.ts +29 -0
- package/dist/adapters/sqliteStatementProcess.js +131 -0
- package/dist/adapters/statementControl.d.ts +34 -0
- package/dist/adapters/statementControl.js +90 -0
- package/dist/adapters/storeHost.d.ts +130 -0
- package/dist/adapters/storeHost.js +13 -0
- package/dist/adapters/telemetry/drivers.d.ts +21 -0
- package/dist/adapters/telemetry/drivers.js +321 -0
- package/dist/adapters/telemetry/metrics.d.ts +63 -0
- package/dist/adapters/telemetry/metrics.js +122 -0
- package/dist/adapters/telemetry/otlp.d.ts +12 -0
- package/dist/adapters/telemetry/otlp.js +320 -0
- package/dist/adapters/telemetry/otlpEncode.d.ts +48 -0
- package/dist/adapters/telemetry/otlpEncode.js +366 -0
- package/dist/adapters/telemetry/otlpEnv.d.ts +1 -0
- package/dist/adapters/telemetry/otlpEnv.js +12 -0
- package/dist/adapters/telemetry/serverTiming.d.ts +83 -0
- package/dist/adapters/telemetry/serverTiming.js +503 -0
- package/dist/adapters/telemetry/start.d.ts +10 -0
- package/dist/adapters/telemetry/start.js +25 -0
- package/dist/adapters/telemetry/statement.d.ts +16 -0
- package/dist/adapters/telemetry/statement.js +134 -0
- package/dist/adapters/telemetry/trace.d.ts +127 -0
- package/dist/adapters/telemetry/trace.js +295 -0
- package/dist/adapters/writeAhead.d.ts +27 -0
- package/dist/adapters/writeAhead.js +46 -0
- package/dist/adapters/writeAttribution.d.ts +18 -0
- package/dist/adapters/writeAttribution.js +23 -0
- package/dist/adapters/writeCapture.d.ts +73 -0
- package/dist/adapters/writeCapture.js +20 -0
- package/dist/adapters/writeLanes.d.ts +94 -0
- package/dist/adapters/writeLanes.js +232 -0
- package/dist/engine.d.ts +15 -0
- package/dist/engine.js +13 -0
- package/dist/server/auth/credentials.d.ts +61 -0
- package/dist/server/auth/credentials.js +260 -0
- package/dist/server/cacheService.d.ts +50 -0
- package/dist/server/cacheService.js +110 -0
- package/dist/server/cli/args.d.ts +176 -0
- package/dist/server/cli/args.js +342 -0
- package/dist/server/cli/bin.d.ts +5 -0
- package/dist/server/cli/bin.js +66 -0
- package/dist/server/cli/browser.d.ts +15 -0
- package/dist/server/cli/browser.js +37 -0
- package/dist/server/cli/config.d.ts +50 -0
- package/dist/server/cli/config.js +206 -0
- package/dist/server/cli/startup.d.ts +36 -0
- package/dist/server/cli/startup.js +128 -0
- package/dist/server/cli/startupOptions.d.ts +63 -0
- package/dist/server/cli/startupOptions.js +143 -0
- package/dist/server/cli/subcommand.d.ts +28 -0
- package/dist/server/cli/subcommand.js +32 -0
- package/dist/server/cli/usage.d.ts +13 -0
- package/dist/server/cli/usage.js +31 -0
- package/dist/server/clientHttp.d.ts +184 -0
- package/dist/server/clientHttp.js +700 -0
- package/dist/server/clientSurface.d.ts +128 -0
- package/dist/server/clientSurface.js +182 -0
- package/dist/server/columnGrants.d.ts +103 -0
- package/dist/server/columnGrants.js +730 -0
- package/dist/server/compileCache.d.ts +1 -0
- package/dist/server/compileCache.js +30 -0
- package/dist/server/config/locations.d.ts +1 -0
- package/dist/server/config/locations.js +15 -0
- package/dist/server/configPaths.d.ts +7 -0
- package/dist/server/configPaths.js +34 -0
- package/dist/server/configSections.d.ts +64 -0
- package/dist/server/configSections.js +72 -0
- package/dist/server/connectionRedaction.d.ts +30 -0
- package/dist/server/connectionRedaction.js +77 -0
- package/dist/server/connections.d.ts +353 -0
- package/dist/server/connections.js +978 -0
- package/dist/server/constraints.d.ts +82 -0
- package/dist/server/constraints.js +169 -0
- package/dist/server/demo.d.ts +9 -0
- package/dist/server/demo.js +554 -0
- package/dist/server/devclient.d.ts +108 -0
- package/dist/server/devclient.js +361 -0
- package/dist/server/evidence.d.ts +55 -0
- package/dist/server/evidence.js +323 -0
- package/dist/server/hiddenColumns.d.ts +32 -0
- package/dist/server/hiddenColumns.js +238 -0
- package/dist/server/http/baselineHeaders.d.ts +24 -0
- package/dist/server/http/baselineHeaders.js +12 -0
- package/dist/server/http/captured.d.ts +35 -0
- package/dist/server/http/captured.js +73 -0
- package/dist/server/http/clock.d.ts +1 -0
- package/dist/server/http/clock.js +14 -0
- package/dist/server/http/connectionSource.d.ts +4 -0
- package/dist/server/http/connectionSource.js +48 -0
- package/dist/server/http/context.d.ts +189 -0
- package/dist/server/http/context.js +11 -0
- package/dist/server/http/crawlerText.d.ts +15 -0
- package/dist/server/http/crawlerText.js +32 -0
- package/dist/server/http/dataRoutes.d.ts +88 -0
- package/dist/server/http/dataRoutes.js +137 -0
- package/dist/server/http/door.d.ts +57 -0
- package/dist/server/http/door.js +39 -0
- package/dist/server/http/exportRoute.d.ts +15 -0
- package/dist/server/http/exportRoute.js +320 -0
- package/dist/server/http/firstPaint.d.ts +108 -0
- package/dist/server/http/firstPaint.js +262 -0
- package/dist/server/http/httpOperationRoutes.d.ts +11 -0
- package/dist/server/http/httpOperationRoutes.js +50 -0
- package/dist/server/http/pageReads.d.ts +20 -0
- package/dist/server/http/pageReads.js +205 -0
- package/dist/server/http/pageRoutes.d.ts +39 -0
- package/dist/server/http/pageRoutes.js +291 -0
- package/dist/server/http/probes.d.ts +22 -0
- package/dist/server/http/probes.js +27 -0
- package/dist/server/http/rateLimit.d.ts +131 -0
- package/dist/server/http/rateLimit.js +351 -0
- package/dist/server/http/readRoutes.d.ts +9 -0
- package/dist/server/http/readRoutes.js +131 -0
- package/dist/server/http/readRouting.d.ts +20 -0
- package/dist/server/http/readRouting.js +80 -0
- package/dist/server/http/recordCompose.d.ts +67 -0
- package/dist/server/http/recordCompose.js +167 -0
- package/dist/server/http/recordWrites.d.ts +89 -0
- package/dist/server/http/recordWrites.js +298 -0
- package/dist/server/http/refusalReport.d.ts +38 -0
- package/dist/server/http/refusalReport.js +63 -0
- package/dist/server/http/reply.d.ts +130 -0
- package/dist/server/http/reply.js +394 -0
- package/dist/server/http/requestOrigin.d.ts +11 -0
- package/dist/server/http/requestOrigin.js +8 -0
- package/dist/server/http/router.d.ts +45 -0
- package/dist/server/http/router.js +22 -0
- package/dist/server/http/serverCore.d.ts +68 -0
- package/dist/server/http/serverCore.js +177 -0
- package/dist/server/http/traceRequest.d.ts +30 -0
- package/dist/server/http/traceRequest.js +224 -0
- package/dist/server/http/trust.d.ts +261 -0
- package/dist/server/http/trust.js +472 -0
- package/dist/server/http/writeRefusal.d.ts +33 -0
- package/dist/server/http/writeRefusal.js +24 -0
- package/dist/server/httpConnection.d.ts +49 -0
- package/dist/server/httpConnection.js +170 -0
- package/dist/server/impact.d.ts +55 -0
- package/dist/server/impact.js +47 -0
- package/dist/server/journal.d.ts +134 -0
- package/dist/server/journal.js +398 -0
- package/dist/server/keysetReadHttp.d.ts +52 -0
- package/dist/server/keysetReadHttp.js +85 -0
- package/dist/server/layouts.d.ts +49 -0
- package/dist/server/layouts.js +192 -0
- package/dist/server/migrate/cli.d.ts +55 -0
- package/dist/server/migrate/cli.js +517 -0
- package/dist/server/migrate/database.d.ts +37 -0
- package/dist/server/migrate/database.js +247 -0
- package/dist/server/migrate/desired.d.ts +76 -0
- package/dist/server/migrate/desired.js +292 -0
- package/dist/server/migrate/files.d.ts +34 -0
- package/dist/server/migrate/files.js +141 -0
- package/dist/server/migrate/flyway.d.ts +7 -0
- package/dist/server/migrate/flyway.js +69 -0
- package/dist/server/migrate/history.d.ts +70 -0
- package/dist/server/migrate/history.js +211 -0
- package/dist/server/migrate/runner.d.ts +100 -0
- package/dist/server/migrate/runner.js +409 -0
- package/dist/server/migrate/snapshot.d.ts +30 -0
- package/dist/server/migrate/snapshot.js +239 -0
- package/dist/server/migrate/target.d.ts +33 -0
- package/dist/server/migrate/target.js +82 -0
- package/dist/server/openapiDraft.d.ts +25 -0
- package/dist/server/openapiDraft.js +171 -0
- package/dist/server/operations/diagnostics.d.ts +101 -0
- package/dist/server/operations/diagnostics.js +284 -0
- package/dist/server/operations/requestMetrics.d.ts +33 -0
- package/dist/server/operations/requestMetrics.js +94 -0
- package/dist/server/packageVersion.d.ts +1 -0
- package/dist/server/packageVersion.js +11 -0
- package/dist/server/poolConfig.d.ts +34 -0
- package/dist/server/poolConfig.js +114 -0
- package/dist/server/product.d.ts +20 -0
- package/dist/server/product.js +12 -0
- package/dist/server/recordHistoryOperations.d.ts +39 -0
- package/dist/server/recordHistoryOperations.js +43 -0
- package/dist/server/recordWriteOperations.d.ts +111 -0
- package/dist/server/recordWriteOperations.js +329 -0
- package/dist/server/resourceReadHttp.d.ts +81 -0
- package/dist/server/resourceReadHttp.js +606 -0
- package/dist/server/resourceReadOperations.d.ts +147 -0
- package/dist/server/resourceReadOperations.js +452 -0
- package/dist/server/scaffoldMachine.d.ts +54 -0
- package/dist/server/scaffoldMachine.js +184 -0
- package/dist/server/seed/cli.d.ts +20 -0
- package/dist/server/seed/cli.js +164 -0
- package/dist/server/seed/lexicon.d.ts +26 -0
- package/dist/server/seed/lexicon.js +585 -0
- package/dist/server/seed/seed.d.ts +70 -0
- package/dist/server/seed/seed.js +779 -0
- package/dist/server/seed/words.d.ts +21 -0
- package/dist/server/seed/words.js +164 -0
- package/dist/server/serverRequests.d.ts +6 -0
- package/dist/server/serverRequests.js +33 -0
- package/dist/server/serverTimeouts.d.ts +33 -0
- package/dist/server/serverTimeouts.js +32 -0
- package/dist/server/shapeonly.d.ts +32 -0
- package/dist/server/shapeonly.js +110 -0
- package/dist/server/startupWarnings.d.ts +32 -0
- package/dist/server/startupWarnings.js +92 -0
- package/dist/shared/addressParams.d.ts +28 -0
- package/dist/shared/addressParams.js +47 -0
- package/dist/shared/appCards.d.ts +123 -0
- package/dist/shared/appCards.js +385 -0
- package/dist/shared/appComponents.d.ts +177 -0
- package/dist/shared/appComponents.js +422 -0
- package/dist/shared/appDocuments.d.ts +43 -0
- package/dist/shared/appDocuments.js +131 -0
- package/dist/shared/appEmbeds.d.ts +21 -0
- package/dist/shared/appEmbeds.js +24 -0
- package/dist/shared/appIcons.d.ts +28 -0
- package/dist/shared/appIcons.js +223 -0
- package/dist/shared/appLinks.d.ts +17 -0
- package/dist/shared/appLinks.js +124 -0
- package/dist/shared/appListColumns.d.ts +3 -0
- package/dist/shared/appListColumns.js +66 -0
- package/dist/shared/appLocale.d.ts +36 -0
- package/dist/shared/appLocale.js +86 -0
- package/dist/shared/appMessages.d.ts +44 -0
- package/dist/shared/appMessages.js +78 -0
- package/dist/shared/appNoun.d.ts +21 -0
- package/dist/shared/appNoun.js +32 -0
- package/dist/shared/autoBucket.d.ts +98 -0
- package/dist/shared/autoBucket.js +305 -0
- package/dist/shared/autoValues.d.ts +25 -0
- package/dist/shared/autoValues.js +25 -0
- package/dist/shared/breakdown.d.ts +228 -0
- package/dist/shared/breakdown.js +557 -0
- package/dist/shared/breakdowntext.d.ts +41 -0
- package/dist/shared/breakdowntext.js +400 -0
- package/dist/shared/builtInThemes.d.ts +2 -0
- package/dist/shared/builtInThemes.js +771 -0
- package/dist/shared/chartSeparation.d.ts +11 -0
- package/dist/shared/chartSeparation.js +58 -0
- package/dist/shared/clauses.d.ts +22 -0
- package/dist/shared/clauses.js +97 -0
- package/dist/shared/columnCaption.d.ts +16 -0
- package/dist/shared/columnCaption.js +90 -0
- package/dist/shared/commandFieldPath.d.ts +2 -0
- package/dist/shared/commandFieldPath.js +7 -0
- package/dist/shared/commandWire.d.ts +26 -0
- package/dist/shared/commandWire.js +41 -0
- package/dist/shared/computed.d.ts +161 -0
- package/dist/shared/computed.js +378 -0
- package/dist/shared/computedParse.d.ts +13 -0
- package/dist/shared/computedParse.js +278 -0
- package/dist/shared/computedValue.d.ts +47 -0
- package/dist/shared/computedValue.js +191 -0
- package/dist/shared/connection.d.ts +30 -0
- package/dist/shared/connection.js +1 -0
- package/dist/shared/csv.d.ts +20 -0
- package/dist/shared/csv.js +63 -0
- package/dist/shared/dashLayout.d.ts +30 -0
- package/dist/shared/dashLayout.js +132 -0
- package/dist/shared/dashboardAsks.d.ts +93 -0
- package/dist/shared/dashboardAsks.js +129 -0
- package/dist/shared/dashboardTrend.d.ts +20 -0
- package/dist/shared/dashboardTrend.js +50 -0
- package/dist/shared/declaredReferences.d.ts +50 -0
- package/dist/shared/declaredReferences.js +202 -0
- package/dist/shared/definedFields.d.ts +63 -0
- package/dist/shared/definedFields.js +103 -0
- package/dist/shared/definedValues.d.ts +63 -0
- package/dist/shared/definedValues.js +184 -0
- package/dist/shared/displayDefaults.d.ts +135 -0
- package/dist/shared/displayDefaults.js +529 -0
- package/dist/shared/dueDate.d.ts +6 -0
- package/dist/shared/dueDate.js +6 -0
- package/dist/shared/duration.d.ts +4 -0
- package/dist/shared/duration.js +23 -0
- package/dist/shared/fileBounds.d.ts +9 -0
- package/dist/shared/fileBounds.js +9 -0
- package/dist/shared/filter.d.ts +217 -0
- package/dist/shared/filter.js +305 -0
- package/dist/shared/firstPaint.d.ts +24 -0
- package/dist/shared/firstPaint.js +33 -0
- package/dist/shared/form.d.ts +21 -0
- package/dist/shared/form.js +25 -0
- package/dist/shared/formValues.d.ts +104 -0
- package/dist/shared/formValues.js +352 -0
- package/dist/shared/funnel.d.ts +45 -0
- package/dist/shared/funnel.js +108 -0
- package/dist/shared/httpOperations.d.ts +48 -0
- package/dist/shared/httpOperations.js +9 -0
- package/dist/shared/iconGlyphs.d.ts +4 -0
- package/dist/shared/iconGlyphs.js +151 -0
- package/dist/shared/iconWeights.d.ts +3 -0
- package/dist/shared/iconWeights.js +162 -0
- package/dist/shared/imageWidths.d.ts +32 -0
- package/dist/shared/imageWidths.js +38 -0
- package/dist/shared/keysetPage.d.ts +64 -0
- package/dist/shared/keysetPage.js +161 -0
- package/dist/shared/like.d.ts +20 -0
- package/dist/shared/like.js +29 -0
- package/dist/shared/listEmpty.d.ts +12 -0
- package/dist/shared/listEmpty.js +36 -0
- package/dist/shared/listFilters.d.ts +28 -0
- package/dist/shared/listFilters.js +84 -0
- package/dist/shared/listPresentations.d.ts +199 -0
- package/dist/shared/listPresentations.js +7 -0
- package/dist/shared/listQuestion.d.ts +52 -0
- package/dist/shared/listQuestion.js +137 -0
- package/dist/shared/lookPalettes.d.ts +62 -0
- package/dist/shared/lookPalettes.js +306 -0
- package/dist/shared/maskQuoted.d.ts +24 -0
- package/dist/shared/maskQuoted.js +48 -0
- package/dist/shared/mentionLabel.d.ts +19 -0
- package/dist/shared/mentionLabel.js +38 -0
- package/dist/shared/mentionLookup.d.ts +17 -0
- package/dist/shared/mentionLookup.js +64 -0
- package/dist/shared/menuCounts.d.ts +16 -0
- package/dist/shared/menuCounts.js +74 -0
- package/dist/shared/model.d.ts +79 -0
- package/dist/shared/model.js +153 -0
- package/dist/shared/money.d.ts +44 -0
- package/dist/shared/money.js +81 -0
- package/dist/shared/moneyEntry.d.ts +7 -0
- package/dist/shared/moneyEntry.js +27 -0
- package/dist/shared/mount.d.ts +118 -0
- package/dist/shared/mount.js +248 -0
- package/dist/shared/niceTicks.d.ts +26 -0
- package/dist/shared/niceTicks.js +50 -0
- package/dist/shared/order.d.ts +59 -0
- package/dist/shared/order.js +133 -0
- package/dist/shared/page.d.ts +135 -0
- package/dist/shared/page.js +1187 -0
- package/dist/shared/pageAnatomy.d.ts +99 -0
- package/dist/shared/pageAnatomy.js +370 -0
- package/dist/shared/pageConfig.d.ts +25 -0
- package/dist/shared/pageConfig.js +1308 -0
- package/dist/shared/pageEmptyActions.d.ts +12 -0
- package/dist/shared/pageEmptyActions.js +20 -0
- package/dist/shared/pageLayouts.d.ts +72 -0
- package/dist/shared/pageLayouts.js +205 -0
- package/dist/shared/pageModel.d.ts +785 -0
- package/dist/shared/pageModel.js +121 -0
- package/dist/shared/pagePaths.d.ts +180 -0
- package/dist/shared/pagePaths.js +869 -0
- package/dist/shared/pagePlans.d.ts +52 -0
- package/dist/shared/pagePlans.js +108 -0
- package/dist/shared/pageRoutes.d.ts +9 -0
- package/dist/shared/pageRoutes.js +9 -0
- package/dist/shared/query.d.ts +166 -0
- package/dist/shared/query.js +1302 -0
- package/dist/shared/queryDates.d.ts +12 -0
- package/dist/shared/queryDates.js +101 -0
- package/dist/shared/queryOperands.d.ts +99 -0
- package/dist/shared/queryOperands.js +131 -0
- package/dist/shared/reads.d.ts +103 -0
- package/dist/shared/reads.js +154 -0
- package/dist/shared/recordLabel.d.ts +51 -0
- package/dist/shared/recordLabel.js +123 -0
- package/dist/shared/recordReadKeys.d.ts +30 -0
- package/dist/shared/recordReadKeys.js +51 -0
- package/dist/shared/recordReads.d.ts +268 -0
- package/dist/shared/recordReads.js +368 -0
- package/dist/shared/recordview.d.ts +198 -0
- package/dist/shared/recordview.js +356 -0
- package/dist/shared/referenceModel.d.ts +58 -0
- package/dist/shared/referenceModel.js +194 -0
- package/dist/shared/refusal.d.ts +64 -0
- package/dist/shared/refusal.js +144 -0
- package/dist/shared/relatedCreate.d.ts +30 -0
- package/dist/shared/relatedCreate.js +162 -0
- package/dist/shared/resourceHttp.d.ts +464 -0
- package/dist/shared/resourceHttp.js +1 -0
- package/dist/shared/richText.d.ts +85 -0
- package/dist/shared/richText.js +305 -0
- package/dist/shared/rollups.d.ts +143 -0
- package/dist/shared/rollups.js +64 -0
- package/dist/shared/rowScope.d.ts +72 -0
- package/dist/shared/rowScope.js +376 -0
- package/dist/shared/runtimeTables.d.ts +44 -0
- package/dist/shared/runtimeTables.js +79 -0
- package/dist/shared/schema.d.ts +523 -0
- package/dist/shared/schema.js +627 -0
- package/dist/shared/schematext.d.ts +38 -0
- package/dist/shared/schematext.js +101 -0
- package/dist/shared/scopeCatalog.d.ts +29 -0
- package/dist/shared/scopeCatalog.js +468 -0
- package/dist/shared/servedApp.d.ts +681 -0
- package/dist/shared/servedApp.js +45 -0
- package/dist/shared/sessionLease.d.ts +34 -0
- package/dist/shared/sessionLease.js +3 -0
- package/dist/shared/shape.d.ts +55 -0
- package/dist/shared/shape.js +168 -0
- package/dist/shared/slug.d.ts +1 -0
- package/dist/shared/slug.js +12 -0
- package/dist/shared/sortText.d.ts +14 -0
- package/dist/shared/sortText.js +26 -0
- package/dist/shared/sqlRelation.d.ts +4 -0
- package/dist/shared/sqlRelation.js +8 -0
- package/dist/shared/sqlsaved.d.ts +44 -0
- package/dist/shared/sqlsaved.js +63 -0
- package/dist/shared/stitchedPaths.d.ts +27 -0
- package/dist/shared/stitchedPaths.js +38 -0
- package/dist/shared/structuredFilter.d.ts +22 -0
- package/dist/shared/structuredFilter.js +1 -0
- package/dist/shared/subtitlePath.d.ts +20 -0
- package/dist/shared/subtitlePath.js +24 -0
- package/dist/shared/suggest.d.ts +18 -0
- package/dist/shared/suggest.js +59 -0
- package/dist/shared/tableSizing.d.ts +4 -0
- package/dist/shared/tableSizing.js +9 -0
- package/dist/shared/tagLists.d.ts +57 -0
- package/dist/shared/tagLists.js +34 -0
- package/dist/shared/textRules.d.ts +54 -0
- package/dist/shared/textRules.js +133 -0
- package/dist/shared/theme.d.ts +94 -0
- package/dist/shared/theme.js +800 -0
- package/dist/shared/themeColor.d.ts +34 -0
- package/dist/shared/themeColor.js +109 -0
- package/dist/shared/themeFaces.d.ts +30 -0
- package/dist/shared/themeFaces.js +42 -0
- package/dist/shared/themeInk.d.ts +20 -0
- package/dist/shared/themeInk.js +52 -0
- package/dist/shared/themeLooks.d.ts +9 -0
- package/dist/shared/themeLooks.js +572 -0
- package/dist/shared/themeParts.d.ts +26 -0
- package/dist/shared/themeParts.js +71 -0
- package/dist/shared/themePartsCheck.d.ts +21 -0
- package/dist/shared/themePartsCheck.js +91 -0
- package/dist/shared/themePresets.d.ts +85 -0
- package/dist/shared/themePresets.js +139 -0
- package/dist/shared/themeRecipeWords.d.ts +156 -0
- package/dist/shared/themeRecipeWords.js +156 -0
- package/dist/shared/themeRecipes.d.ts +213 -0
- package/dist/shared/themeRecipes.js +234 -0
- package/dist/shared/themeResolve.d.ts +55 -0
- package/dist/shared/themeResolve.js +52 -0
- package/dist/shared/themeTokens.d.ts +107 -0
- package/dist/shared/themeTokens.js +116 -0
- package/dist/shared/themeType.d.ts +38 -0
- package/dist/shared/themeType.js +205 -0
- package/dist/shared/unitWord.d.ts +4 -0
- package/dist/shared/unitWord.js +37 -0
- package/dist/shared/view.d.ts +195 -0
- package/dist/shared/view.js +987 -0
- package/dist/shared/viewLabels.d.ts +47 -0
- package/dist/shared/viewLabels.js +459 -0
- package/dist/shared/viewPaths.d.ts +248 -0
- package/dist/shared/viewPaths.js +294 -0
- package/dist/shared/viewtext.d.ts +57 -0
- package/dist/shared/viewtext.js +282 -0
- package/dist/shared/vocabulary.d.ts +71 -0
- package/dist/shared/vocabulary.js +249 -0
- package/dist/shared/weekStart.d.ts +7 -0
- package/dist/shared/weekStart.js +36 -0
- package/mark.svg +1 -0
- package/package.json +261 -4
- package/schema/model.d.ts +298 -0
- package/schema/theme.d.ts +587 -0
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { Refusal } from '../adapter.js';
|
|
2
|
+
import { comparableType, isJsonType } from '../../shared/schema.js';
|
|
3
|
+
/** Appended to a complete primary-key WHERE, with values bound after its parameters. */
|
|
4
|
+
export function buildUpdateGuard(request, types, style, dialect, startIndex) {
|
|
5
|
+
if (request.expected === undefined)
|
|
6
|
+
return { text: '', params: [] };
|
|
7
|
+
const expected = request.expected;
|
|
8
|
+
if (!expected || typeof expected !== 'object' || Array.isArray(expected))
|
|
9
|
+
throw new Refusal('Expected values must be an object containing exactly the fields being updated.');
|
|
10
|
+
/* A JSON column is written whole and compares on no engine, so its
|
|
11
|
+
original value may be left out (a command's update leaves it out). */
|
|
12
|
+
const columns = Object.keys(request.values).filter((column) => Object.hasOwn(expected, column) || !isJsonType(types[column] ?? ''));
|
|
13
|
+
if (Object.keys(expected).length !== columns.length || !columns.every((column) => Object.hasOwn(expected, column))) {
|
|
14
|
+
throw new Refusal('Expected values must contain exactly the fields being updated.');
|
|
15
|
+
}
|
|
16
|
+
const params = [];
|
|
17
|
+
const checks = columns.map((column) => {
|
|
18
|
+
const value = expected[column];
|
|
19
|
+
const quoted = style.quote(column);
|
|
20
|
+
if (value === null)
|
|
21
|
+
return `${quoted} IS NULL`;
|
|
22
|
+
if (typeof value !== 'string' && typeof value !== 'boolean' && !(typeof value === 'number' && Number.isFinite(value))) {
|
|
23
|
+
throw new Refusal(`The original value of "${column}" must be a scalar or NULL.`);
|
|
24
|
+
}
|
|
25
|
+
const type = types[column] ?? '';
|
|
26
|
+
if (!comparableType(type)) {
|
|
27
|
+
throw new Refusal(`Protected editing of "${column}" (${type}) is not supported. Its original value cannot be compared safely here.`);
|
|
28
|
+
}
|
|
29
|
+
const placeholder = style.placeholder(startIndex + params.length);
|
|
30
|
+
// Preserve decimal/integer strings: Number() could round the original value.
|
|
31
|
+
params.push(dialect === 'sqlite' && typeof value === 'boolean' ? Number(value) : value);
|
|
32
|
+
// SQLite can store text even without a declared type; its collation still applies.
|
|
33
|
+
if (dialect === 'sqlite')
|
|
34
|
+
return `${quoted} COLLATE BINARY = ${placeholder}`;
|
|
35
|
+
if (/char|text|clob|citext/i.test(type))
|
|
36
|
+
return `${quoted}::text COLLATE "C" = ${placeholder}`;
|
|
37
|
+
return `${quoted} = ${placeholder}`;
|
|
38
|
+
});
|
|
39
|
+
return checks.length ? { text: ` AND (${checks.join(' AND ')})`, params } : { text: '', params: [] };
|
|
40
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { PoolerMode } from './poolMetrics.js';
|
|
2
|
+
export type WriteOrder = 'serial' | 'keyed';
|
|
3
|
+
/** `--trust-proxy-hops` and `--trust-proxy-cloudflare`: how a forwarded client address is found (trust.ts). */
|
|
4
|
+
export interface ClientAddressPolicy {
|
|
5
|
+
/** This many proxies append to X-Forwarded-For, the socket peer being the first. */
|
|
6
|
+
readonly hops?: number;
|
|
7
|
+
/** The server is reachable only through Cloudflare, which sets CF-Connecting-IP. */
|
|
8
|
+
readonly cloudflare?: boolean;
|
|
9
|
+
}
|
|
10
|
+
export interface ServerSettings {
|
|
11
|
+
readonly clientAddress: ClientAddressPolicy;
|
|
12
|
+
/**
|
|
13
|
+
* The address the server is published at (MISTRI_PUBLIC_URL, or a mounting
|
|
14
|
+
* host's) is https: a TLS front end stands before every request, so a
|
|
15
|
+
* request counts as https whatever its own socket says (trust.ts
|
|
16
|
+
* `arrivedOverHttps`). Cloudflare, Cloud Run and most platforms end TLS
|
|
17
|
+
* and forward plain http from a peer nobody can name in `--trust-proxy`.
|
|
18
|
+
*/
|
|
19
|
+
readonly httpsFront?: boolean;
|
|
20
|
+
/** `--read-pool`: a PostgreSQL reader pool's size; unset, it follows the write order (postgresPool.ts). */
|
|
21
|
+
readonly readers?: number;
|
|
22
|
+
/** `--pooler`. */
|
|
23
|
+
readonly pooler: PoolerMode;
|
|
24
|
+
/** `--write-pool`; unset, the balanced size (writeLanes.ts). */
|
|
25
|
+
readonly writers?: number;
|
|
26
|
+
/** `--lock-timeout`; unset, the default. */
|
|
27
|
+
readonly lockTimeoutMs?: number;
|
|
28
|
+
/**
|
|
29
|
+
* `keyed` where the server serves Apps, `serial` for the database browser
|
|
30
|
+
* (writeLanes.ts). Settled once the config is read, before a connection
|
|
31
|
+
* opens, so it is the one field startup writes after the scope is entered.
|
|
32
|
+
*/
|
|
33
|
+
writeOrder: WriteOrder;
|
|
34
|
+
}
|
|
35
|
+
/** What a server that names nothing gets. */
|
|
36
|
+
export declare function defaultServerSettings(): ServerSettings;
|
|
37
|
+
/** The settings of the server this work belongs to: its scope's, or the process's. */
|
|
38
|
+
export declare function serverSettings(): ServerSettings;
|
|
39
|
+
/** Run `work`, and everything it starts, as the server `settings` describe. */
|
|
40
|
+
export declare function withServerSettings<T>(settings: ServerSettings, work: () => T): T;
|
|
41
|
+
/**
|
|
42
|
+
* Change the process's settings — what is read outside any scope: the
|
|
43
|
+
* command line's one server, a test. Fields it leaves out keep their value.
|
|
44
|
+
*/
|
|
45
|
+
export declare function configureServerSettings(change: Partial<ServerSettings>): void;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What one server was started with that is read far below its requests: the
|
|
3
|
+
* client-address rule a rate limit keys by (http/trust.ts `forwardedClient`),
|
|
4
|
+
* and the pool sizes, pooler mode, lock wait and write order every adapter it
|
|
5
|
+
* opens takes (postgresPool.ts, writeLanes.ts).
|
|
6
|
+
*
|
|
7
|
+
* These were process globals, set once at startup, which was right while a
|
|
8
|
+
* process was one server. `createHandler` (embed/handler.ts) puts
|
|
9
|
+
* several in one host process, and each started by overwriting the globals:
|
|
10
|
+
* the last handler's proxy trust decided whose X-Forwarded-For every
|
|
11
|
+
* handler's limits believed. So a handler's settings are a value it carries,
|
|
12
|
+
* and everything it runs — its startup, every request it is given, its
|
|
13
|
+
* close — runs inside `withServerSettings`, where `serverSettings()` reads
|
|
14
|
+
* them. The command line is one server per process and installs its own as
|
|
15
|
+
* the process's (`configureServerSettings`), which is what is read outside
|
|
16
|
+
* any scope.
|
|
17
|
+
*
|
|
18
|
+
* A scope rather than an argument: the readers are a dozen limiters and the
|
|
19
|
+
* constructor of every pool, opened by the registry, a tenant source, the job
|
|
20
|
+
* host and a startup check alike. An argument would have to reach each, and
|
|
21
|
+
* one that missed would quietly return to the default — the failure this
|
|
22
|
+
* exists to end. A scope reaches all of them by construction, timers and
|
|
23
|
+
* all, since an async context follows its callbacks.
|
|
24
|
+
*/
|
|
25
|
+
import { AsyncLocalStorage } from 'node:async_hooks';
|
|
26
|
+
/** What a server that names nothing gets. */
|
|
27
|
+
export function defaultServerSettings() {
|
|
28
|
+
return { clientAddress: {}, pooler: 'session', writeOrder: 'serial' };
|
|
29
|
+
}
|
|
30
|
+
let processSettings = defaultServerSettings();
|
|
31
|
+
const scope = new AsyncLocalStorage();
|
|
32
|
+
/** The settings of the server this work belongs to: its scope's, or the process's. */
|
|
33
|
+
export function serverSettings() {
|
|
34
|
+
return scope.getStore() ?? processSettings;
|
|
35
|
+
}
|
|
36
|
+
/** Run `work`, and everything it starts, as the server `settings` describe. */
|
|
37
|
+
export function withServerSettings(settings, work) {
|
|
38
|
+
return scope.run(settings, work);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Change the process's settings — what is read outside any scope: the
|
|
42
|
+
* command line's one server, a test. Fields it leaves out keep their value.
|
|
43
|
+
*/
|
|
44
|
+
export function configureServerSettings(change) {
|
|
45
|
+
processSettings = { ...processSettings, ...change };
|
|
46
|
+
}
|
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
import { DatabaseSync, type SQLInputValue } from 'node:sqlite';
|
|
2
|
+
import { type Adapter, type ScopedReads, type Filter, type QueryRequest, type QueryResult, type SqlRequest, type SqlResult, type DeleteRequest, type DeleteResult, type UpdateRequest, type UpdateResult, type ViewResult, type BreakdownResult, TransactionOperations, type WriteTransaction, type InsertRequest, type InsertResult, type ExplainRequest, type ExplainResult, type ProfileLimits, type ProfileResult, type CountItem } from './adapter.js';
|
|
3
|
+
import { type SqliteScopeCatalog } from './scoped/sqliteScopeCatalog.js';
|
|
4
|
+
import { type RowScope } from '../shared/rowScope.js';
|
|
5
|
+
import { type ViewDef } from '../shared/view.js';
|
|
6
|
+
import { type BreakdownDef } from '../shared/breakdown.js';
|
|
7
|
+
import { type DatabaseSchema } from '../shared/schema.js';
|
|
8
|
+
/** Identity-only native provenance; no caller can register a lookalike. */
|
|
9
|
+
export declare const isSqliteVerifiedCommandSource: (value: unknown) => value is SqliteAdapter;
|
|
10
|
+
export declare class SqliteAdapter implements Adapter {
|
|
11
|
+
private file;
|
|
12
|
+
private label;
|
|
13
|
+
readonly dialect: 'sqlite';
|
|
14
|
+
private db;
|
|
15
|
+
/** Opened lazily, only when an edit is actually applied. */
|
|
16
|
+
private writeDb;
|
|
17
|
+
private closed;
|
|
18
|
+
private writes;
|
|
19
|
+
private readonly writeIdentity;
|
|
20
|
+
private readonly introspectedVersions;
|
|
21
|
+
private readonly catalogCache;
|
|
22
|
+
/** The epoch the open write transaction read, on the handle it read it on. */
|
|
23
|
+
private txEpoch?;
|
|
24
|
+
constructor(file: string, label?: string);
|
|
25
|
+
private queueWrite;
|
|
26
|
+
private assertWriteIdentity;
|
|
27
|
+
private schemaVersion;
|
|
28
|
+
/** Opt-in physical-schema lifetime fence. No logical clone or another
|
|
29
|
+
* adapter's schema is accepted. Ordinary DDL invalidates it synchronously;
|
|
30
|
+
* malicious manual schema_version resets are outside this contract. */
|
|
31
|
+
captureSchemaLifetime(schema: DatabaseSchema): () => void;
|
|
32
|
+
introspect(): Promise<DatabaseSchema>;
|
|
33
|
+
private indexesOf;
|
|
34
|
+
/**
|
|
35
|
+
* The columns a unique index makes unique alone. `PRAGMA index_list`
|
|
36
|
+
* reports UNIQUE constraints as the indexes SQLite made for them, so one
|
|
37
|
+
* reading covers both; a partial index proves nothing about the rows it
|
|
38
|
+
* leaves out, and an expression column has no name.
|
|
39
|
+
*/
|
|
40
|
+
private uniqueColumns;
|
|
41
|
+
/** The column pairs a unique index of exactly two named columns keeps
|
|
42
|
+
* unique together, read as uniqueColumns reads one alone. */
|
|
43
|
+
private uniquePairs;
|
|
44
|
+
/**
|
|
45
|
+
* The columns an ORDER BY can lean on.
|
|
46
|
+
*
|
|
47
|
+
* `PRAGMA index_list` reports every index including the implicit ones
|
|
48
|
+
* SQLite creates for UNIQUE and for a non-integer primary key; `index_info`
|
|
49
|
+
* gives their columns in order and only the first of each is useful for
|
|
50
|
+
* sorting.
|
|
51
|
+
*
|
|
52
|
+
* `INTEGER PRIMARY KEY` is special and has no index at all — it *is* the
|
|
53
|
+
* rowid, so ordering by it is free — which is exactly the case a naive
|
|
54
|
+
* index scan would report as unindexed and then refuse to sort by.
|
|
55
|
+
*/
|
|
56
|
+
private leadingIndexColumns;
|
|
57
|
+
query(request: QueryRequest): Promise<QueryResult>;
|
|
58
|
+
scopeReads(input: RowScope): Promise<ScopedReads>;
|
|
59
|
+
private queryOn;
|
|
60
|
+
/**
|
|
61
|
+
* Run a compiled view.
|
|
62
|
+
*
|
|
63
|
+
* Everything hard happened in `compileView`: paths resolved against the
|
|
64
|
+
* catalog, joins planned with collision-free aliases, values reduced to
|
|
65
|
+
* bound parameters. What is left here is picking the dialect's style and
|
|
66
|
+
* handing the statement to the driver — which is the point. An adapter that
|
|
67
|
+
* built its own joins would be an adapter that could get LEFT wrong on its
|
|
68
|
+
* own.
|
|
69
|
+
*/
|
|
70
|
+
runView(view: ViewDef, offset?: number): Promise<ViewResult>;
|
|
71
|
+
runBreakdown(breakdown: BreakdownDef, offset?: number): Promise<BreakdownResult>;
|
|
72
|
+
countBreakdown(breakdown: BreakdownDef, limit?: number): Promise<number>;
|
|
73
|
+
countView(view: ViewDef, limit?: number): Promise<number>;
|
|
74
|
+
/**
|
|
75
|
+
* EXPLAIN QUERY PLAN, indented the way the tree nests.
|
|
76
|
+
*
|
|
77
|
+
* Prepared and read, never executed: the rows come from the EXPLAIN
|
|
78
|
+
* statement itself, so even a write handed here is only ever planned — on
|
|
79
|
+
* the read-only handle, at that.
|
|
80
|
+
*/
|
|
81
|
+
explainSql(request: ExplainRequest): Promise<ExplainResult>;
|
|
82
|
+
/**
|
|
83
|
+
* SQLite keeps no column statistics worth reading — sqlite_stat1 knows
|
|
84
|
+
* index selectivity, not null shares — so this looks: one aggregate pass
|
|
85
|
+
* for counts and edges, then one small GROUP BY per column that provably
|
|
86
|
+
* repeats. `source` tells the caller what the look cost.
|
|
87
|
+
*
|
|
88
|
+
* Above `scanAtMost` rows it stops scanning and samples, because
|
|
89
|
+
* node:sqlite is synchronous and a full pass over a ten-million-row table
|
|
90
|
+
* holds the whole process for seconds. Every k-th rowid rather than the
|
|
91
|
+
* first N: insertion order is not a sample, it is a history, and a min
|
|
92
|
+
* taken from the first month of data would be presented as the table's.
|
|
93
|
+
* A view — or a WITHOUT ROWID table, which refuses the arithmetic — falls
|
|
94
|
+
* back to the first N with the same honest label, because running a view
|
|
95
|
+
* twice to randomise it would cost what sampling exists to avoid.
|
|
96
|
+
*/
|
|
97
|
+
profile(table: string, limits?: ProfileLimits): Promise<ProfileResult>;
|
|
98
|
+
/**
|
|
99
|
+
* After each statement a call runs: a turn of the event loop — a cancel
|
|
100
|
+
* can only be read when there is one, and node:sqlite gives none while a
|
|
101
|
+
* statement runs — then a stop if the call was cancelled, before its next
|
|
102
|
+
* statement starts. After, not before, so a read takes its arguments as it
|
|
103
|
+
* is called. A read nobody can cancel does not pay for it.
|
|
104
|
+
*/
|
|
105
|
+
private turn;
|
|
106
|
+
/** Introspection is cheap here but not free; the view path re-uses it. */
|
|
107
|
+
private cachedSchema;
|
|
108
|
+
private schema;
|
|
109
|
+
count(table: string, filter?: Filter, limit?: number): Promise<number>;
|
|
110
|
+
countEach(items: readonly CountItem[], limit?: number): Promise<number[]>;
|
|
111
|
+
private countOn;
|
|
112
|
+
/**
|
|
113
|
+
* One compiled read's rows, BigInts and all. A read that could hold the
|
|
114
|
+
* server's one thread — a count, a filter or a sort over a large table —
|
|
115
|
+
* runs in the statement process instead (sqliteCostlyReads.ts); one on the
|
|
116
|
+
* write handle, inside a transaction, stays where its transaction is.
|
|
117
|
+
*/
|
|
118
|
+
private readRows;
|
|
119
|
+
/**
|
|
120
|
+
* SQLite stores the original statement text, so this is the real thing —
|
|
121
|
+
* whitespace, comments, check constraints and all — not a reconstruction.
|
|
122
|
+
* Indexes are appended because they are separate statements in
|
|
123
|
+
* `sqlite_master` and are usually the first thing you want after the shape.
|
|
124
|
+
*/
|
|
125
|
+
ddl(table: string): Promise<string | undefined>;
|
|
126
|
+
/**
|
|
127
|
+
* The write path, on its own handle.
|
|
128
|
+
*
|
|
129
|
+
* `this.db` is opened read-only and stays that way for the life of the
|
|
130
|
+
* process, so browsing can never write no matter what the UI believes. A
|
|
131
|
+
* second handle is opened the first time an edit is actually applied.
|
|
132
|
+
*/
|
|
133
|
+
update(request: UpdateRequest): Promise<UpdateResult>;
|
|
134
|
+
private updateNow;
|
|
135
|
+
/**
|
|
136
|
+
* Add one row.
|
|
137
|
+
*
|
|
138
|
+
* The guards are `update`'s where they apply — real columns, coerced
|
|
139
|
+
* values, a NOT NULL that cannot be handed null — but the key rules
|
|
140
|
+
* invert: a primary key may be supplied (currency.code is one somebody
|
|
141
|
+
* types) or left for the database to assign. What is deliberately *not*
|
|
142
|
+
* pre-checked is completeness: a missing NOT NULL column with no default
|
|
143
|
+
* is the database's refusal to make, and its message names the column
|
|
144
|
+
* better than a paraphrase would.
|
|
145
|
+
*
|
|
146
|
+
* `RETURNING *` rather than last_insert_rowid plus a re-read: one
|
|
147
|
+
* statement returns the row as stored — defaults filled, the assigned key
|
|
148
|
+
* included — with no window for another write to land in between.
|
|
149
|
+
*/
|
|
150
|
+
insert(request: InsertRequest): Promise<InsertResult>;
|
|
151
|
+
private insertNow;
|
|
152
|
+
/**
|
|
153
|
+
* Run a statement the user wrote.
|
|
154
|
+
*
|
|
155
|
+
* The read handle is opened `readOnly: true` at the file level, which SQLite
|
|
156
|
+
* enforces in the engine — there is no session setting for a statement to
|
|
157
|
+
* reset, so unlike the other two adapters no transaction wrapper is needed
|
|
158
|
+
* to make the guarantee real.
|
|
159
|
+
*
|
|
160
|
+
* What SQLite does not have is a statement timeout, and `node:sqlite` is
|
|
161
|
+
* synchronous with no interrupt, so a pathological statement on this handle
|
|
162
|
+
* blocks the whole process rather than one request. The LIMIT wrap covers
|
|
163
|
+
* the ordinary case — a streaming SELECT stops once it has enough rows — but
|
|
164
|
+
* not an aggregate over a cross join, which has to finish before it returns
|
|
165
|
+
* anything. So a read whose caller can stop it — one run inside
|
|
166
|
+
* `withCancellation`, as every MCP tool call is — runs in a process of its
|
|
167
|
+
* own instead, which its cap or a cancel kills (sqliteStatementProcess.ts).
|
|
168
|
+
* The browser's SQL editor runs its reads that way too (dataWriteRoutes.ts);
|
|
169
|
+
* only an in-memory database, which has no second handle, and a caller with
|
|
170
|
+
* no signal keep the in-process handle and its limit.
|
|
171
|
+
*/
|
|
172
|
+
runSql(request: SqlRequest): Promise<SqlResult>;
|
|
173
|
+
private runSqlNow;
|
|
174
|
+
/**
|
|
175
|
+
* Delete one row.
|
|
176
|
+
*
|
|
177
|
+
* The guards are `update`'s, for the same reason they are `update`'s: the
|
|
178
|
+
* danger in an editor is never injection, it is a statement whose WHERE is
|
|
179
|
+
* broader than the author believed. A delete has the sharper version of that
|
|
180
|
+
* problem, so nothing here is relaxed.
|
|
181
|
+
*
|
|
182
|
+
* Foreign keys are the database's business. `node:sqlite` enables
|
|
183
|
+
* `foreign_keys` by default — checked, not assumed — so a RESTRICT fires and
|
|
184
|
+
* a CASCADE cascades exactly as the schema says, and the error the user sees
|
|
185
|
+
* is SQLite's own.
|
|
186
|
+
*/
|
|
187
|
+
remove(request: DeleteRequest): Promise<DeleteResult>;
|
|
188
|
+
private recordsHistory;
|
|
189
|
+
/**
|
|
190
|
+
* A store's layout attested once per schema epoch rather than on every
|
|
191
|
+
* read: its three catalog reads were two of every room's statements in an
|
|
192
|
+
* App that keeps notices. The epoch — the schema versions, and the store's
|
|
193
|
+
* meta row, a data fact — is one statement read first; the layout is
|
|
194
|
+
* described again whenever it has moved.
|
|
195
|
+
*/
|
|
196
|
+
private attestedStore;
|
|
197
|
+
/** A write capture's reads on a transaction's own handle (writeCapture.ts). */
|
|
198
|
+
private captureSource;
|
|
199
|
+
private lockRecordNow;
|
|
200
|
+
private removeNow;
|
|
201
|
+
private writeHandle;
|
|
202
|
+
/**
|
|
203
|
+
* Several writes as one, or none of them.
|
|
204
|
+
*
|
|
205
|
+
* `BEGIN IMMEDIATE` serializes writers across processes, not just this queue.
|
|
206
|
+
* Reads and mutation preflights inside the callback share its write handle.
|
|
207
|
+
* Ordinary browsing remains on the separate read-only handle.
|
|
208
|
+
*
|
|
209
|
+
* `node:sqlite` is synchronous, so nothing can interleave *within* one
|
|
210
|
+
* statement; the queue is what stops another request's write interleaving
|
|
211
|
+
* *between* two of these.
|
|
212
|
+
*/
|
|
213
|
+
transaction<T>(run: (tx: WriteTransaction) => Promise<T>): Promise<T>;
|
|
214
|
+
/**
|
|
215
|
+
* Records and a durable journal in one transaction, the journal lent by
|
|
216
|
+
* the App framework (storeHost.ts TransactionJournal): the command journal,
|
|
217
|
+
* or a public placement's. Lent through the store host, never on the
|
|
218
|
+
* class, so the database browser has no journal path at all. A verified
|
|
219
|
+
* ordinary transaction's check is trusted host code, never a
|
|
220
|
+
* handler/request: it runs after BEGIN and journal attestation and after
|
|
221
|
+
* the operations drain, before COMMIT, and infers no tenant namespace, row
|
|
222
|
+
* scope or bearer authority.
|
|
223
|
+
*/
|
|
224
|
+
private journalTransaction;
|
|
225
|
+
scopeTransaction<T>(input: RowScope, run: (tx: WriteTransaction, catalog: DatabaseSchema) => Promise<T>): Promise<T>;
|
|
226
|
+
/** Private source-owner boundary, deliberately absent from Adapter. The
|
|
227
|
+
* verifier is trusted host code, never a business callback or wire value.
|
|
228
|
+
* It must be synchronous and may not retain the raw handle. */
|
|
229
|
+
scopeVerifiedTransaction<T>(input: RowScope, verify: (db: DatabaseSync, catalog: SqliteScopeCatalog) => void, run: (tx: WriteTransaction, catalog: DatabaseSchema) => Promise<T>): Promise<T>;
|
|
230
|
+
/** Internal runtime-owner composition, deliberately absent from Adapter.
|
|
231
|
+
* Only trusted runtime code may create bounded maintenance facades here; raw
|
|
232
|
+
* handles must never reach business handlers, policies or request callbacks.
|
|
233
|
+
* Runtime edits share the ordinary writer queue, drain and outcome handling. */
|
|
234
|
+
runtimeMaintenanceTransaction<T>(verify: (db: DatabaseSync) => void, run: (db: DatabaseSync, operations: TransactionOperations, assertCurrent: () => void) => Promise<T>): Promise<T>;
|
|
235
|
+
private transact;
|
|
236
|
+
close(): Promise<void>;
|
|
237
|
+
/**
|
|
238
|
+
* Table names are the one identifier that cannot be a bound parameter, so
|
|
239
|
+
* they are checked against the catalog rather than escaped and hoped for.
|
|
240
|
+
* An unknown name is rejected before it reaches a statement.
|
|
241
|
+
*/
|
|
242
|
+
/**
|
|
243
|
+
* The same check for a read on the browsing handle, answered from the
|
|
244
|
+
* catalog read on connect when it names the table: a name found there is
|
|
245
|
+
* one the catalog gave, so the probe would only say so again, once per
|
|
246
|
+
* statement. A name it does not hold — a table made since — still gets the
|
|
247
|
+
* live probe, and so does every write (assertTable).
|
|
248
|
+
*/
|
|
249
|
+
private readTable;
|
|
250
|
+
private assertTable;
|
|
251
|
+
/** A table's columns, as a write reads them: from the catalog, or inside a
|
|
252
|
+
* write transaction from what was read under the epoch it holds. */
|
|
253
|
+
private tableInfo;
|
|
254
|
+
/** Whether a relation is a view, as a write reads it: kept under the epoch, as its columns are. */
|
|
255
|
+
private isView;
|
|
256
|
+
/** The epoch the open write transaction holds, when `db` is its handle and it is still open. */
|
|
257
|
+
private epochOf;
|
|
258
|
+
}
|
|
259
|
+
export declare function sqliteParams(params: readonly unknown[]): SQLInputValue[];
|
|
260
|
+
/** As toJsonSafe, but a blob stays its bytes: a file download asked for them (`QueryRequest.binary`). */
|
|
261
|
+
export declare function withBytes(row: Record<string, unknown>): Record<string, unknown>;
|
|
262
|
+
export declare function toJsonSafe(row: Record<string, unknown>): Record<string, unknown>;
|