@primate/core 0.4.6 → 0.6.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 (556) hide show
  1. package/lib/private/App.d.ts +771 -6
  2. package/lib/private/App.js +49 -16
  3. package/lib/private/Binder.d.ts +2 -2
  4. package/lib/private/Flags.d.ts +8 -4
  5. package/lib/private/Module.d.ts +4 -16
  6. package/lib/private/Module.js +1 -17
  7. package/lib/private/app/EnvSchema.d.ts +5 -0
  8. package/lib/private/app/EnvSchema.js +2 -0
  9. package/lib/private/app/Facade.browser.d.ts +11 -0
  10. package/lib/private/app/Facade.browser.js +19 -0
  11. package/lib/private/app/Facade.d.ts +811 -0
  12. package/lib/private/app/Facade.js +56 -0
  13. package/lib/private/asset/Asset.d.ts +1 -1
  14. package/lib/private/build/App.d.ts +2 -2
  15. package/lib/private/build/App.js +0 -2
  16. package/lib/private/build/client/index.js +19 -10
  17. package/lib/private/build/client/plugin/app-request.d.ts +4 -0
  18. package/lib/private/build/client/plugin/app-request.js +19 -0
  19. package/lib/private/build/client/plugin/view.d.ts +4 -0
  20. package/lib/private/build/client/plugin/view.js +13 -0
  21. package/lib/private/build/hook.d.ts +1 -2
  22. package/lib/private/build/hook.js +25 -19
  23. package/lib/private/build/index.d.ts +2 -1
  24. package/lib/private/build/index.js +27 -27
  25. package/lib/private/build/presets.d.ts +10 -0
  26. package/lib/private/build/presets.js +39 -0
  27. package/lib/private/build/server/index.js +10 -14
  28. package/lib/private/build/server/plugin/app-request.d.ts +4 -0
  29. package/lib/private/build/server/plugin/app-request.js +19 -0
  30. package/lib/private/build/server/plugin/assets.js +9 -7
  31. package/lib/private/build/server/plugin/config.js +11 -4
  32. package/lib/private/build/server/plugin/frontend.js +4 -2
  33. package/lib/private/build/server/plugin/live-reload.d.ts +4 -0
  34. package/lib/private/build/server/plugin/{hot-reload.js → live-reload.js} +12 -12
  35. package/lib/private/build/server/plugin/native-addons.js +10 -11
  36. package/lib/private/build/server/plugin/node-imports.js +2 -2
  37. package/lib/private/build/server/plugin/route.js +4 -4
  38. package/lib/private/build/server/plugin/store.js +11 -33
  39. package/lib/private/build/server/plugin/stores.js +12 -9
  40. package/lib/private/build/server/plugin/view.js +5 -5
  41. package/lib/private/build/server/plugin/views.js +4 -4
  42. package/lib/private/build/server/plugin/virtual-pages.js +8 -8
  43. package/lib/private/build/server/plugin/virtual-routes.js +8 -13
  44. package/lib/private/build/server/plugin/wasm.js +2 -3
  45. package/lib/private/build/shared/plugin/app-request.d.ts +4 -0
  46. package/lib/private/build/shared/plugin/app-request.js +19 -0
  47. package/lib/private/bye.js +2 -3
  48. package/lib/private/client/Data.d.ts +3 -2
  49. package/lib/private/client/Render.d.ts +8 -0
  50. package/lib/private/{frontend → client}/ServerData.d.ts +1 -1
  51. package/lib/private/client/ServerView.d.ts +4 -0
  52. package/lib/private/client/ValidateInit.d.ts +1 -3
  53. package/lib/private/client/ValidationError.d.ts +1 -1
  54. package/lib/private/{frontend → client}/View.d.ts +1 -1
  55. package/lib/private/{frontend → client}/ViewOptions.d.ts +1 -1
  56. package/lib/private/{frontend → client}/ViewResponse.d.ts +2 -2
  57. package/lib/private/client/app.js +3 -3
  58. package/lib/private/client/boot.d.ts +5 -0
  59. package/lib/private/client/boot.js +64 -0
  60. package/lib/private/client/create-form.d.ts +32 -0
  61. package/lib/private/client/create-form.js +123 -0
  62. package/lib/private/client/extract-issues.d.ts +4 -0
  63. package/lib/private/client/extract-issues.js +21 -0
  64. package/lib/private/client/http.d.ts +13 -0
  65. package/lib/private/client/http.js +57 -0
  66. package/lib/private/client/index.d.ts +23 -0
  67. package/lib/private/client/index.js +16 -0
  68. package/lib/private/client/navigate.d.ts +13 -0
  69. package/lib/private/client/navigate.js +67 -0
  70. package/lib/private/client/root.d.ts +9 -0
  71. package/lib/private/client/root.js +11 -0
  72. package/lib/private/client/submit.d.ts +2 -0
  73. package/lib/private/client/submit.js +41 -0
  74. package/lib/private/client/{toValidated.d.ts → to-validated.d.ts} +2 -4
  75. package/lib/private/client/{toValidated.js → to-validated.js} +1 -1
  76. package/lib/private/client/validate-field.d.ts +3 -0
  77. package/lib/private/client/validate-field.js +41 -0
  78. package/lib/private/config/index.d.ts +7 -21
  79. package/lib/private/config/index.js +4 -1
  80. package/lib/private/config/schema.d.ts +82 -22
  81. package/lib/private/config/schema.js +25 -7
  82. package/lib/private/cookie.d.ts +12 -6
  83. package/lib/private/cookie.js +10 -14
  84. package/lib/private/db/As.d.ts +10 -0
  85. package/lib/private/db/DB.d.ts +49 -0
  86. package/lib/private/db/DB.js +3 -0
  87. package/lib/private/db/DataDict.d.ts +5 -0
  88. package/lib/private/db/DataKey.d.ts +4 -0
  89. package/lib/private/db/DataValue.d.ts +17 -0
  90. package/lib/private/db/MemoryDB.d.ts +33 -0
  91. package/lib/private/db/MemoryDB.js +335 -0
  92. package/lib/private/db/PK.d.ts +3 -0
  93. package/lib/private/db/PK.js +2 -0
  94. package/lib/private/{database → db}/Query.d.ts +2 -2
  95. package/lib/private/{database → db}/QueryBuilder.d.ts +2 -3
  96. package/lib/private/db/ReadArgs.d.ts +9 -0
  97. package/lib/private/db/ReadArgs.js +2 -0
  98. package/lib/private/db/ReadRelationsArgs.d.ts +6 -0
  99. package/lib/private/db/ReadRelationsArgs.js +2 -0
  100. package/lib/private/{database → db}/Schema.d.ts +1 -2
  101. package/lib/private/db/Sort.d.ts +4 -0
  102. package/lib/private/{database → db}/TypeMap.d.ts +2 -3
  103. package/lib/private/{database → db}/Types.d.ts +1 -1
  104. package/lib/private/db/With.d.ts +16 -0
  105. package/lib/private/db/With.js +2 -0
  106. package/lib/private/db/common.d.ts +25 -0
  107. package/lib/private/db/common.js +67 -0
  108. package/lib/private/db/errors.d.ts +104 -0
  109. package/lib/private/db/errors.js +237 -0
  110. package/lib/private/db/migrate/apply.d.ts +2 -0
  111. package/lib/private/db/migrate/apply.js +32 -0
  112. package/lib/private/db/migrate/bundle.d.ts +3 -0
  113. package/lib/private/db/migrate/bundle.js +22 -0
  114. package/lib/private/db/migrate/create.d.ts +2 -0
  115. package/lib/private/db/migrate/create.js +154 -0
  116. package/lib/private/db/migrate/index.d.ts +10 -0
  117. package/lib/private/db/migrate/index.js +6 -0
  118. package/lib/private/db/migrate/status.d.ts +2 -0
  119. package/lib/private/db/migrate/status.js +38 -0
  120. package/lib/private/db/migrate/store.d.ts +5 -0
  121. package/lib/private/db/migrate/store.js +33 -0
  122. package/lib/private/db/sql.d.ts +28 -0
  123. package/lib/private/db/sql.js +177 -0
  124. package/lib/private/db/storage.d.ts +3 -0
  125. package/lib/private/db/storage.js +3 -0
  126. package/lib/private/db/symbol.js +2 -0
  127. package/lib/private/db/test.d.ts +4 -0
  128. package/lib/private/db/test.js +1750 -0
  129. package/lib/private/errors.d.ts +88 -0
  130. package/lib/private/errors.js +211 -0
  131. package/lib/private/frontend.d.ts +72 -0
  132. package/lib/private/frontend.js +245 -0
  133. package/lib/private/hash.js +0 -1
  134. package/lib/private/i18n/Catalog.d.ts +5 -2
  135. package/lib/private/i18n/Formatter.js +21 -9
  136. package/lib/private/i18n/errors.d.ts +16 -0
  137. package/lib/private/i18n/errors.js +27 -0
  138. package/lib/private/i18n/format.d.ts +4 -0
  139. package/lib/private/i18n/format.js +95 -0
  140. package/lib/private/i18n/index/client.d.ts +9 -0
  141. package/lib/private/i18n/index/client.js +152 -0
  142. package/lib/private/i18n/index/server.d.ts +9 -0
  143. package/lib/private/i18n/index/server.js +57 -0
  144. package/lib/private/i18n/index/types.d.ts +33 -0
  145. package/lib/private/i18n/index/types.js +2 -0
  146. package/lib/private/i18n/locale.d.ts +9 -3
  147. package/lib/private/i18n/module.d.ts +3 -0
  148. package/lib/private/i18n/module.js +115 -0
  149. package/lib/private/i18n/ordinals.d.ts +1 -1
  150. package/lib/private/i18n/resolve.d.ts +7 -0
  151. package/lib/private/i18n/resolve.js +30 -0
  152. package/lib/private/i18n/schema.d.ts +10 -5
  153. package/lib/private/i18n/schema.js +6 -10
  154. package/lib/private/i18n/storage.d.ts +3 -0
  155. package/lib/private/i18n/storage.js +5 -0
  156. package/lib/private/i18n/validate.d.ts +2 -0
  157. package/lib/private/i18n/validate.js +19 -0
  158. package/lib/private/index.d.ts +14 -0
  159. package/lib/private/index.js +2 -0
  160. package/lib/private/log.d.ts +1 -0
  161. package/lib/private/log.js +15 -14
  162. package/lib/private/module/Hook.d.ts +1 -1
  163. package/lib/private/module/Next.d.ts +1 -1
  164. package/lib/private/module/Setup.d.ts +21 -0
  165. package/lib/private/module/Setup.js +2 -0
  166. package/lib/private/module/create.d.ts +16 -0
  167. package/lib/private/module/create.js +28 -0
  168. package/lib/private/orm/ExtractSchema.d.ts +9 -0
  169. package/lib/private/orm/ExtractSchema.js +2 -0
  170. package/lib/private/orm/ForeignKey.d.ts +14 -0
  171. package/lib/private/orm/ForeignKey.js +25 -0
  172. package/lib/private/orm/PrimaryKey.d.ts +17 -0
  173. package/lib/private/orm/PrimaryKey.js +38 -0
  174. package/lib/private/orm/StoreInput.d.ts +10 -0
  175. package/lib/private/orm/StoreInput.js +2 -0
  176. package/lib/private/orm/key.d.ts +8 -0
  177. package/lib/private/orm/key.js +8 -0
  178. package/lib/private/orm/parse.d.ts +13 -0
  179. package/lib/private/orm/parse.js +29 -0
  180. package/lib/private/orm/relation.d.ts +43 -0
  181. package/lib/private/orm/relation.js +26 -0
  182. package/lib/private/orm/store.d.ts +187 -0
  183. package/lib/private/orm/store.js +542 -0
  184. package/lib/private/paths.d.ts +2 -2
  185. package/lib/private/paths.js +3 -3
  186. package/lib/private/request/RequestBag.d.ts +5 -1
  187. package/lib/private/request/RequestBag.js +16 -9
  188. package/lib/private/request/RequestBody.d.ts +6 -11
  189. package/lib/private/request/RequestBody.js +51 -59
  190. package/lib/private/request/RequestContext.d.ts +12 -0
  191. package/lib/private/request/RequestContext.js +31 -0
  192. package/lib/private/request/RequestFacade.d.ts +11 -6
  193. package/lib/private/request/RequestPublic.d.ts +9 -0
  194. package/lib/private/request/RequestPublic.js +2 -0
  195. package/lib/private/request/RequestView.d.ts +11 -0
  196. package/lib/private/request/RequestView.js +3 -0
  197. package/lib/private/request/handle.d.ts +4 -0
  198. package/lib/private/request/handle.js +18 -0
  199. package/lib/private/request/parse.d.ts +2 -2
  200. package/lib/private/request/parse.js +55 -16
  201. package/lib/private/request/route.js +37 -22
  202. package/lib/private/request/router.d.ts +1 -1
  203. package/lib/private/request/router.js +22 -50
  204. package/lib/private/{database/symbol/wrap.d.ts → request/sContext.d.ts} +1 -1
  205. package/lib/private/request/sContext.js +2 -0
  206. package/lib/private/request/storage.d.ts +4 -0
  207. package/lib/private/request/storage.js +5 -0
  208. package/lib/private/response/ResponseFunction.d.ts +2 -3
  209. package/lib/private/response/ResponseLike.d.ts +1 -1
  210. package/lib/private/response/binary.d.ts +1 -1
  211. package/lib/private/response/binary.js +4 -3
  212. package/lib/private/response/error.d.ts +1 -1
  213. package/lib/private/response/error.js +1 -1
  214. package/lib/private/response/json.d.ts +1 -1
  215. package/lib/private/response/json.js +2 -2
  216. package/lib/private/response/redirect.d.ts +5 -5
  217. package/lib/private/response/redirect.js +9 -10
  218. package/lib/private/response/respond.js +16 -17
  219. package/lib/private/response/sse.d.ts +1 -1
  220. package/lib/private/response/sse.js +2 -2
  221. package/lib/private/response/text.d.ts +1 -1
  222. package/lib/private/response/text.js +3 -3
  223. package/lib/private/response/view.d.ts +3 -3
  224. package/lib/private/response/view.js +7 -14
  225. package/lib/private/response/ws.d.ts +1 -1
  226. package/lib/private/response.d.ts +1 -1
  227. package/lib/private/route/Handler.d.ts +1 -1
  228. package/lib/private/route/hook.d.ts +6 -0
  229. package/lib/private/route/hook.js +5 -0
  230. package/lib/private/route/router.d.ts +6 -2
  231. package/lib/private/route/router.js +32 -18
  232. package/lib/private/route/wrap.js +2 -2
  233. package/lib/private/serve/App.d.ts +11 -25
  234. package/lib/private/serve/App.js +138 -120
  235. package/lib/private/serve/Init.d.ts +5 -5
  236. package/lib/private/serve/dev-module.d.ts +2 -0
  237. package/lib/private/serve/dev-module.js +34 -0
  238. package/lib/private/serve/hook.d.ts +1 -2
  239. package/lib/private/serve/hook.js +2 -9
  240. package/lib/private/serve/index.d.ts +1 -1
  241. package/lib/private/serve/index.js +36 -2
  242. package/lib/private/server/TAG.d.ts +3 -0
  243. package/lib/private/server/TAG.js +2 -0
  244. package/lib/private/server/index.d.ts +5 -0
  245. package/lib/private/server/index.js +6 -0
  246. package/lib/private/session/Data.d.ts +1 -2
  247. package/lib/private/session/SessionHandle.d.ts +1 -1
  248. package/lib/private/session/SessionHandle.js +11 -9
  249. package/lib/private/session/index.d.ts +3 -4
  250. package/lib/private/session/module.d.ts +3 -0
  251. package/lib/private/session/module.js +114 -0
  252. package/lib/private/session/schema.d.ts +17 -9
  253. package/lib/private/session/schema.js +11 -6
  254. package/lib/private/session/storage.d.ts +1 -2
  255. package/lib/private/session/storage.js +2 -2
  256. package/lib/private/tags.js +2 -2
  257. package/lib/private/target/Manager.js +6 -12
  258. package/lib/private/target/Target.d.ts +1 -1
  259. package/lib/public/AppFacade.d.ts +2 -0
  260. package/lib/public/AppFacade.js +2 -0
  261. package/lib/public/build/presets.d.ts +2 -0
  262. package/lib/public/build/presets.js +2 -0
  263. package/lib/public/build/transform.d.ts +2 -0
  264. package/lib/public/build/transform.js +2 -0
  265. package/lib/public/client.d.ts +3 -0
  266. package/lib/public/client.js +2 -0
  267. package/lib/public/db/MemoryDB.d.ts +2 -0
  268. package/lib/public/db/MemoryDB.js +2 -0
  269. package/lib/public/db/errors.d.ts +2 -0
  270. package/lib/public/db/errors.js +2 -0
  271. package/lib/public/db/migrate.d.ts +2 -0
  272. package/lib/public/db/migrate.js +2 -0
  273. package/lib/public/db/sql.d.ts +2 -0
  274. package/lib/public/db/sql.js +2 -0
  275. package/lib/public/db/test.d.ts +2 -0
  276. package/lib/public/db/test.js +2 -0
  277. package/lib/public/db.d.ts +12 -0
  278. package/lib/public/db.js +2 -0
  279. package/lib/public/frontend.d.ts +3 -0
  280. package/lib/public/frontend.js +2 -0
  281. package/lib/public/index.d.ts +2 -0
  282. package/lib/public/index.js +2 -0
  283. package/lib/public/orm/key.d.ts +2 -0
  284. package/lib/public/orm/key.js +2 -0
  285. package/lib/public/orm/relation.d.ts +2 -0
  286. package/lib/public/orm/relation.js +2 -0
  287. package/lib/public/orm/store.d.ts +2 -0
  288. package/lib/public/orm/store.js +2 -0
  289. package/lib/public/request/server.d.ts +5 -0
  290. package/lib/public/request/server.js +7 -0
  291. package/lib/public/response.d.ts +22 -0
  292. package/lib/public/response.js +19 -0
  293. package/lib/public/route/hook.d.ts +2 -0
  294. package/lib/public/route/hook.js +2 -0
  295. package/lib/public/server.d.ts +3 -0
  296. package/lib/public/server.js +2 -0
  297. package/package.json +40 -30
  298. package/lib/private/AppError.d.ts +0 -4
  299. package/lib/private/AppError.js +0 -8
  300. package/lib/private/backend/Module.d.ts +0 -18
  301. package/lib/private/backend/Module.js +0 -22
  302. package/lib/private/backend/TAG.d.ts +0 -3
  303. package/lib/private/backend/TAG.js +0 -2
  304. package/lib/private/build/client/reload.d.ts +0 -7
  305. package/lib/private/build/client/reload.js +0 -6
  306. package/lib/private/build/server/plugin/database-default.d.ts +0 -4
  307. package/lib/private/build/server/plugin/database-default.js +0 -48
  308. package/lib/private/build/server/plugin/hot-reload.d.ts +0 -4
  309. package/lib/private/build/server/plugin/store-wrap.d.ts +0 -4
  310. package/lib/private/build/server/plugin/store-wrap.js +0 -33
  311. package/lib/private/client/spa/index.d.ts +0 -6
  312. package/lib/private/client/spa/index.js +0 -201
  313. package/lib/private/client/validate.d.ts +0 -3
  314. package/lib/private/client/validate.js +0 -54
  315. package/lib/private/database/As.d.ts +0 -7
  316. package/lib/private/database/Binds.d.ts +0 -4
  317. package/lib/private/database/Binds.js +0 -2
  318. package/lib/private/database/Changes.d.ts +0 -11
  319. package/lib/private/database/Changes.js +0 -2
  320. package/lib/private/database/ColumnTypes.d.ts +0 -11
  321. package/lib/private/database/ColumnTypes.js +0 -2
  322. package/lib/private/database/DataDict.d.ts +0 -5
  323. package/lib/private/database/DataKey.d.ts +0 -4
  324. package/lib/private/database/DataValue.d.ts +0 -5
  325. package/lib/private/database/Database.d.ts +0 -56
  326. package/lib/private/database/Database.js +0 -153
  327. package/lib/private/database/InMemoryDatabase.d.ts +0 -37
  328. package/lib/private/database/InMemoryDatabase.js +0 -181
  329. package/lib/private/database/Sort.d.ts +0 -4
  330. package/lib/private/database/Store.d.ts +0 -172
  331. package/lib/private/database/Store.js +0 -261
  332. package/lib/private/database/storage.d.ts +0 -4
  333. package/lib/private/database/storage.js +0 -3
  334. package/lib/private/database/symbol/wrap.js +0 -2
  335. package/lib/private/database/symbol.js +0 -2
  336. package/lib/private/database/test.d.ts +0 -4
  337. package/lib/private/database/test.js +0 -678
  338. package/lib/private/database/wrap.d.ts +0 -5
  339. package/lib/private/database/wrap.js +0 -5
  340. package/lib/private/fail.d.ts +0 -3
  341. package/lib/private/fail.js +0 -5
  342. package/lib/private/frontend/Module.d.ts +0 -62
  343. package/lib/private/frontend/Module.js +0 -250
  344. package/lib/private/frontend/Render.d.ts +0 -9
  345. package/lib/private/frontend/ServerView.d.ts +0 -5
  346. package/lib/private/i18n/Module.d.ts +0 -16
  347. package/lib/private/i18n/Module.js +0 -122
  348. package/lib/private/i18n/index.d.ts +0 -28
  349. package/lib/private/i18n/index.js +0 -236
  350. package/lib/private/module/BuildHook.d.ts +0 -5
  351. package/lib/private/module/BuildHook.js +0 -2
  352. package/lib/private/module/NextBuild.d.ts +0 -5
  353. package/lib/private/module/NextBuild.js +0 -2
  354. package/lib/private/module/NextServe.d.ts +0 -5
  355. package/lib/private/module/NextServe.js +0 -2
  356. package/lib/private/reducer.d.ts +0 -24
  357. package/lib/private/reducer.js +0 -10
  358. package/lib/private/route/guard.d.ts +0 -4
  359. package/lib/private/route/guard.js +0 -22
  360. package/lib/private/serve/module/Dev.d.ts +0 -11
  361. package/lib/private/serve/module/Dev.js +0 -28
  362. package/lib/private/serve/module/Handle.d.ts +0 -10
  363. package/lib/private/serve/module/Handle.js +0 -15
  364. package/lib/private/session/SessionModule.d.ts +0 -14
  365. package/lib/private/session/SessionModule.js +0 -122
  366. package/lib/private/wasm/API.d.ts +0 -7
  367. package/lib/private/wasm/API.js +0 -2
  368. package/lib/private/wasm/BufferViewSource.d.ts +0 -4
  369. package/lib/private/wasm/BufferViewSource.js +0 -2
  370. package/lib/private/wasm/Exports.d.ts +0 -23
  371. package/lib/private/wasm/Exports.js +0 -2
  372. package/lib/private/wasm/I32.d.ts +0 -5
  373. package/lib/private/wasm/I32.js +0 -2
  374. package/lib/private/wasm/I32_SIZE.d.ts +0 -3
  375. package/lib/private/wasm/I32_SIZE.js +0 -2
  376. package/lib/private/wasm/Instantiation.d.ts +0 -12
  377. package/lib/private/wasm/Instantiation.js +0 -2
  378. package/lib/private/wasm/Tagged.d.ts +0 -7
  379. package/lib/private/wasm/Tagged.js +0 -2
  380. package/lib/private/wasm/buffersize.d.ts +0 -2
  381. package/lib/private/wasm/buffersize.js +0 -5
  382. package/lib/private/wasm/decode-bytes.d.ts +0 -3
  383. package/lib/private/wasm/decode-bytes.js +0 -5
  384. package/lib/private/wasm/decode-json.d.ts +0 -7
  385. package/lib/private/wasm/decode-json.js +0 -11
  386. package/lib/private/wasm/decode-option.d.ts +0 -5
  387. package/lib/private/wasm/decode-option.js +0 -10
  388. package/lib/private/wasm/decode-response.d.ts +0 -19
  389. package/lib/private/wasm/decode-response.js +0 -90
  390. package/lib/private/wasm/decode-string.d.ts +0 -3
  391. package/lib/private/wasm/decode-string.js +0 -5
  392. package/lib/private/wasm/decode-websocket-close.d.ts +0 -5
  393. package/lib/private/wasm/decode-websocket-close.js +0 -6
  394. package/lib/private/wasm/decode-websocket-send.d.ts +0 -6
  395. package/lib/private/wasm/decode-websocket-send.js +0 -19
  396. package/lib/private/wasm/encode-buffer.d.ts +0 -3
  397. package/lib/private/wasm/encode-buffer.js +0 -6
  398. package/lib/private/wasm/encode-request.d.ts +0 -9
  399. package/lib/private/wasm/encode-request.js +0 -195
  400. package/lib/private/wasm/encode-session.d.ts +0 -3
  401. package/lib/private/wasm/encode-session.js +0 -25
  402. package/lib/private/wasm/encode-string-map.d.ts +0 -5
  403. package/lib/private/wasm/encode-string-map.js +0 -14
  404. package/lib/private/wasm/encode-string.d.ts +0 -13
  405. package/lib/private/wasm/encode-string.js +0 -17
  406. package/lib/private/wasm/encode-url.d.ts +0 -11
  407. package/lib/private/wasm/encode-url.js +0 -14
  408. package/lib/private/wasm/encode-websocket-close.d.ts +0 -2
  409. package/lib/private/wasm/encode-websocket-close.js +0 -7
  410. package/lib/private/wasm/encode-websocket-message.d.ts +0 -4
  411. package/lib/private/wasm/encode-websocket-message.js +0 -30
  412. package/lib/private/wasm/encode-websocket-open.d.ts +0 -2
  413. package/lib/private/wasm/encode-websocket-open.js +0 -7
  414. package/lib/private/wasm/filesize.d.ts +0 -2
  415. package/lib/private/wasm/filesize.js +0 -8
  416. package/lib/private/wasm/instantiate.d.ts +0 -37
  417. package/lib/private/wasm/instantiate.js +0 -408
  418. package/lib/private/wasm/open-websocket.d.ts +0 -4
  419. package/lib/private/wasm/open-websocket.js +0 -26
  420. package/lib/private/wasm/stringsize.d.ts +0 -3
  421. package/lib/private/wasm/stringsize.js +0 -5
  422. package/lib/private/wasm/urlsize.d.ts +0 -2
  423. package/lib/private/wasm/urlsize.js +0 -5
  424. package/lib/public/App.d.ts +0 -2
  425. package/lib/public/App.js +0 -2
  426. package/lib/public/AppError.d.ts +0 -2
  427. package/lib/public/AppError.js +0 -2
  428. package/lib/public/BuildApp.d.ts +0 -2
  429. package/lib/public/BuildApp.js +0 -2
  430. package/lib/public/BuildHook.d.ts +0 -2
  431. package/lib/public/BuildHook.js +0 -2
  432. package/lib/public/Database.d.ts +0 -2
  433. package/lib/public/Database.js +0 -2
  434. package/lib/public/Mode.d.ts +0 -2
  435. package/lib/public/Mode.js +0 -2
  436. package/lib/public/Module.d.ts +0 -2
  437. package/lib/public/Module.js +0 -2
  438. package/lib/public/Next.d.ts +0 -2
  439. package/lib/public/Next.js +0 -2
  440. package/lib/public/NextBuild.d.ts +0 -2
  441. package/lib/public/NextBuild.js +0 -2
  442. package/lib/public/NextHandle.d.ts +0 -2
  443. package/lib/public/NextHandle.js +0 -2
  444. package/lib/public/NextRoute.d.ts +0 -3
  445. package/lib/public/NextRoute.js +0 -2
  446. package/lib/public/NextServe.d.ts +0 -2
  447. package/lib/public/NextServe.js +0 -2
  448. package/lib/public/ServeApp.d.ts +0 -2
  449. package/lib/public/ServeApp.js +0 -2
  450. package/lib/public/Target.d.ts +0 -2
  451. package/lib/public/Target.js +0 -2
  452. package/lib/public/backend/Module.d.ts +0 -2
  453. package/lib/public/backend/Module.js +0 -2
  454. package/lib/public/backend/TAG.d.ts +0 -2
  455. package/lib/public/backend/TAG.js +0 -2
  456. package/lib/public/client/Data.d.ts +0 -2
  457. package/lib/public/client/Data.js +0 -2
  458. package/lib/public/client/ValidateInit.d.ts +0 -2
  459. package/lib/public/client/ValidateInit.js +0 -2
  460. package/lib/public/client/ValidateUpdater.d.ts +0 -2
  461. package/lib/public/client/ValidateUpdater.js +0 -2
  462. package/lib/public/client/ValidationError.d.ts +0 -2
  463. package/lib/public/client/ValidationError.js +0 -2
  464. package/lib/public/client/spa.d.ts +0 -2
  465. package/lib/public/client/spa.js +0 -2
  466. package/lib/public/client/toValidated.d.ts +0 -2
  467. package/lib/public/client/toValidated.js +0 -2
  468. package/lib/public/client/validate.d.ts +0 -2
  469. package/lib/public/client/validate.js +0 -2
  470. package/lib/public/database/As.d.ts +0 -2
  471. package/lib/public/database/As.js +0 -2
  472. package/lib/public/database/DataDict.d.ts +0 -2
  473. package/lib/public/database/DataDict.js +0 -2
  474. package/lib/public/database/InMemoryDatabase.d.ts +0 -2
  475. package/lib/public/database/InMemoryDatabase.js +0 -2
  476. package/lib/public/database/Sort.d.ts +0 -2
  477. package/lib/public/database/Sort.js +0 -2
  478. package/lib/public/database/Store.d.ts +0 -2
  479. package/lib/public/database/Store.js +0 -2
  480. package/lib/public/database/TypeMap.d.ts +0 -2
  481. package/lib/public/database/TypeMap.js +0 -2
  482. package/lib/public/database/Types.d.ts +0 -2
  483. package/lib/public/database/Types.js +0 -2
  484. package/lib/public/database/test.d.ts +0 -2
  485. package/lib/public/database/test.js +0 -2
  486. package/lib/public/database/wrap.d.ts +0 -2
  487. package/lib/public/database/wrap.js +0 -2
  488. package/lib/public/fail.d.ts +0 -2
  489. package/lib/public/fail.js +0 -2
  490. package/lib/public/frontend/Module.d.ts +0 -2
  491. package/lib/public/frontend/Module.js +0 -2
  492. package/lib/public/frontend/Publish.d.ts +0 -2
  493. package/lib/public/frontend/Publish.js +0 -2
  494. package/lib/public/frontend/Render.d.ts +0 -2
  495. package/lib/public/frontend/Render.js +0 -2
  496. package/lib/public/frontend/ViewResponse.d.ts +0 -2
  497. package/lib/public/frontend/ViewResponse.js +0 -2
  498. package/lib/public/request/RequestBody.d.ts +0 -2
  499. package/lib/public/request/RequestBody.js +0 -2
  500. package/lib/public/request/RequestFacade.d.ts +0 -2
  501. package/lib/public/request/RequestFacade.js +0 -2
  502. package/lib/public/request/Verb.d.ts +0 -2
  503. package/lib/public/request/Verb.js +0 -2
  504. package/lib/public/response/ResponseFunction.d.ts +0 -2
  505. package/lib/public/response/ResponseFunction.js +0 -2
  506. package/lib/public/response/ResponseLike.d.ts +0 -2
  507. package/lib/public/response/ResponseLike.js +0 -2
  508. package/lib/public/response/binary.d.ts +0 -2
  509. package/lib/public/response/binary.js +0 -2
  510. package/lib/public/response/error.d.ts +0 -2
  511. package/lib/public/response/error.js +0 -2
  512. package/lib/public/response/json.d.ts +0 -2
  513. package/lib/public/response/json.js +0 -2
  514. package/lib/public/response/redirect.d.ts +0 -2
  515. package/lib/public/response/redirect.js +0 -2
  516. package/lib/public/response/sse.d.ts +0 -2
  517. package/lib/public/response/sse.js +0 -2
  518. package/lib/public/response/text.d.ts +0 -2
  519. package/lib/public/response/text.js +0 -2
  520. package/lib/public/response/view.d.ts +0 -2
  521. package/lib/public/response/view.js +0 -2
  522. package/lib/public/response/ws.d.ts +0 -2
  523. package/lib/public/response/ws.js +0 -2
  524. package/lib/public/wasm/decode-json.d.ts +0 -5
  525. package/lib/public/wasm/decode-json.js +0 -3
  526. package/lib/public/wasm/decode-response.d.ts +0 -3
  527. package/lib/public/wasm/decode-response.js +0 -3
  528. package/lib/public/wasm/encode-request.d.ts +0 -3
  529. package/lib/public/wasm/encode-request.js +0 -3
  530. package/lib/public/wasm/encode-session.d.ts +0 -3
  531. package/lib/public/wasm/encode-session.js +0 -3
  532. package/lib/public/wasm/instantiate.d.ts +0 -4
  533. package/lib/public/wasm/instantiate.js +0 -3
  534. /package/lib/private/{frontend → client}/Publish.d.ts +0 -0
  535. /package/lib/private/{frontend → client}/Publish.js +0 -0
  536. /package/lib/private/{frontend → client}/Render.js +0 -0
  537. /package/lib/private/{frontend → client}/ServerData.js +0 -0
  538. /package/lib/private/{frontend → client}/ServerView.js +0 -0
  539. /package/lib/private/{frontend → client}/View.js +0 -0
  540. /package/lib/private/{frontend → client}/ViewOptions.js +0 -0
  541. /package/lib/private/{frontend → client}/ViewResponse.js +0 -0
  542. /package/lib/private/client/{spa/storage.d.ts → storage.d.ts} +0 -0
  543. /package/lib/private/client/{spa/storage.js → storage.js} +0 -0
  544. /package/lib/private/{database → db}/As.js +0 -0
  545. /package/lib/private/{database → db}/DataDict.js +0 -0
  546. /package/lib/private/{database → db}/DataKey.js +0 -0
  547. /package/lib/private/{database → db}/DataValue.js +0 -0
  548. /package/lib/private/{database → db}/Query.js +0 -0
  549. /package/lib/private/{database → db}/QueryBuilder.js +0 -0
  550. /package/lib/private/{database → db}/Schema.js +0 -0
  551. /package/lib/private/{database → db}/Sort.js +0 -0
  552. /package/lib/private/{database → db}/TypeMap.js +0 -0
  553. /package/lib/private/{database → db}/Types.js +0 -0
  554. /package/lib/private/{database → db}/primary.d.ts +0 -0
  555. /package/lib/private/{database → db}/primary.js +0 -0
  556. /package/lib/private/{database → db}/symbol.d.ts +0 -0
