@primate/core 0.4.5 → 0.5.0

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 (412) hide show
  1. package/lib/private/App.d.ts +531 -3
  2. package/lib/private/App.js +8 -3
  3. package/lib/private/Binder.d.ts +2 -2
  4. package/lib/private/Flags.d.ts +3 -3
  5. package/lib/private/Module.d.ts +5 -5
  6. package/lib/private/app/Facade.d.ts +566 -0
  7. package/lib/private/app/Facade.js +33 -0
  8. package/lib/private/asset/Asset.d.ts +1 -1
  9. package/lib/private/backend/Module.d.ts +1 -1
  10. package/lib/private/backend/Module.js +2 -5
  11. package/lib/private/backend/TAG.d.ts +1 -1
  12. package/lib/private/backend/TAG.js +1 -1
  13. package/lib/private/build/App.d.ts +2 -2
  14. package/lib/private/build/App.js +0 -2
  15. package/lib/private/build/client/index.js +12 -7
  16. package/lib/private/build/hook.js +4 -3
  17. package/lib/private/build/index.js +14 -13
  18. package/lib/private/build/presets.d.ts +10 -0
  19. package/lib/private/build/presets.js +39 -0
  20. package/lib/private/build/server/index.js +5 -7
  21. package/lib/private/build/server/plugin/assets.js +9 -7
  22. package/lib/private/build/server/plugin/config.js +11 -4
  23. package/lib/private/build/server/plugin/db-default.d.ts +4 -0
  24. package/lib/private/build/server/plugin/db-default.js +45 -0
  25. package/lib/private/build/server/plugin/frontend.js +4 -2
  26. package/lib/private/build/server/plugin/live-reload.d.ts +4 -0
  27. package/lib/private/build/server/plugin/{hot-reload.js → live-reload.js} +4 -4
  28. package/lib/private/build/server/plugin/native-addons.js +6 -4
  29. package/lib/private/build/server/plugin/node-imports.js +2 -2
  30. package/lib/private/build/server/plugin/route.js +2 -2
  31. package/lib/private/build/server/plugin/store-wrap.js +2 -2
  32. package/lib/private/build/server/plugin/store.js +6 -6
  33. package/lib/private/build/server/plugin/stores.js +4 -5
  34. package/lib/private/build/server/plugin/view.js +4 -4
  35. package/lib/private/build/server/plugin/views.js +4 -4
  36. package/lib/private/build/server/plugin/virtual-pages.js +8 -8
  37. package/lib/private/build/server/plugin/virtual-routes.js +8 -13
  38. package/lib/private/build/server/plugin/wasm.js +2 -3
  39. package/lib/private/bye.js +2 -3
  40. package/lib/private/client/Data.d.ts +1 -1
  41. package/lib/private/client/ValidateInit.d.ts +1 -3
  42. package/lib/private/client/ValidationError.d.ts +1 -1
  43. package/lib/private/client/app.js +2 -1
  44. package/lib/private/client/create-form.d.ts +31 -0
  45. package/lib/private/client/create-form.js +124 -0
  46. package/lib/private/client/extract-issues.d.ts +4 -0
  47. package/lib/private/client/extract-issues.js +20 -0
  48. package/lib/private/client/spa/index.d.ts +1 -1
  49. package/lib/private/client/spa/index.js +4 -5
  50. package/lib/private/client/{toValidated.d.ts → to-validated.d.ts} +2 -4
  51. package/lib/private/client/{toValidated.js → to-validated.js} +1 -1
  52. package/lib/private/client/validate-field.d.ts +3 -0
  53. package/lib/private/client/validate-field.js +41 -0
  54. package/lib/private/config/index.d.ts +2 -21
  55. package/lib/private/config/index.js +3 -1
  56. package/lib/private/config/schema.d.ts +13 -9
  57. package/lib/private/config/schema.js +10 -5
  58. package/lib/private/cookie.d.ts +5 -5
  59. package/lib/private/cookie.js +10 -14
  60. package/lib/private/db/As.d.ts +10 -0
  61. package/lib/private/db/DB.d.ts +33 -0
  62. package/lib/private/db/DB.js +2 -0
  63. package/lib/private/db/DataDict.d.ts +5 -0
  64. package/lib/private/db/DataKey.d.ts +4 -0
  65. package/lib/private/db/DataValue.d.ts +17 -0
  66. package/lib/private/db/MemoryDB.d.ts +35 -0
  67. package/lib/private/db/MemoryDB.js +317 -0
  68. package/lib/private/db/PK.d.ts +3 -0
  69. package/lib/private/db/PK.js +2 -0
  70. package/lib/private/{database → db}/Query.d.ts +2 -2
  71. package/lib/private/{database → db}/QueryBuilder.d.ts +2 -3
  72. package/lib/private/db/ReadArgs.d.ts +9 -0
  73. package/lib/private/db/ReadArgs.js +2 -0
  74. package/lib/private/db/ReadRelationsArgs.d.ts +6 -0
  75. package/lib/private/db/ReadRelationsArgs.js +2 -0
  76. package/lib/private/{database → db}/Schema.d.ts +1 -2
  77. package/lib/private/db/Sort.d.ts +4 -0
  78. package/lib/private/{database → db}/TypeMap.d.ts +2 -3
  79. package/lib/private/{database → db}/Types.d.ts +1 -1
  80. package/lib/private/db/With.d.ts +16 -0
  81. package/lib/private/db/With.js +2 -0
  82. package/lib/private/db/common.d.ts +18 -0
  83. package/lib/private/db/common.js +36 -0
  84. package/lib/private/db/error.d.ts +81 -0
  85. package/lib/private/db/error.js +199 -0
  86. package/lib/private/db/sql.d.ts +28 -0
  87. package/lib/private/db/sql.js +177 -0
  88. package/lib/private/db/storage.d.ts +3 -0
  89. package/lib/private/db/storage.js +3 -0
  90. package/lib/private/db/symbol/wrap.js +2 -0
  91. package/lib/private/db/symbol.js +2 -0
  92. package/lib/private/db/test.d.ts +4 -0
  93. package/lib/private/db/test.js +1384 -0
  94. package/lib/private/frontend/Module.d.ts +6 -6
  95. package/lib/private/frontend/Module.js +28 -23
  96. package/lib/private/frontend/Render.d.ts +1 -2
  97. package/lib/private/frontend/ServerData.d.ts +1 -1
  98. package/lib/private/frontend/ServerView.d.ts +1 -2
  99. package/lib/private/frontend/View.d.ts +1 -1
  100. package/lib/private/frontend/ViewOptions.d.ts +1 -1
  101. package/lib/private/frontend/ViewResponse.d.ts +1 -1
  102. package/lib/private/hash.js +0 -1
  103. package/lib/private/i18n/Catalog.d.ts +5 -2
  104. package/lib/private/i18n/Formatter.js +20 -8
  105. package/lib/private/i18n/Module.d.ts +3 -3
  106. package/lib/private/i18n/Module.js +28 -17
  107. package/lib/private/i18n/format.d.ts +4 -0
  108. package/lib/private/i18n/format.js +95 -0
  109. package/lib/private/i18n/index/client.d.ts +9 -0
  110. package/lib/private/i18n/index/client.js +152 -0
  111. package/lib/private/i18n/index/server.d.ts +9 -0
  112. package/lib/private/i18n/index/server.js +57 -0
  113. package/lib/private/i18n/index/types.d.ts +33 -0
  114. package/lib/private/i18n/index/types.js +2 -0
  115. package/lib/private/i18n/locale.d.ts +9 -3
  116. package/lib/private/i18n/ordinals.d.ts +1 -1
  117. package/lib/private/i18n/resolve.d.ts +7 -0
  118. package/lib/private/i18n/resolve.js +30 -0
  119. package/lib/private/i18n/schema.d.ts +4 -4
  120. package/lib/private/i18n/schema.js +6 -10
  121. package/lib/private/i18n/storage.d.ts +3 -0
  122. package/lib/private/i18n/storage.js +5 -0
  123. package/lib/private/i18n/validate.d.ts +2 -0
  124. package/lib/private/i18n/validate.js +21 -0
  125. package/lib/private/log.d.ts +1 -0
  126. package/lib/private/log.js +10 -10
  127. package/lib/private/module/Hook.d.ts +1 -1
  128. package/lib/private/module/Next.d.ts +1 -1
  129. package/lib/private/orm/ForeignKey.d.ts +11 -0
  130. package/lib/private/orm/ForeignKey.js +22 -0
  131. package/lib/private/orm/PrimaryKey.d.ts +15 -0
  132. package/lib/private/orm/PrimaryKey.js +35 -0
  133. package/lib/private/orm/Set.d.ts +11 -0
  134. package/lib/private/orm/Set.js +2 -0
  135. package/lib/private/orm/Store.d.ts +171 -0
  136. package/lib/private/orm/Store.js +518 -0
  137. package/lib/private/orm/foreign.d.ts +4 -0
  138. package/lib/private/orm/foreign.js +5 -0
  139. package/lib/private/orm/key.d.ts +8 -0
  140. package/lib/private/orm/key.js +4 -0
  141. package/lib/private/orm/parse.d.ts +12 -0
  142. package/lib/private/orm/parse.js +29 -0
  143. package/lib/private/orm/primary.d.ts +5 -0
  144. package/lib/private/orm/primary.js +5 -0
  145. package/lib/private/orm/relation.d.ts +43 -0
  146. package/lib/private/orm/relation.js +26 -0
  147. package/lib/private/orm/types.d.ts +18 -0
  148. package/lib/private/orm/types.js +2 -0
  149. package/lib/private/orm/wrap.d.ts +5 -0
  150. package/lib/private/orm/wrap.js +5 -0
  151. package/lib/private/paths.d.ts +2 -2
  152. package/lib/private/request/RequestBag.d.ts +1 -1
  153. package/lib/private/request/RequestBag.js +11 -7
  154. package/lib/private/request/RequestBody.d.ts +2 -4
  155. package/lib/private/request/RequestBody.js +8 -11
  156. package/lib/private/request/RequestContext.d.ts +12 -0
  157. package/lib/private/request/RequestContext.js +31 -0
  158. package/lib/private/request/RequestFacade.d.ts +16 -6
  159. package/lib/private/request/parse.d.ts +2 -2
  160. package/lib/private/request/parse.js +54 -16
  161. package/lib/private/request/route.js +37 -21
  162. package/lib/private/request/router.d.ts +1 -1
  163. package/lib/private/request/router.js +2 -2
  164. package/lib/private/request/sContext.d.ts +3 -0
  165. package/lib/private/request/sContext.js +2 -0
  166. package/lib/private/response/ResponseFunction.d.ts +1 -2
  167. package/lib/private/response/ResponseLike.d.ts +1 -1
  168. package/lib/private/response/binary.d.ts +1 -1
  169. package/lib/private/response/binary.js +4 -3
  170. package/lib/private/response/json.d.ts +1 -1
  171. package/lib/private/response/json.js +2 -2
  172. package/lib/private/response/redirect.js +1 -1
  173. package/lib/private/response/respond.js +7 -10
  174. package/lib/private/response/sse.d.ts +1 -1
  175. package/lib/private/response/sse.js +2 -2
  176. package/lib/private/response/text.d.ts +1 -1
  177. package/lib/private/response/text.js +3 -3
  178. package/lib/private/response/view.d.ts +2 -2
  179. package/lib/private/response/view.js +3 -3
  180. package/lib/private/response.d.ts +1 -1
  181. package/lib/private/route/Handler.d.ts +1 -1
  182. package/lib/private/route/hook.d.ts +6 -0
  183. package/lib/private/route/hook.js +5 -0
  184. package/lib/private/route/router.d.ts +9 -5
  185. package/lib/private/route/router.js +34 -17
  186. package/lib/private/route/wrap.js +2 -2
  187. package/lib/private/serve/App.d.ts +5 -18
  188. package/lib/private/serve/App.js +91 -82
  189. package/lib/private/serve/Init.d.ts +3 -3
  190. package/lib/private/serve/hook.js +1 -7
  191. package/lib/private/serve/index.js +6 -2
  192. package/lib/private/serve/module/Dev.d.ts +1 -1
  193. package/lib/private/serve/module/Dev.js +9 -5
  194. package/lib/private/serve/module/Handle.js +2 -2
  195. package/lib/private/session/Data.d.ts +1 -2
  196. package/lib/private/session/SessionHandle.d.ts +1 -1
  197. package/lib/private/session/SessionHandle.js +10 -9
  198. package/lib/private/session/SessionModule.js +7 -7
  199. package/lib/private/session/index.d.ts +3 -4
  200. package/lib/private/session/schema.d.ts +6 -6
  201. package/lib/private/session/schema.js +5 -4
  202. package/lib/private/session/storage.d.ts +1 -2
  203. package/lib/private/session/storage.js +2 -2
  204. package/lib/private/tags.js +2 -2
  205. package/lib/private/target/Target.d.ts +1 -1
  206. package/lib/public/AppFacade.d.ts +2 -0
  207. package/lib/public/AppFacade.js +2 -0
  208. package/lib/public/build/presets.d.ts +2 -0
  209. package/lib/public/build/presets.js +2 -0
  210. package/lib/public/build/transform.d.ts +2 -0
  211. package/lib/public/build/transform.js +2 -0
  212. package/lib/public/client.d.ts +14 -0
  213. package/lib/public/client.js +10 -0
  214. package/lib/public/db/MemoryDB.d.ts +2 -0
  215. package/lib/public/db/MemoryDB.js +2 -0
  216. package/lib/public/db/error.d.ts +2 -0
  217. package/lib/public/db/error.js +2 -0
  218. package/lib/public/db/sql.d.ts +2 -0
  219. package/lib/public/db/sql.js +2 -0
  220. package/lib/public/db/test.d.ts +2 -0
  221. package/lib/public/db/test.js +2 -0
  222. package/lib/public/db.d.ts +12 -0
  223. package/lib/public/db.js +2 -0
  224. package/lib/public/orm/Store.d.ts +2 -0
  225. package/lib/public/orm/Store.js +2 -0
  226. package/lib/public/orm/key.d.ts +2 -0
  227. package/lib/public/orm/key.js +2 -0
  228. package/lib/public/orm/relation.d.ts +2 -0
  229. package/lib/public/orm/relation.js +2 -0
  230. package/lib/public/orm/wrap.d.ts +2 -0
  231. package/lib/public/orm/wrap.js +2 -0
  232. package/lib/public/request.d.ts +4 -0
  233. package/lib/public/request.js +2 -0
  234. package/lib/public/response.d.ts +22 -0
  235. package/lib/public/response.js +19 -0
  236. package/lib/public/route/hook.d.ts +2 -0
  237. package/lib/public/route/hook.js +2 -0
  238. package/package.json +28 -23
  239. package/lib/private/build/client/reload.d.ts +0 -7
  240. package/lib/private/build/client/reload.js +0 -6
  241. package/lib/private/build/server/plugin/database-default.d.ts +0 -4
  242. package/lib/private/build/server/plugin/database-default.js +0 -48
  243. package/lib/private/build/server/plugin/hot-reload.d.ts +0 -4
  244. package/lib/private/client/validate.d.ts +0 -3
  245. package/lib/private/client/validate.js +0 -54
  246. package/lib/private/database/As.d.ts +0 -7
  247. package/lib/private/database/Binds.d.ts +0 -4
  248. package/lib/private/database/Binds.js +0 -2
  249. package/lib/private/database/Changes.d.ts +0 -11
  250. package/lib/private/database/Changes.js +0 -2
  251. package/lib/private/database/ColumnTypes.d.ts +0 -11
  252. package/lib/private/database/ColumnTypes.js +0 -2
  253. package/lib/private/database/DataDict.d.ts +0 -5
  254. package/lib/private/database/DataKey.d.ts +0 -4
  255. package/lib/private/database/DataValue.d.ts +0 -5
  256. package/lib/private/database/Database.d.ts +0 -56
  257. package/lib/private/database/Database.js +0 -153
  258. package/lib/private/database/InMemoryDatabase.d.ts +0 -37
  259. package/lib/private/database/InMemoryDatabase.js +0 -181
  260. package/lib/private/database/Sort.d.ts +0 -4
  261. package/lib/private/database/Store.d.ts +0 -172
  262. package/lib/private/database/Store.js +0 -261
  263. package/lib/private/database/storage.d.ts +0 -4
  264. package/lib/private/database/storage.js +0 -3
  265. package/lib/private/database/symbol/wrap.js +0 -2
  266. package/lib/private/database/symbol.js +0 -2
  267. package/lib/private/database/test.d.ts +0 -4
  268. package/lib/private/database/test.js +0 -678
  269. package/lib/private/database/wrap.d.ts +0 -5
  270. package/lib/private/database/wrap.js +0 -5
  271. package/lib/private/i18n/index.d.ts +0 -28
  272. package/lib/private/i18n/index.js +0 -236
  273. package/lib/private/route/guard.d.ts +0 -4
  274. package/lib/private/route/guard.js +0 -22
  275. package/lib/private/wasm/API.d.ts +0 -7
  276. package/lib/private/wasm/API.js +0 -2
  277. package/lib/private/wasm/BufferViewSource.d.ts +0 -4
  278. package/lib/private/wasm/BufferViewSource.js +0 -2
  279. package/lib/private/wasm/Exports.d.ts +0 -23
  280. package/lib/private/wasm/Exports.js +0 -2
  281. package/lib/private/wasm/I32.d.ts +0 -5
  282. package/lib/private/wasm/I32.js +0 -2
  283. package/lib/private/wasm/I32_SIZE.d.ts +0 -3
  284. package/lib/private/wasm/I32_SIZE.js +0 -2
  285. package/lib/private/wasm/Instantiation.d.ts +0 -12
  286. package/lib/private/wasm/Instantiation.js +0 -2
  287. package/lib/private/wasm/Tagged.d.ts +0 -7
  288. package/lib/private/wasm/Tagged.js +0 -2
  289. package/lib/private/wasm/buffersize.d.ts +0 -2
  290. package/lib/private/wasm/buffersize.js +0 -5
  291. package/lib/private/wasm/decode-bytes.d.ts +0 -3
  292. package/lib/private/wasm/decode-bytes.js +0 -5
  293. package/lib/private/wasm/decode-json.d.ts +0 -7
  294. package/lib/private/wasm/decode-json.js +0 -11
  295. package/lib/private/wasm/decode-option.d.ts +0 -5
  296. package/lib/private/wasm/decode-option.js +0 -10
  297. package/lib/private/wasm/decode-response.d.ts +0 -19
  298. package/lib/private/wasm/decode-response.js +0 -90
  299. package/lib/private/wasm/decode-string.d.ts +0 -3
  300. package/lib/private/wasm/decode-string.js +0 -5
  301. package/lib/private/wasm/decode-websocket-close.d.ts +0 -5
  302. package/lib/private/wasm/decode-websocket-close.js +0 -6
  303. package/lib/private/wasm/decode-websocket-send.d.ts +0 -6
  304. package/lib/private/wasm/decode-websocket-send.js +0 -19
  305. package/lib/private/wasm/encode-buffer.d.ts +0 -3
  306. package/lib/private/wasm/encode-buffer.js +0 -6
  307. package/lib/private/wasm/encode-request.d.ts +0 -9
  308. package/lib/private/wasm/encode-request.js +0 -195
  309. package/lib/private/wasm/encode-session.d.ts +0 -3
  310. package/lib/private/wasm/encode-session.js +0 -25
  311. package/lib/private/wasm/encode-string-map.d.ts +0 -5
  312. package/lib/private/wasm/encode-string-map.js +0 -14
  313. package/lib/private/wasm/encode-string.d.ts +0 -13
  314. package/lib/private/wasm/encode-string.js +0 -17
  315. package/lib/private/wasm/encode-url.d.ts +0 -11
  316. package/lib/private/wasm/encode-url.js +0 -14
  317. package/lib/private/wasm/encode-websocket-close.d.ts +0 -2
  318. package/lib/private/wasm/encode-websocket-close.js +0 -7
  319. package/lib/private/wasm/encode-websocket-message.d.ts +0 -4
  320. package/lib/private/wasm/encode-websocket-message.js +0 -30
  321. package/lib/private/wasm/encode-websocket-open.d.ts +0 -2
  322. package/lib/private/wasm/encode-websocket-open.js +0 -7
  323. package/lib/private/wasm/filesize.d.ts +0 -2
  324. package/lib/private/wasm/filesize.js +0 -8
  325. package/lib/private/wasm/instantiate.d.ts +0 -37
  326. package/lib/private/wasm/instantiate.js +0 -408
  327. package/lib/private/wasm/open-websocket.d.ts +0 -4
  328. package/lib/private/wasm/open-websocket.js +0 -26
  329. package/lib/private/wasm/stringsize.d.ts +0 -3
  330. package/lib/private/wasm/stringsize.js +0 -5
  331. package/lib/private/wasm/urlsize.d.ts +0 -2
  332. package/lib/private/wasm/urlsize.js +0 -5
  333. package/lib/public/Database.d.ts +0 -2
  334. package/lib/public/Database.js +0 -2
  335. package/lib/public/client/ValidateInit.d.ts +0 -2
  336. package/lib/public/client/ValidateInit.js +0 -2
  337. package/lib/public/client/ValidateUpdater.d.ts +0 -2
  338. package/lib/public/client/ValidateUpdater.js +0 -2
  339. package/lib/public/client/ValidationError.d.ts +0 -2
  340. package/lib/public/client/ValidationError.js +0 -2
  341. package/lib/public/client/toValidated.d.ts +0 -2
  342. package/lib/public/client/toValidated.js +0 -2
  343. package/lib/public/client/validate.d.ts +0 -2
  344. package/lib/public/client/validate.js +0 -2
  345. package/lib/public/database/As.d.ts +0 -2
  346. package/lib/public/database/As.js +0 -2
  347. package/lib/public/database/DataDict.d.ts +0 -2
  348. package/lib/public/database/DataDict.js +0 -2
  349. package/lib/public/database/InMemoryDatabase.d.ts +0 -2
  350. package/lib/public/database/InMemoryDatabase.js +0 -2
  351. package/lib/public/database/Sort.d.ts +0 -2
  352. package/lib/public/database/Sort.js +0 -2
  353. package/lib/public/database/Store.d.ts +0 -2
  354. package/lib/public/database/Store.js +0 -2
  355. package/lib/public/database/TypeMap.d.ts +0 -2
  356. package/lib/public/database/TypeMap.js +0 -2
  357. package/lib/public/database/Types.d.ts +0 -2
  358. package/lib/public/database/Types.js +0 -2
  359. package/lib/public/database/test.d.ts +0 -2
  360. package/lib/public/database/test.js +0 -2
  361. package/lib/public/database/wrap.d.ts +0 -2
  362. package/lib/public/database/wrap.js +0 -2
  363. package/lib/public/request/RequestBody.d.ts +0 -2
  364. package/lib/public/request/RequestBody.js +0 -2
  365. package/lib/public/request/RequestFacade.d.ts +0 -2
  366. package/lib/public/request/RequestFacade.js +0 -2
  367. package/lib/public/request/Verb.d.ts +0 -2
  368. package/lib/public/request/Verb.js +0 -2
  369. package/lib/public/response/ResponseFunction.d.ts +0 -2
  370. package/lib/public/response/ResponseFunction.js +0 -2
  371. package/lib/public/response/ResponseLike.d.ts +0 -2
  372. package/lib/public/response/ResponseLike.js +0 -2
  373. package/lib/public/response/binary.d.ts +0 -2
  374. package/lib/public/response/binary.js +0 -2
  375. package/lib/public/response/error.d.ts +0 -2
  376. package/lib/public/response/error.js +0 -2
  377. package/lib/public/response/json.d.ts +0 -2
  378. package/lib/public/response/json.js +0 -2
  379. package/lib/public/response/redirect.d.ts +0 -2
  380. package/lib/public/response/redirect.js +0 -2
  381. package/lib/public/response/sse.d.ts +0 -2
  382. package/lib/public/response/sse.js +0 -2
  383. package/lib/public/response/text.d.ts +0 -2
  384. package/lib/public/response/text.js +0 -2
  385. package/lib/public/response/view.d.ts +0 -2
  386. package/lib/public/response/view.js +0 -2
  387. package/lib/public/response/ws.d.ts +0 -2
  388. package/lib/public/response/ws.js +0 -2
  389. package/lib/public/wasm/decode-json.d.ts +0 -5
  390. package/lib/public/wasm/decode-json.js +0 -3
  391. package/lib/public/wasm/decode-response.d.ts +0 -3
  392. package/lib/public/wasm/decode-response.js +0 -3
  393. package/lib/public/wasm/encode-request.d.ts +0 -3
  394. package/lib/public/wasm/encode-request.js +0 -3
  395. package/lib/public/wasm/encode-session.d.ts +0 -3
  396. package/lib/public/wasm/encode-session.js +0 -3
  397. package/lib/public/wasm/instantiate.d.ts +0 -4
  398. package/lib/public/wasm/instantiate.js +0 -3
  399. /package/lib/private/{database → db}/As.js +0 -0
  400. /package/lib/private/{database → db}/DataDict.js +0 -0
  401. /package/lib/private/{database → db}/DataKey.js +0 -0
  402. /package/lib/private/{database → db}/DataValue.js +0 -0
  403. /package/lib/private/{database → db}/Query.js +0 -0
  404. /package/lib/private/{database → db}/QueryBuilder.js +0 -0
  405. /package/lib/private/{database → db}/Schema.js +0 -0
  406. /package/lib/private/{database → db}/Sort.js +0 -0
  407. /package/lib/private/{database → db}/TypeMap.js +0 -0
  408. /package/lib/private/{database → db}/Types.js +0 -0
  409. /package/lib/private/{database → db}/primary.d.ts +0 -0
  410. /package/lib/private/{database → db}/primary.js +0 -0
  411. /package/lib/private/{database → db}/symbol/wrap.d.ts +0 -0
  412. /package/lib/private/{database → db}/symbol.d.ts +0 -0
