@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.
Files changed (546) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +17 -2
  3. package/dist/adapters/adapter.d.ts +693 -0
  4. package/dist/adapters/adapter.js +444 -0
  5. package/dist/adapters/cache/cacheStore.d.ts +75 -0
  6. package/dist/adapters/cache/cacheStore.js +160 -0
  7. package/dist/adapters/cache/resp.d.ts +52 -0
  8. package/dist/adapters/cache/resp.js +237 -0
  9. package/dist/adapters/commands/canonicalJson.d.ts +19 -0
  10. package/dist/adapters/commands/canonicalJson.js +154 -0
  11. package/dist/adapters/connect.d.ts +29 -0
  12. package/dist/adapters/connect.js +40 -0
  13. package/dist/adapters/connectionBudget.d.ts +101 -0
  14. package/dist/adapters/connectionBudget.js +128 -0
  15. package/dist/adapters/dbLatency.d.ts +35 -0
  16. package/dist/adapters/dbLatency.js +79 -0
  17. package/dist/adapters/epochCache.d.ts +50 -0
  18. package/dist/adapters/epochCache.js +85 -0
  19. package/dist/adapters/http/egress.d.ts +48 -0
  20. package/dist/adapters/http/egress.js +175 -0
  21. package/dist/adapters/http/httpAdapter.d.ts +71 -0
  22. package/dist/adapters/http/httpAdapter.js +512 -0
  23. package/dist/adapters/http/httpDescription.d.ts +32 -0
  24. package/dist/adapters/http/httpDescription.js +246 -0
  25. package/dist/adapters/http/openapi.d.ts +98 -0
  26. package/dist/adapters/http/openapi.js +487 -0
  27. package/dist/adapters/layoutRefusal.d.ts +24 -0
  28. package/dist/adapters/layoutRefusal.js +35 -0
  29. package/dist/adapters/net/networkPolicy.d.ts +44 -0
  30. package/dist/adapters/net/networkPolicy.js +123 -0
  31. package/dist/adapters/net/untrustedDatabase.d.ts +18 -0
  32. package/dist/adapters/net/untrustedDatabase.js +120 -0
  33. package/dist/adapters/poolAdmission.d.ts +43 -0
  34. package/dist/adapters/poolAdmission.js +184 -0
  35. package/dist/adapters/poolMetrics.d.ts +121 -0
  36. package/dist/adapters/poolMetrics.js +185 -0
  37. package/dist/adapters/postgres.d.ts +436 -0
  38. package/dist/adapters/postgres.js +1890 -0
  39. package/dist/adapters/postgresCatalog.d.ts +96 -0
  40. package/dist/adapters/postgresCatalog.js +387 -0
  41. package/dist/adapters/postgresCatalogDigest.d.ts +30 -0
  42. package/dist/adapters/postgresCatalogDigest.js +87 -0
  43. package/dist/adapters/postgresCatalogRows.d.ts +62 -0
  44. package/dist/adapters/postgresCatalogRows.js +37 -0
  45. package/dist/adapters/postgresDates.d.ts +1 -0
  46. package/dist/adapters/postgresDates.js +39 -0
  47. package/dist/adapters/postgresMaintenance.d.ts +33 -0
  48. package/dist/adapters/postgresMaintenance.js +179 -0
  49. package/dist/adapters/postgresPool.d.ts +255 -0
  50. package/dist/adapters/postgresPool.js +838 -0
  51. package/dist/adapters/postgresPooler.d.ts +28 -0
  52. package/dist/adapters/postgresPooler.js +267 -0
  53. package/dist/adapters/postgresReadCatalog.d.ts +31 -0
  54. package/dist/adapters/postgresReadCatalog.js +226 -0
  55. package/dist/adapters/postgresReadSnapshot.d.ts +46 -0
  56. package/dist/adapters/postgresReadSnapshot.js +133 -0
  57. package/dist/adapters/postgresSchemaEpoch.d.ts +24 -0
  58. package/dist/adapters/postgresSchemaEpoch.js +149 -0
  59. package/dist/adapters/postgresTransactionHandle.d.ts +173 -0
  60. package/dist/adapters/postgresTransactionHandle.js +524 -0
  61. package/dist/adapters/postgresValues.d.ts +30 -0
  62. package/dist/adapters/postgresValues.js +75 -0
  63. package/dist/adapters/replicas.d.ts +70 -0
  64. package/dist/adapters/replicas.js +208 -0
  65. package/dist/adapters/reservedSql.d.ts +38 -0
  66. package/dist/adapters/reservedSql.js +264 -0
  67. package/dist/adapters/rolePrivileges.d.ts +17 -0
  68. package/dist/adapters/rolePrivileges.js +22 -0
  69. package/dist/adapters/scoped/keyRows.d.ts +65 -0
  70. package/dist/adapters/scoped/keyRows.js +173 -0
  71. package/dist/adapters/scoped/postgresScopeCatalog.d.ts +16 -0
  72. package/dist/adapters/scoped/postgresScopeCatalog.js +117 -0
  73. package/dist/adapters/scoped/scopedCommandOperations.d.ts +5 -0
  74. package/dist/adapters/scoped/scopedCommandOperations.js +48 -0
  75. package/dist/adapters/scoped/scopedReads.d.ts +20 -0
  76. package/dist/adapters/scoped/scopedReads.js +174 -0
  77. package/dist/adapters/scoped/scopedTransaction.d.ts +89 -0
  78. package/dist/adapters/scoped/scopedTransaction.js +303 -0
  79. package/dist/adapters/scoped/sqliteScopeCatalog.d.ts +16 -0
  80. package/dist/adapters/scoped/sqliteScopeCatalog.js +241 -0
  81. package/dist/adapters/scoped/updateGuard.d.ts +3 -0
  82. package/dist/adapters/scoped/updateGuard.js +40 -0
  83. package/dist/adapters/serverSettings.d.ts +45 -0
  84. package/dist/adapters/serverSettings.js +46 -0
  85. package/dist/adapters/sqlite.d.ts +262 -0
  86. package/dist/adapters/sqlite.js +1434 -0
  87. package/dist/adapters/sqliteCostlyReads.d.ts +33 -0
  88. package/dist/adapters/sqliteCostlyReads.js +49 -0
  89. package/dist/adapters/sqliteDecimals.d.ts +22 -0
  90. package/dist/adapters/sqliteDecimals.js +57 -0
  91. package/dist/adapters/sqliteHandles.d.ts +43 -0
  92. package/dist/adapters/sqliteHandles.js +143 -0
  93. package/dist/adapters/sqliteStatementProcess.d.ts +29 -0
  94. package/dist/adapters/sqliteStatementProcess.js +131 -0
  95. package/dist/adapters/statementControl.d.ts +34 -0
  96. package/dist/adapters/statementControl.js +90 -0
  97. package/dist/adapters/storeHost.d.ts +130 -0
  98. package/dist/adapters/storeHost.js +13 -0
  99. package/dist/adapters/telemetry/drivers.d.ts +21 -0
  100. package/dist/adapters/telemetry/drivers.js +321 -0
  101. package/dist/adapters/telemetry/metrics.d.ts +63 -0
  102. package/dist/adapters/telemetry/metrics.js +122 -0
  103. package/dist/adapters/telemetry/otlp.d.ts +12 -0
  104. package/dist/adapters/telemetry/otlp.js +320 -0
  105. package/dist/adapters/telemetry/otlpEncode.d.ts +48 -0
  106. package/dist/adapters/telemetry/otlpEncode.js +366 -0
  107. package/dist/adapters/telemetry/otlpEnv.d.ts +1 -0
  108. package/dist/adapters/telemetry/otlpEnv.js +12 -0
  109. package/dist/adapters/telemetry/serverTiming.d.ts +83 -0
  110. package/dist/adapters/telemetry/serverTiming.js +503 -0
  111. package/dist/adapters/telemetry/start.d.ts +10 -0
  112. package/dist/adapters/telemetry/start.js +25 -0
  113. package/dist/adapters/telemetry/statement.d.ts +16 -0
  114. package/dist/adapters/telemetry/statement.js +134 -0
  115. package/dist/adapters/telemetry/trace.d.ts +127 -0
  116. package/dist/adapters/telemetry/trace.js +295 -0
  117. package/dist/adapters/writeAhead.d.ts +27 -0
  118. package/dist/adapters/writeAhead.js +46 -0
  119. package/dist/adapters/writeAttribution.d.ts +18 -0
  120. package/dist/adapters/writeAttribution.js +23 -0
  121. package/dist/adapters/writeCapture.d.ts +73 -0
  122. package/dist/adapters/writeCapture.js +20 -0
  123. package/dist/adapters/writeLanes.d.ts +94 -0
  124. package/dist/adapters/writeLanes.js +232 -0
  125. package/dist/engine.d.ts +15 -0
  126. package/dist/engine.js +13 -0
  127. package/dist/server/auth/credentials.d.ts +61 -0
  128. package/dist/server/auth/credentials.js +260 -0
  129. package/dist/server/cacheService.d.ts +50 -0
  130. package/dist/server/cacheService.js +110 -0
  131. package/dist/server/cli/args.d.ts +176 -0
  132. package/dist/server/cli/args.js +342 -0
  133. package/dist/server/cli/bin.d.ts +5 -0
  134. package/dist/server/cli/bin.js +66 -0
  135. package/dist/server/cli/browser.d.ts +15 -0
  136. package/dist/server/cli/browser.js +37 -0
  137. package/dist/server/cli/config.d.ts +50 -0
  138. package/dist/server/cli/config.js +206 -0
  139. package/dist/server/cli/startup.d.ts +36 -0
  140. package/dist/server/cli/startup.js +128 -0
  141. package/dist/server/cli/startupOptions.d.ts +63 -0
  142. package/dist/server/cli/startupOptions.js +143 -0
  143. package/dist/server/cli/subcommand.d.ts +28 -0
  144. package/dist/server/cli/subcommand.js +32 -0
  145. package/dist/server/cli/usage.d.ts +13 -0
  146. package/dist/server/cli/usage.js +31 -0
  147. package/dist/server/clientHttp.d.ts +184 -0
  148. package/dist/server/clientHttp.js +700 -0
  149. package/dist/server/clientSurface.d.ts +128 -0
  150. package/dist/server/clientSurface.js +182 -0
  151. package/dist/server/columnGrants.d.ts +103 -0
  152. package/dist/server/columnGrants.js +730 -0
  153. package/dist/server/compileCache.d.ts +1 -0
  154. package/dist/server/compileCache.js +30 -0
  155. package/dist/server/config/locations.d.ts +1 -0
  156. package/dist/server/config/locations.js +15 -0
  157. package/dist/server/configPaths.d.ts +7 -0
  158. package/dist/server/configPaths.js +34 -0
  159. package/dist/server/configSections.d.ts +64 -0
  160. package/dist/server/configSections.js +72 -0
  161. package/dist/server/connectionRedaction.d.ts +30 -0
  162. package/dist/server/connectionRedaction.js +77 -0
  163. package/dist/server/connections.d.ts +353 -0
  164. package/dist/server/connections.js +978 -0
  165. package/dist/server/constraints.d.ts +82 -0
  166. package/dist/server/constraints.js +169 -0
  167. package/dist/server/demo.d.ts +9 -0
  168. package/dist/server/demo.js +554 -0
  169. package/dist/server/devclient.d.ts +108 -0
  170. package/dist/server/devclient.js +361 -0
  171. package/dist/server/evidence.d.ts +55 -0
  172. package/dist/server/evidence.js +323 -0
  173. package/dist/server/hiddenColumns.d.ts +32 -0
  174. package/dist/server/hiddenColumns.js +238 -0
  175. package/dist/server/http/baselineHeaders.d.ts +24 -0
  176. package/dist/server/http/baselineHeaders.js +12 -0
  177. package/dist/server/http/captured.d.ts +35 -0
  178. package/dist/server/http/captured.js +73 -0
  179. package/dist/server/http/clock.d.ts +1 -0
  180. package/dist/server/http/clock.js +14 -0
  181. package/dist/server/http/connectionSource.d.ts +4 -0
  182. package/dist/server/http/connectionSource.js +48 -0
  183. package/dist/server/http/context.d.ts +189 -0
  184. package/dist/server/http/context.js +11 -0
  185. package/dist/server/http/crawlerText.d.ts +15 -0
  186. package/dist/server/http/crawlerText.js +32 -0
  187. package/dist/server/http/dataRoutes.d.ts +88 -0
  188. package/dist/server/http/dataRoutes.js +137 -0
  189. package/dist/server/http/door.d.ts +57 -0
  190. package/dist/server/http/door.js +39 -0
  191. package/dist/server/http/exportRoute.d.ts +15 -0
  192. package/dist/server/http/exportRoute.js +320 -0
  193. package/dist/server/http/firstPaint.d.ts +108 -0
  194. package/dist/server/http/firstPaint.js +262 -0
  195. package/dist/server/http/httpOperationRoutes.d.ts +11 -0
  196. package/dist/server/http/httpOperationRoutes.js +50 -0
  197. package/dist/server/http/pageReads.d.ts +20 -0
  198. package/dist/server/http/pageReads.js +205 -0
  199. package/dist/server/http/pageRoutes.d.ts +39 -0
  200. package/dist/server/http/pageRoutes.js +291 -0
  201. package/dist/server/http/probes.d.ts +22 -0
  202. package/dist/server/http/probes.js +27 -0
  203. package/dist/server/http/rateLimit.d.ts +131 -0
  204. package/dist/server/http/rateLimit.js +351 -0
  205. package/dist/server/http/readRoutes.d.ts +9 -0
  206. package/dist/server/http/readRoutes.js +131 -0
  207. package/dist/server/http/readRouting.d.ts +20 -0
  208. package/dist/server/http/readRouting.js +80 -0
  209. package/dist/server/http/recordCompose.d.ts +67 -0
  210. package/dist/server/http/recordCompose.js +167 -0
  211. package/dist/server/http/recordWrites.d.ts +89 -0
  212. package/dist/server/http/recordWrites.js +298 -0
  213. package/dist/server/http/refusalReport.d.ts +38 -0
  214. package/dist/server/http/refusalReport.js +63 -0
  215. package/dist/server/http/reply.d.ts +130 -0
  216. package/dist/server/http/reply.js +394 -0
  217. package/dist/server/http/requestOrigin.d.ts +11 -0
  218. package/dist/server/http/requestOrigin.js +8 -0
  219. package/dist/server/http/router.d.ts +45 -0
  220. package/dist/server/http/router.js +22 -0
  221. package/dist/server/http/serverCore.d.ts +68 -0
  222. package/dist/server/http/serverCore.js +177 -0
  223. package/dist/server/http/traceRequest.d.ts +30 -0
  224. package/dist/server/http/traceRequest.js +224 -0
  225. package/dist/server/http/trust.d.ts +261 -0
  226. package/dist/server/http/trust.js +472 -0
  227. package/dist/server/http/writeRefusal.d.ts +33 -0
  228. package/dist/server/http/writeRefusal.js +24 -0
  229. package/dist/server/httpConnection.d.ts +49 -0
  230. package/dist/server/httpConnection.js +170 -0
  231. package/dist/server/impact.d.ts +55 -0
  232. package/dist/server/impact.js +47 -0
  233. package/dist/server/journal.d.ts +134 -0
  234. package/dist/server/journal.js +398 -0
  235. package/dist/server/keysetReadHttp.d.ts +52 -0
  236. package/dist/server/keysetReadHttp.js +85 -0
  237. package/dist/server/layouts.d.ts +49 -0
  238. package/dist/server/layouts.js +192 -0
  239. package/dist/server/migrate/cli.d.ts +55 -0
  240. package/dist/server/migrate/cli.js +517 -0
  241. package/dist/server/migrate/database.d.ts +37 -0
  242. package/dist/server/migrate/database.js +247 -0
  243. package/dist/server/migrate/desired.d.ts +76 -0
  244. package/dist/server/migrate/desired.js +292 -0
  245. package/dist/server/migrate/files.d.ts +34 -0
  246. package/dist/server/migrate/files.js +141 -0
  247. package/dist/server/migrate/flyway.d.ts +7 -0
  248. package/dist/server/migrate/flyway.js +69 -0
  249. package/dist/server/migrate/history.d.ts +70 -0
  250. package/dist/server/migrate/history.js +211 -0
  251. package/dist/server/migrate/runner.d.ts +100 -0
  252. package/dist/server/migrate/runner.js +409 -0
  253. package/dist/server/migrate/snapshot.d.ts +30 -0
  254. package/dist/server/migrate/snapshot.js +239 -0
  255. package/dist/server/migrate/target.d.ts +33 -0
  256. package/dist/server/migrate/target.js +82 -0
  257. package/dist/server/openapiDraft.d.ts +25 -0
  258. package/dist/server/openapiDraft.js +171 -0
  259. package/dist/server/operations/diagnostics.d.ts +101 -0
  260. package/dist/server/operations/diagnostics.js +284 -0
  261. package/dist/server/operations/requestMetrics.d.ts +33 -0
  262. package/dist/server/operations/requestMetrics.js +94 -0
  263. package/dist/server/packageVersion.d.ts +1 -0
  264. package/dist/server/packageVersion.js +11 -0
  265. package/dist/server/poolConfig.d.ts +34 -0
  266. package/dist/server/poolConfig.js +114 -0
  267. package/dist/server/product.d.ts +20 -0
  268. package/dist/server/product.js +12 -0
  269. package/dist/server/recordHistoryOperations.d.ts +39 -0
  270. package/dist/server/recordHistoryOperations.js +43 -0
  271. package/dist/server/recordWriteOperations.d.ts +111 -0
  272. package/dist/server/recordWriteOperations.js +329 -0
  273. package/dist/server/resourceReadHttp.d.ts +81 -0
  274. package/dist/server/resourceReadHttp.js +606 -0
  275. package/dist/server/resourceReadOperations.d.ts +147 -0
  276. package/dist/server/resourceReadOperations.js +452 -0
  277. package/dist/server/scaffoldMachine.d.ts +54 -0
  278. package/dist/server/scaffoldMachine.js +184 -0
  279. package/dist/server/seed/cli.d.ts +20 -0
  280. package/dist/server/seed/cli.js +164 -0
  281. package/dist/server/seed/lexicon.d.ts +26 -0
  282. package/dist/server/seed/lexicon.js +585 -0
  283. package/dist/server/seed/seed.d.ts +70 -0
  284. package/dist/server/seed/seed.js +779 -0
  285. package/dist/server/seed/words.d.ts +21 -0
  286. package/dist/server/seed/words.js +164 -0
  287. package/dist/server/serverRequests.d.ts +6 -0
  288. package/dist/server/serverRequests.js +33 -0
  289. package/dist/server/serverTimeouts.d.ts +33 -0
  290. package/dist/server/serverTimeouts.js +32 -0
  291. package/dist/server/shapeonly.d.ts +32 -0
  292. package/dist/server/shapeonly.js +110 -0
  293. package/dist/server/startupWarnings.d.ts +32 -0
  294. package/dist/server/startupWarnings.js +92 -0
  295. package/dist/shared/addressParams.d.ts +28 -0
  296. package/dist/shared/addressParams.js +47 -0
  297. package/dist/shared/appCards.d.ts +123 -0
  298. package/dist/shared/appCards.js +385 -0
  299. package/dist/shared/appComponents.d.ts +177 -0
  300. package/dist/shared/appComponents.js +422 -0
  301. package/dist/shared/appDocuments.d.ts +43 -0
  302. package/dist/shared/appDocuments.js +131 -0
  303. package/dist/shared/appEmbeds.d.ts +21 -0
  304. package/dist/shared/appEmbeds.js +24 -0
  305. package/dist/shared/appIcons.d.ts +28 -0
  306. package/dist/shared/appIcons.js +223 -0
  307. package/dist/shared/appLinks.d.ts +17 -0
  308. package/dist/shared/appLinks.js +124 -0
  309. package/dist/shared/appListColumns.d.ts +3 -0
  310. package/dist/shared/appListColumns.js +66 -0
  311. package/dist/shared/appLocale.d.ts +36 -0
  312. package/dist/shared/appLocale.js +86 -0
  313. package/dist/shared/appMessages.d.ts +44 -0
  314. package/dist/shared/appMessages.js +78 -0
  315. package/dist/shared/appNoun.d.ts +21 -0
  316. package/dist/shared/appNoun.js +32 -0
  317. package/dist/shared/autoBucket.d.ts +98 -0
  318. package/dist/shared/autoBucket.js +305 -0
  319. package/dist/shared/autoValues.d.ts +25 -0
  320. package/dist/shared/autoValues.js +25 -0
  321. package/dist/shared/breakdown.d.ts +228 -0
  322. package/dist/shared/breakdown.js +557 -0
  323. package/dist/shared/breakdowntext.d.ts +41 -0
  324. package/dist/shared/breakdowntext.js +400 -0
  325. package/dist/shared/builtInThemes.d.ts +2 -0
  326. package/dist/shared/builtInThemes.js +771 -0
  327. package/dist/shared/chartSeparation.d.ts +11 -0
  328. package/dist/shared/chartSeparation.js +58 -0
  329. package/dist/shared/clauses.d.ts +22 -0
  330. package/dist/shared/clauses.js +97 -0
  331. package/dist/shared/columnCaption.d.ts +16 -0
  332. package/dist/shared/columnCaption.js +90 -0
  333. package/dist/shared/commandFieldPath.d.ts +2 -0
  334. package/dist/shared/commandFieldPath.js +7 -0
  335. package/dist/shared/commandWire.d.ts +26 -0
  336. package/dist/shared/commandWire.js +41 -0
  337. package/dist/shared/computed.d.ts +161 -0
  338. package/dist/shared/computed.js +378 -0
  339. package/dist/shared/computedParse.d.ts +13 -0
  340. package/dist/shared/computedParse.js +278 -0
  341. package/dist/shared/computedValue.d.ts +47 -0
  342. package/dist/shared/computedValue.js +191 -0
  343. package/dist/shared/connection.d.ts +30 -0
  344. package/dist/shared/connection.js +1 -0
  345. package/dist/shared/csv.d.ts +20 -0
  346. package/dist/shared/csv.js +63 -0
  347. package/dist/shared/dashLayout.d.ts +30 -0
  348. package/dist/shared/dashLayout.js +132 -0
  349. package/dist/shared/dashboardAsks.d.ts +93 -0
  350. package/dist/shared/dashboardAsks.js +129 -0
  351. package/dist/shared/dashboardTrend.d.ts +20 -0
  352. package/dist/shared/dashboardTrend.js +50 -0
  353. package/dist/shared/declaredReferences.d.ts +50 -0
  354. package/dist/shared/declaredReferences.js +202 -0
  355. package/dist/shared/definedFields.d.ts +63 -0
  356. package/dist/shared/definedFields.js +103 -0
  357. package/dist/shared/definedValues.d.ts +63 -0
  358. package/dist/shared/definedValues.js +184 -0
  359. package/dist/shared/displayDefaults.d.ts +135 -0
  360. package/dist/shared/displayDefaults.js +529 -0
  361. package/dist/shared/dueDate.d.ts +6 -0
  362. package/dist/shared/dueDate.js +6 -0
  363. package/dist/shared/duration.d.ts +4 -0
  364. package/dist/shared/duration.js +23 -0
  365. package/dist/shared/fileBounds.d.ts +9 -0
  366. package/dist/shared/fileBounds.js +9 -0
  367. package/dist/shared/filter.d.ts +217 -0
  368. package/dist/shared/filter.js +305 -0
  369. package/dist/shared/firstPaint.d.ts +24 -0
  370. package/dist/shared/firstPaint.js +33 -0
  371. package/dist/shared/form.d.ts +21 -0
  372. package/dist/shared/form.js +25 -0
  373. package/dist/shared/formValues.d.ts +104 -0
  374. package/dist/shared/formValues.js +352 -0
  375. package/dist/shared/funnel.d.ts +45 -0
  376. package/dist/shared/funnel.js +108 -0
  377. package/dist/shared/httpOperations.d.ts +48 -0
  378. package/dist/shared/httpOperations.js +9 -0
  379. package/dist/shared/iconGlyphs.d.ts +4 -0
  380. package/dist/shared/iconGlyphs.js +151 -0
  381. package/dist/shared/iconWeights.d.ts +3 -0
  382. package/dist/shared/iconWeights.js +162 -0
  383. package/dist/shared/imageWidths.d.ts +32 -0
  384. package/dist/shared/imageWidths.js +38 -0
  385. package/dist/shared/keysetPage.d.ts +64 -0
  386. package/dist/shared/keysetPage.js +161 -0
  387. package/dist/shared/like.d.ts +20 -0
  388. package/dist/shared/like.js +29 -0
  389. package/dist/shared/listEmpty.d.ts +12 -0
  390. package/dist/shared/listEmpty.js +36 -0
  391. package/dist/shared/listFilters.d.ts +28 -0
  392. package/dist/shared/listFilters.js +84 -0
  393. package/dist/shared/listPresentations.d.ts +199 -0
  394. package/dist/shared/listPresentations.js +7 -0
  395. package/dist/shared/listQuestion.d.ts +52 -0
  396. package/dist/shared/listQuestion.js +137 -0
  397. package/dist/shared/lookPalettes.d.ts +62 -0
  398. package/dist/shared/lookPalettes.js +306 -0
  399. package/dist/shared/maskQuoted.d.ts +24 -0
  400. package/dist/shared/maskQuoted.js +48 -0
  401. package/dist/shared/mentionLabel.d.ts +19 -0
  402. package/dist/shared/mentionLabel.js +38 -0
  403. package/dist/shared/mentionLookup.d.ts +17 -0
  404. package/dist/shared/mentionLookup.js +64 -0
  405. package/dist/shared/menuCounts.d.ts +16 -0
  406. package/dist/shared/menuCounts.js +74 -0
  407. package/dist/shared/model.d.ts +79 -0
  408. package/dist/shared/model.js +153 -0
  409. package/dist/shared/money.d.ts +44 -0
  410. package/dist/shared/money.js +81 -0
  411. package/dist/shared/moneyEntry.d.ts +7 -0
  412. package/dist/shared/moneyEntry.js +27 -0
  413. package/dist/shared/mount.d.ts +118 -0
  414. package/dist/shared/mount.js +248 -0
  415. package/dist/shared/niceTicks.d.ts +26 -0
  416. package/dist/shared/niceTicks.js +50 -0
  417. package/dist/shared/order.d.ts +59 -0
  418. package/dist/shared/order.js +133 -0
  419. package/dist/shared/page.d.ts +135 -0
  420. package/dist/shared/page.js +1187 -0
  421. package/dist/shared/pageAnatomy.d.ts +99 -0
  422. package/dist/shared/pageAnatomy.js +370 -0
  423. package/dist/shared/pageConfig.d.ts +25 -0
  424. package/dist/shared/pageConfig.js +1308 -0
  425. package/dist/shared/pageEmptyActions.d.ts +12 -0
  426. package/dist/shared/pageEmptyActions.js +20 -0
  427. package/dist/shared/pageLayouts.d.ts +72 -0
  428. package/dist/shared/pageLayouts.js +205 -0
  429. package/dist/shared/pageModel.d.ts +785 -0
  430. package/dist/shared/pageModel.js +121 -0
  431. package/dist/shared/pagePaths.d.ts +180 -0
  432. package/dist/shared/pagePaths.js +869 -0
  433. package/dist/shared/pagePlans.d.ts +52 -0
  434. package/dist/shared/pagePlans.js +108 -0
  435. package/dist/shared/pageRoutes.d.ts +9 -0
  436. package/dist/shared/pageRoutes.js +9 -0
  437. package/dist/shared/query.d.ts +166 -0
  438. package/dist/shared/query.js +1302 -0
  439. package/dist/shared/queryDates.d.ts +12 -0
  440. package/dist/shared/queryDates.js +101 -0
  441. package/dist/shared/queryOperands.d.ts +99 -0
  442. package/dist/shared/queryOperands.js +131 -0
  443. package/dist/shared/reads.d.ts +103 -0
  444. package/dist/shared/reads.js +154 -0
  445. package/dist/shared/recordLabel.d.ts +51 -0
  446. package/dist/shared/recordLabel.js +123 -0
  447. package/dist/shared/recordReadKeys.d.ts +30 -0
  448. package/dist/shared/recordReadKeys.js +51 -0
  449. package/dist/shared/recordReads.d.ts +268 -0
  450. package/dist/shared/recordReads.js +368 -0
  451. package/dist/shared/recordview.d.ts +198 -0
  452. package/dist/shared/recordview.js +356 -0
  453. package/dist/shared/referenceModel.d.ts +58 -0
  454. package/dist/shared/referenceModel.js +194 -0
  455. package/dist/shared/refusal.d.ts +64 -0
  456. package/dist/shared/refusal.js +144 -0
  457. package/dist/shared/relatedCreate.d.ts +30 -0
  458. package/dist/shared/relatedCreate.js +162 -0
  459. package/dist/shared/resourceHttp.d.ts +464 -0
  460. package/dist/shared/resourceHttp.js +1 -0
  461. package/dist/shared/richText.d.ts +85 -0
  462. package/dist/shared/richText.js +305 -0
  463. package/dist/shared/rollups.d.ts +143 -0
  464. package/dist/shared/rollups.js +64 -0
  465. package/dist/shared/rowScope.d.ts +72 -0
  466. package/dist/shared/rowScope.js +376 -0
  467. package/dist/shared/runtimeTables.d.ts +44 -0
  468. package/dist/shared/runtimeTables.js +79 -0
  469. package/dist/shared/schema.d.ts +523 -0
  470. package/dist/shared/schema.js +627 -0
  471. package/dist/shared/schematext.d.ts +38 -0
  472. package/dist/shared/schematext.js +101 -0
  473. package/dist/shared/scopeCatalog.d.ts +29 -0
  474. package/dist/shared/scopeCatalog.js +468 -0
  475. package/dist/shared/servedApp.d.ts +681 -0
  476. package/dist/shared/servedApp.js +45 -0
  477. package/dist/shared/sessionLease.d.ts +34 -0
  478. package/dist/shared/sessionLease.js +3 -0
  479. package/dist/shared/shape.d.ts +55 -0
  480. package/dist/shared/shape.js +168 -0
  481. package/dist/shared/slug.d.ts +1 -0
  482. package/dist/shared/slug.js +12 -0
  483. package/dist/shared/sortText.d.ts +14 -0
  484. package/dist/shared/sortText.js +26 -0
  485. package/dist/shared/sqlRelation.d.ts +4 -0
  486. package/dist/shared/sqlRelation.js +8 -0
  487. package/dist/shared/sqlsaved.d.ts +44 -0
  488. package/dist/shared/sqlsaved.js +63 -0
  489. package/dist/shared/stitchedPaths.d.ts +27 -0
  490. package/dist/shared/stitchedPaths.js +38 -0
  491. package/dist/shared/structuredFilter.d.ts +22 -0
  492. package/dist/shared/structuredFilter.js +1 -0
  493. package/dist/shared/subtitlePath.d.ts +20 -0
  494. package/dist/shared/subtitlePath.js +24 -0
  495. package/dist/shared/suggest.d.ts +18 -0
  496. package/dist/shared/suggest.js +59 -0
  497. package/dist/shared/tableSizing.d.ts +4 -0
  498. package/dist/shared/tableSizing.js +9 -0
  499. package/dist/shared/tagLists.d.ts +57 -0
  500. package/dist/shared/tagLists.js +34 -0
  501. package/dist/shared/textRules.d.ts +54 -0
  502. package/dist/shared/textRules.js +133 -0
  503. package/dist/shared/theme.d.ts +94 -0
  504. package/dist/shared/theme.js +800 -0
  505. package/dist/shared/themeColor.d.ts +34 -0
  506. package/dist/shared/themeColor.js +109 -0
  507. package/dist/shared/themeFaces.d.ts +30 -0
  508. package/dist/shared/themeFaces.js +42 -0
  509. package/dist/shared/themeInk.d.ts +20 -0
  510. package/dist/shared/themeInk.js +52 -0
  511. package/dist/shared/themeLooks.d.ts +9 -0
  512. package/dist/shared/themeLooks.js +572 -0
  513. package/dist/shared/themeParts.d.ts +26 -0
  514. package/dist/shared/themeParts.js +71 -0
  515. package/dist/shared/themePartsCheck.d.ts +21 -0
  516. package/dist/shared/themePartsCheck.js +91 -0
  517. package/dist/shared/themePresets.d.ts +85 -0
  518. package/dist/shared/themePresets.js +139 -0
  519. package/dist/shared/themeRecipeWords.d.ts +156 -0
  520. package/dist/shared/themeRecipeWords.js +156 -0
  521. package/dist/shared/themeRecipes.d.ts +213 -0
  522. package/dist/shared/themeRecipes.js +234 -0
  523. package/dist/shared/themeResolve.d.ts +55 -0
  524. package/dist/shared/themeResolve.js +52 -0
  525. package/dist/shared/themeTokens.d.ts +107 -0
  526. package/dist/shared/themeTokens.js +116 -0
  527. package/dist/shared/themeType.d.ts +38 -0
  528. package/dist/shared/themeType.js +205 -0
  529. package/dist/shared/unitWord.d.ts +4 -0
  530. package/dist/shared/unitWord.js +37 -0
  531. package/dist/shared/view.d.ts +195 -0
  532. package/dist/shared/view.js +987 -0
  533. package/dist/shared/viewLabels.d.ts +47 -0
  534. package/dist/shared/viewLabels.js +459 -0
  535. package/dist/shared/viewPaths.d.ts +248 -0
  536. package/dist/shared/viewPaths.js +294 -0
  537. package/dist/shared/viewtext.d.ts +57 -0
  538. package/dist/shared/viewtext.js +282 -0
  539. package/dist/shared/vocabulary.d.ts +71 -0
  540. package/dist/shared/vocabulary.js +249 -0
  541. package/dist/shared/weekStart.d.ts +7 -0
  542. package/dist/shared/weekStart.js +36 -0
  543. package/mark.svg +1 -0
  544. package/package.json +261 -4
  545. package/schema/model.d.ts +298 -0
  546. package/schema/theme.d.ts +587 -0
