@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,361 @@
|
|
|
1
|
+
import { realpathSync, rmSync } from 'node:fs';
|
|
2
|
+
import { mkdir, mkdtemp, readdir, rm, stat } from 'node:fs/promises';
|
|
3
|
+
import { join, resolve } from 'node:path';
|
|
4
|
+
import { product } from './product.js';
|
|
5
|
+
export const FROM_SOURCE = import.meta.url.endsWith('.ts');
|
|
6
|
+
/** Whether the client is served through Vite. Source by default; the browser
|
|
7
|
+
* suite sets MISTRI_BUILT_CLIENT=1 so a server under tsx sends dist/client,
|
|
8
|
+
* which one `npm run build` made, instead of each server owning a Vite. Only
|
|
9
|
+
* the client's serving reads this — the rest of what FROM_SOURCE decides (the
|
|
10
|
+
* component SDK's exports, the console's components, the observer) stays on
|
|
11
|
+
* source, since those files sit beside the sources and not beside the build. */
|
|
12
|
+
export const SOURCE_CLIENT = FROM_SOURCE && process.env.MISTRI_BUILT_CLIENT !== '1';
|
|
13
|
+
/* The addresses Vite's own hostname rule (resolveHostname) reads as "any": its client is told `localhost` for them. */
|
|
14
|
+
const ANY_HOST = new Set(['0.0.0.0', '::', '0000:0000:0000:0000:0000:0000:0000:0000']);
|
|
15
|
+
/**
|
|
16
|
+
* The socket Vite's client opens when its first, on the page's own origin,
|
|
17
|
+
* fails: `__HMR_DIRECT_TARGET__`, which Vite writes into `/@vite/client` from
|
|
18
|
+
* the same configuration, read here by the same rule. Where the page's origin
|
|
19
|
+
* carries the socket (a server tablewalk listens on, attachDevClient) the
|
|
20
|
+
* first one opens and `'self'` admits it. Where it does not — an App mounted
|
|
21
|
+
* in a host's server (embed/handler.ts), whose server never listens and whose
|
|
22
|
+
* host does not pass an upgrade on — the client tries this one, and a policy
|
|
23
|
+
* of `'self'` alone refused it. Without a protocol configured the client uses
|
|
24
|
+
* the page's, so both are named for the one host, port and path.
|
|
25
|
+
*/
|
|
26
|
+
export function devSocket(config) {
|
|
27
|
+
const ws = typeof config.server.ws === 'object' && config.server.ws ? config.server.ws : undefined;
|
|
28
|
+
const asked = config.server.host;
|
|
29
|
+
const hostname = ws?.host || (typeof asked === 'string' && !ANY_HOST.has(asked) ? asked : 'localhost');
|
|
30
|
+
const target = `${hostname}:${ws?.port || config.server.port}${config.base}`;
|
|
31
|
+
return (ws?.protocol ? [ws.protocol] : ['ws', 'wss']).map((protocol) => `${protocol}://${target}`).join(' ');
|
|
32
|
+
}
|
|
33
|
+
/** A retired source host never reactivates its dependency watcher. */
|
|
34
|
+
export function ownDevClient(created, afterClose) {
|
|
35
|
+
// Vite closes its watcher and environments concurrently. A finishing
|
|
36
|
+
// transform can still add an outside-root dependency; Chokidar.add resets
|
|
37
|
+
// its closed flag and can resurrect that retired watcher.
|
|
38
|
+
let retired = false, closing;
|
|
39
|
+
let hmrClosing;
|
|
40
|
+
// Provider.close also closes its socket server. Share that same close with
|
|
41
|
+
// the earlier HTTP-drain step; native socket close is not repeatable.
|
|
42
|
+
if (created.ws) {
|
|
43
|
+
const closeSockets = created.ws.close.bind(created.ws);
|
|
44
|
+
created.ws.close = () => (hmrClosing ??= Promise.resolve().then(closeSockets));
|
|
45
|
+
}
|
|
46
|
+
const watched = new WeakSet();
|
|
47
|
+
const fence = () => {
|
|
48
|
+
const watcher = created.watcher;
|
|
49
|
+
if (watched.has(watcher))
|
|
50
|
+
return;
|
|
51
|
+
watched.add(watcher);
|
|
52
|
+
let closed = false;
|
|
53
|
+
const add = watcher.add.bind(watcher), close = watcher.close.bind(watcher);
|
|
54
|
+
watcher.add = (...paths) => (retired || closed ? watcher : add(...paths));
|
|
55
|
+
watcher.close = () => {
|
|
56
|
+
closed = true;
|
|
57
|
+
return close();
|
|
58
|
+
};
|
|
59
|
+
};
|
|
60
|
+
fence();
|
|
61
|
+
return {
|
|
62
|
+
get middlewares() {
|
|
63
|
+
fence();
|
|
64
|
+
return created.middlewares;
|
|
65
|
+
},
|
|
66
|
+
transformIndexHtml: (url, html) => {
|
|
67
|
+
fence();
|
|
68
|
+
return created.transformIndexHtml(url, html);
|
|
69
|
+
},
|
|
70
|
+
...(created.ssrLoadModule
|
|
71
|
+
? {
|
|
72
|
+
ssrLoadModule: (url) => {
|
|
73
|
+
fence();
|
|
74
|
+
return created.ssrLoadModule(url);
|
|
75
|
+
},
|
|
76
|
+
}
|
|
77
|
+
: {}),
|
|
78
|
+
closeHmr: () => created.ws?.close() ?? Promise.resolve(),
|
|
79
|
+
...(created.config ? { socket: devSocket(created.config) } : {}),
|
|
80
|
+
close: () => {
|
|
81
|
+
retired = true;
|
|
82
|
+
fence();
|
|
83
|
+
if (closing)
|
|
84
|
+
return closing;
|
|
85
|
+
try {
|
|
86
|
+
closing = Promise.resolve(created.close());
|
|
87
|
+
}
|
|
88
|
+
catch (error) {
|
|
89
|
+
closing = Promise.reject(error);
|
|
90
|
+
}
|
|
91
|
+
return (closing = closing.finally(afterClose));
|
|
92
|
+
},
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
/* The servers whose pages are being served, and one Vite per base path in
|
|
96
|
+
front of them. The unit suites open several servers in one process — a
|
|
97
|
+
trusted one and a proxied one, a server per connection under test — and
|
|
98
|
+
close them in whatever order the tests end. Vite goes when the last one
|
|
99
|
+
goes, and comes back if another opens. */
|
|
100
|
+
/** Shared middleware providers, with their HMR sockets owned by one HTTP
|
|
101
|
+
* server. A late factory belongs to its captured generation, never a restart. */
|
|
102
|
+
export function createDevClientHosts() {
|
|
103
|
+
const live = new Set();
|
|
104
|
+
const hmrStopped = new WeakSet();
|
|
105
|
+
const retired = new WeakMap();
|
|
106
|
+
const current = new Map();
|
|
107
|
+
const close = (generation, provider) => (generation.closing ??= Promise.resolve().then(() => provider.close()));
|
|
108
|
+
const closeHmr = (generation, provider) => (generation.hmrClosing ??= Promise.resolve().then(() => provider.closeHmr()));
|
|
109
|
+
return {
|
|
110
|
+
attach(server) {
|
|
111
|
+
if (retired.has(server))
|
|
112
|
+
throw new Error('The source client owner was retired.');
|
|
113
|
+
live.add(server);
|
|
114
|
+
},
|
|
115
|
+
async closeHmr(server) {
|
|
116
|
+
hmrStopped.add(server);
|
|
117
|
+
await Promise.all([...current.values()].map(async (generation) => {
|
|
118
|
+
if (generation.owner !== server)
|
|
119
|
+
return;
|
|
120
|
+
let provider;
|
|
121
|
+
try {
|
|
122
|
+
provider = await generation.value;
|
|
123
|
+
}
|
|
124
|
+
catch {
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
await closeHmr(generation, provider);
|
|
128
|
+
}));
|
|
129
|
+
},
|
|
130
|
+
retire(server) {
|
|
131
|
+
const pending = retired.get(server);
|
|
132
|
+
if (pending)
|
|
133
|
+
return pending;
|
|
134
|
+
live.delete(server);
|
|
135
|
+
const generations = [...current.values()];
|
|
136
|
+
if (!live.size) {
|
|
137
|
+
for (const generation of generations)
|
|
138
|
+
generation.closed = true;
|
|
139
|
+
current.clear();
|
|
140
|
+
}
|
|
141
|
+
// Register before provider close callbacks can reenter retirement.
|
|
142
|
+
const work = Promise.resolve().then(async () => {
|
|
143
|
+
await Promise.all(generations.map(async (generation) => {
|
|
144
|
+
// Acquisition failure has no provider to retire. Its own factory
|
|
145
|
+
// closes a successfully created but retired generation before refusing.
|
|
146
|
+
let provider;
|
|
147
|
+
try {
|
|
148
|
+
provider = await generation.value;
|
|
149
|
+
}
|
|
150
|
+
catch {
|
|
151
|
+
await generation.closing;
|
|
152
|
+
await generation.hmrClosing;
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
if (generation.closed)
|
|
156
|
+
await close(generation, provider);
|
|
157
|
+
else if (generation.owner === server)
|
|
158
|
+
await closeHmr(generation, provider);
|
|
159
|
+
}));
|
|
160
|
+
});
|
|
161
|
+
retired.set(server, work);
|
|
162
|
+
return work;
|
|
163
|
+
},
|
|
164
|
+
get(load, base = '') {
|
|
165
|
+
const owner = live.values().next().value;
|
|
166
|
+
if (!owner)
|
|
167
|
+
return Promise.reject(new Error('The source client owner was retired.'));
|
|
168
|
+
if (!current.has(base)) {
|
|
169
|
+
const generation = { owner, closed: false, value: undefined };
|
|
170
|
+
generation.value = Promise.resolve().then(async () => {
|
|
171
|
+
if (generation.closed)
|
|
172
|
+
throw new Error('The source client owner was retired.');
|
|
173
|
+
const provider = await load(generation.owner);
|
|
174
|
+
if (generation.closed) {
|
|
175
|
+
await close(generation, provider);
|
|
176
|
+
throw new Error('The source client owner was retired.');
|
|
177
|
+
}
|
|
178
|
+
if (!live.has(generation.owner) || hmrStopped.has(generation.owner))
|
|
179
|
+
await closeHmr(generation, provider);
|
|
180
|
+
if (generation.closed) {
|
|
181
|
+
await close(generation, provider);
|
|
182
|
+
throw new Error('The source client owner was retired.');
|
|
183
|
+
}
|
|
184
|
+
return provider;
|
|
185
|
+
});
|
|
186
|
+
current.set(base, generation);
|
|
187
|
+
}
|
|
188
|
+
return current.get(base).value;
|
|
189
|
+
},
|
|
190
|
+
};
|
|
191
|
+
}
|
|
192
|
+
const hosts = createDevClientHosts();
|
|
193
|
+
/**
|
|
194
|
+
* Told which server the pages are on, so hot reloads can share its port
|
|
195
|
+
* rather than opening a second listener that two test servers would then
|
|
196
|
+
* fight over — and so Vite, whose file watcher would keep a process alive,
|
|
197
|
+
* is closed once every server that used it has closed.
|
|
198
|
+
*/
|
|
199
|
+
export function attachDevClient(server) {
|
|
200
|
+
hosts.attach(server);
|
|
201
|
+
server.once('close', () => {
|
|
202
|
+
void retireDevClient(server).catch(() => { });
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
/** Stop upgraded sockets before awaiting HTTP close, retaining the renderer
|
|
206
|
+
* until accepted HTTP responses have drained. Does not create a provider. */
|
|
207
|
+
export function closeDevClientHmr(server) {
|
|
208
|
+
return hosts.closeHmr(server);
|
|
209
|
+
}
|
|
210
|
+
/** Release the source renderer after accepted HTTP responses have drained. */
|
|
211
|
+
export function retireDevClient(server) {
|
|
212
|
+
return hosts.retire(server);
|
|
213
|
+
}
|
|
214
|
+
/** One source Vite generation owns its optimizer directory. Vite replaces
|
|
215
|
+
* optimizer metadata while discovering dependencies, so sharing a directory
|
|
216
|
+
* between independent Node processes can make an in-flight page request refer
|
|
217
|
+
* to a dependency hash another process has just retired.
|
|
218
|
+
*
|
|
219
|
+
* Each is named for the process that owns it, because a server that is
|
|
220
|
+
* killed never runs its close: the browser suites and a day's scratch servers
|
|
221
|
+
* left over a thousand of these, two gigabytes, under node_modules/.vite.
|
|
222
|
+
* So the next one sweeps the directories whose process is gone, and a process
|
|
223
|
+
* that exits takes its own. An unnamed one is from before this, and goes once
|
|
224
|
+
* it is a day old. */
|
|
225
|
+
const STALE_UNNAMED_MS = 24 * 60 * 60 * 1000;
|
|
226
|
+
const alive = (pid) => {
|
|
227
|
+
try {
|
|
228
|
+
process.kill(pid, 0);
|
|
229
|
+
return true;
|
|
230
|
+
}
|
|
231
|
+
catch (error) {
|
|
232
|
+
return error.code === 'EPERM';
|
|
233
|
+
}
|
|
234
|
+
};
|
|
235
|
+
export async function sweepDevCaches(root) {
|
|
236
|
+
const names = await readdir(root).catch(() => []);
|
|
237
|
+
await Promise.all(names.map(async (name) => {
|
|
238
|
+
const owned = /^client-(\d+)-/.exec(name);
|
|
239
|
+
if (owned ? Number(owned[1]) === process.pid || alive(Number(owned[1])) : !name.startsWith('client-'))
|
|
240
|
+
return;
|
|
241
|
+
const path = join(root, name);
|
|
242
|
+
if (!owned) {
|
|
243
|
+
const info = await stat(path).catch(() => undefined);
|
|
244
|
+
if (!info || Date.now() - info.mtimeMs < STALE_UNNAMED_MS)
|
|
245
|
+
return;
|
|
246
|
+
}
|
|
247
|
+
await rm(path, { recursive: true, force: true }).catch(() => { });
|
|
248
|
+
}));
|
|
249
|
+
}
|
|
250
|
+
async function devCache(workspace) {
|
|
251
|
+
const root = resolve(workspace, 'node_modules', '.vite');
|
|
252
|
+
await mkdir(root, { recursive: true });
|
|
253
|
+
await sweepDevCaches(root);
|
|
254
|
+
const path = await mkdtemp(join(root, `client-${process.pid}-`));
|
|
255
|
+
// Synchronous, because 'exit' runs no more turns of the loop.
|
|
256
|
+
const onExit = () => {
|
|
257
|
+
try {
|
|
258
|
+
rmSync(path, { recursive: true, force: true });
|
|
259
|
+
}
|
|
260
|
+
catch {
|
|
261
|
+
/* the next start sweeps it */
|
|
262
|
+
}
|
|
263
|
+
};
|
|
264
|
+
process.once('exit', onExit);
|
|
265
|
+
let removing;
|
|
266
|
+
// The optimizer can still be writing when its generation closes, and on
|
|
267
|
+
// Linux that refuses the removal (ENOTEMPTY). A cache directory is not worth
|
|
268
|
+
// failing a server's retirement over: retry, and failing that leave it to
|
|
269
|
+
// the exit handler or the next start's sweep.
|
|
270
|
+
return {
|
|
271
|
+
path,
|
|
272
|
+
remove: () => (removing ??= rm(path, { recursive: true, force: true, maxRetries: 5, retryDelay: 50 }).then(() => {
|
|
273
|
+
process.off('exit', onExit);
|
|
274
|
+
}, () => { })),
|
|
275
|
+
};
|
|
276
|
+
}
|
|
277
|
+
/**
|
|
278
|
+
* What Vite's file watcher may look at: the package whose client it serves,
|
|
279
|
+
* and nothing outside it. Vite watches its root and adds every file it loads
|
|
280
|
+
* from beyond it (src/shared, src/adapters, package.json) whatever its path,
|
|
281
|
+
* and chokidar follows links and, for a path gone by the time it looks,
|
|
282
|
+
* watches the nearest folder still there. Nothing bounded where that could
|
|
283
|
+
* lead: on a CI runner a served App's watcher reached /run and stat-ed udev's
|
|
284
|
+
* self-referring links (ELOOP). An App's own code never goes through this
|
|
285
|
+
* Vite (its components are compiled by appComponents.ts), so everything an
|
|
286
|
+
* edit can reload lives under the package root; the rest is ignored. Both
|
|
287
|
+
* spellings of the root, since module ids are real paths.
|
|
288
|
+
*/
|
|
289
|
+
export function outsidePackage(packageRoot) {
|
|
290
|
+
const slashed = (path) => resolve(path).replaceAll('\\', '/').replace(/\/$/, '');
|
|
291
|
+
let real = packageRoot;
|
|
292
|
+
try {
|
|
293
|
+
real = realpathSync(packageRoot);
|
|
294
|
+
}
|
|
295
|
+
catch {
|
|
296
|
+
/* the resolved spelling is the only one */
|
|
297
|
+
}
|
|
298
|
+
const roots = [...new Set([slashed(packageRoot), slashed(real)])];
|
|
299
|
+
return (path) => {
|
|
300
|
+
const at = slashed(path);
|
|
301
|
+
return !roots.some((root) => at === root || at.startsWith(`${root}/`));
|
|
302
|
+
};
|
|
303
|
+
}
|
|
304
|
+
/**
|
|
305
|
+
* A watcher error is not the server's: chokidar emits 'error' for a path it
|
|
306
|
+
* cannot stat, and Vite listens for none, so the first one was an uncaught
|
|
307
|
+
* exception that took every page down with it. Say it once and keep serving;
|
|
308
|
+
* the watcher goes on with the paths it could read.
|
|
309
|
+
*/
|
|
310
|
+
export function quietWatcherErrors(watcher, warn = (message) => console.error(`${product()}: ${message}`)) {
|
|
311
|
+
let said = false;
|
|
312
|
+
watcher.on('error', (error) => {
|
|
313
|
+
if (said)
|
|
314
|
+
return;
|
|
315
|
+
said = true;
|
|
316
|
+
const why = error instanceof Error ? error.message : String(error);
|
|
317
|
+
warn(`the client's file watcher could not follow a path (${why}); pages are still served, and an edit there needs a reload by hand.`);
|
|
318
|
+
});
|
|
319
|
+
}
|
|
320
|
+
/** The Vite dev server, created on the first static request and kept. */
|
|
321
|
+
export function devClient(files, base = '') {
|
|
322
|
+
return hosts.get(async (httpServer) => {
|
|
323
|
+
const cache = await devCache(files.workspace);
|
|
324
|
+
try {
|
|
325
|
+
const { createServer } = await import('vite');
|
|
326
|
+
const created = await createServer({
|
|
327
|
+
configFile: join(files.workspace, 'vite.config.ts'),
|
|
328
|
+
root: files.source,
|
|
329
|
+
// Vite must own the prefix throughout its graph, not just in HTML:
|
|
330
|
+
// imports, CSS URLs, React refresh and the HMR socket all use it.
|
|
331
|
+
base: `${base}/`,
|
|
332
|
+
cacheDir: cache.path,
|
|
333
|
+
appType: 'custom',
|
|
334
|
+
logLevel: 'warn',
|
|
335
|
+
server: {
|
|
336
|
+
middlewareMode: true,
|
|
337
|
+
/* The Host and Origin defence in index.ts has already answered by
|
|
338
|
+
the time a request reaches Vite; a second, looser check here
|
|
339
|
+
would only refuse the hosts `--allowed-host` let through. */
|
|
340
|
+
allowedHosts: true,
|
|
341
|
+
ws: httpServer ? { server: httpServer } : false,
|
|
342
|
+
watch: { ignored: [outsidePackage(files.workspace)] },
|
|
343
|
+
},
|
|
344
|
+
});
|
|
345
|
+
quietWatcherErrors(created.watcher);
|
|
346
|
+
const close = created.close.bind(created);
|
|
347
|
+
created.close = async () => {
|
|
348
|
+
// An HTTP module response can finish before Vite's speculative imports.
|
|
349
|
+
// Closing the optimizer then strands import-analysis hooks waiting for
|
|
350
|
+
// its dependency batch, and pluginContainer.close never resolves.
|
|
351
|
+
await created.environments.client.waitForRequestsIdle();
|
|
352
|
+
await close();
|
|
353
|
+
};
|
|
354
|
+
return ownDevClient(created, cache.remove);
|
|
355
|
+
}
|
|
356
|
+
catch (error) {
|
|
357
|
+
await cache.remove().catch(() => { });
|
|
358
|
+
throw error;
|
|
359
|
+
}
|
|
360
|
+
}, base);
|
|
361
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/** Private admission errors reveal neither membership existence nor provider data. */
|
|
2
|
+
export declare class TenantContextError extends Error {
|
|
3
|
+
readonly code: string;
|
|
4
|
+
constructor();
|
|
5
|
+
}
|
|
6
|
+
export { recordRefusalCause, refusalCause, refusalHeadline, refusalReasons, refusalReasonsBelow } from '../shared/refusal.js';
|
|
7
|
+
export declare const denyTenant: (cause?: unknown) => never;
|
|
8
|
+
/** The database could not answer, so authority was never decided: not a
|
|
9
|
+
* refusal. Still a TenantContextError — every consumer that denies on one
|
|
10
|
+
* still denies — and carries no `cause`, so no driver text travels with it
|
|
11
|
+
* (the driver's error is recorded for the operator, as any refusal's is).
|
|
12
|
+
* Only an owner that answers a caller tells the two apart (503, not 403). */
|
|
13
|
+
export declare class TenantUnavailableError extends TenantContextError {
|
|
14
|
+
readonly code: string;
|
|
15
|
+
}
|
|
16
|
+
export declare function databaseFault(error: unknown): boolean;
|
|
17
|
+
/** The request's own fault, said to the caller as that, not as the context's
|
|
18
|
+
* denial: no record this context reads has the key (`not_found`, the same for
|
|
19
|
+
* one that is missing and one that is another tenant's), or a read that cannot
|
|
20
|
+
* be answered as asked (`invalid_read`). The context read and decided
|
|
21
|
+
* nothing to its detriment, and revalidates before this is let out
|
|
22
|
+
* (tenantReadRuntime.ts), so the session that asked keeps going. It carries
|
|
23
|
+
* no data: its words are fixed here. */
|
|
24
|
+
export declare class TenantRequestFault extends Error {
|
|
25
|
+
readonly status: 400 | 404 | 501;
|
|
26
|
+
readonly code: 'not_found' | 'invalid_read';
|
|
27
|
+
constructor(status: 400 | 404 | 501, code: 'not_found' | 'invalid_read');
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Whether the database not answering is what failed, under however many
|
|
31
|
+
* refusals and failures it was recorded: a tenant write's failure is
|
|
32
|
+
* value-free on purpose and keeps what failed beneath it, and a read that
|
|
33
|
+
* waited on that write (an inbox's mail) refuses with it as its cause. Read
|
|
34
|
+
* positively, as `databaseFault` is, and a denial anywhere on the way down
|
|
35
|
+
* stays a denial: it decided something, whatever lies beneath it.
|
|
36
|
+
*/
|
|
37
|
+
export declare function databaseUnanswered(error: unknown): boolean;
|
|
38
|
+
/** Deny, unless the cause is the database failing to answer: then the tenant
|
|
39
|
+
* context is unavailable. Fails closed either way. */
|
|
40
|
+
export declare const denyTenantFor: (cause: unknown) => never;
|
|
41
|
+
/** Test-only: how many objects and arrays captures have copied, as opposed to reused. */
|
|
42
|
+
export declare const captureCounters: {
|
|
43
|
+
copied: number;
|
|
44
|
+
};
|
|
45
|
+
/** Whether a value is one captureTenantData froze all the way down, or a
|
|
46
|
+
* captured scope catalog: data that cannot change for as long as it lives, so
|
|
47
|
+
* an answer derived from it alone may be kept with it (a WeakMap keyed by it)
|
|
48
|
+
* and is gone when it is. A reload captures new values and starts afresh. */
|
|
49
|
+
export declare function isCapturedTenantData(value: unknown): boolean;
|
|
50
|
+
/** Server evidence is data, never getters, proxies, thenables or inherited grants. */
|
|
51
|
+
export declare function captureTenantData<T>(input: T): T;
|
|
52
|
+
export declare function tenantRecord(value: unknown, fields?: readonly string[]): asserts value is Record<string, unknown>;
|
|
53
|
+
export declare function tenantIdentifier(value: unknown, maximum?: number): asserts value is string;
|
|
54
|
+
/** Trusted callbacks are captured without invoking configuration accessors. */
|
|
55
|
+
export declare function tenantOptions(input: unknown, fields: readonly string[]): Record<string, unknown>;
|