@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
@@ -0,0 +1,56 @@
1
+ import E from "#errors";
2
+ import dict from "@rcompat/dict";
3
+ import env from "@rcompat/env";
4
+ import ParseError from "pema/ParseError";
5
+ const s_attach = Symbol("attach");
6
+ const s_config = Symbol("config");
7
+ export { s_attach, s_config };
8
+ export default class AppFacade {
9
+ #config;
10
+ #app;
11
+ #env;
12
+ constructor(config) {
13
+ this.#config = config;
14
+ }
15
+ [s_attach](app) {
16
+ this.#app = app;
17
+ const schema = this.#config.env.schema;
18
+ if (schema !== undefined) {
19
+ try {
20
+ this.#env = schema.coerce(env.toJSON());
21
+ }
22
+ catch (error) {
23
+ if (ParseError.is(error))
24
+ throw E.env_invalid_schema(error);
25
+ throw error;
26
+ }
27
+ }
28
+ }
29
+ get [s_config]() {
30
+ return this.#config;
31
+ }
32
+ config(path) {
33
+ return dict.get(this.#config, path);
34
+ }
35
+ env(key) {
36
+ if (this.#env !== undefined) {
37
+ if (!(key in this.#env))
38
+ throw E.env_missing_key(key);
39
+ return this.#env[key];
40
+ }
41
+ return env.get(key);
42
+ }
43
+ get #with() {
44
+ if (!this.#app)
45
+ throw new Error("ServeApp not bound yet (used too early)");
46
+ return this.#app;
47
+ }
48
+ view(name) {
49
+ return this.#with.loadView(name);
50
+ }
51
+ ;
52
+ get root() {
53
+ return this.#with.root;
54
+ }
55
+ }
56
+ //# sourceMappingURL=Facade.js.map
@@ -1,4 +1,4 @@
1
- import type Dict from "@rcompat/type/Dict";
1
+ import type { Dict } from "@rcompat/type";
2
2
  export default interface Asset {
3
3
  code: {
4
4
  imports: Dict;
@@ -1,7 +1,7 @@
1
1
  import App from "#App";
2
2
  import type Binder from "#Binder";
3
- import type FileRef from "@rcompat/fs/FileRef";
4
- import type Dict from "@rcompat/type/Dict";
3
+ import type { FileRef } from "@rcompat/fs";
4
+ import type { Dict } from "@rcompat/type";
5
5
  import type { Plugin } from "esbuild";
6
6
  type PluginType = "server" | "client";
7
7
  export default class BuildApp extends App {
@@ -1,6 +1,5 @@
1
1
  import App from "#App";
2
2
  import build from "#build/hook";
3
- import log from "#log";
4
3
  import resolve_paths from "#paths";
5
4
  import s_layout_depth from "#symbol/layout-depth";
6
5
  export default class BuildApp extends App {
@@ -19,7 +18,6 @@ export default class BuildApp extends App {
19
18
  #plugins = [];
20
19
  #entrypoint_imports = [];
21
20
  async buildInit() {
22
- log.system("starting {0} build in {1} mode", this.target.name, this.mode);
23
21
  this.#paths = await resolve_paths(this.root, this.config("paths"));
24
22
  await build(this);
25
23
  }
@@ -2,7 +2,8 @@ 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";
5
+ import plugin_view from "#build/client/plugin/view";
6
+ import plugin_app_request from "#build/shared/plugin/app-request";
6
7
  import location from "#location";
7
8
  import * as esbuild from "esbuild";
8
9
  const write_bootstrap = async (app, mode) => {
@@ -19,7 +20,7 @@ const write_bootstrap = async (app, mode) => {
19
20
  ` : `
20
21
  const session_config = undefined;
21
22
  `}
22
- import config from "app:config";
23
+ import facade from "$:app";
23
24
 
24
25
  ${app.i18n_active ? `
25
26
  import i18n from "app:config:i18n";
@@ -30,13 +31,13 @@ const write_bootstrap = async (app, mode) => {
30
31
 
31
32
  const app = await serve(import.meta.url, {
32
33
  assets,
33
- config,
34
+ facade,
34
35
  routes,
35
36
  views,
36
37
  pages,
37
38
  mode: "${mode}",
38
- session_config,
39
- i18n_config,
39
+ session: session_config,
40
+ i18n: i18n_config,
40
41
  target: "${app.target.name}",
41
42
  });
42
43
 
@@ -47,14 +48,20 @@ const write_bootstrap = async (app, mode) => {
47
48
  export default async function build_client(app) {
48
49
  app.plugin("client", plugin_frontend(app));
49
50
  app.plugin("client", plugin_alias(app));
51
+ app.plugin("client", plugin_view(app));
52
+ app.plugin("client", plugin_app_request(app));
50
53
  app.plugin("client", plugin_server_stamp(app));
51
54
  app.plugin("client", plugin_entrypoint(app));
52
- const imports = await app.path.static.collect(file => /\.(?:js|ts|css)$/.test(file.path));
55
+ const imports = await app.path.static.files({
56
+ recursive: true,
57
+ filter: file => /\.(?:js|ts|css)$/.test(file.path),
58
+ });
53
59
  imports.forEach(file => {
54
60
  const src = file.debase(app.path.static);
55
61
  app.entrypoint(`import "./${location.static}${src}";`);
56
62
  });
57
63
  app.entrypoint("import \"primate/client/app\";");
64
+ const tsconfig = app.root.join("tsconfig.json");
58
65
  const conditions = app.conditions.values();
59
66
  const build_options = {
60
67
  plugins: app.plugins("client"),
@@ -62,15 +69,17 @@ export default async function build_client(app) {
62
69
  entryPoints: ["app:client"],
63
70
  conditions: ["style", "browser", "default", "module", ...conditions],
64
71
  resolveExtensions: [".ts", ".js", ...app.frontendExtensions],
65
- tsconfig: app.root.join("tsconfig.json").path,
72
+ ...await tsconfig.exists() ? { tsconfig: tsconfig.path } : {},
66
73
  bundle: true,
67
74
  format: "esm",
68
75
  };
76
+ const NO_HR = app.config("livereload.exclude") ?? [];
69
77
  const mode_options = app.mode === "development"
70
78
  ? {
71
79
  banner: {
72
- js: `new EventSource("${reload.path}").addEventListener("change",
73
- () => globalThis.location.reload());`,
80
+ js: `const NO_HR=${JSON.stringify(NO_HR)};
81
+ new EventSource("/esbuild").addEventListener("change",
82
+ () => !NO_HR.includes(location.pathname) && location.reload());`,
74
83
  },
75
84
  entryNames: "app",
76
85
  minify: false,
@@ -86,7 +95,7 @@ export default async function build_client(app) {
86
95
  const context = await esbuild.context(options);
87
96
  await context.watch();
88
97
  await context.rebuild();
89
- await context.serve({ host: reload.host, port: reload.port });
98
+ await context.serve(app.livereload);
90
99
  }
91
100
  else {
92
101
  await esbuild.build(options);
@@ -0,0 +1,4 @@
1
+ import type BuildApp from "#build/App";
2
+ import type { Plugin } from "esbuild";
3
+ export default function plugin_client_request(app: BuildApp): Plugin;
4
+ //# sourceMappingURL=app-request.d.ts.map
@@ -0,0 +1,19 @@
1
+ export default function plugin_client_request(app) {
2
+ return {
3
+ name: "primate/client/app/request",
4
+ setup(build) {
5
+ build.onResolve({ filter: /^app:request$/ }, ({ importer }) => {
6
+ const frontend = [...app.frontends.entries()]
7
+ .find(([, exts]) => exts.some(ext => importer.endsWith(ext)));
8
+ return frontend !== undefined
9
+ ? { namespace: "request", path: frontend[0] }
10
+ : undefined;
11
+ });
12
+ build.onLoad({ filter: /.*/, namespace: "request" }, async ({ path }) => {
13
+ const contents = `export { default } from "@primate/${path}/request";`;
14
+ return { contents, resolveDir: app.root.path };
15
+ });
16
+ },
17
+ };
18
+ }
19
+ //# sourceMappingURL=app-request.js.map
@@ -0,0 +1,4 @@
1
+ import type BuildApp from "#build/App";
2
+ import type { Plugin } from "esbuild";
3
+ export default function plugin_client_view(app: BuildApp): Plugin;
4
+ //# sourceMappingURL=view.d.ts.map
@@ -0,0 +1,13 @@
1
+ import location from "#location";
2
+ export default function plugin_client_view(app) {
3
+ return {
4
+ name: "primate/client/view",
5
+ setup(build) {
6
+ build.onResolve({ filter: /^view:/ }, args => {
7
+ const name = args.path.slice("view:".length);
8
+ return { path: app.root.join(location.views, name).path };
9
+ });
10
+ },
11
+ };
12
+ }
13
+ //# sourceMappingURL=view.js.map
@@ -1,4 +1,3 @@
1
1
  import type BuildApp from "#build/App";
2
- declare const _default: (app: BuildApp) => Promise<BuildApp>;
3
- export default _default;
2
+ export default function run_build_hooks(app: BuildApp): Promise<BuildApp>;
4
3
  //# sourceMappingURL=hook.d.ts.map
@@ -1,31 +1,25 @@
1
1
  import build_client from "#build/client/index";
2
2
  import build_server from "#build/server/index";
3
- import fail from "#fail";
3
+ import E from "#errors";
4
4
  import location from "#location";
5
5
  import log from "#log";
6
- import reducer from "#reducer";
7
6
  import $router from "#request/router";
8
7
  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);
8
+ import c from "@rcompat/cli/color";
9
+ import fs from "@rcompat/fs";
10
+ const core_pkg = await fs.project.package(import.meta.dirname);
11
11
  const { version } = await core_pkg.json();
12
12
  async function pre(app) {
13
- const dot_primate = app.path.build.join(".primate");
14
- if (await app.path.build.exists() && !await dot_primate.exists()) {
15
- const message = "{0} exists but does not contain a previous build";
16
- throw fail(message, app.path.build.path);
13
+ const build_json = app.path.build.join("build.json");
14
+ const build_path = app.path.build;
15
+ if (await build_path.exists() && !await build_json.exists()) {
16
+ throw E.build_previous_build_exists(build_path);
17
17
  }
18
- // remove build directory if exists
19
18
  await app.path.build.remove();
20
19
  await app.path.build.create();
21
- // touch a .primate file to indicate this is a Primate build directory
22
- await dot_primate.write(version);
23
20
  await app.runpath(location.client).create();
24
21
  const stamp = app.runpath("client", "server-stamp.js");
25
22
  await stamp.write("export default 0;\n");
26
- // this has to occur before post, so that layout depth is available for
27
- // compiling root views
28
- // bindings should have been registered during `init`
29
23
  const router = await $router(app.path.routes, app.extensions);
30
24
  app.set(s_layout_depth, router.depth("layout"));
31
25
  const i18n_ts = app.path.config.join("i18n.ts");
@@ -34,16 +28,28 @@ async function pre(app) {
34
28
  const session_ts = app.path.config.join("session.ts");
35
29
  const session_js = app.path.config.join("session.js");
36
30
  app.session_active = await session_ts.exists() || await session_js.exists();
37
- return app;
38
31
  }
39
- ;
40
32
  async function post(app) {
41
33
  await build_client(app);
42
34
  await build_server(app);
43
- log.system("build written to {0}", app.path.build);
35
+ // write build.json with version and migration_version
36
+ const migrations_dir = app.root.join("migrations");
37
+ let migration_version = 0;
38
+ if (await migrations_dir.exists()) {
39
+ const files = await migrations_dir.files({ filter: /\d+-.*\.[jt]s$/ });
40
+ migration_version = files.length === 0 ? 0 : Math.max(...files.map(f => parseInt(f.name.split("-")[0])));
41
+ }
42
+ await app.path.build.join("build.json").writeJSON({
43
+ version,
44
+ migration_version,
45
+ });
46
+ log.print(`✓ build path ${c.dim(app.path.build.path)}\n`);
44
47
  app.cleanup();
45
48
  return app;
46
49
  }
47
- ;
48
- export default async (app) => post(await reducer(app.modules, await pre(app), "build"));
50
+ export default async function run_build_hooks(app) {
51
+ await pre(app);
52
+ await app.build_hooks(app);
53
+ return post(app);
54
+ }
49
55
  //# sourceMappingURL=hook.js.map
@@ -1,4 +1,5 @@
1
1
  import Flags from "#Flags";
2
- declare const _default: (input: typeof Flags.input) => Promise<true | undefined>;
2
+ import type { FileRef } from "@rcompat/fs";
3
+ declare const _default: (root: FileRef, input: typeof Flags.input) => Promise<true | undefined>;
3
4
  export default _default;
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1,41 +1,41 @@
1
+ import { s_config } from "#app/Facade";
1
2
  import BuildApp from "#build/App";
2
3
  import bye from "#bye";
3
4
  import default_config from "#config/index";
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";
5
+ import E from "#errors";
8
6
  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");
7
+ import log from "#log";
8
+ import dict from "@rcompat/dict";
9
+ const no_config = (config) => config === undefined || dict.empty(config);
10
+ async function find_config(root) {
11
+ const ts_config = root.join("config/app.ts");
12
12
  if (await ts_config.exists())
13
13
  return ts_config;
14
- const js_config = project_root.join("config/app.js");
14
+ const js_config = root.join("config/app.js");
15
15
  if (await js_config.exists())
16
16
  return js_config;
17
- };
18
- const get_config = async (project_root) => {
19
- const config = await find_config(project_root);
20
- if (config !== undefined) {
21
- try {
22
- const imported = await config.import("default");
23
- if (no_config(imported))
24
- throw fail("empty config file at {0}", config);
25
- return imported;
26
- }
27
- catch (error) {
28
- throw fail("error in config file {0}", error);
29
- }
17
+ }
18
+ ;
19
+ async function get_config(root) {
20
+ const config_file = await find_config(root);
21
+ if (config_file === undefined)
22
+ return default_config()[s_config];
23
+ try {
24
+ const imported = (await config_file.import("default"))[s_config];
25
+ if (no_config(imported))
26
+ throw E.config_file_empty(config_file);
27
+ return imported;
30
28
  }
31
- return default_config();
32
- };
33
- export default async (input) => {
29
+ catch (error) {
30
+ throw E.config_file_error(config_file, error);
31
+ }
32
+ }
33
+ ;
34
+ export default async (root, input) => {
34
35
  try {
35
- const package_root = await root();
36
36
  const flags = Flags.parse(input);
37
- const config = await get_config(package_root);
38
- const app = await new BuildApp(package_root, config, flags).init();
37
+ const config = await get_config(root);
38
+ const app = await new BuildApp(root, config, flags).init();
39
39
  await app.buildInit();
40
40
  return true;
41
41
  }
@@ -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,21 +1,19 @@
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";
4
3
  import plugin_frontend from "#build/server/plugin/frontend";
5
- import plugin_hot_reload from "#build/server/plugin/hot-reload";
4
+ import plugin_live_reload from "#build/server/plugin/live-reload";
6
5
  import plugin_native_addons from "#build/server/plugin/native-addons";
7
6
  import plugin_node_imports from "#build/server/plugin/node-imports";
8
7
  import plugin_requires from "#build/server/plugin/requires";
9
8
  import plugin_roots from "#build/server/plugin/roots";
10
9
  import plugin_route from "#build/server/plugin/route";
11
- import plugin_store from "#build/server/plugin/store";
12
- import plugin_store_wrap from "#build/server/plugin/store-wrap";
13
10
  import plugin_stores from "#build/server/plugin/stores";
14
11
  import plugin_view from "#build/server/plugin/view";
15
12
  import plugin_views from "#build/server/plugin/views";
16
13
  import plugin_virtual_pages from "#build/server/plugin/virtual-pages";
17
14
  import plugin_virtual_routes from "#build/server/plugin/virtual-routes";
18
15
  import plugin_wasm from "#build/server/plugin/wasm";
16
+ import plugin_app_request from "#build/shared/plugin/app-request";
19
17
  import runtime from "@rcompat/runtime";
20
18
  import * as esbuild from "esbuild";
21
19
  const externals = {
@@ -29,16 +27,11 @@ const conditions = {
29
27
  deno: ["deno", "node"],
30
28
  };
31
29
  export default async function build_server(app) {
32
- const extensions = app.frontendExtensions;
33
30
  app.plugin("server", plugin_node_imports(app));
34
- if (extensions.length > 0)
35
- app.plugin("server", plugin_frontend(app));
31
+ app.plugin("server", plugin_frontend(app));
36
32
  app.plugin("server", plugin_view(app));
37
- app.plugin("server", plugin_store(app));
38
- app.plugin("server", plugin_store_wrap(app));
39
- app.plugin("server", plugin_database_default(app));
40
33
  if (app.mode === "development")
41
- app.plugin("server", plugin_hot_reload(app));
34
+ app.plugin("server", plugin_live_reload(app));
42
35
  app.plugin("server", plugin_virtual_pages(app));
43
36
  app.plugin("server", plugin_virtual_routes(app));
44
37
  app.plugin("server", plugin_route(app));
@@ -50,6 +43,9 @@ export default async function build_server(app) {
50
43
  app.plugin("server", plugin_requires(app));
51
44
  app.plugin("server", plugin_config(app));
52
45
  app.plugin("server", plugin_wasm(app));
46
+ app.plugin("server", plugin_app_request(app));
47
+ const runtime_name = runtime.name;
48
+ const tsconfig = app.root.join("tsconfig.json");
53
49
  const options = {
54
50
  entryPoints: [app.path.build.join("serve.js").path],
55
51
  outfile: app.path.build.join("server.js").path,
@@ -57,7 +53,7 @@ export default async function build_server(app) {
57
53
  platform: "node",
58
54
  format: "esm",
59
55
  packages: app.mode === "development" ? "external" : undefined,
60
- external: [...externals[runtime]],
56
+ external: [...externals[runtime_name]],
61
57
  loader: {
62
58
  ".json": "json",
63
59
  },
@@ -70,9 +66,9 @@ export default async function build_server(app) {
70
66
  nodePaths: [app.root.join("node_modules").path],
71
67
  resolveExtensions: app.extensions,
72
68
  absWorkingDir: app.root.path,
73
- tsconfig: app.root.join("tsconfig.json").path,
69
+ ...await tsconfig.exists() ? { tsconfig: tsconfig.path } : {},
74
70
  conditions: [
75
- ...conditions[runtime],
71
+ ...conditions[runtime_name],
76
72
  "module", "import", "runtime", "default",
77
73
  ...app.conditions
78
74
  ],
@@ -0,0 +1,4 @@
1
+ import type BuildApp from "#build/App";
2
+ import type { Plugin } from "esbuild";
3
+ export default function plugin_server_request(app: BuildApp): Plugin;
4
+ //# sourceMappingURL=app-request.d.ts.map
@@ -0,0 +1,19 @@
1
+ export default function plugin_server_request(app) {
2
+ return {
3
+ name: "primate/server/app/request",
4
+ setup(build) {
5
+ build.onResolve({ filter: /^app:request$/ }, ({ importer }) => {
6
+ const frontend = [...app.frontends.entries()]
7
+ .find(([, exts]) => exts.some(ext => importer.endsWith(ext)));
8
+ return frontend !== undefined
9
+ ? { namespace: "request", path: frontend[0] }
10
+ : undefined;
11
+ });
12
+ build.onLoad({ filter: /.*/, namespace: "request" }, async ({ path }) => {
13
+ const contents = `export { default } from "@primate/${path}/request";`;
14
+ return { contents, resolveDir: app.root.path };
15
+ });
16
+ },
17
+ };
18
+ }
19
+ //# sourceMappingURL=app-request.js.map
@@ -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";
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
  };
@@ -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