@mistriwork/engine 0.0.0 → 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 +16 -1
  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 +262 -3
  545. package/schema/model.d.ts +298 -0
  546. package/schema/theme.d.ts +587 -0
@@ -0,0 +1,246 @@
1
+ export const DESCRIPTION_FORMAT = 'mistri.http/1';
2
+ export function draftDescription(catalog, spec) {
3
+ return {
4
+ format: DESCRIPTION_FORMAT,
5
+ title: catalog.title,
6
+ version: catalog.version,
7
+ ...(spec ? { spec } : {}),
8
+ resources: catalog.resources,
9
+ };
10
+ }
11
+ const isObject = (value) => typeof value === 'object' && value !== null && !Array.isArray(value);
12
+ const TYPES = new Set(['string', 'integer', 'bigint', 'number', 'boolean', 'date', 'datetime', 'uuid', 'json']);
13
+ const NAME = /^[A-Za-z_][A-Za-z0-9_-]*$/;
14
+ /* Refused rather than coerced, like the connection config beside it: a
15
+ description is edited by hand, and a typo that quietly became a different
16
+ API call is the mistake worth being loud about. */
17
+ function strings(value) {
18
+ return Array.isArray(value) && value.every((each) => typeof each === 'string');
19
+ }
20
+ function readColumn(raw, at) {
21
+ if (!isObject(raw) || typeof raw.name !== 'string' || !NAME.test(raw.name))
22
+ throw new Error(`${at} needs a "name" (letters, digits, _ and -).`);
23
+ if (typeof raw.type !== 'string' || !TYPES.has(raw.type)) {
24
+ throw new Error(`${at} "${raw.name}" has "type": ${JSON.stringify(raw.type)}. Use one of ${[...TYPES].join(', ')}.`);
25
+ }
26
+ for (const flag of ['nullable', 'readOnly']) {
27
+ if (typeof raw[flag] !== 'boolean')
28
+ throw new Error(`${at} "${raw.name}" needs "${flag}": true or false, without quotes.`);
29
+ }
30
+ if (raw.allowed !== undefined && (!strings(raw.allowed) || !raw.allowed.length))
31
+ throw new Error(`${at} "${raw.name}" has "allowed" that is not a list of strings.`);
32
+ if (raw.comment !== undefined && typeof raw.comment !== 'string')
33
+ throw new Error(`${at} "${raw.name}" has a "comment" that is not text.`);
34
+ if (raw.references !== undefined && (typeof raw.references !== 'string' || !NAME.test(raw.references))) {
35
+ throw new Error(`${at} "${raw.name}" has "references" that is not a resource's name.`);
36
+ }
37
+ return {
38
+ name: raw.name,
39
+ type: raw.type,
40
+ nullable: raw.nullable,
41
+ readOnly: raw.readOnly,
42
+ ...(raw.allowed ? { allowed: raw.allowed } : {}),
43
+ ...(raw.references ? { references: raw.references } : {}),
44
+ ...(raw.comment ? { comment: raw.comment } : {}),
45
+ };
46
+ }
47
+ function readPaging(raw, at) {
48
+ if (!isObject(raw))
49
+ throw new Error(`${at} needs "paging".`);
50
+ const text = (key) => {
51
+ if (typeof raw[key] !== 'string' || !raw[key])
52
+ throw new Error(`${at} "paging" (${String(raw.kind)}) needs "${key}", the query parameter's name.`);
53
+ return raw[key];
54
+ };
55
+ switch (raw.kind) {
56
+ case 'none':
57
+ return { kind: 'none' };
58
+ case 'offset':
59
+ return { kind: 'offset', offset: text('offset'), limit: text('limit') };
60
+ case 'page':
61
+ return { kind: 'page', page: text('page'), size: text('size') };
62
+ case 'cursor': {
63
+ const next = text('next');
64
+ if (!next.startsWith('/'))
65
+ throw new Error(`${at} "paging" "next" is a JSON Pointer into the response, starting with "/".`);
66
+ return { kind: 'cursor', param: text('param'), next, ...(raw.limit === undefined ? {} : { limit: text('limit') }) };
67
+ }
68
+ default:
69
+ throw new Error(`${at} "paging" has "kind": ${JSON.stringify(raw.kind)}. Use none, offset, page or cursor.`);
70
+ }
71
+ }
72
+ function readResource(raw, at) {
73
+ if (!isObject(raw) || typeof raw.name !== 'string' || !NAME.test(raw.name))
74
+ throw new Error(`${at} needs a "name" (letters, digits, _ and -).`);
75
+ const here = `${at} "${raw.name}"`;
76
+ if (typeof raw.list !== 'string' || !raw.list.startsWith('/') || raw.list.includes('{'))
77
+ throw new Error(`${here} needs "list", a path like "/contacts".`);
78
+ if (typeof raw.key !== 'string' || !raw.key)
79
+ throw new Error(`${here} needs "key", the column its item path names.`);
80
+ if (raw.item !== `${raw.list}/{${raw.key}}`)
81
+ throw new Error(`${here} needs "item": "${raw.list}/{${raw.key}}", the list path and its key.`);
82
+ if (typeof raw.rows !== 'string' || (raw.rows !== '' && !raw.rows.startsWith('/')))
83
+ throw new Error(`${here} has "rows" that is not a JSON Pointer ("" or starting with "/").`);
84
+ if (!Array.isArray(raw.columns) || !raw.columns.length)
85
+ throw new Error(`${here} needs "columns".`);
86
+ const columns = raw.columns.map((column, index) => readColumn(column, `${here} column ${index + 1}`));
87
+ const names = new Set();
88
+ for (const column of columns) {
89
+ if (names.has(column.name))
90
+ throw new Error(`${here} has two columns called "${column.name}".`);
91
+ names.add(column.name);
92
+ }
93
+ const key = columns.find((column) => column.name === raw.key);
94
+ if (!key)
95
+ throw new Error(`${here} has "key": "${raw.key}", which is not one of its columns.`);
96
+ if (key.nullable || key.type === 'json')
97
+ throw new Error(`${here}: the key "${raw.key}" must be a value that is never null.`);
98
+ const filters = {};
99
+ if (raw.filters !== undefined) {
100
+ if (!isObject(raw.filters))
101
+ throw new Error(`${here} has "filters" that is not an object of column → parameter.`);
102
+ for (const [name, filter] of Object.entries(raw.filters)) {
103
+ const column = columns.find((each) => each.name === name);
104
+ if (!column || column.type === 'json')
105
+ throw new Error(`${here} filters "${name}", which is not a column that can be filtered.`);
106
+ if (!isObject(filter) || typeof filter.param !== 'string' || !filter.param)
107
+ throw new Error(`${here} filter "${name}" needs "param".`);
108
+ if (!strings(filter.ops) || !filter.ops.length || filter.ops.some((op) => op !== '=' && op !== 'in') || !filter.ops.includes('=')) {
109
+ throw new Error(`${here} filter "${name}" has "ops" other than ["="] or ["=", "in"].`);
110
+ }
111
+ if (filter.serialization !== undefined && filter.serialization !== 'csv')
112
+ throw new Error(`${here} filter "${name}" has unsupported serialization.`);
113
+ filters[name] = {
114
+ param: filter.param,
115
+ ops: [...new Set(filter.ops)],
116
+ ...(filter.serialization === 'csv' ? { serialization: 'csv' } : {}),
117
+ };
118
+ }
119
+ }
120
+ if (raw.search !== undefined && (typeof raw.search !== 'string' || !raw.search))
121
+ throw new Error(`${here} has "search" that is not a parameter name.`);
122
+ let sort;
123
+ if (raw.sort !== undefined) {
124
+ if (!isObject(raw.sort) || typeof raw.sort.param !== 'string' || !strings(raw.sort.values) || !raw.sort.values.length) {
125
+ throw new Error(`${here} has "sort" without a "param" and its documented "values".`);
126
+ }
127
+ sort = { param: raw.sort.param, values: raw.sort.values };
128
+ }
129
+ if (raw.guesses !== undefined && !strings(raw.guesses))
130
+ throw new Error(`${here} has "guesses" that is not a list of notes.`);
131
+ if (raw.comment !== undefined && typeof raw.comment !== 'string')
132
+ throw new Error(`${here} has a "comment" that is not text.`);
133
+ return {
134
+ name: raw.name,
135
+ list: raw.list,
136
+ item: raw.item,
137
+ key: raw.key,
138
+ rows: raw.rows,
139
+ columns,
140
+ filters,
141
+ ...(raw.search ? { search: raw.search } : {}),
142
+ ...(sort ? { sort } : {}),
143
+ paging: readPaging(raw.paging, here),
144
+ guesses: raw.guesses ?? [],
145
+ ...(raw.comment ? { comment: raw.comment } : {}),
146
+ };
147
+ }
148
+ /** A description as written in a file, checked field by field; `where` names the file in every message. */
149
+ export function readDescription(raw, where) {
150
+ if (!isObject(raw))
151
+ throw new Error(`${where} is not a JSON object.`);
152
+ if (raw.format !== DESCRIPTION_FORMAT) {
153
+ throw new Error(`${where} has "format": ${JSON.stringify(raw.format)}; this build reads "${DESCRIPTION_FORMAT}". Draft one with --from-openapi.`);
154
+ }
155
+ if (!Array.isArray(raw.resources) || !raw.resources.length)
156
+ throw new Error(`${where} describes no "resources".`);
157
+ const resources = raw.resources.map((resource, index) => readResource(resource, `${where}: resource ${index + 1}`));
158
+ const names = new Set();
159
+ for (const resource of resources) {
160
+ if (names.has(resource.name))
161
+ throw new Error(`${where} describes two resources called "${resource.name}".`);
162
+ names.add(resource.name);
163
+ }
164
+ // A reference is followed by reading the target's item, so the target has to be here to read.
165
+ for (const resource of resources) {
166
+ for (const column of resource.columns) {
167
+ if (column.references && !names.has(column.references)) {
168
+ throw new Error(`${where}: "${resource.name}" column "${column.name}" references "${column.references}", which is not a resource in this description.`);
169
+ }
170
+ if (column.references && column.name === resource.key)
171
+ throw new Error(`${where}: "${resource.name}"'s key "${column.name}" cannot reference another resource.`);
172
+ }
173
+ }
174
+ let spec;
175
+ if (raw.spec !== undefined) {
176
+ if (!isObject(raw.spec) ||
177
+ typeof raw.spec.file !== 'string' ||
178
+ typeof raw.spec.sha256 !== 'string' ||
179
+ !/^[0-9a-f]{64}$/.test(raw.spec.sha256)) {
180
+ throw new Error(`${where} has "spec" without its "file" and a 64-character "sha256".`);
181
+ }
182
+ spec = { file: raw.spec.file, sha256: raw.spec.sha256 };
183
+ }
184
+ return {
185
+ format: DESCRIPTION_FORMAT,
186
+ title: typeof raw.title === 'string' ? raw.title : '',
187
+ version: typeof raw.version === 'string' ? raw.version : '',
188
+ ...(spec ? { spec } : {}),
189
+ resources,
190
+ };
191
+ }
192
+ /* The catalog words said as the type strings the rest of tablewalk already
193
+ reads — a grid right-aligns `numeric`, a record formats `timestamp`, and a
194
+ `json` value is laid out by its shape — so an API's row is drawn exactly
195
+ as a database's would be. */
196
+ const SQL_TYPE = {
197
+ string: 'text',
198
+ integer: 'integer',
199
+ bigint: 'bigint',
200
+ number: 'numeric',
201
+ boolean: 'boolean',
202
+ date: 'date',
203
+ datetime: 'timestamp',
204
+ uuid: 'uuid',
205
+ json: 'json',
206
+ };
207
+ /** The description as the catalog every App, grant, type export and scaffold already reads. */
208
+ export function describedSchema(description, label, readAt = new Date()) {
209
+ const keyOf = new Map(description.resources.map((resource) => [resource.name, resource.key]));
210
+ /* A reference is a foreign key to everything that reads the catalog: related
211
+ lists, label paths, the diagram. The adapter answers a path through one by
212
+ reading the target's items (httpAdapter.ts). */
213
+ const foreignKeys = description.resources.flatMap((resource) => resource.columns
214
+ .filter((column) => column.references && keyOf.has(column.references))
215
+ .map((column) => ({
216
+ name: `${resource.name}_${column.name}`,
217
+ from: { table: resource.name, columns: [column.name] },
218
+ to: { table: column.references, columns: [keyOf.get(column.references)] },
219
+ })));
220
+ const tables = description.resources.map((resource) => ({
221
+ name: resource.name,
222
+ schema: '',
223
+ id: resource.name,
224
+ isView: false,
225
+ columns: resource.columns.map((column) => ({
226
+ name: column.name,
227
+ type: SQL_TYPE[column.type],
228
+ nullable: column.nullable,
229
+ primaryKey: column.name === resource.key,
230
+ ...(column.allowed ? { allowed: column.allowed } : {}),
231
+ ...(column.comment ? { comment: column.comment } : {}),
232
+ ...(column.references && keyOf.has(column.references)
233
+ ? { references: { table: column.references, column: keyOf.get(column.references) } }
234
+ : {}),
235
+ })),
236
+ ...(resource.comment ? { comment: resource.comment } : {}),
237
+ // What the API documents a filter for; the explorer offers boxes for these alone.
238
+ filterable: Object.keys(resource.filters),
239
+ // The columns its documented sort values name ("-shipped_at" sorts by shipped_at), in the spellings the adapter reads.
240
+ sortable: [
241
+ ...new Set((resource.sort?.values ?? []).map((value) => value.replace(/^[-+]/, '').replace(/(?::| |_)(?:asc|desc)$/, ''))),
242
+ ].filter((name) => resource.columns.some((column) => column.name === name)),
243
+ countable: false,
244
+ }));
245
+ return { label, dialect: 'http', tables, foreignKeys, readAt: readAt.toISOString() };
246
+ }
@@ -0,0 +1,98 @@
1
+ /**
2
+ * An OpenAPI document read as a catalog of browsable resources.
3
+ *
4
+ * A resource is a collection an API lists (`GET /contacts`) together with the
5
+ * item it reads by key (`GET /contacts/{id}`), when both answer the same kind
6
+ * of row. For each one this says the columns a row carries and what the API
7
+ * can do with a list — filter, search, sort, page — as data, so tablewalk
8
+ * asks the API only what it can answer and refuses the rest by name.
9
+ *
10
+ * Pure: a parsed JSON document in, a catalog out. The spec is pinned locally
11
+ * and read at startup, as a database's catalog is read on connect, so there
12
+ * is no network here, no remote `$ref` and no YAML. Nothing outside the
13
+ * supported subset is guessed at: its operation is skipped with the reason,
14
+ * which `--check-openapi` prints. Paging is the one inference, and every
15
+ * inferred setting is listed under `guesses` for the author to confirm.
16
+ */
17
+ /** What a column holds, in the catalog's words. `bigint` stays text, so a value past 2^53 keeps every digit. */
18
+ export type HttpColumnType = 'string' | 'integer' | 'bigint' | 'number' | 'boolean' | 'date' | 'datetime' | 'uuid' | 'json';
19
+ export interface HttpColumn {
20
+ name: string;
21
+ type: HttpColumnType;
22
+ /** Null or absent in a row: a property the schema does not require may be missing, and missing reads as null. */
23
+ nullable: boolean;
24
+ /** The API says so (`readOnly`), or the value is a nested document, which no editor offers. */
25
+ readOnly: boolean;
26
+ /** An `enum`: the values the API documents, not a promise that nothing else arrives. */
27
+ allowed?: string[];
28
+ /** The resource whose key this column holds; guessed from the name (`carrier_id` → `carriers`), for the author to confirm. */
29
+ references?: string;
30
+ comment?: string;
31
+ }
32
+ /** A list filter the API takes: one query parameter per column, `=` always, `in` when it takes a list. */
33
+ export interface HttpFilter {
34
+ param: string;
35
+ ops: Array<'=' | 'in'>;
36
+ serialization?: 'csv';
37
+ }
38
+ export type HttpPaging = {
39
+ kind: 'offset';
40
+ offset: string;
41
+ limit: string;
42
+ } | {
43
+ kind: 'page';
44
+ page: string;
45
+ size: string;
46
+ } | {
47
+ kind: 'cursor';
48
+ param: string;
49
+ next: string;
50
+ limit?: string;
51
+ } | {
52
+ kind: 'none';
53
+ };
54
+ export interface HttpResource {
55
+ /** The collection's own word (`contacts`), used as the table's name. */
56
+ name: string;
57
+ /** The list and item paths, as the document writes them. */
58
+ list: string;
59
+ item: string;
60
+ /** The column the item's path parameter names. */
61
+ key: string;
62
+ /** JSON Pointer (RFC 6901) to the rows in a list response; '' when the response is the array itself. */
63
+ rows: string;
64
+ columns: HttpColumn[];
65
+ filters: Record<string, HttpFilter>;
66
+ search?: string;
67
+ /** A sort the API takes only by the values it documents. */
68
+ sort?: {
69
+ param: string;
70
+ values: string[];
71
+ };
72
+ paging: HttpPaging;
73
+ /** Settings inferred rather than read, for the author to confirm. */
74
+ guesses: string[];
75
+ comment?: string;
76
+ }
77
+ /** An operation outside the supported subset, and why. */
78
+ export interface HttpSkip {
79
+ operation: string;
80
+ reason: string;
81
+ }
82
+ export interface HttpCatalog {
83
+ title: string;
84
+ version: string;
85
+ resources: HttpResource[];
86
+ skipped: HttpSkip[];
87
+ }
88
+ /** The whole document is outside what tablewalk reads; the message names the fix. */
89
+ export declare class OpenApiError extends Error {
90
+ readonly code = "openapi_unsupported";
91
+ constructor(message: string);
92
+ }
93
+ /**
94
+ * Reads a parsed OpenAPI 3.0 or 3.1 document. Throws `OpenApiError` only for
95
+ * a document tablewalk cannot read at all; everything else becomes either a
96
+ * resource or a skipped operation with its reason.
97
+ */
98
+ export declare function readOpenApi(document: unknown): HttpCatalog;