@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,184 @@
1
+ /**
2
+ * A record's life read off its status vocabulary: the one inference the
3
+ * scaffold writes as a `machine()` and `tablewalk seed` walks when no App
4
+ * says otherwise.
5
+ *
6
+ * A CHECK or enum list of plain words on a column named like a state is the
7
+ * work's states in their order. Most of them are a path — received, in
8
+ * progress, ready, collected — walked one verb at a time to the last, which
9
+ * is final. A word that calls the work off (cancelled, rejected, lost) is an
10
+ * exit: final, reached from every open state by a verb that asks first. A
11
+ * word that parks the work (on hold, waiting for parts) is a side state: one
12
+ * verb into it from the step before it, one back. That is a draft of how the
13
+ * work moves, not a rule about the business: the author adds the skips and
14
+ * the commands.
15
+ *
16
+ * Stamps follow: a date column named for a state (`ready_at`) is the
17
+ * platform's to write as the record enters it, so it is left alone; one
18
+ * named for what entering a state means (`completed_on` beside `collected`,
19
+ * `cancelled_at` beside a `cancel` verb) is set by the verbs that lead there.
20
+ */
21
+ import { columnKind, momentColumn, stateStampColumn } from '../shared/schema.js';
22
+ const said = (value) => value
23
+ .trim()
24
+ .toLowerCase()
25
+ .replace(/[\s-]+/g, '_');
26
+ /* Words that call the work off: the exits. */
27
+ const EXIT = /^(cancell?ed|rejected|declined|denied|lost|closed_lost|void|voided|withdrawn|abandoned|failed|expired|refunded|no_show|dismissed|discarded|dropped|disqualified|unqualified|churned|terminated|aborted|wont_fix|duplicate|spam)$/;
28
+ /* Words that park the work: a side state, left the way it was entered. */
29
+ const HOLD = /^(on_hold|hold|paused|blocked|stalled|deferred|snoozed|backordered|waiting|waiting_\w+)$/;
30
+ /* The verb that leads into a state, by the state's word: what a person does to put the record there. */
31
+ const INTO = {
32
+ in_progress: 'start',
33
+ working: 'start',
34
+ started: 'start',
35
+ active: 'activate',
36
+ open: 'open',
37
+ ready: 'markReady',
38
+ done: 'complete',
39
+ complete: 'complete',
40
+ completed: 'complete',
41
+ finished: 'finish',
42
+ collected: 'collect',
43
+ picked_up: 'markPickedUp',
44
+ closed: 'close',
45
+ resolved: 'resolve',
46
+ approved: 'approve',
47
+ accepted: 'accept',
48
+ confirmed: 'confirm',
49
+ qualified: 'qualify',
50
+ won: 'markWon',
51
+ closed_won: 'markWon',
52
+ shipped: 'ship',
53
+ delivered: 'deliver',
54
+ fulfilled: 'fulfill',
55
+ invoiced: 'invoice',
56
+ paid: 'markPaid',
57
+ sent: 'send',
58
+ submitted: 'submit',
59
+ published: 'publish',
60
+ scheduled: 'schedule',
61
+ assigned: 'assign',
62
+ in_review: 'sendForReview',
63
+ review: 'sendForReview',
64
+ archived: 'archive',
65
+ returned: 'markReturned',
66
+ on_hold: 'hold',
67
+ hold: 'hold',
68
+ paused: 'pause',
69
+ blocked: 'block',
70
+ cancelled: 'cancel',
71
+ canceled: 'cancel',
72
+ rejected: 'reject',
73
+ declined: 'decline',
74
+ denied: 'deny',
75
+ lost: 'markLost',
76
+ closed_lost: 'markLost',
77
+ void: 'void',
78
+ voided: 'void',
79
+ withdrawn: 'withdraw',
80
+ abandoned: 'abandon',
81
+ failed: 'markFailed',
82
+ expired: 'expire',
83
+ refunded: 'refund',
84
+ dismissed: 'dismiss',
85
+ discarded: 'discard',
86
+ disqualified: 'disqualify',
87
+ terminated: 'terminate',
88
+ };
89
+ /* What a stamp's word says entering a state means, when it is not the state's own name. */
90
+ const DONE_STAMP = /^(completed|finished|closed|done|resolved|fulfilled|delivered|collected|picked_up|handed_over|shipped)$/;
91
+ const START_STAMP = /^(started|begun|commenced|work_started)$/;
92
+ const EXIT_STAMP = /^(cancell?ed|rejected|declined|lost|voided|withdrawn|abandoned|failed|terminated|closed_lost)$/;
93
+ const SINCE = /^(status|state|stage|phase)_(changed|updated|since|entered)(_at|_on)?$|^(status|state|stage|phase)_since$/i;
94
+ const REASON = /(^|_)reason$/i;
95
+ const camel = (words) => words.replace(/_+([a-z0-9])/g, (_, c) => c.toUpperCase());
96
+ /** Whether a vocabulary reads as a lifecycle: three or more plain words, at least two of them steps forward. */
97
+ export function draftMachine(table, column) {
98
+ const states = column.allowed ?? [];
99
+ if (states.length < 3 || states.length > 10 || column.flag || !states.every((state) => /^[A-Za-z0-9][A-Za-z0-9_-]*$/.test(state)))
100
+ return undefined;
101
+ const exits = states.filter((state, i) => i > 0 && EXIT.test(said(state)));
102
+ const holdStates = states.filter((state, i) => i > 0 && !exits.includes(state) && HOLD.test(said(state)));
103
+ const path = states.filter((state) => !exits.includes(state) && !holdStates.includes(state));
104
+ if (path.length < 2)
105
+ return undefined;
106
+ const holds = new Map();
107
+ for (const hold of holdStates) {
108
+ /* Entered from the path state the vocabulary lists before it; one listed after the last step returns to the step before. */
109
+ const before = states.slice(0, states.indexOf(hold)).filter((state) => path.includes(state) && state !== path.at(-1));
110
+ holds.set(hold, before.at(-1) ?? path[0]);
111
+ }
112
+ /* A state named for a plan (due, scheduled) would read the plan's date as the moment it was entered: `due_on` stamped
113
+ as the record is made. Such a vocabulary is a schedule's, not a lifecycle's. */
114
+ if (states.some((state) => /^(due|scheduled|planned|expected|overdue|late)$/.test(said(state)) &&
115
+ stateStampColumn(state, table.columns, { column: column.name })))
116
+ return undefined;
117
+ const final = path.at(-1);
118
+ const open = states.filter((state) => state !== final && !exits.includes(state));
119
+ const taken = new Set();
120
+ const verbFor = (state) => {
121
+ const word = INTO[said(state)] ?? camel(`mark_${said(state)}`);
122
+ let verb = word;
123
+ for (let n = 2; taken.has(verb); n++)
124
+ verb = `${word}${n}`;
125
+ taken.add(verb);
126
+ return verb;
127
+ };
128
+ const dated = table.columns.filter((c) => !c.primaryKey &&
129
+ c.name !== column.name &&
130
+ /_(at|on)$/.test(c.name) &&
131
+ (momentColumn(c) !== undefined || columnKind(c.type ?? '') === 'date'));
132
+ const since = table.columns.find((c) => SINCE.test(c.name) && momentColumn(c) !== undefined)?.name;
133
+ const machine = { column: column.name, ...(since ? { since } : {}) };
134
+ /* A stamp the state's own name says is the platform's; one the verb's meaning says is the verb's. */
135
+ const stampsFor = (to) => dated
136
+ .filter((c) => c.name !== since && stateStampColumn(to, table.columns, machine)?.name !== c.name)
137
+ .filter((c) => {
138
+ const word = said(c.name.replace(/_(at|on)$/, ''));
139
+ if (states.some((state) => said(state) === word))
140
+ return false;
141
+ const state = said(to);
142
+ if (word === `${state}d` || word === `${state}ed` || state === `${word}d`)
143
+ return true;
144
+ if (to === final)
145
+ return DONE_STAMP.test(word);
146
+ if (exits.includes(to))
147
+ return EXIT_STAMP.test(word) && (exits.length === 1 || word.startsWith(state.slice(0, 4)));
148
+ return path.length > 2 && to === path[1] && START_STAMP.test(word);
149
+ })
150
+ .map((c) => c.name);
151
+ const reasonFor = (exit) => {
152
+ const reasons = table.columns.filter((c) => REASON.test(c.name) && columnKind(c.type ?? '') === 'text' && !c.allowed?.length);
153
+ return (reasons.find((c) => c.name.startsWith(said(exit).slice(0, 4))) ?? (reasons.length === 1 ? reasons[0] : undefined))?.name;
154
+ };
155
+ const verbs = [];
156
+ const add = (from, to, extra = {}) => {
157
+ const stamps = stampsFor(to);
158
+ verbs.push({ verb: verbFor(to), from, to, stamps, ...extra });
159
+ };
160
+ for (let i = 0; i + 1 < path.length; i++)
161
+ add([path[i]], path[i + 1]);
162
+ for (const [hold, base] of holds) {
163
+ add([base], hold);
164
+ verbs.push({ verb: taken.has('resume') ? verbFor(base) : (taken.add('resume'), 'resume'), from: [hold], to: base, stamps: [] });
165
+ }
166
+ for (const exit of exits) {
167
+ const reason = reasonFor(exit);
168
+ add(open, exit, { confirm: true, ...(reason ? { reason } : {}) });
169
+ }
170
+ return { column: column.name, states, path, holds, exits, verbs, ...(since ? { since } : {}) };
171
+ }
172
+ /** Every column the machine writes: its column, its `since`, each state's own stamp and each verb's. */
173
+ export function machineWrites(table, machine) {
174
+ const written = new Set([machine.column, ...(machine.since ? [machine.since] : [])]);
175
+ for (const state of machine.states) {
176
+ const own = stateStampColumn(state, table.columns, machine);
177
+ if (own)
178
+ written.add(own.name);
179
+ }
180
+ for (const verb of machine.verbs)
181
+ for (const stamp of verb.stamps)
182
+ written.add(stamp);
183
+ return written;
184
+ }
@@ -0,0 +1,20 @@
1
+ import { type Options } from '../cli/args.js';
2
+ import { type StartupConfig } from '../cli/config.js';
3
+ import type { ConfigSections } from '../configSections.js';
4
+ import { type TargetBinding } from '../migrate/target.js';
5
+ import { type SeedResource } from './seed.js';
6
+ /** The App framework's part of `tablewalk seed`: the App in `dir`, as seed reads it. Throws with the sentence to print. */
7
+ export interface SeedHost {
8
+ app(dir: string, given: {
9
+ opts: Options;
10
+ config: StartupConfig;
11
+ }): Promise<{
12
+ binding: TargetBinding;
13
+ resources?: Record<string, SeedResource>;
14
+ people?: {
15
+ table: string;
16
+ column: string;
17
+ };
18
+ }>;
19
+ }
20
+ export declare function runSeed(argv: string[], write?: (line: string) => void, sections?: ConfigSections, host?: SeedHost): Promise<number>;
@@ -0,0 +1,164 @@
1
+ /**
2
+ * `tablewalk seed`: fill an App's database with rows to look at (seed.ts says
3
+ * what makes them believable). The database is found the way `migrate` finds
4
+ * it — the App's connection, a named one, or the only one — and written only
5
+ * when its config says `"writable": true`: the flag is the reviewable
6
+ * statement that this database may be changed, and seed is a change.
7
+ *
8
+ * `--app` is the App framework's: a main that has one hands a `SeedHost`
9
+ * (cli/appTargets.ts) that names the App's connection, how its statuses move
10
+ * and who signs in. With no host, `--app` is refused.
11
+ */
12
+ import { existsSync } from 'node:fs';
13
+ import { resolve } from 'node:path';
14
+ import { Registry, redact } from '../connections.js';
15
+ import { parseArgs } from '../cli/args.js';
16
+ import { readStartupConfig } from '../cli/config.js';
17
+ import { CACHE_SECTIONS } from '../cacheService.js';
18
+ import { targetConnection } from '../migrate/target.js';
19
+ import { seedDatabase, SeedRefusal } from './seed.js';
20
+ import { configFileName } from '../product.js';
21
+ import { product } from '../product.js';
22
+ const seedUsage = () => product() + ' seed [--app <dir>] [<db> | --db <target> | --config <path>] [--connection <name>] [--rows <n>] [--seed <n>] [--append]';
23
+ /** The exit codes: 1 could not run, 2 refused (read-only, or rows already there). */
24
+ const EXIT = { ok: 0, couldNot: 1, refused: 2 };
25
+ /* The start's own flags this command takes, and whether each has a value. */
26
+ const PASSED = {
27
+ '--db': true,
28
+ '-d': true,
29
+ '--config': true,
30
+ '--no-config': false,
31
+ '--schema': true,
32
+ '--app-entry': true,
33
+ };
34
+ export async function runSeed(argv, write = (line) => process.stdout.write(`${line}\n`), sections = CACHE_SECTIONS, host) {
35
+ const fail = (why, code = EXIT.couldNot) => {
36
+ console.error(`${product()} seed: ${why}`);
37
+ return code;
38
+ };
39
+ if (argv[0] === '--help' || argv[0] === '-h') {
40
+ write(`${seedUsage()}\n\n` +
41
+ 'Rows to look at, in a writable database: about --rows per main table (default 40), fewer for staff\n' +
42
+ "and lookups, more for lines. Each status the way the App's machine moves it, with its stamps; dates\n" +
43
+ 'across the last 90 days, some work due today or overdue. --seed <n> makes the same rows again on the\n' +
44
+ 'same day. A table that already holds rows is refused unless --append.');
45
+ return EXIT.ok;
46
+ }
47
+ let app;
48
+ let connection;
49
+ let rows = 40;
50
+ let seed;
51
+ let append = false;
52
+ const rest = [];
53
+ const value = (i, flag) => {
54
+ const given = argv[i + 1];
55
+ if (given === undefined || given.startsWith('-'))
56
+ throw new Error(`${flag} needs a value. ${seedUsage()}`);
57
+ return given;
58
+ };
59
+ const whole = (text, flag, lo, hi) => {
60
+ const n = Number(text);
61
+ if (!Number.isInteger(n) || n < lo || n > hi)
62
+ throw new Error(`${flag} takes a whole number from ${lo} to ${hi}; "${text}" is not one.`);
63
+ return n;
64
+ };
65
+ try {
66
+ for (let i = 0; i < argv.length; i++) {
67
+ const arg = argv[i];
68
+ if (arg === '--app') {
69
+ app = value(i++, arg);
70
+ continue;
71
+ }
72
+ if (arg === '--connection') {
73
+ connection = value(i++, arg);
74
+ continue;
75
+ }
76
+ if (arg === '--rows') {
77
+ rows = whole(value(i++, arg), arg, 1, 10_000);
78
+ continue;
79
+ }
80
+ if (arg === '--seed') {
81
+ seed = whole(value(i++, arg), arg, 0, 2 ** 32 - 1);
82
+ continue;
83
+ }
84
+ if (arg === '--append') {
85
+ append = true;
86
+ continue;
87
+ }
88
+ const flag = arg.split('=')[0];
89
+ if (flag in PASSED) {
90
+ rest.push(arg);
91
+ if (PASSED[flag] && !arg.includes('='))
92
+ rest.push(value(i++, arg));
93
+ continue;
94
+ }
95
+ if (arg.startsWith('-'))
96
+ throw new Error(`"${arg}" is not an option of seed. ${seedUsage()}`);
97
+ rest.push(arg);
98
+ }
99
+ }
100
+ catch (error) {
101
+ return fail(error.message);
102
+ }
103
+ const opts = parseArgs(rest);
104
+ if (opts.unknown)
105
+ return fail(`unknown option "${opts.unknown}". ${seedUsage()}`);
106
+ const appDir = app !== undefined ? resolve(app) : undefined;
107
+ if (appDir !== undefined && !host)
108
+ return fail("--app reads an App, which is the App framework's part: " +
109
+ product() +
110
+ ' seeds a database alone. Run npx @mistriwork/mistri seed --app, or drop --app.');
111
+ if (appDir !== undefined && !existsSync(appDir))
112
+ return fail(`${app} is not a directory.`);
113
+ /* A seed nobody chose is still said, so the same rows can be made again. */
114
+ const chosen = seed ?? Math.floor(Math.random() * 1_000_000);
115
+ const registry = new Registry();
116
+ const log = console.log;
117
+ console.log = () => { };
118
+ try {
119
+ const config = await readStartupConfig(opts, registry, sections);
120
+ const argument = opts.target
121
+ ? registry.add({ name: redact(opts.target), url: opts.target, schemas: opts.schemas, source: 'argument' }).id
122
+ : undefined;
123
+ let loaded;
124
+ if (appDir !== undefined) {
125
+ try {
126
+ loaded = await host.app(appDir, { opts, config });
127
+ }
128
+ catch (error) {
129
+ return fail(error.message);
130
+ }
131
+ }
132
+ const target = targetConnection(registry, { connection, argument }, loaded?.binding, 'seed');
133
+ if (target.http)
134
+ return fail(`"${target.name}" is an HTTP API; seed writes rows to a database.`, EXIT.refused);
135
+ if (target.writable !== true)
136
+ return fail(`"${target.name}" is read-only, and seed writes rows. Give the connection "writable": true in ${configFileName()} — ` +
137
+ 'a database named on the command line is always read-only.', EXIT.refused);
138
+ const { adapter, schema } = await registry.open(target.id);
139
+ const me = loaded?.people;
140
+ const report = await seedDatabase(adapter, schema, {
141
+ rows,
142
+ seed: chosen,
143
+ append,
144
+ ...(loaded?.resources ? { resources: loaded.resources } : {}),
145
+ ...(me ? { people: me } : {}),
146
+ });
147
+ const total = report.tables.reduce((sum, table) => sum + table.rows, 0);
148
+ write(`Seeded ${target.name} with ${total} rows (--seed ${chosen}):`);
149
+ for (const table of report.tables)
150
+ write(` ${table.table.padEnd(24)} ${table.rows}`);
151
+ if (report.signIn.length)
152
+ write(`Sign in as ${report.signIn.join(', ')} — or any other of ${me.table}.`);
153
+ return EXIT.ok;
154
+ }
155
+ catch (error) {
156
+ if (error instanceof SeedRefusal)
157
+ return fail(error.message, EXIT.refused);
158
+ return fail(error.message);
159
+ }
160
+ finally {
161
+ console.log = log;
162
+ await registry.closeAll();
163
+ }
164
+ }
@@ -0,0 +1,26 @@
1
+ /**
2
+ * The words `tablewalk seed` picks by meaning. A schema says what it is about
3
+ * in its table and column names (appointments, patients, lab_results; orders,
4
+ * carts, SKUs), so the words are chosen from that: a domain for the whole
5
+ * database, then, inside it, the list a table or a column calls for — a
6
+ * department is Cardiology in a clinic and Grocery in a shop, a staff title is
7
+ * a Registered nurse or a Cashier, a lab test is not a "Lab order 39". A schema
8
+ * that says nothing gets neutral, plausible text rather than another domain's
9
+ * parts and faults.
10
+ */
11
+ export type DomainId = 'clinical' | 'retail' | 'logistics' | 'finance' | 'hr' | 'education' | 'property' | 'repair' | 'general';
12
+ /** The domain a schema is about: the one whose signals its table names (heavier) and column names hit most. */
13
+ export declare function detectDomain(tables: readonly string[], columns: readonly string[]): DomainId;
14
+ /**
15
+ * The named rows of a lookup table — its first n, a handful, each its own — or undefined when no list fits and the
16
+ * table is better named by its word and a number ("Ward 3").
17
+ */
18
+ export declare function lookupList(domain: DomainId, tableName: string): string[] | undefined;
19
+ /** The pool a name column draws from in a table that is not a lookup: a drug, a test, a product; undefined for no pool. */
20
+ export declare function entityNames(domain: DomainId, tableName: string): string[] | undefined;
21
+ type Meaning = 'job' | 'subject' | 'reason' | 'notes' | 'category' | 'department' | 'specialty' | 'diagnosis' | 'test' | 'procedure' | 'drug';
22
+ /** The meaning a text column's name has in this table, when a domain list answers it. */
23
+ export declare function meaningOf(column: string, tableName: string, staffLike: boolean): Meaning | undefined;
24
+ /** The list a meaning draws from, in this domain. */
25
+ export declare function wordsFor(domain: DomainId, meaning: Meaning): string[];
26
+ export {};