@@ -11,18 +11,10 @@ export default function plugin_server_virtual_routes(app) {
11
11
  return { path: "routes-virtual", namespace: "primate-routes" };
12
12
  });
13
13
  build.onLoad({ filter: /.*/, namespace: "primate-routes" }, async () => {
14
- const route_files = await routes_path.collect(is_route_file);
15
- const watchDirs = new Set();
16
- const findDirs = async (dir) => {
17
- watchDirs.add(dir.path);
18
- const entries = await dir.list();
19
- for (const entry of entries) {
20
- if (await entry.isDirectory()) {
21
- await findDirs(entry);
22
- }
23
- }
24
- };
25
- await findDirs(app.path.routes);
14
+ const route_files = await routes_path.files({
15
+ filter: is_route_file,
16
+ recursive: true,
17
+ });
26
18
  const contents = `
27
19
  const route = [];
28
20
  ${route_files.map((file, i) => {
@@ -32,11 +24,14 @@ export default function plugin_server_virtual_routes(app) {
32
24
  }).join("\n")}
33
25
  export default route;
34
26
  `;
27
+ const watchDirs = (await app.path.routes.dirs({
28
+ recursive: true,
29
+ })).map(f => f.toString());
35
30
  return {
36
31
  contents,
37
32
  loader: "js",
38
33
  resolveDir: app.root.path,
39
- watchDirs: [...watchDirs],
34
+ watchDirs,
40
35
  watchFiles: route_files.map(f => f.path),
41
36
  };
42
37
  });
