@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
@@ -2,7 +2,6 @@ import plugin_alias from "#build/client/plugin/alias";
2
2
  import plugin_entrypoint from "#build/client/plugin/entrypoint";
3
3
  import plugin_frontend from "#build/client/plugin/frontend";
4
4
  import plugin_server_stamp from "#build/client/plugin/server-stamp";
5
- import reload from "#build/client/reload";
6
5
  import location from "#location";
7
6
  import * as esbuild from "esbuild";
8
7
  const write_bootstrap = async (app, mode) => {
@@ -19,7 +18,7 @@ const write_bootstrap = async (app, mode) => {
19
18
  ` : `
20
19
  const session_config = undefined;
21
20
  `}
22
- import config from "app:config";
21
+ import facade from "$:app";
23
22
 
24
23
  ${app.i18n_active ? `
25
24
  import i18n from "app:config:i18n";
@@ -30,7 +29,7 @@ const write_bootstrap = async (app, mode) => {
30
29
 
31
30
  const app = await serve(import.meta.url, {
32
31
  assets,
33
- config,
32
+ facade,
34
33
  routes,
35
34
  views,
36
35
  pages,
@@ -49,7 +48,10 @@ export default async function build_client(app) {
49
48
  app.plugin("client", plugin_alias(app));
50
49
  app.plugin("client", plugin_server_stamp(app));
51
50
  app.plugin("client", plugin_entrypoint(app));
52
- const imports = await app.path.static.collect(file => /\.(?:js|ts|css)$/.test(file.path));
51
+ const imports = await app.path.static.files({
52
+ recursive: true,
53
+ filter: file => /\.(?:js|ts|css)$/.test(file.path),
54
+ });
53
55
  imports.forEach(file => {
54
56
  const src = file.debase(app.path.static);
55
57
  app.entrypoint(`import "./${location.static}${src}";`);
@@ -66,11 +68,13 @@ export default async function build_client(app) {
66
68
  bundle: true,
67
69
  format: "esm",
68
70
  };
71
+ const NO_HR = app.config("livereload.exclude") ?? [];
69
72
  const mode_options = app.mode === "development"
70
73
  ? {
71
74
  banner: {
72
- js: `new EventSource("${reload.path}").addEventListener("change",
73
- () => globalThis.location.reload());`,
75
+ js: `const NO_HR=${JSON.stringify(NO_HR)};
76
+ new EventSource("/esbuild").addEventListener("change",
77
+ () => !NO_HR.includes(location.pathname) && location.reload());`,
74
78
  },
75
79
  entryNames: "app",
76
80
  minify: false,
@@ -86,7 +90,7 @@ export default async function build_client(app) {
86
90
  const context = await esbuild.context(options);
87
91
  await context.watch();
88
92
  await context.rebuild();
89
- await context.serve({ host: reload.host, port: reload.port });
93
+ await context.serve(app.livereload);
90
94
  }
91
95
  else {
92
96
  await esbuild.build(options);
@@ -6,8 +6,9 @@ import log from "#log";
6
6
  import reducer from "#reducer";
7
7
  import $router from "#request/router";
8
8
  import s_layout_depth from "#symbol/layout-depth";
9
- import pkg from "@rcompat/fs/project/package";
10
- const core_pkg = await pkg(import.meta.url);
9
+ import c from "@rcompat/cli/color";
10
+ import fs from "@rcompat/fs";
11
+ const core_pkg = await fs.project.package(import.meta.dirname);
11
12
  const { version } = await core_pkg.json();
12
13
  async function pre(app) {
13
14
  const dot_primate = app.path.build.join(".primate");
@@ -40,7 +41,7 @@ async function pre(app) {
40
41
  async function post(app) {
41
42
  await build_client(app);
42
43
  await build_server(app);
43
- log.system("build written to {0}", app.path.build);
44
+ log.print(`✓ build path ${c.dim(app.path.build.path)}\n`);
44
45
  app.cleanup();
45
46
  return app;
46
47
  }
@@ -2,24 +2,25 @@ import BuildApp from "#build/App";
2
2
  import bye from "#bye";
3
3
  import default_config from "#config/index";
4
4
  import fail from "#fail";
5
- import log from "#log";
6
- import root from "@rcompat/fs/project/root";
7
- import empty from "@rcompat/record/empty";
8
5
  import Flags from "#Flags";
9
- const no_config = (config) => config === undefined || empty(config);
10
- const find_config = async (project_root) => {
11
- const ts_config = project_root.join("config/app.ts");
6
+ import log from "#log";
7
+ import dict from "@rcompat/dict";
8
+ import fs from "@rcompat/fs";
9
+ import { s_config } from "#app/Facade";
10
+ const no_config = (config) => config === undefined || dict.empty(config);
11
+ const find_config = async (root) => {
12
+ const ts_config = root.join("config/app.ts");
12
13
  if (await ts_config.exists())
13
14
  return ts_config;
14
- const js_config = project_root.join("config/app.js");
15
+ const js_config = root.join("config/app.js");
15
16
  if (await js_config.exists())
16
17
  return js_config;
17
18
  };
18
- const get_config = async (project_root) => {
19
- const config = await find_config(project_root);
19
+ const get_config = async (root) => {
20
+ const config = await find_config(root);
20
21
  if (config !== undefined) {
21
22
  try {
22
- const imported = await config.import("default");
23
+ const imported = (await config.import("default"))[s_config];
23
24
  if (no_config(imported))
24
25
  throw fail("empty config file at {0}", config);
25
26
  return imported;
@@ -32,10 +33,10 @@ const get_config = async (project_root) => {
32
33
  };
33
34
  export default async (input) => {
34
35
  try {
35
- const package_root = await root();
36
+ const root = await fs.project.root();
36
37
  const flags = Flags.parse(input);
37
- const config = await get_config(package_root);
38
- const app = await new BuildApp(package_root, config, flags).init();
38
+ const config = await get_config(root);
39
+ const app = await new BuildApp(root, config, flags).init();
39
40
  await app.buildInit();
40
41
  return true;
41
42
  }
@@ -0,0 +1,10 @@
1
+ import type { TransformOptions } from "esbuild";
2
+ declare const _default: {
3
+ readonly angular: TransformOptions;
4
+ readonly react: TransformOptions;
5
+ readonly solid: TransformOptions;
6
+ readonly typescript: TransformOptions;
7
+ readonly voby: TransformOptions;
8
+ };
9
+ export default _default;
10
+ //# sourceMappingURL=presets.d.ts.map
@@ -0,0 +1,39 @@
1
+ const angular = {
2
+ loader: "ts",
3
+ tsconfigRaw: {
4
+ compilerOptions: {
5
+ experimentalDecorators: true,
6
+ },
7
+ },
8
+ };
9
+ const react = {
10
+ jsx: "automatic",
11
+ loader: "tsx",
12
+ };
13
+ const solid = {
14
+ format: "esm",
15
+ jsx: "preserve",
16
+ loader: "tsx",
17
+ target: "esnext",
18
+ };
19
+ const typescript = {
20
+ loader: "ts",
21
+ };
22
+ const voby = {
23
+ jsx: "automatic",
24
+ loader: "tsx",
25
+ tsconfigRaw: {
26
+ compilerOptions: {
27
+ jsx: "react-jsx",
28
+ jsxImportSource: "voby",
29
+ },
30
+ },
31
+ };
32
+ export default {
33
+ angular,
34
+ react,
35
+ solid,
36
+ typescript,
37
+ voby,
38
+ };
39
+ //# sourceMappingURL=presets.js.map
@@ -1,8 +1,8 @@
1
1
  import plugin_assets from "#build/server/plugin/assets";
2
2
  import plugin_config from "#build/server/plugin/config";
3
- import plugin_database_default from "#build/server/plugin/database-default";
3
+ import plugin_db_default from "#build/server/plugin/db-default";
4
4
  import plugin_frontend from "#build/server/plugin/frontend";
5
- import plugin_hot_reload from "#build/server/plugin/hot-reload";
5
+ import plugin_live_reload from "#build/server/plugin/live-reload";
6
6
  import plugin_native_addons from "#build/server/plugin/native-addons";
7
7
  import plugin_node_imports from "#build/server/plugin/node-imports";
8
8
  import plugin_requires from "#build/server/plugin/requires";
@@ -29,16 +29,14 @@ const conditions = {
29
29
  deno: ["deno", "node"],
30
30
  };
31
31
  export default async function build_server(app) {
32
- const extensions = app.frontendExtensions;
33
32
  app.plugin("server", plugin_node_imports(app));
34
- if (extensions.length > 0)
35
- app.plugin("server", plugin_frontend(app));
33
+ app.plugin("server", plugin_frontend(app));
36
34
  app.plugin("server", plugin_view(app));
37
35
  app.plugin("server", plugin_store(app));
38
36
  app.plugin("server", plugin_store_wrap(app));
39
- app.plugin("server", plugin_database_default(app));
37
+ app.plugin("server", plugin_db_default(app));
40
38
  if (app.mode === "development")
41
- app.plugin("server", plugin_hot_reload(app));
39
+ app.plugin("server", plugin_live_reload(app));
42
40
  app.plugin("server", plugin_virtual_pages(app));
43
41
  app.plugin("server", plugin_virtual_routes(app));
44
42
  app.plugin("server", plugin_route(app));
@@ -1,5 +1,5 @@
1
1
  import location from "#location";
2
- import resolve from "@rcompat/http/mime/extension/resolve";
2
+ import MIME from "@rcompat/http/mime";
3
3
  function bytes2base64(bytes) {
4
4
  const chunk_size = 0x8000;
5
5
  let result = "";
@@ -18,28 +18,30 @@ export default function plugin_server_assets(app) {
18
18
  });
19
19
  build.onLoad({ filter: /.*/, namespace: "primate-assets" }, async () => {
20
20
  if (app.mode === "production") {
21
- const client_files = await app.runpath(location.client).collect();
21
+ const client_files = await app.runpath(location.client).files({
22
+ recursive: true,
23
+ });
22
24
  const client_assets = {};
23
25
  for (const file of client_files) {
24
26
  const pathname = `/${file.name}`;
25
27
  const bytes = await file.bytes();
26
28
  const base64 = bytes2base64(bytes);
27
29
  client_assets[pathname] = {
28
- mime: resolve(file.name),
30
+ mime: MIME.resolve(file.name),
29
31
  data: base64,
30
32
  };
31
33
  }
32
34
  const static_dir = app.root.join(location.static);
33
- const static_files = await static_dir.exists()
34
- ? await static_dir.collect()
35
- : [];
35
+ const static_files = await static_dir.files({
36
+ recursive: true,
37
+ });
36
38
  const static_assets = {};
37
39
  for (const file of static_files) {
38
40
  const pathname = file.debase(static_dir).path;
39
41
  const bytes = await file.bytes();
40
42
  const base64 = bytes2base64(bytes);
41
43
  static_assets[pathname] = {
42
- mime: resolve(file.name),
44
+ mime: MIME.resolve(file.name),
43
45
  data: base64,
44
46
  };
45
47
  }
@@ -1,9 +1,8 @@
1
- import fail from "#fail";
2
1
  export default function plugin_server_config(app) {
3
2
  return {
4
3
  name: "primate/server/config",
5
4
  setup(build) {
6
- build.onResolve({ filter: /^app:config$/ }, async () => {
5
+ build.onResolve({ filter: /^(\$:app)$/ }, async () => {
7
6
  const ts = app.path.config.join("app.ts");
8
7
  if (await ts.exists())
9
8
  return { path: ts.path };
@@ -34,8 +33,16 @@ export default function plugin_server_config(app) {
34
33
  const js = app.path.config.join(`${name}.js`);
35
34
  if (await js.exists())
36
35
  return { path: js.path };
37
- // should never happen as we only import when session_active is true
38
- throw fail(`missing config for ${name} in app/config`);
36
+ return {
37
+ path: `app-config-${name}-default`,
38
+ namespace: "primate-config-default",
39
+ };
40
+ });
41
+ build.onLoad({ filter: /^app-config-.+-default$/, namespace: "primate-config-default" }, () => {
42
+ return {
43
+ contents: "export default null;",
44
+ loader: "js",
45
+ };
39
46
  });
40
47
  },
41
48
  };
@@ -0,0 +1,4 @@
1
+ import type BuildApp from "#build/App";
2
+ import type { Plugin } from "esbuild";
3
+ export default function plugin_server_db_default(app: BuildApp): Plugin;
4
+ //# sourceMappingURL=db-default.d.ts.map
@@ -0,0 +1,45 @@
1
+ import fail from "#fail";
2
+ export default function plugin_server_db_default(app) {
3
+ const resolveDir = app.root.path;
4
+ const base = app.path.config.join("db");
5
+ const default_db = {
6
+ contents: "import db from \"primate/db\"; export default db();",
7
+ loader: "js",
8
+ resolveDir,
9
+ };
10
+ return {
11
+ name: "primate/server/db-default",
12
+ setup(build) {
13
+ build.onResolve({ filter: /^app:db/ }, () => {
14
+ return { path: "db-default", namespace: "primate-db" };
15
+ });
16
+ build.onLoad({ filter: /.*/, namespace: "primate-db" }, async () => {
17
+ if (!await base.exists())
18
+ return default_db;
19
+ const dbs = await base.files({
20
+ recursive: true,
21
+ filter: f => f.name.endsWith(".ts") || f.name.endsWith(".js"),
22
+ });
23
+ if (dbs.length === 0)
24
+ return default_db;
25
+ const by_name = {};
26
+ for (const d of dbs)
27
+ by_name[d.name] = d;
28
+ const pick = (stem) => by_name[`${stem}.ts`] ?? by_name[`${stem}.js`];
29
+ let db = pick("index") ?? pick("default");
30
+ if (db === undefined) {
31
+ if (dbs.length === 1)
32
+ db = dbs[0];
33
+ else
34
+ throw fail("multiple database drivers, add index or default.(t|j)s; found {0}", dbs.map(f => f.name).join(", "));
35
+ }
36
+ return {
37
+ contents: `export { default } from ${JSON.stringify(db.path)};`,
38
+ loader: "js",
39
+ resolveDir,
40
+ };
41
+ });
42
+ },
43
+ };
44
+ }
45
+ //# sourceMappingURL=db-default.js.map
@@ -1,11 +1,13 @@
1
- import FileRef from "@rcompat/fs/FileRef";
1
+ import fs from "@rcompat/fs";
2
2
  export default function plugin_server_frontend(app) {
3
3
  const filter = new RegExp(`(${app.frontendExtensions.map(e => e.replace(".", "\\.")).join("|")})$`);
4
4
  return {
5
5
  name: "primate/server/frontend",
6
6
  setup(build) {
7
+ if (app.frontendExtensions.length === 0)
8
+ return;
7
9
  build.onLoad({ filter, namespace: "file" }, async (args) => {
8
- const file = new FileRef(args.path);
10
+ const file = fs.ref(args.path);
9
11
  const binder = app.binder(file);
10
12
  if (!binder)
11
13
  return null;
@@ -0,0 +1,4 @@
1
+ import type BuildApp from "#build/App";
2
+ import type { Plugin } from "esbuild";
3
+ export default function plugin_server_live_reload(app: BuildApp): Plugin;
4
+ //# sourceMappingURL=live-reload.d.ts.map
@@ -1,9 +1,9 @@
1
1
  import fail from "#fail";
2
- export default function plugin_server_hot_reload(app) {
2
+ export default function plugin_server_live_reload(app) {
3
3
  let build_n = 0;
4
4
  let serve_app;
5
5
  return {
6
- name: "primate/server/hot-reload",
6
+ name: "primate/server/live-reload",
7
7
  setup(build) {
8
8
  build.onEnd(async (result) => {
9
9
  // don't do anything on errors
@@ -26,11 +26,11 @@ export default function plugin_server_hot_reload(app) {
26
26
  build_n++;
27
27
  }
28
28
  catch (err) {
29
- fail("[primate/server/hot-reload] failed to import {0}", filename);
29
+ fail("[primate/server/live-reload] failed to import {0}", filename);
30
30
  console.error(err);
31
31
  }
32
32
  });
33
33
  },
34
34
  };
35
35
  }
36
- //# sourceMappingURL=hot-reload.js.map
36
+ //# sourceMappingURL=live-reload.js.map
@@ -1,6 +1,6 @@
1
1
  import fail from "#fail";
2
2
  import log from "#log";
3
- import FileRef from "@rcompat/fs/FileRef";
3
+ import fs from "@rcompat/fs";
4
4
  import { createRequire } from "node:module";
5
5
  const requirer = createRequire(import.meta.url);
6
6
  export default function plugin_server_store(app) {
@@ -17,13 +17,15 @@ export default function plugin_server_store(app) {
17
17
  const module_path = requirer.resolve(args.path, {
18
18
  paths: [args.resolveDir],
19
19
  });
20
- const module_dir = new FileRef(module_path).directory;
20
+ const module_dir = fs.ref(module_path).directory;
21
21
  // built-ins have no .node and would otherwise cause global search
22
22
  if (module_dir.path === ".")
23
23
  return null;
24
24
  // check if this module has .node files
25
- const node_files = await module_dir
26
- .collect(f => f.path.endsWith(".node"));
25
+ const node_files = await module_dir.files({
26
+ recursive: true,
27
+ filter: info => info.path.endsWith(".node"),
28
+ });
27
29
  if (node_files.length > 0) {
28
30
  const platform = process.platform;
29
31
  const arch = process.arch;
@@ -1,6 +1,6 @@
1
- import pkg from "@rcompat/fs/project/package";
1
+ import fs from "@rcompat/fs";
2
2
  import { createRequire } from "node:module";
3
- const core_pkg = await pkg(import.meta.url);
3
+ const core_pkg = await fs.project.package(import.meta.dirname);
4
4
  const core_root = core_pkg.directory.path;
5
5
  const requirer = createRequire(import.meta.url);
6
6
  export default function plugin_server_node_imports(_app) {
@@ -1,6 +1,6 @@
1
1
  import fail from "#fail";
2
2
  import wrap from "#route/wrap";
3
- import FileRef from "@rcompat/fs/FileRef";
3
+ import fs from "@rcompat/fs";
4
4
  const contents = "export default {};";
5
5
  export default function plugin_server_route(app) {
6
6
  const path_routes = app.path.routes;
@@ -18,7 +18,7 @@ export default function plugin_server_route(app) {
18
18
  let file;
19
19
  let extension;
20
20
  for (const e of extensions) {
21
- const candidate = new FileRef(base.path + e);
21
+ const candidate = fs.ref(base.path + e);
22
22
  if (await candidate.exists()) {
23
23
  file = candidate;
24
24
  extension = e;
@@ -1,4 +1,4 @@
1
- import FileRef from "@rcompat/fs/FileRef";
1
+ import fs from "@rcompat/fs";
2
2
  export default function plugin_server_store_wrap(app) {
3
3
  return {
4
4
  name: "primate/server/store-wrap",
@@ -10,7 +10,7 @@ export default function plugin_server_store_wrap(app) {
10
10
  // only TS/JS
11
11
  if (!/\.([tj]s)$/.test(args.path))
12
12
  return null;
13
- const file = new FileRef(args.path);
13
+ const file = fs.ref(args.path);
14
14
  const storesRoot = app.path.stores.path;
15
15
  // only files under app/stores
16
16
  if (!file.path.startsWith(storesRoot + "/"))
@@ -1,4 +1,4 @@
1
- import FileRef from "@rcompat/fs/FileRef";
1
+ import fs from "@rcompat/fs";
2
2
  export default function plugin_server_store(app) {
3
3
  return {
4
4
  name: "primate/server/store",
@@ -11,10 +11,10 @@ export default function plugin_server_store(app) {
11
11
  const name = args.path;
12
12
  return {
13
13
  contents: `
14
- import database from "app:database";
15
- import wrap from "primate/database/wrap";
14
+ import db from "app:db";
15
+ import wrap from "primate/orm/wrap";
16
16
  import schema from "store:${name}";
17
- export default wrap("${name}", schema, database);
17
+ export default wrap("${name}", schema, db);
18
18
  `,
19
19
  loader: "js",
20
20
  resolveDir: app.path.stores.path,
@@ -23,7 +23,7 @@ export default function plugin_server_store(app) {
23
23
  build.onResolve({ filter: /^store:/ }, async (args) => {
24
24
  const name = args.path.slice("store:".length);
25
25
  for (const ext of app.extensions) {
26
- const file = new FileRef(`${app.path.stores.path}/${name}${ext}`);
26
+ const file = fs.ref(`${app.path.stores.path}/${name}${ext}`);
27
27
  if (await file.exists()) {
28
28
  // special namespace to bypass auto-wrap
29
29
  return { path: file.path, namespace: "primate-store-raw" };
@@ -32,7 +32,7 @@ export default function plugin_server_store(app) {
32
32
  return null;
33
33
  });
34
34
  build.onLoad({ filter: /.*/, namespace: "primate-store-raw" }, async (args) => {
35
- const file = new FileRef(args.path);
35
+ const file = fs.ref(args.path);
36
36
  const source = await file.text();
37
37
  return {
38
38
  contents: source,
@@ -1,5 +1,4 @@
1
- import FileRef from "@rcompat/fs/FileRef";
2
- const jts_re = /\.[jt]s$/;
1
+ import fs from "@rcompat/fs";
3
2
  export default function plugin_server_stores(app) {
4
3
  const base = app.path.stores;
5
4
  return {
@@ -9,12 +8,12 @@ export default function plugin_server_stores(app) {
9
8
  return { path: "stores-virtual", namespace: "primate-stores" };
10
9
  });
11
10
  build.onLoad({ filter: /.*/, namespace: "primate-stores" }, async () => {
12
- const stores = await Promise.all((await base.collect(file => jts_re.test(file.path)))
11
+ const stores = await Promise.all((await base.files({ recursive: true, filter: /\.[jt]s$/ }))
13
12
  .map(async (path) => `${path}`.replace(base.toString(), _ => "")));
14
13
  const contents = `
15
14
  const stores = {};
16
- ${stores.map(path => path.slice(1, -".js".length)).map((bare, i) => `import * as store${i} from "${FileRef.webpath(`app:store/${bare}`)}";
17
- stores["${FileRef.webpath(bare)}"] = store${i}.default;`).join("\n")}
15
+ ${stores.map(path => path.slice(1, -".js".length)).map((bare, i) => `import * as store${i} from "${fs.webpath(`app:store/${bare}`)}";
16
+ stores["${fs.webpath(bare)}"] = store${i}.default;`).join("\n")}
18
17
  export default stores;
19
18
  `;
20
19
  return { contents, loader: "js", resolveDir: app.root.path };
@@ -1,4 +1,4 @@
1
- import FileRef from "@rcompat/fs/FileRef";
1
+ import fs from "@rcompat/fs";
2
2
  export default function plugin_server_view(app) {
3
3
  return {
4
4
  name: "primate/server/view",
@@ -19,7 +19,7 @@ export default function plugin_server_view(app) {
19
19
  // couldn't resolve, don't interfere
20
20
  if (result.errors.length > 0 || !result.path)
21
21
  return null;
22
- const resolved = new FileRef(result.path);
22
+ const resolved = fs.ref(result.path);
23
23
  // must live under app.path.views (e.g. app/views/...)
24
24
  const views_root = app.path.views.path;
25
25
  if (!resolved.path.startsWith(views_root + "/"))
@@ -40,7 +40,7 @@ export default function plugin_server_view(app) {
40
40
  build.onResolve({ filter: /^view:/ }, async (args) => {
41
41
  const name = args.path.slice("view:".length);
42
42
  for (const ext of app.extensions) {
43
- const file = new FileRef(`${app.path.views.path}/${name}${ext}`);
43
+ const file = app.path.views.join(`${name}${ext}`);
44
44
  if (await file.exists()) {
45
45
  return { path: file.path, namespace: "primate-view-original" };
46
46
  }
@@ -48,7 +48,7 @@ export default function plugin_server_view(app) {
48
48
  return null;
49
49
  });
50
50
  build.onLoad({ filter: /.*/, namespace: "primate-view-original" }, async (args) => {
51
- const file = new FileRef(args.path);
51
+ const file = fs.ref(args.path);
52
52
  const binder = app.binder(file);
53
53
  if (!binder)
54
54
  return null;
@@ -1,4 +1,4 @@
1
- import FileRef from "@rcompat/fs/FileRef";
1
+ import fs from "@rcompat/fs";
2
2
  export default function plugin_server_views(app) {
3
3
  return {
4
4
  name: "primate/server/views",
@@ -7,15 +7,15 @@ export default function plugin_server_views(app) {
7
7
  return { path: "views-virtual", namespace: "primate-views" };
8
8
  });
9
9
  build.onLoad({ filter: /.*/, namespace: "primate-views" }, async () => {
10
- const files = await app.path.views.collect();
10
+ const files = await app.path.views.files({ recursive: true });
11
11
  const roots = Object.keys(app.roots);
12
12
  const contents = `
13
13
  const view = [];
14
14
  ${files.map((file, i) => {
15
15
  const path = app.basename(file, app.path.views);
16
16
  return `
17
- import * as view${i} from "${FileRef.webpath(`view:${path}`)}";
18
- view.push(["${FileRef.webpath(path)}", view${i}]);`;
17
+ import * as view${i} from "${fs.webpath(`view:${path}`)}";
18
+ view.push(["${fs.webpath(path)}", view${i}]);`;
19
19
  }).join("\n")}
20
20
 
21
21
  ${roots.map((filename, i) => `
@@ -1,6 +1,5 @@
1
- import pkg from "@rcompat/fs/project/package";
2
- const core_pkg = await pkg(import.meta.url);
3
- const core_root = core_pkg.directory;
1
+ import fs from "@rcompat/fs";
2
+ const core_pkg = await fs.project.root(import.meta.dirname);
4
3
  export default function plugin_server_virtual_pages(app) {
5
4
  return {
6
5
  name: "primate/server/virtual/pages",
@@ -9,15 +8,16 @@ export default function plugin_server_virtual_pages(app) {
9
8
  return { path: "pages-virtual", namespace: "primate-pages" };
10
9
  });
11
10
  build.onLoad({ filter: /.*/, namespace: "primate-pages" }, async () => {
12
- const html = /^.*\.html$/ui;
13
- const is_html = (file) => html.test(file.path);
14
- const defaults = core_root.join("lib", "private", "defaults");
11
+ const filter = /^.*\.html$/ui;
12
+ const defaults = core_pkg.join("lib", "private", "defaults");
15
13
  const pages = {};
16
- for (const file of await defaults.collect(is_html))
14
+ for (const file of await defaults.files({ filter })) {
17
15
  pages[file.name] = file;
16
+ }
18
17
  if (await app.path.pages.exists()) {
19
- for (const file of await app.path.pages.collect(is_html))
18
+ for (const file of await app.path.pages.files({ filter })) {
20
19
  pages[file.name] = file;
20
+ }
21
21
  }
22
22
  const entries = await Promise.all(Object.entries(pages).map(async ([name, file]) => {
23
23
  const text = await file.text();