@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,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Definition rows read, and values judged by them (definedFields.ts says what
|
|
3
|
+
* a definition is). Pure, and shared: the server judges a stored row with
|
|
4
|
+
* `definedBreaks` (server/app/appValidation.ts) and the record page and New
|
|
5
|
+
* form, loaded on demand, draw and convert with the same words, so the two
|
|
6
|
+
* cannot disagree about what "a number" or "one of the choices" is.
|
|
7
|
+
*
|
|
8
|
+
* Apart from definedFields.ts because a module a first-page file imports is
|
|
9
|
+
* in the first page whole: the query language and the App's declaration read
|
|
10
|
+
* that one, and none of this is needed before a defined field is drawn.
|
|
11
|
+
*/
|
|
12
|
+
import type { TableMeta } from './schema.js';
|
|
13
|
+
import { type DefinedField } from './definedFields.js';
|
|
14
|
+
/** The definitions table's columns to read: the needed, the optional it has, and `per`. */
|
|
15
|
+
export declare function definitionColumns(from: Pick<TableMeta, 'columns'>, per?: string): string[];
|
|
16
|
+
/**
|
|
17
|
+
* The condition that picks a record's definitions, as the structured filter
|
|
18
|
+
* every read takes: those whose `per` is the record's, and those with none.
|
|
19
|
+
* Without `per`, every row.
|
|
20
|
+
*/
|
|
21
|
+
export declare function definitionFilter(per: string | undefined, value: unknown): {
|
|
22
|
+
groups: ({
|
|
23
|
+
column: string;
|
|
24
|
+
op: '=';
|
|
25
|
+
value: string | number | boolean;
|
|
26
|
+
} | {
|
|
27
|
+
column: string;
|
|
28
|
+
op: 'isNull';
|
|
29
|
+
})[][];
|
|
30
|
+
} | undefined;
|
|
31
|
+
/**
|
|
32
|
+
* Definition rows as fields, in their order: by `position`, then key. A row
|
|
33
|
+
* that cannot be read is left out. Where a scoped row and an unscoped one
|
|
34
|
+
* share a key, the scoped one (it says more about this record) wins.
|
|
35
|
+
*/
|
|
36
|
+
export declare function readDefinitions(rows: readonly Readonly<Record<string, unknown>>[], per?: string): DefinedField[];
|
|
37
|
+
/** The column's object: as PostgreSQL returns it, or JSON text as SQLite holds it. Undefined where it is not an object. */
|
|
38
|
+
export declare function definedObject(raw: unknown): Record<string, unknown> | undefined;
|
|
39
|
+
/** What a value fails: a required one missing, a value of the wrong kind, a choice outside the list, or a key no definition names. */
|
|
40
|
+
type DefinedBreak = 'required' | 'number' | 'date' | 'datetime' | 'bool' | 'choice' | 'text' | 'unknown';
|
|
41
|
+
/**
|
|
42
|
+
* Every break in an object against its fields, by key. `extras` also refuses
|
|
43
|
+
* a key no field names — said when the column itself was written, so a key a
|
|
44
|
+
* removed definition left behind never blocks an edit of something else.
|
|
45
|
+
*/
|
|
46
|
+
export declare function definedBreaks(fields: readonly DefinedField[], object: Readonly<Record<string, unknown>>, options: {
|
|
47
|
+
extras: boolean;
|
|
48
|
+
}): {
|
|
49
|
+
key: string;
|
|
50
|
+
reason: DefinedBreak;
|
|
51
|
+
}[];
|
|
52
|
+
/** What the server says of a break: a fixed sentence, never a value, a label or rule text. */
|
|
53
|
+
export declare const DEFINED_REASONS: Readonly<Record<DefinedBreak, string>>;
|
|
54
|
+
/**
|
|
55
|
+
* A field's value from what a form control holds — text for a box, true or
|
|
56
|
+
* false for a switch, a list for a checklist. Undefined is empty: the key is
|
|
57
|
+
* left out of the object. A box that does not read as its type is kept as
|
|
58
|
+
* typed, for the server to refuse by name.
|
|
59
|
+
*/
|
|
60
|
+
export declare function definedFromInput(field: DefinedField, input: unknown): unknown;
|
|
61
|
+
/** The object with one field's value set from its control: an empty value removes the key. */
|
|
62
|
+
export declare function withDefined(object: Readonly<Record<string, unknown>>, field: DefinedField, input: unknown): Record<string, unknown>;
|
|
63
|
+
export {};
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
import { DEFINED_KEY, DEFINED_TYPES, NEEDED, OPTIONAL } from './definedFields.js';
|
|
2
|
+
/** The definitions table's columns to read: the needed, the optional it has, and `per`. */
|
|
3
|
+
export function definitionColumns(from, per) {
|
|
4
|
+
const has = (name) => from.columns.some((column) => column.name === name);
|
|
5
|
+
return [...NEEDED, ...OPTIONAL.filter(has), ...(per && has(per) ? [per] : [])];
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* The condition that picks a record's definitions, as the structured filter
|
|
9
|
+
* every read takes: those whose `per` is the record's, and those with none.
|
|
10
|
+
* Without `per`, every row.
|
|
11
|
+
*/
|
|
12
|
+
export function definitionFilter(per, value) {
|
|
13
|
+
if (!per)
|
|
14
|
+
return undefined;
|
|
15
|
+
const scoped = typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean';
|
|
16
|
+
return {
|
|
17
|
+
groups: [...(scoped && value !== '' ? [[{ column: per, op: '=', value }]] : []), [{ column: per, op: 'isNull' }]],
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
const yes = (value) => value === true || value === 1 || value === '1' || value === 'true' || value === 't';
|
|
21
|
+
/**
|
|
22
|
+
* Definition rows as fields, in their order: by `position`, then key. A row
|
|
23
|
+
* that cannot be read is left out. Where a scoped row and an unscoped one
|
|
24
|
+
* share a key, the scoped one (it says more about this record) wins.
|
|
25
|
+
*/
|
|
26
|
+
export function readDefinitions(rows, per) {
|
|
27
|
+
const read = rows.flatMap((row) => {
|
|
28
|
+
const key = typeof row.key === 'string' ? row.key.trim() : '';
|
|
29
|
+
const type = typeof row.type === 'string' ? row.type.trim() : undefined;
|
|
30
|
+
if (!DEFINED_KEY.test(key) || !type || !DEFINED_TYPES.includes(type))
|
|
31
|
+
return [];
|
|
32
|
+
const label = typeof row.label === 'string' && row.label.trim() ? row.label.trim() : key;
|
|
33
|
+
const options = typeof row.options === 'string'
|
|
34
|
+
? [
|
|
35
|
+
...new Set(row.options
|
|
36
|
+
.split(/\r?\n/)
|
|
37
|
+
.map((line) => line.trim())
|
|
38
|
+
.filter(Boolean)),
|
|
39
|
+
]
|
|
40
|
+
: [];
|
|
41
|
+
const position = typeof row.position === 'number' ? row.position : Number(row.position);
|
|
42
|
+
const field = {
|
|
43
|
+
key,
|
|
44
|
+
label,
|
|
45
|
+
type,
|
|
46
|
+
options,
|
|
47
|
+
required: yes(row.required),
|
|
48
|
+
position: Number.isFinite(position) && row.position !== null && row.position !== '' ? position : Number.MAX_SAFE_INTEGER,
|
|
49
|
+
scoped: Boolean(per) && row[per] !== null && row[per] !== undefined && row[per] !== '',
|
|
50
|
+
};
|
|
51
|
+
if (typeof row.help === 'string' && row.help.trim())
|
|
52
|
+
field.help = row.help.trim();
|
|
53
|
+
return [field];
|
|
54
|
+
});
|
|
55
|
+
const byKey = new Map();
|
|
56
|
+
for (const field of read) {
|
|
57
|
+
const kept = byKey.get(field.key);
|
|
58
|
+
if (!kept || (field.scoped && !kept.scoped))
|
|
59
|
+
byKey.set(field.key, field);
|
|
60
|
+
}
|
|
61
|
+
return [...byKey.values()]
|
|
62
|
+
.sort((a, b) => a.position - b.position || (a.key < b.key ? -1 : a.key > b.key ? 1 : 0))
|
|
63
|
+
.map(({ position: _position, scoped: _scoped, ...field }) => field);
|
|
64
|
+
}
|
|
65
|
+
/** The column's object: as PostgreSQL returns it, or JSON text as SQLite holds it. Undefined where it is not an object. */
|
|
66
|
+
export function definedObject(raw) {
|
|
67
|
+
if (raw === null || raw === undefined || raw === '')
|
|
68
|
+
return {};
|
|
69
|
+
let value = raw;
|
|
70
|
+
if (typeof raw === 'string') {
|
|
71
|
+
try {
|
|
72
|
+
value = JSON.parse(raw);
|
|
73
|
+
}
|
|
74
|
+
catch {
|
|
75
|
+
return undefined;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return value && typeof value === 'object' && !Array.isArray(value) ? value : undefined;
|
|
79
|
+
}
|
|
80
|
+
const DATE = /^\d{4}-\d{2}-\d{2}$/;
|
|
81
|
+
const DATETIME = /^\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}(?::\d{2}(?:\.\d{1,6})?)?(?:Z|[+-]\d{2}:?\d{2})?$/;
|
|
82
|
+
/** The most characters one text value holds: a field, not a document. */
|
|
83
|
+
const TEXT_MOST = 10000;
|
|
84
|
+
const realDate = (text) => {
|
|
85
|
+
const date = new Date(`${text.slice(0, 10)}T00:00:00Z`);
|
|
86
|
+
return !Number.isNaN(date.getTime()) && date.toISOString().slice(0, 10) === text.slice(0, 10);
|
|
87
|
+
};
|
|
88
|
+
/** Whether a value is empty: absent, null, an empty string or an empty list. */
|
|
89
|
+
const definedEmpty = (value) => value === undefined || value === null || (typeof value === 'string' && !value.trim()) || (Array.isArray(value) && !value.length);
|
|
90
|
+
/** What one field's value breaks, or undefined. */
|
|
91
|
+
function definedBreak(field, value) {
|
|
92
|
+
if (definedEmpty(value))
|
|
93
|
+
return field.required ? 'required' : undefined;
|
|
94
|
+
switch (field.type) {
|
|
95
|
+
case 'number':
|
|
96
|
+
case 'money':
|
|
97
|
+
return typeof value === 'number' && Number.isFinite(value) ? undefined : 'number';
|
|
98
|
+
case 'bool':
|
|
99
|
+
return typeof value === 'boolean' ? undefined : 'bool';
|
|
100
|
+
case 'date':
|
|
101
|
+
return typeof value === 'string' && DATE.test(value) && realDate(value) ? undefined : 'date';
|
|
102
|
+
case 'datetime':
|
|
103
|
+
return typeof value === 'string' && DATETIME.test(value) && realDate(value) ? undefined : 'datetime';
|
|
104
|
+
case 'choice':
|
|
105
|
+
return typeof value === 'string' && field.options.includes(value) ? undefined : 'choice';
|
|
106
|
+
case 'choices':
|
|
107
|
+
return Array.isArray(value) &&
|
|
108
|
+
value.every((item) => typeof item === 'string' && field.options.includes(item)) &&
|
|
109
|
+
new Set(value).size === value.length
|
|
110
|
+
? undefined
|
|
111
|
+
: 'choice';
|
|
112
|
+
default:
|
|
113
|
+
return typeof value === 'string' && value.length <= TEXT_MOST ? undefined : 'text';
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Every break in an object against its fields, by key. `extras` also refuses
|
|
118
|
+
* a key no field names — said when the column itself was written, so a key a
|
|
119
|
+
* removed definition left behind never blocks an edit of something else.
|
|
120
|
+
*/
|
|
121
|
+
export function definedBreaks(fields, object, options) {
|
|
122
|
+
const breaks = fields.flatMap((field) => {
|
|
123
|
+
const reason = definedBreak(field, object[field.key]);
|
|
124
|
+
return reason ? [{ key: field.key, reason }] : [];
|
|
125
|
+
});
|
|
126
|
+
if (options.extras) {
|
|
127
|
+
const known = new Set(fields.map((field) => field.key));
|
|
128
|
+
for (const key of Object.keys(object))
|
|
129
|
+
if (!known.has(key))
|
|
130
|
+
breaks.push({ key, reason: 'unknown' });
|
|
131
|
+
}
|
|
132
|
+
return breaks;
|
|
133
|
+
}
|
|
134
|
+
/** What the server says of a break: a fixed sentence, never a value, a label or rule text. */
|
|
135
|
+
export const DEFINED_REASONS = Object.freeze({
|
|
136
|
+
required: 'This field is required.',
|
|
137
|
+
number: 'Enter a number.',
|
|
138
|
+
date: 'Enter a date.',
|
|
139
|
+
datetime: 'Enter a date and time.',
|
|
140
|
+
bool: 'Choose yes or no.',
|
|
141
|
+
choice: 'Choose from the list.',
|
|
142
|
+
text: 'Enter text, at most 10,000 characters.',
|
|
143
|
+
unknown: 'This is not one of the fields this record has.',
|
|
144
|
+
});
|
|
145
|
+
/**
|
|
146
|
+
* A field's value from what a form control holds — text for a box, true or
|
|
147
|
+
* false for a switch, a list for a checklist. Undefined is empty: the key is
|
|
148
|
+
* left out of the object. A box that does not read as its type is kept as
|
|
149
|
+
* typed, for the server to refuse by name.
|
|
150
|
+
*/
|
|
151
|
+
export function definedFromInput(field, input) {
|
|
152
|
+
if (definedEmpty(input))
|
|
153
|
+
return undefined;
|
|
154
|
+
// A list, or a box's text with one choice per comma.
|
|
155
|
+
if (field.type === 'choices') {
|
|
156
|
+
const chosen = (Array.isArray(input) ? input.map(String) : String(input).split(',')).map((item) => item.trim()).filter(Boolean);
|
|
157
|
+
return chosen.length ? [...new Set(chosen)] : undefined;
|
|
158
|
+
}
|
|
159
|
+
// A switch, or a yes/no list's `1` and `0` (the platform's flag controls).
|
|
160
|
+
if (field.type === 'bool')
|
|
161
|
+
return typeof input === 'boolean'
|
|
162
|
+
? input
|
|
163
|
+
: input === 'true' || input === '1'
|
|
164
|
+
? true
|
|
165
|
+
: input === 'false' || input === '0'
|
|
166
|
+
? false
|
|
167
|
+
: String(input);
|
|
168
|
+
const text = String(input).trim();
|
|
169
|
+
if (field.type === 'number' || field.type === 'money') {
|
|
170
|
+
const n = Number(text.replace(/[,\s$]/g, ''));
|
|
171
|
+
return Number.isFinite(n) ? n : text;
|
|
172
|
+
}
|
|
173
|
+
return field.type === 'textarea' ? String(input) : text;
|
|
174
|
+
}
|
|
175
|
+
/** The object with one field's value set from its control: an empty value removes the key. */
|
|
176
|
+
export function withDefined(object, field, input) {
|
|
177
|
+
const next = { ...object };
|
|
178
|
+
const value = definedFromInput(field, input);
|
|
179
|
+
if (value === undefined)
|
|
180
|
+
delete next[field.key];
|
|
181
|
+
else
|
|
182
|
+
next[field.key] = value;
|
|
183
|
+
return next;
|
|
184
|
+
}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The conventions an App applies without being told: how a column is drawn
|
|
3
|
+
* when its name, type or vocabulary says what it holds. A `price` is money, a
|
|
4
|
+
* `due_on` is said from today, an `email` is a link, a CHECK vocabulary of
|
|
5
|
+
* plain words wears tones by what the words mean, a machine's states wear
|
|
6
|
+
* tones by where they stand, a person's name has an initials disc. The
|
|
7
|
+
* scaffold used to write each of these out; now the platform infers them at
|
|
8
|
+
* runtime, `mistri check --defaults` prints every one per resource, and a
|
|
9
|
+
* rule the App writes that only restates one is a `restated` warning.
|
|
10
|
+
*
|
|
11
|
+
* What the App writes wins, concern by concern: a declared `format` (or a
|
|
12
|
+
* unit, a bar) replaces the inferred figure, a declared `tone` or `colors` the
|
|
13
|
+
* inferred tones, declared `values` the inferred words, a declared avatar or
|
|
14
|
+
* mark the inferred disc. An empty rule (`display: { value: {} }`) keeps the
|
|
15
|
+
* column exactly as stored.
|
|
16
|
+
*
|
|
17
|
+
* Pure over one table's catalog entry, so the server's payload, `check` and
|
|
18
|
+
* the scaffold read one rule.
|
|
19
|
+
*/
|
|
20
|
+
import { type ColumnMeta, type DatabaseSchema, type TableMeta } from './schema.js';
|
|
21
|
+
import type { AppDisplayRule } from './servedApp.js';
|
|
22
|
+
import { type DisplayTone } from './model.js';
|
|
23
|
+
/** A machine as the conventions read it: its column, its states in order and its verbs. An App's machine
|
|
24
|
+
(appMachine.ts) says more; this is the part a tone or a stamp is read from. */
|
|
25
|
+
interface DisplayMachine {
|
|
26
|
+
column: string;
|
|
27
|
+
since?: string;
|
|
28
|
+
states: readonly {
|
|
29
|
+
name: string;
|
|
30
|
+
final?: boolean;
|
|
31
|
+
}[];
|
|
32
|
+
edges: readonly {
|
|
33
|
+
verb: string;
|
|
34
|
+
from: string;
|
|
35
|
+
to: readonly string[];
|
|
36
|
+
fixed?: {
|
|
37
|
+
set: Record<string, unknown>;
|
|
38
|
+
};
|
|
39
|
+
}[];
|
|
40
|
+
}
|
|
41
|
+
/** What the conventions read of an App's declared resources: their captions, record label, display rules,
|
|
42
|
+
machine and New form defaults. The App's own definition (appModel.ts) holds them, among much else. */
|
|
43
|
+
interface DeclaredResources {
|
|
44
|
+
resources?: Readonly<Record<string, {
|
|
45
|
+
labels?: Record<string, string>;
|
|
46
|
+
recordLabel?: string | false;
|
|
47
|
+
display?: Record<string, AppDisplayRule>;
|
|
48
|
+
machine?: DisplayMachine;
|
|
49
|
+
form?: {
|
|
50
|
+
defaults?: unknown;
|
|
51
|
+
};
|
|
52
|
+
}>>;
|
|
53
|
+
ui?: unknown;
|
|
54
|
+
}
|
|
55
|
+
export declare const MONEY: RegExp;
|
|
56
|
+
export declare const UNITS: Array<[RegExp, string]>;
|
|
57
|
+
/** Tones for a short vocabulary, or nothing: a map that colours nothing says nothing. */
|
|
58
|
+
export declare function vocabularyTones(allowed: readonly string[]): Record<string, DisplayTone> | undefined;
|
|
59
|
+
/**
|
|
60
|
+
* A machine's tones, where the App gives none: a final state is neutral (it is
|
|
61
|
+
* over, however it ended); the open state furthest along that hands the record
|
|
62
|
+
* to a final one (`ready` before `collected`) is good, the work done; a state
|
|
63
|
+
* whose word says it waits (`waiting_parts`, `on_hold`) warns, one whose word
|
|
64
|
+
* says it went wrong is bad, and the rest are neutral or, by their word, info.
|
|
65
|
+
*/
|
|
66
|
+
export declare function machineTones(machine: Pick<DisplayMachine, 'states' | 'edges'>): Record<string, DisplayTone>;
|
|
67
|
+
/** A figure that is money: named like money on a number column, or typed as money. */
|
|
68
|
+
export declare function isMoneyColumn(column: ColumnMeta): boolean;
|
|
69
|
+
/** One inferred rule and the reason it is inferred, in words `check --defaults` prints. */
|
|
70
|
+
interface InferredRule {
|
|
71
|
+
rule: AppDisplayRule;
|
|
72
|
+
why: string;
|
|
73
|
+
/** False where the browser already reads the convention off the name (a year, an email's link): the rule is
|
|
74
|
+
printed and a restatement warned, but nothing is served, so the two readings cannot drift. */
|
|
75
|
+
served?: false;
|
|
76
|
+
}
|
|
77
|
+
/** What the conventions are read with: the table's machine, the catalog its rollups reach, and the rules the App
|
|
78
|
+
declares on any table (a figure made of money is counted as that money is). */
|
|
79
|
+
interface InferOptions {
|
|
80
|
+
machine?: DisplayMachine;
|
|
81
|
+
schema?: DatabaseSchema;
|
|
82
|
+
declared?: (table: TableMeta) => Readonly<Record<string, AppDisplayRule>> | undefined;
|
|
83
|
+
}
|
|
84
|
+
/** The App's declared display rules looked up by table, as `InferOptions.declared` reads them. */
|
|
85
|
+
export declare function declaredDisplayOf(app: DeclaredResources, schema: DatabaseSchema): (table: TableMeta) => Readonly<Record<string, AppDisplayRule>> | undefined;
|
|
86
|
+
/**
|
|
87
|
+
* Every rule the conventions give one table's columns, keyed by column. A
|
|
88
|
+
* reference, a key and a column whose type says nothing are left alone.
|
|
89
|
+
*/
|
|
90
|
+
export declare function inferredDisplay(table: TableMeta, opts?: InferOptions): Record<string, InferredRule>;
|
|
91
|
+
/** Rows that are people, by the table's head noun. */
|
|
92
|
+
export declare function isPeople(table: Pick<TableMeta, 'name'>): boolean;
|
|
93
|
+
/**
|
|
94
|
+
* A resource's display rules as they are drawn: each column's declared rule
|
|
95
|
+
* over the conventions it leaves standing, and a rule for every column the
|
|
96
|
+
* conventions dress that the App did not mention. `served` keeps only what the
|
|
97
|
+
* server sends (the browser reads a year and a link off the name itself).
|
|
98
|
+
*/
|
|
99
|
+
export declare function effectiveDisplay(declared: Readonly<Record<string, AppDisplayRule>> | undefined, table: TableMeta, opts?: InferOptions & {
|
|
100
|
+
served?: boolean;
|
|
101
|
+
}): Record<string, AppDisplayRule>;
|
|
102
|
+
/** A declared rule, or part of one, that says what the platform would: a deletion. */
|
|
103
|
+
export interface RestatedRule {
|
|
104
|
+
resource: string;
|
|
105
|
+
/** The keys from the anchor written in the source down to the object holding `keys`: `['display', 'price']`,
|
|
106
|
+
`['defaults']`, `['set']`, `['labels']`, `['display', 'kind', 'values']`; empty for the resource's own key. */
|
|
107
|
+
at: string[];
|
|
108
|
+
/** The keys there to delete. */
|
|
109
|
+
keys: string[];
|
|
110
|
+
/** The object at `at` as the App declares it: what the source must say there for the deletion to be made. */
|
|
111
|
+
held?: Record<string, unknown>;
|
|
112
|
+
/** The whole rule or holder goes: nothing else is left in it. */
|
|
113
|
+
whole: boolean;
|
|
114
|
+
/** The warning: what is restated, where, and why the platform says it already. */
|
|
115
|
+
warning: string;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Every declared value the platform derives, so deleting it changes nothing:
|
|
119
|
+
* a display rule or concern of one the conventions give, a caption the screens
|
|
120
|
+
* say anyway, a record label that is the label column, a `number` format beside
|
|
121
|
+
* a unit, the App's own currency, a word a vocabulary says by itself, a form
|
|
122
|
+
* default that is the schema's DEFAULT, a verb's stamp its state writes on
|
|
123
|
+
* entry. `check` warns on each (`restated`) and `check --design --fix` deletes
|
|
124
|
+
* exactly these, so the two never disagree.
|
|
125
|
+
*/
|
|
126
|
+
export declare function restatedDefaults(app: DeclaredResources, schema: DatabaseSchema): RestatedRule[];
|
|
127
|
+
/** What `check --defaults` prints: each declared resource's inferred rules, and whether the App's own rule wins. */
|
|
128
|
+
export declare function inferredReport(app: DeclaredResources, schema: DatabaseSchema): Array<{
|
|
129
|
+
resource: string;
|
|
130
|
+
column: string;
|
|
131
|
+
rule: AppDisplayRule;
|
|
132
|
+
why: string;
|
|
133
|
+
overridden: boolean;
|
|
134
|
+
}>;
|
|
135
|
+
export {};
|