@@ -22,9 +22,8 @@ export default function plugin_server_wasm(app) {
22
22
  const wasm_file = app.runpath("wasm", args.path + ".wasm");
23
23
  return {
24
24
  contents: `
25
- import FileRef from "primate/fs/FileRef";
26
- const file = new FileRef("${wasm_file.path}");
27
- export default await file.bytes();
25
+ import fs from "@rcompat/fs";
26
+ export default await fs.ref("${wasm_file.path}").bytes();
28
27
  `,
29
28
  loader: "js",
30
29
  resolveDir: app.root.path,
@@ -1,5 +1,4 @@
1
- import dim from "@rcompat/cli/color/dim";
2
- import yellow from "@rcompat/cli/color/yellow";
1
+ import color from "@rcompat/cli/color";
3
2
  import print from "@rcompat/cli/print";
4
- export default () => print(dim(yellow("~~ bye\n")));
3
+ export default () => print(color.dim(color.yellow("~~ bye\n")));
5
4
  //# sourceMappingURL=bye.js.map
@@ -1,4 +1,4 @@
1
- import type Dict from "@rcompat/type/Dict";
1
+ import type { Dict } from "@rcompat/type";
2
2
  import type Mode from "#Mode";
3
3
  type ClientData<T extends Dict = Dict> = {
4
4
  view: string;
@@ -1,6 +1,4 @@
1
- import type Dict from "@rcompat/type/Dict";
2
- import type JSONPointer from "@rcompat/type/JSONPointer";
3
- import type JSONValue from "@rcompat/type/JSONValue";
1
+ import type { Dict, JSONPointer, JSONValue } from "@rcompat/type";
4
2
  type ValidateInit<T> = {
5
3
  headers?: Dict<string>;
6
4
  initial: T;
@@ -1,4 +1,4 @@
1
- import type Issue from "pema/Issue";
1
+ import type { Issue } from "pema";
2
2
  type ValidationError = {
3
3
  issues?: ReadonlyArray<Issue>;
4
4
  } & Error;
@@ -1,6 +1,7 @@
1
1
  // @ts-expect-error esbuild vfs
2
2
  import stamp from "server:stamp";
3
- (() => stamp)();
3
+ // @ts-expect-error esbuild vfs
4
+ (0, () => stamp)();
4
5
  // @ts-expect-error esbuild vfs
5
6
  import * as frontends from "app:frontends";
6
7
  class ClientApp {
@@ -0,0 +1,31 @@
1
+ import type { Dict } from "@rcompat/type";
2
+ type FormId = string;
3
+ type FieldErrors = readonly string[];
4
+ type FormErrors = {
5
+ form: FieldErrors;
6
+ fields: Dict<FieldErrors>;
7
+ };
8
+ type FormSnapshot = {
9
+ id: FormId;
10
+ submitting: boolean;
11
+ errors: FormErrors;
12
+ };
13
+ export type FormView = FormSnapshot & {
14
+ submit: (event?: Event) => Promise<void>;
15
+ };
16
+ type FormSubscriber = (snapshot: FormSnapshot) => void;
17
+ export type FormInit = {
18
+ id?: string;
19
+ method?: "POST" | "PUT" | "PATCH" | "DELETE";
20
+ url?: string;
21
+ headers?: Dict<string>;
22
+ };
23
+ type FormController = {
24
+ subscribe(fn: FormSubscriber): () => void;
25
+ read(): FormSnapshot;
26
+ submit(event?: Event): Promise<void>;
27
+ get id(): FormId;
28
+ };
29
+ export default function createForm(init: FormInit): FormController;
30
+ export {};
31
+ //# sourceMappingURL=create-form.d.ts.map
@@ -0,0 +1,124 @@
1
+ import extract_issues from "#client/extract-issues";
2
+ function decode_pointer_segment(segment) {
3
+ // decode JSON Pointer: ~1 -> /, ~0 -> ~
4
+ return segment.replace(/~1/g, "/").replace(/~0/g, "~");
5
+ }
6
+ function pointer_to_fieldname(path) {
7
+ // if server didn't send a pointer, assume it's already a field name
8
+ if (!path.startsWith("/"))
9
+ return path;
10
+ // root pointer "" is handled before calling this
11
+ // "/" is not a valid root pointer, but treat as form-level
12
+ if (path === "/")
13
+ return "";
14
+ const segments = path.split("/").slice(1).map(decode_pointer_segment);
15
+ if (segments.length === 0 || segments[0] === "")
16
+ return "";
17
+ let name = segments[0];
18
+ for (let i = 1; i < segments.length; i++) {
19
+ name += `[${segments[i]}]`;
20
+ }
21
+ return name;
22
+ }
23
+ export default function createForm(init) {
24
+ const id = init.id ?? `form-${crypto.randomUUID()}`;
25
+ let snapshot = {
26
+ id,
27
+ submitting: false,
28
+ errors: { form: [], fields: {} },
29
+ };
30
+ const subscribers = new Set();
31
+ function publish() {
32
+ for (const s of subscribers)
33
+ s(snapshot);
34
+ }
35
+ function setSubmitting(submitting) {
36
+ snapshot = { ...snapshot, submitting };
37
+ publish();
38
+ }
39
+ function setErrors(issues) {
40
+ const byField = {};
41
+ const formErrors = [];
42
+ for (const issue of issues) {
43
+ const path = issue.path;
44
+ // no path or empty string -> form-level error
45
+ if (!path) {
46
+ formErrors.push(issue.message);
47
+ continue;
48
+ }
49
+ const key = pointer_to_fieldname(path);
50
+ // if normalizes to empty (e.g. "/"), treat as form-level
51
+ if (!key) {
52
+ formErrors.push(issue.message);
53
+ continue;
54
+ }
55
+ (byField[key] ??= []).push(issue.message);
56
+ }
57
+ snapshot = {
58
+ ...snapshot,
59
+ errors: {
60
+ form: formErrors,
61
+ fields: byField,
62
+ },
63
+ };
64
+ publish();
65
+ }
66
+ async function submit(event) {
67
+ if (event) {
68
+ event.preventDefault();
69
+ event.stopPropagation();
70
+ }
71
+ const form_element = event?.currentTarget ??
72
+ document.getElementById(id);
73
+ // no form element
74
+ if (!form_element)
75
+ return;
76
+ const method = init.method
77
+ ?? form_element.method.toUpperCase()
78
+ ?? "POST";
79
+ const url = init.url ?? form_element.action;
80
+ const form_data = new FormData(form_element);
81
+ setSubmitting(true);
82
+ try {
83
+ const response = await fetch(url, {
84
+ method,
85
+ body: form_data,
86
+ headers: init.headers,
87
+ });
88
+ if (response.ok) {
89
+ // on success: clear errors, let the app decide what to do next
90
+ // (redirect/reload)
91
+ snapshot = { ...snapshot, errors: { form: [], fields: {} } };
92
+ publish();
93
+ return;
94
+ }
95
+ const payload = await response.json();
96
+ const issues = extract_issues(payload); // all issues, all paths
97
+ setErrors(issues);
98
+ }
99
+ catch (error) {
100
+ // network error
101
+ setErrors([{ message: error.message, path: "" }]);
102
+ }
103
+ finally {
104
+ setSubmitting(false);
105
+ }
106
+ }
107
+ function subscribe(fn) {
108
+ subscribers.add(fn);
109
+ fn(snapshot); // emit current
110
+ return () => subscribers.delete(fn);
111
+ }
112
+ function read() {
113
+ return snapshot;
114
+ }
115
+ return {
116
+ subscribe,
117
+ read,
118
+ submit,
119
+ get id() {
120
+ return snapshot.id;
121
+ },
122
+ };
123
+ }
124
+ //# sourceMappingURL=create-form.js.map
@@ -0,0 +1,4 @@
1
+ import type { JSONPointer } from "@rcompat/type";
2
+ import type { Issue, JSONPayload } from "pema";
3
+ export default function extractIssues(payload: JSONPayload, defaultPath?: JSONPointer | ""): Issue[];
4
+ //# sourceMappingURL=extract-issues.d.ts.map
@@ -0,0 +1,20 @@
1
+ export default function extractIssues(payload, defaultPath = "") {
2
+ // scalar: { message, messages }
3
+ if ("messages" in payload) {
4
+ return payload.messages.map(m => ({
5
+ message: m,
6
+ // for forms, defaultPath is "", but Issue.path expects a JSONPointer
7
+ // so we cast here; form-level errors are handled separately anyway
8
+ path: defaultPath,
9
+ }));
10
+ }
11
+ // keyed: { "/field": { message, messages }, ... }
12
+ const issues = [];
13
+ for (const [path, bundle] of Object.entries(payload)) {
14
+ for (const message of bundle.messages) {
15
+ issues.push({ message, path: path });
16
+ }
17
+ }
18
+ return issues;
19
+ }
20
+ //# sourceMappingURL=extract-issues.js.map
@@ -1,5 +1,5 @@
1
1
  import type ClientData from "#client/Data";
2
- import type Dict from "@rcompat/type/Dict";
2
+ import type { Dict } from "@rcompat/type";
3
3
  type Updater<T extends Dict> = (json: ClientData<T>, after?: () => void) => void;
4
4
  declare const _default: <T extends Dict>(updater: Updater<T>) => void;
5
5
  export default _default;
@@ -1,9 +1,8 @@
1
1
  import storage from "#client/spa/storage";
2
- const APPLICATION_JSON = "application/json";
3
- const MULTIPART_FORM_DATA = "multipart/form-data";
2
+ import MIME from "@rcompat/http/mime";
4
3
  const { document } = globalThis;
5
4
  const headers = {
6
- Accept: APPLICATION_JSON,
5
+ Accept: MIME.APPLICATION_JSON,
7
6
  };
8
7
  const get_by_id_or_name = (name) => document.getElementById(name) ?? document.getElementsByName(name)[0];
9
8
  const scroll = globalThis.scrollTo;
@@ -56,7 +55,7 @@ async function refetch(input, init = {}, maxHops = 5) {
56
55
  function is_json(response) {
57
56
  const raw = response.headers.get("content-type") || "";
58
57
  const mime = raw.split(";")[0].trim();
59
- return mime === APPLICATION_JSON;
58
+ return mime === MIME.APPLICATION_JSON;
60
59
  }
61
60
  ;
62
61
  const handle = async (response, updater) => {
@@ -192,7 +191,7 @@ export default (updater) => {
192
191
  const action = target.action ?? globalThis.location.pathname;
193
192
  const url = new URL(action);
194
193
  const data = new FormData(target);
195
- const form = enctype === MULTIPART_FORM_DATA
194
+ const form = enctype === MIME.MULTIPART_FORM_DATA
196
195
  ? data
197
196
  : new URLSearchParams(data);
198
197
  submit(url.pathname, form, target.method, updater);
@@ -1,7 +1,5 @@
1
1
  import type ValidateInit from "#client/ValidateInit";
2
- import type Dict from "@rcompat/type/Dict";
3
- import type JSONPointer from "@rcompat/type/JSONPointer";
4
- import type JSONValue from "@rcompat/type/JSONValue";
2
+ import type { Dict, JSONPointer, JSONValue } from "@rcompat/type";
5
3
  type Options<T> = {
6
4
  headers?: Dict<string>;
7
5
  map?: (v: T) => JSONValue;
@@ -14,4 +12,4 @@ export default function toValidated<T, R>(validateSignal: (init: ValidateInit<T>
14
12
  put: (url: string, options?: Options<T>) => R;
15
13
  };
16
14
  export {};
17
- //# sourceMappingURL=toValidated.d.ts.map
15
+ //# sourceMappingURL=to-validated.d.ts.map
@@ -18,4 +18,4 @@ export default function toValidated(validateSignal) {
18
18
  };
19
19
  };
20
20
  }
21
- //# sourceMappingURL=toValidated.js.map
21
+ //# sourceMappingURL=to-validated.js.map
@@ -0,0 +1,3 @@
1
+ import type ValidateInit from "#client/ValidateInit";
2
+ export default function validateField<T>(init: ValidateInit<T>, value: T): Promise<void>;
3
+ //# sourceMappingURL=validate-field.d.ts.map
@@ -0,0 +1,41 @@
1
+ import extract_issues from "#client/extract-issues";
2
+ function focus(issues, path) {
3
+ if (path === undefined) {
4
+ return issues;
5
+ }
6
+ const focused = issues.filter(i => i.path === path);
7
+ return focused.length ? focused : issues;
8
+ }
9
+ export default async function validateField(init, value) {
10
+ const headers = {
11
+ "content-type": "application/json",
12
+ ...(init.headers ?? {}),
13
+ };
14
+ if (init.path !== undefined) {
15
+ headers["x-validate-path"] = init.path;
16
+ }
17
+ const body_value = init.map?.(value) ?? value;
18
+ let body;
19
+ try {
20
+ body = JSON.stringify(body_value);
21
+ }
22
+ catch {
23
+ const message = "Cannot serialize body. Provide a `map` that returns JSON.";
24
+ throw new Error(message);
25
+ }
26
+ const { method, url } = init;
27
+ const response = await fetch(url, { body, headers, method });
28
+ if (response.ok)
29
+ return;
30
+ const payload = await response.json();
31
+ const default_path = init.path ?? "";
32
+ const default_issues = [{ message: "Validation failed", path: default_path }];
33
+ const all_issues = extract_issues(payload, default_path);
34
+ const focused_issues = focus(all_issues, init.path);
35
+ const issues = focused_issues.length > 0 ? focused_issues : default_issues;
36
+ throw Object.assign(new Error(issues[0].message), {
37
+ issues,
38
+ name: "ValidationError",
39
+ });
40
+ }
41
+ //# sourceMappingURL=validate-field.js.map
@@ -1,24 +1,5 @@
1
+ import AppFacade from "#app/Facade";
1
2
  import schema from "#config/schema";
2
- declare const _default: (config?: typeof schema.input) => {
3
- http: {
4
- csp: Record<string, string[]> | undefined;
5
- headers: Record<string, string> | undefined;
6
- host: string;
7
- port: number;
8
- ssl: {
9
- cert: string | import("@rcompat/fs/FileRef").default | undefined;
10
- key: string | import("@rcompat/fs/FileRef").default | undefined;
11
- };
12
- static: {
13
- root: string;
14
- };
15
- };
16
- modules: import("../Module.js").default[] | undefined;
17
- request: {
18
- body: {
19
- parse: boolean;
20
- };
21
- };
22
- };
3
+ declare const _default: (input?: typeof schema.input) => AppFacade;
23
4
  export default _default;
24
5
  //# sourceMappingURL=index.d.ts.map
@@ -1,3 +1,5 @@
1
+ import AppFacade from "#app/Facade";
1
2
  import schema from "#config/schema";
2
- export default (config = {}) => schema.parse(config);
3
+ export default (input = {}) => new AppFacade(schema.parse(input));
4
+ ;
3
5
  //# sourceMappingURL=index.js.map
@@ -1,23 +1,27 @@
1
1
  import Module from "#Module";
2
- import FileRef from "@rcompat/fs/FileRef";
3
2
  declare const _default: import("pema").ObjectType<{
4
3
  http: import("pema").ObjectType<{
5
- csp: import("pema").OptionalType<import("pema/record").RecordType<import("pema/string").StringType, import("pema").ArrayType<import("pema/string").StringType>>>;
6
- headers: import("pema").OptionalType<import("pema/record").RecordType<import("pema/string").StringType, import("pema/string").StringType>>;
7
- host: import("pema").DefaultType<import("pema/string").StringType, "localhost">;
8
- port: import("pema").DefaultType<import("pema/uint").UintType<"u32">, 6161>;
4
+ csp: import("pema").OptionalType<import("pema").RecordType<import("pema").StringType, import("pema").ArrayType<import("pema").StringType>>>;
5
+ headers: import("pema").OptionalType<import("pema").RecordType<import("pema").StringType, import("pema").StringType>>;
6
+ host: import("pema").DefaultType<import("pema").StringType, "localhost">;
7
+ port: import("pema").DefaultType<import("pema").UintType<"u32">, 6161>;
9
8
  ssl: import("pema").ObjectType<{
10
- cert: import("pema").OptionalType<import("pema/union").UnionType<[import("pema").ConstructorType<typeof FileRef>, import("pema/string").StringType]>>;
11
- key: import("pema").OptionalType<import("pema/union").UnionType<[import("pema").ConstructorType<typeof FileRef>, import("pema/string").StringType]>>;
9
+ cert: import("pema").OptionalType<import("pema").UnionType<[import("pema").ConstructorType<typeof import("@rcompat/fs").FileRef>, import("pema").StringType]>>;
10
+ key: import("pema").OptionalType<import("pema").UnionType<[import("pema").ConstructorType<typeof import("@rcompat/fs").FileRef>, import("pema").StringType]>>;
12
11
  }>;
13
12
  static: import("pema").ObjectType<{
14
- root: import("pema").DefaultType<import("pema/string").StringType, "/">;
13
+ root: import("pema").DefaultType<import("pema").StringType, "/">;
15
14
  }>;
16
15
  }>;
16
+ livereload: import("pema").ObjectType<{
17
+ exclude: import("pema").OptionalType<import("pema").ArrayType<import("pema").StringType>>;
18
+ host: import("pema").OptionalType<import("pema").StringType>;
19
+ port: import("pema").OptionalType<import("pema").UintType<"u32">>;
20
+ }>;
17
21
  modules: import("pema").OptionalType<import("pema").ArrayType<import("pema").ConstructorType<typeof Module>>>;
18
22
  request: import("pema").ObjectType<{
19
23
  body: import("pema").ObjectType<{
20
- parse: import("pema").DefaultType<import("pema/boolean").BooleanType, true>;
24
+ parse: import("pema").DefaultType<import("pema").BooleanType, true>;
21
25
  }>;
22
26
  }>;
23
27
  }>;
@@ -1,20 +1,25 @@
1
1
  import Module from "#Module";
2
- import FileRef from "@rcompat/fs/FileRef";
2
+ import fs from "@rcompat/fs";
3
3
  import p from "pema";
4
4
  export default p({
5
5
  http: {
6
- csp: p.record(p.string, p.array(p.string)).optional(),
7
- headers: p.record(p.string, p.string).optional(),
6
+ csp: p.dict(p.array(p.string)).optional(),
7
+ headers: p.dict().optional(),
8
8
  host: p.string.default("localhost"),
9
9
  port: p.uint.port().default(6161),
10
10
  ssl: {
11
- cert: p.union(FileRef, p.string).optional(),
12
- key: p.union(FileRef, p.string).optional(),
11
+ cert: p.union(fs.FileRef, p.string).optional(),
12
+ key: p.union(fs.FileRef, p.string).optional(),
13
13
  },
14
14
  static: {
15
15
  root: p.string.default("/"),
16
16
  },
17
17
  },
18
+ livereload: {
19
+ exclude: p.array(p.string).optional(),
20
+ host: p.string.optional(),
21
+ port: p.uint.port().optional(),
22
+ },
18
23
  modules: p.array(p.constructor(Module)).optional(),
19
24
  request: {
20
25
  body: {
@@ -1,9 +1,9 @@
1
1
  declare const Schema: import("pema").ObjectType<{
2
- httpOnly: import("pema").DefaultType<import("pema/boolean").BooleanType, true>;
3
- path: import("pema").DefaultType<import("pema/string").StringType, "/">;
4
- sameSite: import("pema/union").UnionType<[import("pema").LiteralType<"Lax">, import("pema").LiteralType<"None">, import("pema").LiteralType<"Strict">]>;
5
- secure: import("pema/boolean").BooleanType;
6
- maxAge: import("pema").OptionalType<import("pema/number").NumberType<"f64">>;
2
+ httpOnly: import("pema").DefaultType<import("pema").BooleanType, true>;
3
+ path: import("pema").DefaultType<import("pema").StringType, "/">;
4
+ sameSite: import("pema").UnionType<[import("pema").LiteralType<"Lax">, import("pema").LiteralType<"None">, import("pema").LiteralType<"Strict">]>;
5
+ secure: import("pema").BooleanType;
6
+ maxAge: import("pema").OptionalType<import("pema").NumberType<"f64">>;
7
7
  }>;
8
8
  type Options = typeof Schema.input;
9
9
  export default function cookie(name: string, value: string, options: Options): string;
@@ -1,19 +1,15 @@
1
- import is from "@rcompat/assert/is";
2
- import pema from "pema";
3
- import boolean from "pema/boolean";
4
- import number from "pema/number";
5
- import string from "pema/string";
6
- import union from "pema/union";
7
- const Schema = pema({
8
- httpOnly: boolean.default(true),
9
- path: string.default("/"),
10
- sameSite: union("Lax", "None", "Strict"),
11
- secure: boolean,
12
- maxAge: number.optional(), // seconds
1
+ import assert from "@rcompat/assert";
2
+ import p from "pema";
3
+ const Schema = p({
4
+ httpOnly: p.boolean.default(true),
5
+ path: p.string.default("/"),
6
+ sameSite: p.union("Lax", "None", "Strict"),
7
+ secure: p.boolean,
8
+ maxAge: p.number.optional(), // seconds
13
9
  });
14
10
  export default function cookie(name, value, options) {
15
- is(name).string();
16
- is(value).string();
11
+ assert.string(name);
12
+ assert.string(value);
17
13
  const parsed = Schema.parse(options);
18
14
  const parts = [`${name}=${value}`];
19
15
  parts.push(`Path=${parsed.path}`);
@@ -0,0 +1,10 @@
1
+ import type Types from "#db/Types";
2
+ import type PK from "#db/PK";
3
+ type As = {
4
+ table: string;
5
+ pk: PK;
6
+ generate_pk?: boolean;
7
+ types: Types;
8
+ };
9
+ export type { As as default };
10
+ //# sourceMappingURL=As.d.ts.map
@@ -0,0 +1,33 @@
1
+ import type As from "#db/As";
2
+ import type Sort from "#db/Sort";
3
+ import type With from "#db/With";
4
+ import type { Dict, MaybePromise } from "@rcompat/type";
5
+ import type { StoreSchema } from "pema";
6
+ export default interface DB {
7
+ schema: {
8
+ create(as: As, schema: StoreSchema): MaybePromise<void>;
9
+ delete(name: string): MaybePromise<void>;
10
+ };
11
+ close(): MaybePromise<void>;
12
+ create<O extends Dict>(as: As, record: Dict): MaybePromise<O>;
13
+ read(as: As, args: {
14
+ count: true;
15
+ where: Dict;
16
+ with?: never;
17
+ }): MaybePromise<number>;
18
+ read(as: As, args: {
19
+ where: Dict;
20
+ fields?: string[];
21
+ limit?: number;
22
+ sort?: Sort;
23
+ with?: With;
24
+ }): MaybePromise<Dict[]>;
25
+ update(as: As, args: {
26
+ set: Dict;
27
+ where: Dict;
28
+ }): MaybePromise<number>;
29
+ delete(as: As, args: {
30
+ where: Dict;
31
+ }): MaybePromise<number>;
32
+ }
33
+ //# sourceMappingURL=DB.d.ts.map
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=DB.js.map
@@ -0,0 +1,5 @@
1
+ import type DataValue from "#db/DataValue";
2
+ import type { Dict } from "@rcompat/type";
3
+ type DataDict = Dict<DataValue>;
4
+ export type { DataDict as default };
5
+ //# sourceMappingURL=DataDict.d.ts.map
@@ -0,0 +1,4 @@
1
+ import type { DataType } from "pema";
2
+ type DataKey = keyof DataType;
3
+ export type { DataKey as default };
4
+ //# sourceMappingURL=DataKey.d.ts.map
@@ -0,0 +1,17 @@
1
+ import type DataKey from "#db/DataKey";
2
+ import type { DataType } from "pema";
3
+ type Scalar = DataType[DataKey] | null;
4
+ type OperatorObject = Partial<{
5
+ $like: string;
6
+ $ilike: string;
7
+ $gt: number | bigint;
8
+ $gte: number | bigint;
9
+ $lt: number | bigint;
10
+ $lte: number | bigint;
11
+ $before: Date;
12
+ $after: Date;
13
+ $ne: DataType[DataKey];
14
+ }>;
15
+ type DataValue = Scalar | OperatorObject;
16
+ export type { DataValue as default };
17
+ //# sourceMappingURL=DataValue.d.ts.map