@primate/core 0.4.6 → 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 +11 -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
@@ -1,11 +0,0 @@
1
- import type InferStore from "pema/InferStore";
2
- import type StoreSchema from "pema/StoreSchema";
3
- type X<T> = {
4
- [K in keyof T]: T[K];
5
- } & {};
6
- type OrNull<T> = {
7
- [P in keyof T]?: null | T[P];
8
- };
9
- type Changes<T extends StoreSchema> = X<OrNull<InferStore<T>>>;
10
- export type { Changes as default };
11
- //# sourceMappingURL=Changes.d.ts.map
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=Changes.js.map
@@ -1,11 +0,0 @@
1
- type ColumnTypes = {
2
- BIGINT: bigint;
3
- BLOB: Blob;
4
- BOOLEAN: boolean;
5
- DATE: Date;
6
- NUMBER: number;
7
- STRING: string;
8
- URL: URL;
9
- };
10
- export type { ColumnTypes as default };
11
- //# sourceMappingURL=ColumnTypes.d.ts.map
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=ColumnTypes.js.map
@@ -1,5 +0,0 @@
1
- import type Dict from "@rcompat/type/Dict";
2
- import type DataValue from "#database/DataValue";
3
- type DataDict = Dict<DataValue>;
4
- export type { DataDict as default };
5
- //# sourceMappingURL=DataDict.d.ts.map
@@ -1,4 +0,0 @@
1
- import type DataType from "pema/DataType";
2
- type DataKey = keyof DataType;
3
- export type { DataKey as default };
4
- //# sourceMappingURL=DataKey.d.ts.map
@@ -1,5 +0,0 @@
1
- import type DataKey from "#database/DataKey";
2
- import type DataType from "pema/DataType";
3
- type DataValue = DataType[DataKey] | null;
4
- export type { DataValue as default };
5
- //# sourceMappingURL=DataValue.d.ts.map
@@ -1,56 +0,0 @@
1
- import type As from "#database/As";
2
- import type Binds from "#database/Binds";
3
- import type DataDict from "#database/DataDict";
4
- import type DataKey from "#database/DataKey";
5
- import type Sort from "#database/Sort";
6
- import type TypeMap from "#database/TypeMap";
7
- import type Types from "#database/Types";
8
- import type Dict from "@rcompat/type/Dict";
9
- import type MaybePromise from "@rcompat/type/MaybePromise";
10
- import type StoreSchema from "pema/StoreSchema";
11
- export default abstract class Database {
12
- #private;
13
- abstract close(): MaybePromise<void>;
14
- constructor(bindPrefix?: string);
15
- ident(name: string): string;
16
- table(as: As): string;
17
- toSelect(types: Types, columns?: string[]): string;
18
- toSort(types: Types, sort?: Sort): string;
19
- toLimit(limit?: number): string;
20
- toWhere(types: Types, criteria: DataDict): string;
21
- toSet(types: Types, changes: DataDict): Promise<{
22
- set: string;
23
- binds: Binds;
24
- }>;
25
- column(key: DataKey): string;
26
- abstract get typemap(): TypeMap;
27
- abstract schema: {
28
- create(name: string, description: StoreSchema): MaybePromise<void>;
29
- delete(name: string): MaybePromise<void>;
30
- };
31
- formatBinds(binds: Binds): Binds;
32
- bind<In extends DataDict>(types: Types, object: In): Promise<Binds>;
33
- bindCriteria(types: Types, criteria: DataDict): Promise<Binds>;
34
- unbind(types: Types, object: Dict): Dict;
35
- abstract create<O extends Dict>(as: As, args: {
36
- record: Dict;
37
- }): MaybePromise<O>;
38
- abstract read(as: As, args: {
39
- count: true;
40
- criteria: Dict;
41
- }): MaybePromise<number>;
42
- abstract read(as: As, args: {
43
- criteria: Dict;
44
- fields?: string[];
45
- limit?: number;
46
- sort?: Sort;
47
- }): MaybePromise<Dict[]>;
48
- abstract update(as: As, args: {
49
- changes: Dict;
50
- criteria: Dict;
51
- }): MaybePromise<number>;
52
- abstract delete(as: As, args: {
53
- criteria: Dict;
54
- }): MaybePromise<number>;
55
- }
56
- //# sourceMappingURL=Database.d.ts.map
@@ -1,153 +0,0 @@
1
- import fail from "#fail";
2
- import maybe from "@rcompat/assert/maybe";
3
- import entries from "@rcompat/record/entries";
4
- function required(operation) {
5
- fail("{0}: at least one column required", operation);
6
- }
7
- function normalizeSort(direction) {
8
- if (typeof direction !== "string")
9
- throw fail("invalid sort direction {0}", direction);
10
- const lowered = direction.toLowerCase();
11
- if (lowered !== "asc" && lowered !== "desc")
12
- throw fail("invalid sort direction {0}", direction);
13
- return lowered.toUpperCase();
14
- }
15
- export default class Database {
16
- #bindPrefix;
17
- constructor(bindPrefix) {
18
- this.#bindPrefix = bindPrefix ?? "";
19
- }
20
- #assert(types, columns) {
21
- const known = new Set(Object.keys(types));
22
- const unknown = columns.filter(c => !known.has(c));
23
- if (unknown.length > 0) {
24
- throw fail("unknown column(s) {0}", unknown.join(", "));
25
- }
26
- }
27
- #quote(name) {
28
- if (!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(name)) {
29
- throw fail("invalid identifier {0}", name);
30
- }
31
- return `\`${name}\``;
32
- }
33
- ident(name) {
34
- return this.#quote(name);
35
- }
36
- table(as) {
37
- return this.#quote(as.name);
38
- }
39
- toSelect(types, columns) {
40
- maybe(columns).array();
41
- if (!columns)
42
- return "*";
43
- if (columns.length === 0)
44
- throw required("select");
45
- this.#assert(types, columns);
46
- return columns.map(this.#quote).join(", ");
47
- }
48
- toSort(types, sort) {
49
- maybe(sort).record();
50
- if (!sort)
51
- return "";
52
- const columns = Object.entries(sort);
53
- if (columns.length === 0)
54
- throw required("sort");
55
- this.#assert(types, columns.map(([k]) => k));
56
- const order = columns
57
- .map(([k, direction]) => `${this.#quote(k)} ${normalizeSort(direction)}`)
58
- .join(", ");
59
- return ` ORDER BY ${order}`;
60
- }
61
- toLimit(limit) {
62
- maybe(limit).usize();
63
- return limit !== undefined ? ` LIMIT ${limit}` : "";
64
- }
65
- toWhere(types, criteria) {
66
- const columns = Object.keys(criteria);
67
- this.#assert(types, columns);
68
- if (columns.length === 0)
69
- return "";
70
- const p = this.#bindPrefix; // "$" or ":"
71
- const parts = columns.map(column => {
72
- const value = criteria[column];
73
- // null criteria
74
- if (value === null)
75
- return `${this.#quote(column)} IS NULL`;
76
- if (typeof value === "object") {
77
- if ("$like" in value) {
78
- return `${this.#quote(column)} LIKE ${p}${column}`;
79
- }
80
- //if ("$gte" in value) return `${this.#quote(column)} >= ${p}${column}`;
81
- throw fail("unsupported operator in field {0}", column);
82
- }
83
- return `${this.#quote(column)}=${p}${column}`;
84
- });
85
- return `WHERE ${parts.join(" AND ")}`;
86
- }
87
- async toSet(types, changes) {
88
- const columns = Object.keys(changes);
89
- this.#assert(types, columns);
90
- if (columns.length === 0)
91
- throw required("set");
92
- const p = this.#bindPrefix; // "$" or ":"
93
- const set = `SET ${columns.map(c => `${this.#quote(c)}=${p}s_${c}`).join(", ")}`;
94
- const raw = Object.fromEntries(columns.map(c => [`s_${c}`, changes[c]]));
95
- // bind original keys (e.g. { age: 35 } -> { $age: 35 })
96
- const binds = await this.bind(types, raw);
97
- return { set, binds };
98
- }
99
- #bind(key, value) {
100
- return value === null
101
- ? null
102
- : this.typemap[key].bind(value);
103
- }
104
- #unbind(key, value) {
105
- return this.typemap[key].unbind(value);
106
- }
107
- column(key) {
108
- return this.typemap[key].column;
109
- }
110
- ;
111
- // identity
112
- formatBinds(binds) {
113
- return binds;
114
- }
115
- async bind(types, object) {
116
- const out = Object.fromEntries(await Promise.all(Object.entries(object).map(async ([key, value]) => {
117
- // support "s_" pseudo-namespace for SET params
118
- const base = key.startsWith("s_") ? key.slice(2) : key;
119
- const bound = await this.#bind(types[base], value);
120
- return [`${this.#bindPrefix}${key}`, bound];
121
- })));
122
- return this.formatBinds(out);
123
- }
124
- async bindCriteria(types, criteria) {
125
- const filtered = {};
126
- for (const [key, value] of Object.entries(criteria)) {
127
- // null isn't bound
128
- if (value === null)
129
- continue;
130
- if (typeof value === "object") {
131
- // extract primitive value from operator object
132
- if ("$like" in value) {
133
- if (typeof value.$like !== "string") {
134
- throw fail("$like operator requires string value, got {0}", typeof value.$like);
135
- }
136
- filtered[key] = value.$like;
137
- }
138
- }
139
- else {
140
- filtered[key] = value;
141
- }
142
- }
143
- return this.bind(types, filtered);
144
- }
145
- unbind(types, object) {
146
- return entries(object)
147
- .filter(([, value]) => value !== null)
148
- .map(([key, value]) => [key, this.#unbind(types[key], value)])
149
- .get();
150
- }
151
- }
152
- ;
153
- //# sourceMappingURL=Database.js.map
@@ -1,37 +0,0 @@
1
- import type As from "#database/As";
2
- import Database from "#database/Database";
3
- import type DataDict from "#database/DataDict";
4
- import type Sort from "#database/Sort";
5
- import type TypeMap from "#database/TypeMap";
6
- import type Dict from "@rcompat/type/Dict";
7
- import type MaybePromise from "@rcompat/type/MaybePromise";
8
- export default class InMemoryDatabase extends Database {
9
- #private;
10
- get typemap(): TypeMap<Dict>;
11
- get schema(): {
12
- create: (name: string) => void;
13
- delete: (name: string) => void;
14
- };
15
- close(): void;
16
- create<O extends Dict>(as: As, args: {
17
- record: Dict;
18
- }): MaybePromise<O>;
19
- read(as: As, args: {
20
- count: true;
21
- criteria: DataDict;
22
- }): number;
23
- read(as: As, args: {
24
- criteria: DataDict;
25
- fields?: string[];
26
- limit?: number;
27
- sort?: Sort;
28
- }): Dict[];
29
- update(as: As, args: {
30
- changes: DataDict;
31
- criteria: DataDict;
32
- }): Promise<number>;
33
- delete(as: As, args: {
34
- criteria: DataDict;
35
- }): number;
36
- }
37
- //# sourceMappingURL=InMemoryDatabase.d.ts.map
@@ -1,181 +0,0 @@
1
- import Database from "#database/Database";
2
- import fail from "#fail";
3
- import assert from "@rcompat/assert";
4
- import entries from "@rcompat/record/entries";
5
- function match(record, criteria) {
6
- return Object.entries(criteria).every(([k, v]) => {
7
- const value = record[k];
8
- // null criteria (IS NULL semantics)
9
- if (v === null)
10
- return !Object.hasOwn(record, k);
11
- // handle operator objects
12
- if (typeof v === "object") {
13
- // $like operator
14
- if ("$like" in v) {
15
- // NULL values don't match LIKE patterns
16
- if (value === null || value === undefined)
17
- return false;
18
- const $like = v.$like;
19
- if (typeof $like !== "string")
20
- throw fail("$like operator requires string, got {0}", typeof $like);
21
- const regex = new RegExp("^" + $like.replace(/%/g, ".*").replace(/\?/g, ".") + "$");
22
- return regex.test(String(value));
23
- }
24
- // future: number operators
25
- // if ("$gte" in v) return recordValue >= v.$gte;
26
- // if ("$gt" in v) return recordValue > v.$gt;
27
- // if ("$lte" in v) return recordValue <= v.$lte;
28
- // if ("$lt" in v) return recordValue < v.$lt;
29
- return false; // unknown operator
30
- }
31
- // direct equality match
32
- return value === v;
33
- });
34
- }
35
- function filter(record, fields) {
36
- return Object.fromEntries(Object.entries(record)
37
- .filter(([key]) => fields.includes(key)));
38
- }
39
- function toSorted(d1, d2, sort) {
40
- return [...entries(sort).valmap(([, value]) => value === "asc" ? 1 : -1)]
41
- .reduce((sorting, [field, direction]) => {
42
- const left = d1[field];
43
- const right = d2[field];
44
- // if sorting has been established, it stays fixed
45
- if (sorting !== 0) {
46
- return sorting;
47
- }
48
- // equal, sorting doesn't change
49
- if (left === right) {
50
- return sorting;
51
- }
52
- if (left < right) {
53
- return -1 * direction;
54
- }
55
- return direction;
56
- }, 0);
57
- }
58
- function ident(column) {
59
- return {
60
- bind: value => value,
61
- column,
62
- unbind: value => value,
63
- };
64
- }
65
- const typemap = {
66
- blob: ident("BLOB"),
67
- boolean: ident("BOOLEAN"),
68
- datetime: ident("DATE"),
69
- f32: ident("NUMBER"),
70
- f64: ident("NUMBER"),
71
- i128: ident("BIGINT"),
72
- i16: ident("NUMBER"),
73
- i32: ident("NUMBER"),
74
- i64: ident("BIGINT"),
75
- i8: ident("NUMBER"),
76
- primary: ident("STRING"),
77
- string: ident("STRING"),
78
- time: ident("STRING"),
79
- u128: ident("BIGINT"),
80
- u16: ident("NUMBER"),
81
- u32: ident("NUMBER"),
82
- u64: ident("BIGINT"),
83
- u8: ident("NUMBER"),
84
- url: ident("URL"),
85
- };
86
- export default class InMemoryDatabase extends Database {
87
- #collections = {};
88
- get typemap() {
89
- return typemap;
90
- }
91
- #new(name) {
92
- if (this.#collections[name] !== undefined) {
93
- throw fail("collection {0} already exists", name);
94
- }
95
- this.#collections[name] = [];
96
- }
97
- #drop(name) {
98
- if (this.#collections[name] === undefined) {
99
- // do nothing
100
- }
101
- delete this.#collections[name];
102
- }
103
- #use(name) {
104
- if (this.#collections[name] === undefined) {
105
- this.#collections[name] = [];
106
- }
107
- return this.#collections[name];
108
- }
109
- get schema() {
110
- return {
111
- create: this.#new.bind(this),
112
- delete: this.#drop.bind(this),
113
- };
114
- }
115
- // noop
116
- close() { }
117
- create(as, args) {
118
- const collection = this.#use(as.name);
119
- const record = { ...args.record };
120
- if (record.id === undefined) {
121
- record.id = crypto.randomUUID();
122
- }
123
- ;
124
- if (typeof record.id !== "string") {
125
- throw fail("id must be string, got {0}", record.id);
126
- }
127
- if (collection.find(stored => stored.id === record.id)) {
128
- throw fail("id {0} already exists in the database", record.id);
129
- }
130
- collection.push({ ...record });
131
- return record;
132
- }
133
- read(as, args) {
134
- this.toWhere(as.types, args.criteria);
135
- if (args.fields !== undefined)
136
- this.toSelect(as.types, args.fields);
137
- if (args.sort !== undefined)
138
- this.toSort(as.types, args.sort);
139
- const collection = this.#use(as.name);
140
- const matches = collection.filter(r => match(r, args.criteria));
141
- if (args.count === true) {
142
- return matches.length;
143
- }
144
- const sort = args.sort ?? {};
145
- const sorted = Object.keys(sort).length === 0
146
- ? matches
147
- : matches.toSorted((a, b) => toSorted(a, b, sort));
148
- const limit = args.limit ?? sorted.length;
149
- const fields = args.fields ?? [];
150
- return (fields.length === 0
151
- ? sorted
152
- : sorted.map(s => filter(s, fields))).slice(0, limit);
153
- }
154
- async update(as, args) {
155
- assert(Object.keys(args.criteria).length > 0, "update: no criteria");
156
- this.toWhere(as.types, args.criteria);
157
- await this.toSet(as.types, args.changes);
158
- const collection = this.#use(as.name);
159
- const matched = collection.filter(record => match(record, args.criteria));
160
- return matched.map(record => {
161
- const changed = entries({ ...record, ...args.changes })
162
- .filter(([, value]) => value !== null)
163
- .get();
164
- const index = collection.findIndex(stored => stored.id === record.id);
165
- collection.splice(index, 1, changed);
166
- return changed;
167
- }).length;
168
- }
169
- delete(as, args) {
170
- if (Object.keys(args.criteria).length === 0) {
171
- throw fail("delete: no criteria");
172
- }
173
- this.toWhere(as.types, args.criteria);
174
- const collection = this.#use(as.name);
175
- const size_before = collection.length;
176
- this.#collections[as.name] = collection
177
- .filter(record => !match(record, args.criteria));
178
- return size_before - this.#use(as.name).length;
179
- }
180
- }
181
- //# sourceMappingURL=InMemoryDatabase.js.map
@@ -1,4 +0,0 @@
1
- import Dict from "@rcompat/type/Dict";
2
- type Sort = Dict<"asc" | "desc">;
3
- export type { Sort as default };
4
- //# sourceMappingURL=Sort.d.ts.map
@@ -1,172 +0,0 @@
1
- import type Changes from "#database/Changes";
2
- import type Database from "#database/Database";
3
- import type Schema from "#database/Schema";
4
- import wrap from "#database/symbol/wrap";
5
- import type Types from "#database/Types";
6
- import type Dict from "@rcompat/type/Dict";
7
- import type Serializable from "@rcompat/type/Serializable";
8
- import type Id from "pema/Id";
9
- import type InferStore from "pema/InferStore";
10
- import type StoreId from "pema/StoreId";
11
- import type StoreSchema from "pema/StoreSchema";
12
- import StoreType from "pema/StoreType";
13
- type X<T> = {
14
- [K in keyof T]: T[K];
15
- } & {};
16
- type StringOperators = {
17
- $like?: string;
18
- };
19
- type QueryOperators<T> = T extends string ? T | StringOperators | null : T | null;
20
- type Criteria<T extends StoreSchema> = X<{
21
- [K in keyof Omit<InferStore<T>, "id">]?: QueryOperators<InferStore<T>[K]>;
22
- } & {
23
- id?: StoreId<T> | null;
24
- }>;
25
- type Select<T> = {
26
- [K in keyof T]?: true;
27
- };
28
- type Sort<T> = {
29
- [K in keyof T]?: "asc" | "desc";
30
- };
31
- type Insertable<T extends StoreSchema> = Omit<InferStore<T>, "id"> & {
32
- id?: StoreId<T>;
33
- };
34
- type Filter<A, B = undefined> = B extends undefined ? A : {
35
- [K in keyof A as K extends keyof B ? B[K] extends true ? K : never : never]: A[K];
36
- };
37
- type Config = {
38
- database?: Database;
39
- name?: string;
40
- };
41
- /**
42
- * Database-backed store.
43
- *
44
- * A `DatabaseStore` exposes a typed, validated interface over a relational or
45
- * document database table/collection. It pairs a Pema schema with a uniform
46
- * CRUD/query API.
47
- *
48
- */
49
- export default class DatabaseStore<S extends StoreSchema> implements Serializable {
50
- #private;
51
- [wrap]: (name: string, database: Database) => this;
52
- readonly Schema: Schema<S>;
53
- constructor(schema: S, config?: Config);
54
- static new<S extends StoreSchema>(schema: S, config?: Config): DatabaseStore<S>;
55
- get collection(): {
56
- create: () => import("@rcompat/type/MaybePromise").default<void>;
57
- delete: () => import("@rcompat/type/MaybePromise").default<void>;
58
- };
59
- get infer(): InferStore<S>;
60
- get schema(): S;
61
- get type(): StoreType<S>;
62
- get database(): Database;
63
- get types(): Types;
64
- get name(): string;
65
- /**
66
- * Count records.
67
- *
68
- * @param criteria Criteria to limit which records are counted.
69
- * @returns Number of matching records (or total if no criteria given).
70
- */
71
- count(criteria?: Criteria<S> | {
72
- id: StoreId<S>;
73
- }): Promise<number>;
74
- /**
75
- * Check whether a record with the given id exists.
76
- *
77
- * @param id Record id.
78
- * @returns `true` if a record with the given id exists, otherwise `false`.
79
- */
80
- has(id: StoreId<S>): Promise<boolean>;
81
- /**
82
- * Get a record by id.
83
- *
84
- * @param id Record id.
85
- * @throws If no record with the given id exists.
86
- * @returns The record for the given id.
87
- */
88
- get(id: Id): Promise<Schema<S>>;
89
- /**
90
- * Try to get a record by id.
91
- *
92
- * @param id Record id.
93
- * @returns The record if found, otherwise `undefined`.
94
- */
95
- try(id: Id): Promise<Schema<S> | undefined>;
96
- /**
97
- * Insert a single record.
98
- *
99
- * If `id` is omitted, the driver generates one. Input is validated
100
- * according to the store schema.
101
- *
102
- * @param record Record to insert (id optional).
103
- * @throws If a record with the same id already exists or validation fails.
104
- * @returns The inserted record with id.
105
- */
106
- insert(record: Insertable<S>): Promise<Schema<S>>;
107
- /**
108
- * Update a single record.
109
- *
110
- * Change semantics:
111
- * - missing / undefined -> leave field unchanged
112
- * - null -> unset field (only for nullable fields, otherwise throw)
113
- * - value -> set field to value
114
- *
115
- * Change input is validated according to the store schema.
116
- *
117
- * @param id Record id.
118
- * @param changes Partial changes per the rules above.
119
- * @throws If the id is missing, `.id` is present in `changes`, attempting to
120
- * unset a non-nullable field, validation fails, or no record is updated.
121
- */
122
- update(id: Id, changes: Changes<S>): Promise<void>;
123
- /**
124
- * Update multiple records.
125
- *
126
- * Same change semantics as when updating a single record.
127
- *
128
- * @param criteria Criteria selecting which records to update.
129
- * @param changes Partial changes per the rules above.
130
- * @returns Number of updated records (may be 0).
131
- */
132
- update(criteria: Criteria<S>, changes: Changes<S>): Promise<number>;
133
- /**
134
- * Delete a single record.
135
- *
136
- * @param id Record id.
137
- * @throws If no records with the given id exists.
138
- */
139
- delete(id: Id): Promise<void>;
140
- /**
141
- * Delete multiple records.
142
- *
143
- * @param criteria Criteria selecting which records to delete.
144
- * @returns Number of records deleted (may be 0).
145
- */
146
- delete(criteria: Criteria<S>): Promise<number>;
147
- /**
148
- * Find matching records.
149
- *
150
- * @param criteria Criteria to match records by.
151
- * @param options Query options.
152
- * @returns Matching records, possibly projected/limited/sorted.
153
- */
154
- find(criteria: Criteria<S>): Promise<Filter<Schema<S>>[]>;
155
- find(criteria: Criteria<S>, options: {
156
- limit?: number;
157
- select?: undefined;
158
- sort?: Sort<Schema<S>>;
159
- }): Promise<Filter<Schema<S>>[]>;
160
- find<F extends Select<Schema<S>>>(criteria: Criteria<S>, options?: {
161
- limit?: number;
162
- select?: F;
163
- sort?: Sort<Schema<S>>;
164
- }): Promise<Filter<Schema<S>, F>[]>;
165
- toJSON(): {
166
- type: "object";
167
- properties: Dict<import("pema/StoreType").Serialized>;
168
- };
169
- extend<A extends Dict>(extensor: (This: this) => A): this & A;
170
- }
171
- export {};
172
- //# sourceMappingURL=Store.d.ts.map