@@ -0,0 +1,121 @@
1
+ import {} from './tableSizing.js';
2
+ import { maskQuoted } from './maskQuoted.js';
3
+ export const WIDTHS = ['full', 'half', 'third', 'two-thirds'];
4
+ export const OFFSETS = ['quarter', 'third', 'half', 'two-thirds'];
5
+ export const SECTION_REGIONS = ['main', 'aside'];
6
+ export const FIELD_COLUMNS = [1, 2, 3];
7
+ /* A group opens to at most GROUP_ROWS_MOST rows ("Show all"), and a page of groups holds at most GROUPS_MOST: a header's
8
+ facts ride on its rows, so the bound is also the bound on the reads. */
9
+ /**
10
+ * A related list read as groups: one header for each record (or value) its rows point at through `by`, and that group's
11
+ * rows under it, a page of groups at a time. One level only — the second level of a chain is a fact on the header.
12
+ */
13
+ export const GROUP_ROWS_MOST = 50;
14
+ export const GROUP_ROWS_DEFAULT = 5;
15
+ export const GROUPS_MOST = 10;
16
+ export const GROUPS_DEFAULT = 5;
17
+ /** Every `about` a page's sections and streams name, once each: the referenced rows the planner reads first. */
18
+ export function pageAbouts(page) {
19
+ return [
20
+ ...new Set(page.sections.flatMap((section) => section.kind === 'timeline'
21
+ ? section.streams.flatMap((stream) => (stream.of ? [stream.of] : []))
22
+ : section.kind !== 'fields' &&
23
+ section.kind !== 'note' &&
24
+ section.kind !== 'history' &&
25
+ section.kind !== 'flows' &&
26
+ section.kind !== 'diagram' &&
27
+ section.kind !== 'custom' &&
28
+ section.of
29
+ ? [section.of]
30
+ : [])),
31
+ ];
32
+ }
33
+ /**
34
+ * The columns a timeline's tone and compact rules read. Given a stream and its table, those its rows carry: a rule is
35
+ * read on each stream whose table has its column, as `side` is, and not on one that says its own `tone` or `compact`
36
+ *, so time logged need not carry a `kind` only so a rule can name it. Without a stream, every rule's column.
37
+ */
38
+ export function timelineMarkColumns(section, stream, table) {
39
+ const named = [
40
+ ...new Set([
41
+ ...(stream?.tone === undefined ? Object.keys(section.tone ?? {}) : []),
42
+ ...(stream?.compact === undefined ? Object.keys(section.compact ?? {}) : []),
43
+ ]),
44
+ ];
45
+ return stream ? named.filter((column) => Boolean(table?.columns.some((c) => c.name === column))) : named;
46
+ }
47
+ /**
48
+ * A timeline's `side` as one stream asks it: `record.<column>` is the page's record, reached by the stream's own way
49
+ * back to it, so `author_id = record.caller_id` over a stream `whose: 'ticket_id'` is `author_id =
50
+ * ticket_id.caller_id` — one condition the query language already reads, run where the stream's rows are read.
51
+ * Undefined where the stream's rows lead to another row (`about`), which has no way back to the record.
52
+ */
53
+ export function timelineSide(side, stream) {
54
+ const masked = maskQuoted(side);
55
+ const at = [...masked.matchAll(/(?<![\w$.])record\.(?=[A-Za-z_])/g)].map((match) => match.index);
56
+ if (at.length && stream.of)
57
+ return undefined;
58
+ let out = side;
59
+ for (const i of at.reverse())
60
+ out = `${out.slice(0, i)}${stream.path}.${out.slice(i + 'record.'.length)}`;
61
+ return out;
62
+ }
63
+ /** How many streams one timeline is allowed to merge. */
64
+ export const MAX_STREAMS = 4;
65
+ /** The most writes one history section shows before asking for more. */
66
+ export const MAX_HISTORY_LIMIT = 100;
67
+ /** Writes a history section shows before "Show earlier changes" when its `limit` says none. */
68
+ export const DEFAULT_HISTORY_LIMIT = 8;
69
+ /** Every section kind's traits (SectionTraits). The union is closed: a kind is added here, with its row. */
70
+ export const SECTION_TRAITS = {
71
+ fields: { reads: 'record', relation: false },
72
+ metric: { reads: 'rows', relation: true },
73
+ list: { reads: 'rows', relation: true },
74
+ breakdown: { reads: 'rows', relation: true },
75
+ chart: { reads: 'rows', relation: true },
76
+ note: { reads: 'none', relation: false },
77
+ timeline: { reads: 'rows', relation: true },
78
+ history: { reads: 'none', relation: false },
79
+ flows: { reads: 'none', relation: false },
80
+ diagram: { reads: 'none', relation: false },
81
+ custom: { reads: 'rows', relation: false },
82
+ };
83
+ /** Whether a section reads one of these ways (SectionTraits.reads), narrowed to the kinds that do. */
84
+ export function sectionReading(section, ...reads) {
85
+ return reads.includes(SECTION_TRAITS[section.kind].reads);
86
+ }
87
+ /** Whether a section kind reads one of these ways, for a shape that is not the section union (recordReads.ts ReadSection). */
88
+ export function kindReading(kind, ...reads) {
89
+ return reads.includes(SECTION_TRAITS[kind].reads);
90
+ }
91
+ /** Whether a section walks a path from the root (SectionTraits.relation), narrowed to the kinds that do. */
92
+ export const walksRelation = (section) => SECTION_TRAITS[section.kind].relation;
93
+ /** Rows a list section shows before it needs a page of its own. */
94
+ export const DEFAULT_PAGE_LIST_LIMIT = 10;
95
+ /** Sections one screen of a page may draw: in each region, those in no tab and the largest tab's. A page is a
96
+ screen, not a report; a record's tabs are more screens of it, so they are counted one at a time. */
97
+ export const MAX_SECTIONS = 24;
98
+ /** Sections a page may hold in all, every tab's included. */
99
+ export const MAX_PAGE_SECTIONS = 96;
100
+ /** How many sections a page draws on its fullest screen: per region, those in no tab and its largest tab's. */
101
+ export function screenSections(sections) {
102
+ const regions = new Map();
103
+ for (const section of sections) {
104
+ const region = section.region ?? 'main';
105
+ const counted = regions.get(region) ?? { untabbed: 0, tabs: new Map() };
106
+ regions.set(region, counted);
107
+ if (section.tab === undefined)
108
+ counted.untabbed += 1;
109
+ else
110
+ counted.tabs.set(section.tab, (counted.tabs.get(section.tab) ?? 0) + 1);
111
+ }
112
+ let most = 0;
113
+ for (const { untabbed, tabs } of regions.values())
114
+ most += untabbed + Math.max(0, ...tabs.values());
115
+ return most;
116
+ }
117
+ /** A workflow step's label when it names none: `in_review` reads "In review". */
118
+ export function workflowLabel(value) {
119
+ const words = value.replaceAll('_', ' ');
120
+ return words.charAt(0).toUpperCase() + words.slice(1);
121
+ }
@@ -0,0 +1,180 @@
1
+ import { type DatabaseSchema, type ForeignKey, type TableMeta } from './schema.js';
2
+ import { type ViewDef, type ViewFilter } from './view.js';
3
+ import { type PageMetric, type PageList, type PageDef, type PageCustom } from './pageModel.js';
4
+ import type { PageCustomRead } from './appComponents.js';
5
+ import type { BreakdownDef } from './breakdown.js';
6
+ /**
7
+ * A path from a table back to the root, one foreign key per hop.
8
+ *
9
+ * Returned rather than a boolean because the caller needs the same thing the
10
+ * validator does: which columns to compare, and whether the last hop actually
11
+ * lands on the root. Composite keys are carried whole — a path that resolved
12
+ * only the first column of a two-column key would build a filter that matched
13
+ * every row sharing that column.
14
+ */
15
+ export interface ResolvedPath {
16
+ hops: ForeignKey[];
17
+ /** The table the path ends at. Must be the page's base for the path to be usable. */
18
+ endsAt: string;
19
+ }
20
+ /**
21
+ * Follow `a.b.c` from a table, hop by hop, and say where it lands.
22
+ *
23
+ * Each segment names a foreign key on the current table by its canonical
24
+ * column(s), as in view paths (`a+b` for a composite), or by its constraint
25
+ * name, which tells apart two references over the same columns; a dotted
26
+ * constraint name is not a forward path segment.
27
+ */
28
+ export declare function resolvePath(schema: DatabaseSchema, from: string, path: string): {
29
+ path?: ResolvedPath;
30
+ error?: string;
31
+ };
32
+ /** Prefer column-based paths, retaining explicit names when columns alone
33
+ * cannot identify the relationship. Never emit a dotted name as one hop. */
34
+ export declare function pageHop(schema: DatabaseSchema, fk: ForeignKey): string | undefined;
35
+ /**
36
+ * The filter that ties a section to one root record.
37
+ *
38
+ * Built as a structured `ViewFilter` rather than as text, for the reason the
39
+ * whole tool is built that way: a key value that happens to contain a quote
40
+ * or the word `and` is a value, and text would make it grammar.
41
+ *
42
+ * The path is written into the column, so the compiler does the joining —
43
+ * `invoice_id.customer_id` is a path it already knows how to walk, and the
44
+ * one place that knows how to join is better than a second one here.
45
+ */
46
+ export declare function rootFilter(path: string, key: Record<string, string | number>, resolved: ResolvedPath): ViewFilter;
47
+ /**
48
+ * Resolve a section's `of` — the forward reference naming which record the
49
+ * section is about.
50
+ *
51
+ * One hop, deliberately. `of: 'site_id.address_id'` is expressible in the
52
+ * type and refused here: each extra hop is another row the planner must read
53
+ * before any section can run, and nobody has yet asked for a section about
54
+ * the address of the site of the record they are looking at. The error says
55
+ * the limit rather than pretending the path is malformed.
56
+ */
57
+ export declare function resolveOf(schema: DatabaseSchema, baseId: string, of: string): {
58
+ fk?: ForeignKey;
59
+ table?: TableMeta;
60
+ error?: string;
61
+ };
62
+ /**
63
+ * The keys of the records the page's `of` sections are about, by prefix.
64
+ *
65
+ * `null` says the root's reference is empty — a work order with no site —
66
+ * which is different from "unknown": a section given null renders its empty
67
+ * state instead of a filter that can never match.
68
+ */
69
+ export type OfKeys = Record<string, Record<string, string | number> | null>;
70
+ /** The record's own values, read on the server from its row for the sections that match on them (a similar list). */
71
+ export type RootValues = Record<string, unknown>;
72
+ /**
73
+ * What is wrong with a list's match (`same`, `near`) against this schema, or
74
+ * undefined. Said at startup (validatePage) and again when the list is
75
+ * planned, in the same words, so a page that loads is a page whose matched
76
+ * list can run. Each column is one of the listed table and of the page's own,
77
+ * the record's value being read off the page's row.
78
+ */
79
+ export declare function similarProblem(schema: DatabaseSchema, page: PageDef, section: PageList): string | undefined;
80
+ /**
81
+ * What is wrong with a related list's footer of sums (`totals`) against this
82
+ * schema, or undefined — said at startup and again when the list is planned.
83
+ * A total is a number column of the rows, or one of their numeric rollups or
84
+ * computed columns (`refunded`, the refunds of each order), through any
85
+ * reference `whose` walks.
86
+ */
87
+ export declare function relatedMatchProblem(schema: DatabaseSchema, page: PageDef, section: PageList): string | undefined;
88
+ /** The grouped record's columns a header says, as paths from the listed rows: read with each group's rows, so a header costs no read. */
89
+ export declare function groupFactPaths(section: Pick<PageList, 'group'>): string[];
90
+ /** The table a group's header is a record of, or undefined where the groups are plain values (or the path does not resolve). */
91
+ export declare function groupTable(schema: DatabaseSchema, section: Pick<PageList, 'from' | 'group'>): TableMeta | undefined;
92
+ /**
93
+ * What is wrong with a grouped list against this schema, or undefined — said at startup and again when the list is
94
+ * planned. The header is the record the rows point at through `by`; where `by` ends at a plain column the groups are
95
+ * its values, and there is no record to take facts or an order from.
96
+ */
97
+ export declare function groupProblem(schema: DatabaseSchema, page: PageDef, section: PageList): string | undefined;
98
+ /**
99
+ * The groups of a grouped list: one row for each record (or value) the listed rows point at through `by`, with how
100
+ * many rows it holds, its subtotals when the list has `totals`, and, when the groups are ordered by a column of the
101
+ * grouped record, the largest of that column — the sort column depends on the key, so the maximum is exact. It is a
102
+ * plain breakdown over the same rows the list reads, so it adds no SQL shape of its own and the reader's grants,
103
+ * row policy and tenant scope narrow it as they narrow every breakdown.
104
+ */
105
+ export declare function groupsView(schema: DatabaseSchema, page: PageDef, section: PageList, key: Record<string, string | number>, ofKeys?: OfKeys, now?: Date): {
106
+ breakdown?: BreakdownDef;
107
+ empty?: boolean;
108
+ error?: string;
109
+ };
110
+ /**
111
+ * The sums a related list's footer says, as a breakdown with no key over the
112
+ * rows the list's reference matches — one row, a `sum` a column, as a
113
+ * narrowed page metric is measured — so the footer counts every row, not the
114
+ * page of them the list has loaded, and a rollup of the rows sums as a column
115
+ * does.
116
+ */
117
+ export declare function totalsView(schema: DatabaseSchema, page: PageDef, section: PageList, key: Record<string, string | number>, ofKeys?: OfKeys, rootValues?: RootValues): {
118
+ breakdown?: BreakdownDef;
119
+ empty?: boolean;
120
+ error?: string;
121
+ };
122
+ /**
123
+ * What a list section needs to run, as a view the existing compiler can take.
124
+ *
125
+ * A page adds no query machinery of its own. Every section is a view — that
126
+ * is the point of having built one — so a page is an arrangement of views
127
+ * around a shared root rather than a second way to ask a database questions.
128
+ */
129
+ export declare function listView(schema: DatabaseSchema, page: PageDef, section: PageList, key: Record<string, string | number>, index: number, now?: Date, ofKeys?: OfKeys, rootValues?: RootValues): {
130
+ view?: ViewDef;
131
+ empty?: boolean;
132
+ error?: string;
133
+ };
134
+ export declare function sectionQuery(view: ViewDef | undefined): string | undefined;
135
+ export declare function metricView(schema: DatabaseSchema, page: PageDef, section: PageMetric, key: Record<string, string | number>, index: number, now?: Date, ofKeys?: OfKeys): {
136
+ view?: ViewDef;
137
+ counts?: boolean;
138
+ breakdown?: BreakdownDef;
139
+ empty?: boolean;
140
+ error?: string;
141
+ };
142
+ /**
143
+ * Columns worth showing in a list nobody has configured.
144
+ *
145
+ * The path back to the root is dropped: every row in the section has the same
146
+ * value for it, so a column of forty identical numbers is the one column that
147
+ * cannot tell two rows apart. The key and the label come first, because they
148
+ * are what a row is called.
149
+ */
150
+ export declare function defaultColumns(table: TableMeta, path: string, resolved?: ResolvedPath): string[];
151
+ /**
152
+ * One declared read of a custom section, planned as the list it is: with
153
+ * `whose`, exactly a related list (listView), the same join back to the
154
+ * record; without, the resource's own rows narrowed by its query — the
155
+ * dashboard's rows section, on a page. Either way the result is a view the
156
+ * server compiles and authorizes on every run, like any section's.
157
+ */
158
+ export declare function customReadView(schema: DatabaseSchema, page: PageDef, name: string, read: PageCustomRead, key: Record<string, string | number>, index: number, now?: Date): {
159
+ view?: ViewDef;
160
+ empty?: boolean;
161
+ error?: string;
162
+ };
163
+ /**
164
+ * What is wrong with a custom section against this schema, or undefined:
165
+ * the record's fields judged as a fields section's, each read as the list it
166
+ * is planned as — its `whose` leading home, its columns, order and query
167
+ * through the compiler that will run them. Said at startup, so a misspelled
168
+ * column is refused before a reader sees the section.
169
+ */
170
+ export declare function customProblem(schema: DatabaseSchema, page: PageDef, section: PageCustom, index: number): string | undefined;
171
+ /** The hop every path shares, where each is one field past it (`dealer_id.name`, `dealer_id.city` → `dealer_id`), or ''. */
172
+ export declare function sharedPrefix(paths: readonly string[] | undefined): string;
173
+ /**
174
+ * The hop a card's facts are captioned without. A card's title is the record
175
+ * (`bike_id`, the reference itself) and its facts are that record's own fields
176
+ * (`bike_id.make`, `bike_id.serial_number`): read with the title, the paths
177
+ * share no hop, and a fact that is the parent's label column was captioned as
178
+ * the reference ("Bike" over a serial number). Its own name is what it is there.
179
+ */
180
+ export declare function cardStem(paths: readonly string[] | undefined): string;