@@ -1,36 +1,36 @@
1
- import fail from "#fail";
2
- export default function plugin_server_hot_reload(app) {
1
+ import E from "#errors";
2
+ import is from "@rcompat/is";
3
+ export default function plugin_server_live_reload(app) {
3
4
  let build_n = 0;
4
5
  let serve_app;
5
6
  return {
6
- name: "primate/server/hot-reload",
7
+ name: "primate/server/live-reload",
7
8
  setup(build) {
8
9
  build.onEnd(async (result) => {
9
10
  // don't do anything on errors
10
- if (result.errors.length)
11
+ if (result.errors.length > 0)
11
12
  return;
12
13
  // we expect a single bundled file
13
- const outFile = result.outputFiles?.[0];
14
- if (!outFile)
14
+ const out_file = result.outputFiles?.[0];
15
+ if (is.undefined(out_file))
15
16
  return;
16
17
  const filename = `server.${build_n}.js`;
17
18
  const s = app.path.build.join(filename);
18
- await s.write(outFile.text);
19
+ await s.write(out_file.text);
19
20
  try {
20
21
  // stop old app
21
- if (serve_app !== undefined)
22
+ if (is.defined(serve_app))
22
23
  serve_app.stop();
23
24
  serve_app = (await s.import()).default;
24
25
  const stamp = app.runpath("client", "server-stamp.js");
25
26
  await stamp.write(`export default ${build_n};\n`);
26
27
  build_n++;
27
28
  }
28
- catch (err) {
29
- fail("[primate/server/hot-reload] failed to import {0}", filename);
30
- console.error(err);
29
+ catch (error) {
30
+ throw E.build_live_reload_failed(filename, error);
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
- import fail from "#fail";
1
+ import E from "#errors";
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,23 +17,22 @@ 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;
30
32
  let node_file = node_files.find(f => f.path.includes(`${platform}-${arch}`));
31
- if (!node_file) {
32
- node_file = node_files.find(f => f.path.includes(platform));
33
- }
34
- if (!node_file) {
35
- throw fail("could not find matching binary addon");
36
- }
33
+ node_file ??= node_files.find(f => f.path.includes(platform));
34
+ if (node_file === undefined)
35
+ throw E.build_missing_binary_addon();
37
36
  const addon_name = node_files[0].name;
38
37
  const dest = app.path.build.join("native", addon_name);
39
38
  await dest.directory.create();
@@ -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
- import fail from "#fail";
1
+ import E from "#errors";
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;
@@ -26,7 +26,7 @@ export default function plugin_server_route(app) {
26
26
  }
27
27
  }
28
28
  if (!file || !extension) {
29
- throw fail(`cannot find route source for "${relative}" under ${path_routes.path}`);
29
+ throw E.build_missing_route(relative, path_routes);
30
30
  }
31
31
  // normalise "routes/foo.ext" -> "foo" for router
32
32
  const relative_from_routes = file.path.split("routes").pop();
@@ -1,41 +1,19 @@
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",
5
5
  setup(build) {
6
- build.onResolve({ filter: /^app:store\// }, args => {
7
- const name = args.path.slice("app:store/".length).replace(/\.(js|ts)$/, "");
8
- return { path: name, namespace: "primate-store-wrapper" };
9
- });
10
- build.onLoad({ filter: /.*/, namespace: "primate-store-wrapper" }, args => {
11
- const name = args.path;
12
- return {
13
- contents: `
14
- import database from "app:database";
15
- import wrap from "primate/database/wrap";
16
- import schema from "store:${name}";
17
- export default wrap("${name}", schema, database);
18
- `,
19
- loader: "js",
20
- resolveDir: app.path.stores.path,
21
- };
22
- });
23
- build.onResolve({ filter: /^store:/ }, async (args) => {
24
- const name = args.path.slice("store:".length);
25
- for (const ext of app.extensions) {
26
- const file = new FileRef(`${app.path.stores.path}/${name}${ext}`);
27
- if (await file.exists()) {
28
- // special namespace to bypass auto-wrap
29
- return { path: file.path, namespace: "primate-store-raw" };
30
- }
31
- }
32
- return null;
33
- });
34
- build.onLoad({ filter: /.*/, namespace: "primate-store-raw" }, async (args) => {
35
- const file = new FileRef(args.path);
36
- const source = await file.text();
6
+ build.onLoad({ filter: /.*/ }, async (args) => {
7
+ if (args.namespace !== "file")
8
+ return null;
9
+ if (!/\.([tj]s)$/.test(args.path))
10
+ return null;
11
+ const file = fs.ref(args.path);
12
+ const stores_root = app.path.stores.path;
13
+ if (!file.path.startsWith(stores_root + "/"))
14
+ return null;
37
15
  return {
38
- contents: source,
16
+ contents: await file.text(),
39
17
  loader: args.path.endsWith(".ts") ? "ts" : "js",
40
18
  resolveDir: file.directory.path,
41
19
  watchFiles: [file.path],
@@ -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,14 +8,18 @@ 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)))
13
- .map(async (path) => `${path}`.replace(base.toString(), _ => "")));
11
+ const files = await base.files({ recursive: true, filter: /\.[jt]s$/ });
14
12
  const contents = `
15
- 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")}
18
- export default stores;
19
- `;
13
+ const stores = {};
14
+ ${files.map((file, i) => {
15
+ const bare = fs.webpath(`${file}`
16
+ .replace(base.toString(), "")
17
+ .replace(/\.[jt]s$/, "").slice(1));
18
+ return `import * as store${i} from "${file}";
19
+ stores["${bare}"] = store${i}.default;`;
20
+ }).join("\n")}
21
+ export default stores;
22
+ `;
20
23
  return { contents, loader: "js", resolveDir: app.root.path };
21
24
  });
22
25
  },
@@ -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,9 +48,9 @@ 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
- if (!binder)
53
+ if (binder === undefined)
54
54
  return null;
55
55
  const contents = await binder(file, {
56
56
  build: { id: app.id },
@@ -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();
@@ -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,
@@ -0,0 +1,4 @@
1
+ import type BuildApp from "#build/App";
2
+ import type { Plugin } from "esbuild";
3
+ export default function plugin_shared_app_request(app: BuildApp): Plugin;
4
+ //# sourceMappingURL=app-request.d.ts.map
@@ -0,0 +1,19 @@
1
+ export default function plugin_shared_app_request(app) {
2
+ return {
3
+ name: "primate/shared/app/request",
4
+ setup(build) {
5
+ build.onResolve({ filter: /^app:/ }, ({ path, importer }) => {
6
+ const framework = path.slice(4);
7
+ const exts = app.frontends.get(framework);
8
+ return exts?.some(ext => importer.endsWith(ext))
9
+ ? { namespace: "app-frontend", path: framework }
10
+ : undefined;
11
+ });
12
+ build.onLoad({ filter: /.*/, namespace: "app-frontend" }, async ({ path }) => {
13
+ const contents = `export * from "@primate/${path}/app";`;
14
+ return { contents, resolveDir: app.root.path };
15
+ });
16
+ },
17
+ };
18
+ }
19
+ //# sourceMappingURL=app-request.js.map
@@ -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,8 +1,9 @@
1
- import type Dict from "@rcompat/type/Dict";
2
1
  import type Mode from "#Mode";
2
+ import type RequestView from "#request/RequestView";
3
+ import type { Dict } from "@rcompat/type";
3
4
  type ClientData<T extends Dict = Dict> = {
4
5
  view: string;
5
- request: Dict;
6
+ request: RequestView;
6
7
  spa: boolean;
7
8
  ssr: boolean;
8
9
  mode: Mode;
@@ -0,0 +1,8 @@
1
+ import type { Dict, MaybePromise } from "@rcompat/type";
2
+ type Render<V = unknown> = (view: V, props: Dict) => MaybePromise<{
3
+ body: string;
4
+ head?: string;
5
+ headers?: Dict<string>;
6
+ }>;
7
+ export type { Render as default };
8
+ //# sourceMappingURL=Render.d.ts.map
@@ -1,4 +1,4 @@
1
- import type Dict from "@rcompat/type/Dict";
1
+ import type { Dict } from "@rcompat/type";
2
2
  type ServerData<V> = {
3
3
  view: V;
4
4
  props: Dict;
@@ -0,0 +1,4 @@
1
+ import type { Dict, MaybePromise } from "@rcompat/type";
2
+ type ServerView = (props: Dict) => MaybePromise<string>;
3
+ export { ServerView as default };
4
+ //# sourceMappingURL=ServerView.d.ts.map
@@ -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,4 +1,4 @@
1
- import type Dict from "@rcompat/type/Dict";
1
+ import type { Dict } from "@rcompat/type";
2
2
  type View = {
3
3
  view: unknown;
4
4
  name: string;
@@ -1,4 +1,4 @@
1
- import type Dict from "@rcompat/type/Dict";
1
+ import type { Dict } from "@rcompat/type";
2
2
  export default interface ViewOptions extends ResponseInit {
3
3
  csp?: {
4
4
  script_src?: string[];
@@ -1,6 +1,6 @@
1
- import type ViewOptions from "#frontend/ViewOptions";
1
+ import type ViewOptions from "#client/ViewOptions";
2
2
  import type ResponseFunction from "#response/ResponseFunction";
3
- import type Dict from "@rcompat/type/Dict";
3
+ import type { Dict } from "@rcompat/type";
4
4
  type View = (name: string, props?: Dict, options?: ViewOptions) => ResponseFunction;
5
5
  export { View as default };
6
6
  //# sourceMappingURL=ViewResponse.d.ts.map
@@ -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 {
@@ -12,6 +13,5 @@ class ClientApp {
12
13
  }
13
14
  }
14
15
  }
15
- const app = new ClientApp();
16
- app.start();
16
+ new ClientApp().start();
17
17
  //# sourceMappingURL=app.js.map
@@ -0,0 +1,5 @@
1
+ import type { Updater } from "#client/root";
2
+ import type { Dict } from "@rcompat/type";
3
+ declare const _default: <T extends Dict>(u: Updater<T>) => void;
4
+ export default _default;
5
+ //# sourceMappingURL=boot.d.ts.map
@@ -0,0 +1,64 @@
1
+ import navigate from "#client/navigate";
2
+ import root from "#client/root";
3
+ import storage from "#client/storage";
4
+ import submit from "#client/submit";
5
+ import { MIME } from "@rcompat/http";
6
+ export default (u) => {
7
+ root.set(u);
8
+ const { location, history } = globalThis;
9
+ if (document.contentType === "application/json") {
10
+ location.reload();
11
+ return;
12
+ }
13
+ globalThis.addEventListener("pageshow", event => {
14
+ if (event.persisted)
15
+ location.reload();
16
+ });
17
+ globalThis.addEventListener("load", _ => {
18
+ history.scrollRestoration = "manual";
19
+ if (location.hash !== "")
20
+ navigate.scroll_hash(location.hash);
21
+ });
22
+ globalThis.addEventListener("beforeunload", _ => {
23
+ history.scrollRestoration = "auto";
24
+ });
25
+ globalThis.addEventListener("popstate", () => {
26
+ const state = storage.peek() ?? { scrollTop: 0 };
27
+ const { pathname } = location;
28
+ let { scrollTop } = state;
29
+ if (state.stop) {
30
+ storage.back();
31
+ state.hash
32
+ ? navigate.scroll_hash(state.hash)
33
+ : globalThis.scrollTo(0, state.scrollTop);
34
+ return;
35
+ }
36
+ const back = state.pathname === pathname;
37
+ back ? storage.back() : (scrollTop = storage.forward().scrollTop);
38
+ navigate.goto(globalThis.location, false, () => globalThis.scrollTo(0, scrollTop ?? 0));
39
+ });
40
+ globalThis.addEventListener("click", event => {
41
+ const target = event.target.closest("a");
42
+ if (target?.tagName === "A" && target.href !== "") {
43
+ navigate.go(target.href, event);
44
+ }
45
+ });
46
+ globalThis.addEventListener("submit", async (event) => {
47
+ event.preventDefault();
48
+ const target = event.target;
49
+ const { enctype } = target;
50
+ const action = target.action ?? location.pathname;
51
+ const url = new URL(action);
52
+ const data = new FormData(target);
53
+ const form = enctype === MIME.MULTIPART_FORM_DATA
54
+ ? data
55
+ : new URLSearchParams(data);
56
+ try {
57
+ await submit(url.pathname, form, target.method);
58
+ }
59
+ catch (error) {
60
+ console.warn(error);
61
+ }
62
+ });
63
+ };
64
+ //# sourceMappingURL=boot.js.map
@@ -0,0 +1,32 @@
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
+ submitted: boolean;
12
+ errors: FormErrors;
13
+ };
14
+ export type FormView = FormSnapshot & {
15
+ submit: (event?: Event) => Promise<void>;
16
+ };
17
+ type FormSubscriber = (snapshot: FormSnapshot) => void;
18
+ export type FormInit = {
19
+ id?: string;
20
+ method?: "POST" | "PUT" | "PATCH" | "DELETE";
21
+ url?: string;
22
+ headers?: Dict<string>;
23
+ };
24
+ type FormController = {
25
+ subscribe(fn: FormSubscriber): () => void;
26
+ read(): FormSnapshot;
27
+ submit(event?: Event): Promise<void>;
28
+ get id(): FormId;
29
+ };
30
+ export default function createForm(init: FormInit): FormController;
31
+ export {};
32
+ //# sourceMappingURL=create-form.d.ts.map