@primate/core 0.1.10 → 0.2.1

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 (572) hide show
  1. package/lib/private/App.d.ts +54 -0
  2. package/lib/private/App.js +128 -0
  3. package/lib/private/AppError.d.ts +4 -0
  4. package/lib/private/AppError.js +8 -0
  5. package/lib/private/Binder.d.ts +13 -0
  6. package/lib/private/Binder.js +2 -0
  7. package/lib/private/BindingContext.d.ts +3 -0
  8. package/lib/private/BindingContext.js +2 -0
  9. package/lib/private/BuildApp.d.ts +23 -0
  10. package/lib/private/BuildApp.js +121 -0
  11. package/lib/private/CSP.d.ts +6 -0
  12. package/lib/private/CSP.js +2 -0
  13. package/lib/private/Loader.d.ts +17 -0
  14. package/lib/private/Loader.js +46 -0
  15. package/lib/private/Mode.d.ts +3 -0
  16. package/lib/private/Mode.js +2 -0
  17. package/lib/private/Module.d.ts +18 -0
  18. package/lib/private/Module.js +18 -0
  19. package/lib/private/ServeApp.d.ts +89 -0
  20. package/lib/private/ServeApp.js +305 -0
  21. package/lib/private/ServeInit.d.ts +29 -0
  22. package/lib/private/ServeInit.js +2 -0
  23. package/lib/private/asset/Asset.d.ts +11 -0
  24. package/lib/private/asset/Asset.js +2 -0
  25. package/lib/private/asset/Font.d.ts +8 -0
  26. package/lib/private/asset/Font.js +2 -0
  27. package/lib/private/asset/Script.d.ts +9 -0
  28. package/lib/private/asset/Script.js +2 -0
  29. package/lib/private/asset/Style.d.ts +6 -0
  30. package/lib/private/asset/Style.js +2 -0
  31. package/lib/private/backend/Module.d.ts +18 -0
  32. package/lib/private/backend/Module.js +22 -0
  33. package/lib/private/build.d.ts +4 -0
  34. package/lib/private/build.js +45 -0
  35. package/lib/private/builtin/DevModule.d.ts +11 -0
  36. package/lib/private/builtin/DevModule.js +32 -0
  37. package/lib/private/builtin/HandleModule.d.ts +10 -0
  38. package/lib/private/builtin/HandleModule.js +15 -0
  39. package/lib/private/bye.d.ts +3 -0
  40. package/{src → lib}/private/bye.js +2 -2
  41. package/lib/private/client/App.d.ts +4 -0
  42. package/lib/private/client/App.js +12 -0
  43. package/lib/private/client/Data.d.ts +9 -0
  44. package/lib/private/client/Data.js +2 -0
  45. package/lib/private/client/ValidateInit.d.ts +13 -0
  46. package/lib/private/client/ValidateInit.js +2 -0
  47. package/lib/private/client/ValidateUpdater.d.ts +3 -0
  48. package/lib/private/client/ValidateUpdater.js +2 -0
  49. package/lib/private/client/ValidationError.d.ts +6 -0
  50. package/lib/private/client/ValidationError.js +2 -0
  51. package/lib/private/client/spa/index.d.ts +6 -0
  52. package/lib/private/client/spa/index.js +192 -0
  53. package/lib/private/client/spa/storage.d.ts +12 -0
  54. package/lib/private/client/spa/storage.js +54 -0
  55. package/lib/private/client/toValidated.d.ts +17 -0
  56. package/lib/private/client/toValidated.js +21 -0
  57. package/lib/private/client/validate.d.ts +3 -0
  58. package/lib/private/client/validate.js +54 -0
  59. package/lib/private/config/Config.d.ts +4 -0
  60. package/lib/private/config/Config.js +2 -0
  61. package/lib/private/config/config/app.d.ts +3 -0
  62. package/lib/private/config/config/app.js +3 -0
  63. package/lib/private/config/config/database/index.d.ts +3 -0
  64. package/lib/private/config/config/database/index.js +3 -0
  65. package/lib/private/config/config/session.d.ts +3 -0
  66. package/lib/private/config/config/session.js +3 -0
  67. package/lib/private/config/index.d.ts +25 -0
  68. package/lib/private/config/index.js +3 -0
  69. package/lib/private/config/schema.d.ts +26 -0
  70. package/lib/private/config/schema.js +34 -0
  71. package/lib/private/cookie.d.ts +11 -0
  72. package/lib/private/cookie.js +30 -0
  73. package/lib/private/database/As.d.ts +7 -0
  74. package/lib/private/database/As.js +2 -0
  75. package/lib/private/database/Binds.d.ts +4 -0
  76. package/lib/private/database/Binds.js +2 -0
  77. package/lib/private/database/Changes.d.ts +11 -0
  78. package/lib/private/database/Changes.js +2 -0
  79. package/lib/private/database/ColumnTypes.d.ts +11 -0
  80. package/lib/private/database/ColumnTypes.js +2 -0
  81. package/lib/private/database/DataDict.d.ts +5 -0
  82. package/lib/private/database/DataDict.js +2 -0
  83. package/lib/private/database/DataKey.d.ts +4 -0
  84. package/lib/private/database/DataKey.js +2 -0
  85. package/lib/private/database/DataRecord.d.ts +8 -0
  86. package/lib/private/database/DataRecord.js +3 -0
  87. package/lib/private/database/DataValue.d.ts +5 -0
  88. package/lib/private/database/DataValue.js +2 -0
  89. package/lib/private/database/Database.d.ts +56 -0
  90. package/lib/private/database/Database.js +153 -0
  91. package/lib/private/database/InMemoryDatabase.d.ts +37 -0
  92. package/lib/private/database/InMemoryDatabase.js +181 -0
  93. package/lib/private/database/Query.d.ts +14 -0
  94. package/lib/private/database/Query.js +15 -0
  95. package/lib/private/database/QueryBuilder.d.ts +14 -0
  96. package/lib/private/database/QueryBuilder.js +3 -0
  97. package/lib/private/database/Sort.d.ts +4 -0
  98. package/lib/private/database/Sort.js +2 -0
  99. package/lib/private/database/Store.d.ts +169 -0
  100. package/lib/private/database/Store.js +255 -0
  101. package/lib/private/database/TypeMap.d.ts +14 -0
  102. package/lib/private/database/TypeMap.js +2 -0
  103. package/lib/private/database/Types.d.ts +6 -0
  104. package/lib/private/database/Types.js +2 -0
  105. package/lib/private/database/primary.d.ts +3 -0
  106. package/lib/private/database/primary.js +2 -0
  107. package/lib/private/database/storage.d.ts +4 -0
  108. package/lib/private/database/storage.js +3 -0
  109. package/lib/private/database/symbol/wrap.d.ts +3 -0
  110. package/lib/private/database/symbol/wrap.js +2 -0
  111. package/lib/private/database/symbol.d.ts +3 -0
  112. package/lib/private/database/symbol.js +2 -0
  113. package/lib/private/database/test.d.ts +4 -0
  114. package/lib/private/database/test.js +678 -0
  115. package/lib/private/database/wrap.d.ts +5 -0
  116. package/lib/private/database/wrap.js +5 -0
  117. package/lib/private/fail.d.ts +3 -0
  118. package/lib/private/fail.js +5 -0
  119. package/lib/private/frontend/Component.d.ts +8 -0
  120. package/lib/private/frontend/Component.js +2 -0
  121. package/lib/private/frontend/Module.d.ts +60 -0
  122. package/lib/private/frontend/Module.js +241 -0
  123. package/lib/private/frontend/Publish.d.ts +5 -0
  124. package/lib/private/frontend/Publish.js +2 -0
  125. package/lib/private/frontend/Render.d.ts +9 -0
  126. package/lib/private/frontend/Render.js +2 -0
  127. package/lib/private/frontend/ServerComponent.d.ts +5 -0
  128. package/lib/private/frontend/ServerComponent.js +2 -0
  129. package/lib/private/frontend/ServerData.d.ts +7 -0
  130. package/lib/private/frontend/ServerData.js +2 -0
  131. package/lib/private/frontend/ViewOptions.d.ts +12 -0
  132. package/lib/private/frontend/ViewOptions.js +3 -0
  133. package/lib/private/frontend/ViewResponse.d.ts +6 -0
  134. package/lib/private/frontend/ViewResponse.js +2 -0
  135. package/lib/private/frontend/bundle-server.d.ts +11 -0
  136. package/lib/private/frontend/bundle-server.js +48 -0
  137. package/lib/private/hash.d.ts +3 -0
  138. package/lib/private/hash.js +10 -0
  139. package/lib/private/hook/build.d.ts +4 -0
  140. package/lib/private/hook/build.js +246 -0
  141. package/lib/private/hook/serve.d.ts +4 -0
  142. package/lib/private/hook/serve.js +13 -0
  143. package/lib/private/i18n/API.d.ts +21 -0
  144. package/lib/private/i18n/API.js +2 -0
  145. package/lib/private/i18n/Catalog.d.ts +4 -0
  146. package/lib/private/i18n/Catalog.js +2 -0
  147. package/lib/private/i18n/Catalogs.d.ts +4 -0
  148. package/lib/private/i18n/Catalogs.js +2 -0
  149. package/lib/private/i18n/Config.d.ts +10 -0
  150. package/lib/private/i18n/Config.js +2 -0
  151. package/lib/private/i18n/ContextData.d.ts +6 -0
  152. package/lib/private/i18n/ContextData.js +2 -0
  153. package/lib/private/i18n/Formatter.d.ts +18 -0
  154. package/lib/private/i18n/Formatter.js +108 -0
  155. package/lib/private/i18n/Module.d.ts +16 -0
  156. package/lib/private/i18n/Module.js +109 -0
  157. package/lib/private/i18n/PersistMode.d.ts +3 -0
  158. package/lib/private/i18n/PersistMode.js +2 -0
  159. package/lib/private/i18n/TypeOf.d.ts +4 -0
  160. package/lib/private/i18n/TypeOf.js +2 -0
  161. package/lib/private/i18n/constant/COOKIE_NAME.d.ts +3 -0
  162. package/lib/private/i18n/constant/COOKIE_NAME.js +2 -0
  163. package/lib/private/i18n/constant/DEFAULT_LOCALE.d.ts +3 -0
  164. package/lib/private/i18n/constant/DEFAULT_LOCALE.js +2 -0
  165. package/lib/private/i18n/constant/DEFAULT_PERSIST_MODE.d.ts +3 -0
  166. package/lib/private/i18n/constant/DEFAULT_PERSIST_MODE.js +2 -0
  167. package/lib/private/i18n/constant/PERSIST_HEADER.d.ts +3 -0
  168. package/lib/private/i18n/constant/PERSIST_HEADER.js +2 -0
  169. package/lib/private/i18n/constant/PERSIST_METHOD.d.ts +3 -0
  170. package/lib/private/i18n/constant/PERSIST_METHOD.js +2 -0
  171. package/lib/private/i18n/constant/PERSIST_STORAGE_KEY.d.ts +3 -0
  172. package/lib/private/i18n/constant/PERSIST_STORAGE_KEY.js +2 -0
  173. package/lib/private/i18n/index.d.ts +28 -0
  174. package/lib/private/i18n/index.js +236 -0
  175. package/lib/private/i18n/locale.d.ts +5 -0
  176. package/lib/private/i18n/locale.js +4 -0
  177. package/lib/private/i18n/ordinals.d.ts +4 -0
  178. package/lib/private/i18n/ordinals.js +52 -0
  179. package/lib/private/i18n/schema.d.ts +8 -0
  180. package/lib/private/i18n/schema.js +13 -0
  181. package/lib/private/i18n/symbol/internal.d.ts +3 -0
  182. package/lib/private/i18n/symbol/internal.js +3 -0
  183. package/lib/private/i18n/toIntlUnit.d.ts +3 -0
  184. package/lib/private/i18n/toIntlUnit.js +125 -0
  185. package/lib/private/inline.d.ts +7 -0
  186. package/lib/private/inline.js +12 -0
  187. package/lib/private/location.d.ts +17 -0
  188. package/lib/private/location.js +29 -0
  189. package/lib/private/log.d.ts +19 -0
  190. package/lib/private/log.js +46 -0
  191. package/lib/private/module/BuildHook.d.ts +5 -0
  192. package/lib/private/module/BuildHook.js +2 -0
  193. package/lib/private/module/Hook.d.ts +5 -0
  194. package/lib/private/module/Hook.js +2 -0
  195. package/lib/private/module/Next.d.ts +4 -0
  196. package/lib/private/module/Next.js +2 -0
  197. package/lib/private/module/NextBuild.d.ts +5 -0
  198. package/lib/private/module/NextBuild.js +2 -0
  199. package/lib/private/module/NextHandle.d.ts +5 -0
  200. package/lib/private/module/NextHandle.js +2 -0
  201. package/lib/private/module/NextRoute.d.ts +6 -0
  202. package/lib/private/module/NextRoute.js +2 -0
  203. package/lib/private/module/NextServe.d.ts +5 -0
  204. package/lib/private/module/NextServe.js +2 -0
  205. package/lib/private/module/RequestHook.d.ts +6 -0
  206. package/lib/private/module/RequestHook.js +2 -0
  207. package/lib/private/reducer.d.ts +24 -0
  208. package/lib/private/reducer.js +10 -0
  209. package/lib/private/request/RequestBag.d.ts +80 -0
  210. package/lib/private/request/RequestBag.js +119 -0
  211. package/lib/private/request/RequestBody.d.ts +39 -0
  212. package/lib/private/request/RequestBody.js +91 -0
  213. package/lib/private/request/RequestFacade.d.ts +20 -0
  214. package/lib/private/request/RequestFacade.js +2 -0
  215. package/lib/private/request/Verb.d.ts +4 -0
  216. package/lib/private/request/Verb.js +2 -0
  217. package/lib/private/request/parse.d.ts +4 -0
  218. package/lib/private/request/parse.js +69 -0
  219. package/lib/private/request/route.d.ts +4 -0
  220. package/lib/private/request/route.js +61 -0
  221. package/lib/private/request/router.d.ts +5 -0
  222. package/lib/private/request/router.js +56 -0
  223. package/lib/private/request/verbs.d.ts +3 -0
  224. package/lib/private/request/verbs.js +12 -0
  225. package/lib/private/response/ResponseFunction.d.ts +8 -0
  226. package/lib/private/response/ResponseFunction.js +2 -0
  227. package/lib/private/response/ResponseLike.d.ts +6 -0
  228. package/lib/private/response/ResponseLike.js +2 -0
  229. package/lib/private/response/binary.d.ts +10 -0
  230. package/lib/private/response/binary.js +47 -0
  231. package/lib/private/response/error.d.ts +18 -0
  232. package/lib/private/response/error.js +18 -0
  233. package/lib/private/response/json.d.ts +9 -0
  234. package/lib/private/response/json.js +10 -0
  235. package/lib/private/response/redirect.d.ts +11 -0
  236. package/lib/private/response/redirect.js +62 -0
  237. package/lib/private/response/respond.d.ts +5 -0
  238. package/lib/private/response/respond.js +31 -0
  239. package/lib/private/response/sse.d.ts +15 -0
  240. package/lib/private/response/sse.js +25 -0
  241. package/lib/private/response/text.d.ts +9 -0
  242. package/lib/private/response/text.js +11 -0
  243. package/lib/private/response/view.d.ts +11 -0
  244. package/lib/private/response/view.js +41 -0
  245. package/lib/private/response/ws.d.ts +5 -0
  246. package/lib/private/response/ws.js +2 -0
  247. package/lib/private/response.d.ts +5 -0
  248. package/lib/private/response.js +2 -0
  249. package/lib/private/route/Handler.d.ts +6 -0
  250. package/lib/private/route/Handler.js +2 -0
  251. package/lib/private/route/Options.d.ts +5 -0
  252. package/lib/private/route/Options.js +2 -0
  253. package/lib/private/route/Path.d.ts +11 -0
  254. package/lib/private/route/Path.js +2 -0
  255. package/lib/private/route/guard.d.ts +4 -0
  256. package/lib/private/route/guard.js +22 -0
  257. package/lib/private/route/router.d.ts +51 -0
  258. package/lib/private/route/router.js +32 -0
  259. package/lib/private/route/wrap.d.ts +6 -0
  260. package/lib/private/route/wrap.js +17 -0
  261. package/lib/private/route.d.ts +9 -0
  262. package/lib/private/route.js +6 -0
  263. package/lib/private/serve.d.ts +5 -0
  264. package/lib/private/serve.js +8 -0
  265. package/lib/private/session/Config.d.ts +4 -0
  266. package/lib/private/session/Config.js +2 -0
  267. package/lib/private/session/Data.d.ts +5 -0
  268. package/lib/private/session/Data.js +2 -0
  269. package/lib/private/session/InMemoryManager.d.ts +9 -0
  270. package/lib/private/session/InMemoryManager.js +23 -0
  271. package/lib/private/session/Manager.d.ts +9 -0
  272. package/lib/private/session/Manager.js +4 -0
  273. package/lib/private/session/SessionFacade.d.ts +56 -0
  274. package/lib/private/session/SessionFacade.js +2 -0
  275. package/lib/private/session/SessionHandle.d.ts +20 -0
  276. package/lib/private/session/SessionHandle.js +67 -0
  277. package/lib/private/session/SessionModule.d.ts +13 -0
  278. package/lib/private/session/SessionModule.js +99 -0
  279. package/lib/private/session/index.d.ts +13 -0
  280. package/lib/private/session/index.js +41 -0
  281. package/lib/private/session/k-serialize.d.ts +3 -0
  282. package/lib/private/session/k-serialize.js +2 -0
  283. package/lib/private/session/schema.d.ts +14 -0
  284. package/lib/private/session/schema.js +20 -0
  285. package/lib/private/session/storage.d.ts +5 -0
  286. package/lib/private/session/storage.js +5 -0
  287. package/lib/private/symbol/config.d.ts +3 -0
  288. package/lib/private/symbol/config.js +2 -0
  289. package/lib/private/symbol/layout-depth.d.ts +3 -0
  290. package/lib/private/symbol/layout-depth.js +2 -0
  291. package/lib/private/tags.d.ts +10 -0
  292. package/lib/private/tags.js +29 -0
  293. package/lib/private/target/Manager.d.ts +14 -0
  294. package/lib/private/target/Manager.js +44 -0
  295. package/lib/private/target/Target.d.ts +8 -0
  296. package/lib/private/target/Target.js +3 -0
  297. package/lib/private/target/web.d.ts +4 -0
  298. package/lib/private/target/web.js +68 -0
  299. package/lib/private/wasm/API.d.ts +7 -0
  300. package/lib/private/wasm/API.js +2 -0
  301. package/lib/private/wasm/BufferViewSource.d.ts +4 -0
  302. package/lib/private/wasm/BufferViewSource.js +2 -0
  303. package/lib/private/wasm/Exports.d.ts +23 -0
  304. package/lib/private/wasm/Exports.js +2 -0
  305. package/lib/private/wasm/I32.d.ts +5 -0
  306. package/lib/private/wasm/I32.js +2 -0
  307. package/lib/private/wasm/I32_SIZE.d.ts +3 -0
  308. package/lib/private/wasm/I32_SIZE.js +2 -0
  309. package/lib/private/wasm/Instantiation.d.ts +12 -0
  310. package/lib/private/wasm/Instantiation.js +2 -0
  311. package/lib/private/wasm/Tagged.d.ts +7 -0
  312. package/lib/private/wasm/Tagged.js +2 -0
  313. package/lib/private/wasm/buffersize.d.ts +2 -0
  314. package/lib/private/wasm/buffersize.js +5 -0
  315. package/lib/private/wasm/decode-bytes.d.ts +3 -0
  316. package/lib/private/wasm/decode-bytes.js +5 -0
  317. package/lib/private/wasm/decode-json.d.ts +7 -0
  318. package/lib/private/wasm/decode-json.js +11 -0
  319. package/lib/private/wasm/decode-option.d.ts +5 -0
  320. package/lib/private/wasm/decode-option.js +10 -0
  321. package/lib/private/wasm/decode-response.d.ts +19 -0
  322. package/lib/private/wasm/decode-response.js +90 -0
  323. package/lib/private/wasm/decode-string.d.ts +3 -0
  324. package/lib/private/wasm/decode-string.js +5 -0
  325. package/lib/private/wasm/decode-websocket-close.d.ts +5 -0
  326. package/lib/private/wasm/decode-websocket-close.js +6 -0
  327. package/lib/private/wasm/decode-websocket-send.d.ts +6 -0
  328. package/lib/private/wasm/decode-websocket-send.js +19 -0
  329. package/lib/private/wasm/encode-buffer.d.ts +3 -0
  330. package/lib/private/wasm/encode-buffer.js +6 -0
  331. package/lib/private/wasm/encode-request.d.ts +9 -0
  332. package/lib/private/wasm/encode-request.js +198 -0
  333. package/lib/private/wasm/encode-session.d.ts +3 -0
  334. package/lib/private/wasm/encode-session.js +25 -0
  335. package/lib/private/wasm/encode-string-map.d.ts +5 -0
  336. package/lib/private/wasm/encode-string-map.js +14 -0
  337. package/lib/private/wasm/encode-string.d.ts +13 -0
  338. package/lib/private/wasm/encode-string.js +17 -0
  339. package/lib/private/wasm/encode-url.d.ts +11 -0
  340. package/lib/private/wasm/encode-url.js +14 -0
  341. package/lib/private/wasm/encode-websocket-close.d.ts +2 -0
  342. package/lib/private/wasm/encode-websocket-close.js +7 -0
  343. package/lib/private/wasm/encode-websocket-message.d.ts +4 -0
  344. package/lib/private/wasm/encode-websocket-message.js +30 -0
  345. package/lib/private/wasm/encode-websocket-open.d.ts +2 -0
  346. package/lib/private/wasm/encode-websocket-open.js +7 -0
  347. package/lib/private/wasm/filesize.d.ts +2 -0
  348. package/lib/private/wasm/filesize.js +8 -0
  349. package/lib/private/wasm/instantiate.d.ts +37 -0
  350. package/lib/private/wasm/instantiate.js +408 -0
  351. package/lib/private/wasm/open-websocket.d.ts +4 -0
  352. package/lib/private/wasm/open-websocket.js +26 -0
  353. package/lib/private/wasm/stringsize.d.ts +3 -0
  354. package/lib/private/wasm/stringsize.js +5 -0
  355. package/lib/private/wasm/urlsize.d.ts +2 -0
  356. package/lib/private/wasm/urlsize.js +5 -0
  357. package/lib/public/App.d.ts +2 -0
  358. package/lib/public/App.js +2 -0
  359. package/lib/public/AppError.d.ts +2 -0
  360. package/lib/public/AppError.js +2 -0
  361. package/lib/public/BuildApp.d.ts +2 -0
  362. package/lib/public/BuildApp.js +2 -0
  363. package/lib/public/BuildHook.d.ts +2 -0
  364. package/lib/public/BuildHook.js +2 -0
  365. package/lib/public/Database.d.ts +2 -0
  366. package/lib/public/Database.js +2 -0
  367. package/lib/public/Loader.d.ts +2 -0
  368. package/lib/public/Loader.js +2 -0
  369. package/lib/public/Mode.d.ts +2 -0
  370. package/lib/public/Mode.js +2 -0
  371. package/lib/public/Module.d.ts +2 -0
  372. package/lib/public/Module.js +2 -0
  373. package/lib/public/Next.d.ts +2 -0
  374. package/lib/public/Next.js +2 -0
  375. package/lib/public/NextBuild.d.ts +2 -0
  376. package/lib/public/NextBuild.js +2 -0
  377. package/lib/public/NextHandle.d.ts +2 -0
  378. package/lib/public/NextHandle.js +2 -0
  379. package/lib/public/NextRoute.d.ts +3 -0
  380. package/lib/public/NextRoute.js +2 -0
  381. package/lib/public/NextServe.d.ts +2 -0
  382. package/lib/public/NextServe.js +2 -0
  383. package/lib/public/ServeApp.d.ts +2 -0
  384. package/lib/public/ServeApp.js +2 -0
  385. package/lib/public/Target.d.ts +2 -0
  386. package/lib/public/Target.js +2 -0
  387. package/lib/public/backend/Module.d.ts +2 -0
  388. package/lib/public/backend/Module.js +2 -0
  389. package/lib/public/build.d.ts +2 -0
  390. package/lib/public/build.js +2 -0
  391. package/lib/public/client/App.d.ts +2 -0
  392. package/lib/public/client/App.js +2 -0
  393. package/lib/public/client/Data.d.ts +2 -0
  394. package/lib/public/client/Data.js +2 -0
  395. package/lib/public/client/ValidateInit.d.ts +2 -0
  396. package/lib/public/client/ValidateInit.js +2 -0
  397. package/lib/public/client/ValidateUpdater.d.ts +2 -0
  398. package/lib/public/client/ValidateUpdater.js +2 -0
  399. package/lib/public/client/ValidationError.d.ts +2 -0
  400. package/lib/public/client/ValidationError.js +2 -0
  401. package/lib/public/client/spa.d.ts +2 -0
  402. package/lib/public/client/spa.js +2 -0
  403. package/lib/public/client/toValidated.d.ts +2 -0
  404. package/lib/public/client/toValidated.js +2 -0
  405. package/lib/public/client/validate.d.ts +2 -0
  406. package/lib/public/client/validate.js +2 -0
  407. package/lib/public/config.d.ts +2 -0
  408. package/lib/public/config.js +2 -0
  409. package/lib/public/database/As.d.ts +2 -0
  410. package/lib/public/database/As.js +2 -0
  411. package/lib/public/database/DataDict.d.ts +2 -0
  412. package/lib/public/database/DataDict.js +2 -0
  413. package/lib/public/database/InMemoryDatabase.d.ts +2 -0
  414. package/lib/public/database/InMemoryDatabase.js +2 -0
  415. package/lib/public/database/Sort.d.ts +2 -0
  416. package/lib/public/database/Sort.js +2 -0
  417. package/lib/public/database/Store.d.ts +2 -0
  418. package/lib/public/database/Store.js +2 -0
  419. package/lib/public/database/TypeMap.d.ts +2 -0
  420. package/lib/public/database/TypeMap.js +2 -0
  421. package/lib/public/database/Types.d.ts +2 -0
  422. package/lib/public/database/Types.js +2 -0
  423. package/lib/public/database/test.d.ts +2 -0
  424. package/lib/public/database/test.js +2 -0
  425. package/lib/public/database/wrap.d.ts +2 -0
  426. package/lib/public/database/wrap.js +2 -0
  427. package/lib/public/frontend/Module.d.ts +2 -0
  428. package/lib/public/frontend/Module.js +2 -0
  429. package/lib/public/frontend/Publish.d.ts +2 -0
  430. package/lib/public/frontend/Publish.js +2 -0
  431. package/lib/public/frontend/Render.d.ts +2 -0
  432. package/lib/public/frontend/Render.js +2 -0
  433. package/lib/public/frontend/ViewResponse.d.ts +2 -0
  434. package/lib/public/frontend/ViewResponse.js +2 -0
  435. package/lib/public/i18n/API.d.ts +2 -0
  436. package/lib/public/i18n/API.js +2 -0
  437. package/lib/public/i18n/Catalogs.d.ts +2 -0
  438. package/lib/public/i18n/Catalogs.js +2 -0
  439. package/lib/public/i18n/ContextData.d.ts +2 -0
  440. package/lib/public/i18n/ContextData.js +2 -0
  441. package/lib/public/i18n/config.d.ts +2 -0
  442. package/lib/public/i18n/config.js +2 -0
  443. package/lib/public/i18n/locale.d.ts +2 -0
  444. package/lib/public/i18n/locale.js +2 -0
  445. package/lib/public/i18n/sInternal.d.ts +2 -0
  446. package/lib/public/i18n/sInternal.js +2 -0
  447. package/lib/public/inline.d.ts +2 -0
  448. package/lib/public/inline.js +2 -0
  449. package/lib/public/location.d.ts +2 -0
  450. package/lib/public/location.js +2 -0
  451. package/lib/public/log.d.ts +2 -0
  452. package/{src/log/index.js → lib/public/log.js} +1 -0
  453. package/lib/public/request/RequestBody.d.ts +2 -0
  454. package/lib/public/request/RequestBody.js +2 -0
  455. package/lib/public/request/RequestFacade.d.ts +2 -0
  456. package/lib/public/request/RequestFacade.js +2 -0
  457. package/lib/public/request/Verb.d.ts +2 -0
  458. package/lib/public/request/Verb.js +2 -0
  459. package/lib/public/request/verbs.d.ts +2 -0
  460. package/lib/public/request/verbs.js +2 -0
  461. package/lib/public/response/ResponseFunction.d.ts +2 -0
  462. package/lib/public/response/ResponseFunction.js +2 -0
  463. package/lib/public/response/ResponseLike.d.ts +2 -0
  464. package/lib/public/response/ResponseLike.js +2 -0
  465. package/lib/public/response/binary.d.ts +2 -0
  466. package/lib/public/response/binary.js +2 -0
  467. package/lib/public/response/error.d.ts +2 -0
  468. package/lib/public/response/error.js +2 -0
  469. package/lib/public/response/json.d.ts +2 -0
  470. package/lib/public/response/json.js +2 -0
  471. package/lib/public/response/redirect.d.ts +2 -0
  472. package/lib/public/response/redirect.js +2 -0
  473. package/lib/public/response/sse.d.ts +2 -0
  474. package/lib/public/response/sse.js +2 -0
  475. package/lib/public/response/text.d.ts +2 -0
  476. package/lib/public/response/text.js +2 -0
  477. package/lib/public/response/view.d.ts +2 -0
  478. package/lib/public/response/view.js +2 -0
  479. package/lib/public/response/ws.d.ts +2 -0
  480. package/lib/public/response/ws.js +2 -0
  481. package/lib/public/route/router.d.ts +2 -0
  482. package/lib/public/route/router.js +2 -0
  483. package/lib/public/route/wrap.d.ts +2 -0
  484. package/lib/public/route/wrap.js +2 -0
  485. package/lib/public/route.d.ts +2 -0
  486. package/lib/public/route.js +2 -0
  487. package/lib/public/serve.d.ts +2 -0
  488. package/lib/public/serve.js +2 -0
  489. package/lib/public/session/Manager.d.ts +2 -0
  490. package/lib/public/session/Manager.js +2 -0
  491. package/lib/public/session/config.d.ts +2 -0
  492. package/lib/public/session/config.js +2 -0
  493. package/lib/public/symbol/config.d.ts +2 -0
  494. package/lib/public/symbol/config.js +2 -0
  495. package/lib/public/wasm/decode-json.d.ts +5 -0
  496. package/lib/public/wasm/decode-json.js +3 -0
  497. package/lib/public/wasm/decode-response.d.ts +3 -0
  498. package/lib/public/wasm/decode-response.js +3 -0
  499. package/lib/public/wasm/encode-request.d.ts +3 -0
  500. package/lib/public/wasm/encode-request.js +3 -0
  501. package/lib/public/wasm/encode-session.d.ts +3 -0
  502. package/lib/public/wasm/encode-session.js +3 -0
  503. package/lib/public/wasm/instantiate.d.ts +4 -0
  504. package/lib/public/wasm/instantiate.js +3 -0
  505. package/package.json +41 -36
  506. package/src/build/app.js +0 -99
  507. package/src/build/hook/build.js +0 -188
  508. package/src/build/hook/copy_includes.js +0 -20
  509. package/src/build/hook/exports.js +0 -2
  510. package/src/build/hook/init.js +0 -3
  511. package/src/build/hook/router.js +0 -33
  512. package/src/build/index.js +0 -49
  513. package/src/build/module_loader.js +0 -30
  514. package/src/build/targets/exports.js +0 -1
  515. package/src/build/targets/web.js +0 -70
  516. package/src/dispatch/index.js +0 -1
  517. package/src/http/verbs.js +0 -11
  518. package/src/private/config-filename.js +0 -1
  519. package/src/private/config.js +0 -48
  520. package/src/private/depend.js +0 -20
  521. package/src/private/dispatch.js +0 -18
  522. package/src/private/error/bad-body.js +0 -6
  523. package/src/private/error/bad-default-export.js +0 -6
  524. package/src/private/error/bad-path.js +0 -6
  525. package/src/private/error/bad-type-export.js +0 -6
  526. package/src/private/error/bad-type-name.js +0 -6
  527. package/src/private/error/double-extension.js +0 -6
  528. package/src/private/error/double-module.js +0 -6
  529. package/src/private/error/double-path-parameter.js +0 -6
  530. package/src/private/error/double-route.js +0 -6
  531. package/src/private/error/empty-config-file.js +0 -6
  532. package/src/private/error/empty-directory.js +0 -6
  533. package/src/private/error/empty-path-parameter.js +0 -6
  534. package/src/private/error/empty-route-file.js +0 -6
  535. package/src/private/error/error-in-config-file.js +0 -6
  536. package/src/private/error/mismatched-body.js +0 -6
  537. package/src/private/error/mismatched-path.js +0 -6
  538. package/src/private/error/mismatched-type.js +0 -6
  539. package/src/private/error/module-no-name.js +0 -6
  540. package/src/private/error/modules-array.js +0 -6
  541. package/src/private/error/no-handler.js +0 -6
  542. package/src/private/error/no-route-to-path.js +0 -6
  543. package/src/private/error/optional-route.js +0 -6
  544. package/src/private/error/reserved-type-name.js +0 -6
  545. package/src/private/error/rest-route.js +0 -6
  546. package/src/private/error.js +0 -15
  547. package/src/private/log.js +0 -69
  548. package/src/private/loglevel.js +0 -9
  549. package/src/private/mark.js +0 -5
  550. package/src/private/validate.js +0 -11
  551. package/src/serve/app.js +0 -206
  552. package/src/serve/handler/error.js +0 -10
  553. package/src/serve/handler/json.js +0 -10
  554. package/src/serve/handler/redirect.js +0 -11
  555. package/src/serve/handler/shared/base.js +0 -4
  556. package/src/serve/handler/sse.js +0 -24
  557. package/src/serve/handler/stream.js +0 -4
  558. package/src/serve/handler/text.js +0 -10
  559. package/src/serve/handler/view.js +0 -15
  560. package/src/serve/handler/ws.js +0 -2
  561. package/src/serve/hook/exports.js +0 -5
  562. package/src/serve/hook/handle.js +0 -106
  563. package/src/serve/hook/init.js +0 -3
  564. package/src/serve/hook/parse.js +0 -17
  565. package/src/serve/hook/respond.js +0 -28
  566. package/src/serve/hook/route.js +0 -50
  567. package/src/serve/hook/serve.js +0 -53
  568. package/src/serve/index.js +0 -9
  569. package/src/serve/module_loader.js +0 -16
  570. package/src/serve/to_sorted.js +0 -1
  571. /package/{src/build → lib/private}/defaults/app.html +0 -0
  572. /package/{src/build → lib/private}/defaults/error.html +0 -0
@@ -0,0 +1,3 @@
1
+ import decodeResponse from "#wasm/decode-response";
2
+ export default decodeResponse;
3
+ //# sourceMappingURL=decode-response.js.map
@@ -0,0 +1,3 @@
1
+ import encodeRequest from "#wasm/encode-request";
2
+ export default encodeRequest;
3
+ //# sourceMappingURL=encode-request.d.ts.map
@@ -0,0 +1,3 @@
1
+ import encodeRequest from "#wasm/encode-request";
2
+ export default encodeRequest;
3
+ //# sourceMappingURL=encode-request.js.map
@@ -0,0 +1,3 @@
1
+ import encodeSession from "#wasm/encode-session";
2
+ export default encodeSession;
3
+ //# sourceMappingURL=encode-session.d.ts.map
@@ -0,0 +1,3 @@
1
+ import encodeSession from "#wasm/encode-session";
2
+ export default encodeSession;
3
+ //# sourceMappingURL=encode-session.js.map
@@ -0,0 +1,4 @@
1
+ import instantiate from "#wasm/instantiate";
2
+ export default instantiate;
3
+ export type * from "#wasm/instantiate";
4
+ //# sourceMappingURL=instantiate.d.ts.map
@@ -0,0 +1,3 @@
1
+ import instantiate from "#wasm/instantiate";
2
+ export default instantiate;
3
+ //# sourceMappingURL=instantiate.js.map
package/package.json CHANGED
@@ -1,55 +1,60 @@
1
1
  {
2
2
  "name": "@primate/core",
3
- "version": "0.1.10",
4
- "description": "Primate core",
5
- "homepage": "https://primatejs.com",
6
- "bugs": "https://github.com/primatejs/primate/issues",
3
+ "version": "0.2.1",
4
+ "description": "The universal web framework",
5
+ "homepage": "https://primate.run",
6
+ "bugs": "https://github.com/primate-run/primate/issues",
7
7
  "license": "MIT",
8
8
  "files": [
9
- "src/**/*.js",
10
- "!src/**/*.spec.js",
11
- "src/build/defaults/*.html"
9
+ "/lib/**/*.js",
10
+ "/lib/**/*.d.ts",
11
+ "/lib/private/defaults/*.html",
12
+ "!/**/*.spec.*"
12
13
  ],
13
14
  "repository": {
14
15
  "type": "git",
15
- "url": "https://github.com/primatejs/primate",
16
+ "url": "https://github.com/primate-run/primate",
16
17
  "directory": "packages/core"
17
18
  },
18
19
  "dependencies": {
19
- "@rcompat/args": "^0.3.0",
20
- "@rcompat/array": "^0.3.0",
21
- "@rcompat/async": "^0.3.0",
22
- "@rcompat/build": "^0.6.0",
23
- "@rcompat/cli": "^0.5.1",
24
- "@rcompat/crypto": "^0.5.0",
25
- "@rcompat/fs": "^0.7.0",
26
- "@rcompat/function": "^0.4.0",
27
- "@rcompat/http": "^0.6.1",
28
- "@rcompat/invariant": "^0.5.0",
29
- "@rcompat/object": "^0.5.0",
30
- "@rcompat/package": "^0.8.0",
31
- "@rcompat/runtime": "^0.1.0",
32
- "@rcompat/stdio": "^0.5.0",
33
- "@rcompat/sync": "^0.3.0"
20
+ "@rcompat/args": "^0.8.0",
21
+ "@rcompat/assert": "^0.3.1",
22
+ "@rcompat/async": "^0.9.0",
23
+ "@rcompat/bufferview": "^0.3.0",
24
+ "@rcompat/build": "^0.14.0",
25
+ "@rcompat/cli": "^0.11.3",
26
+ "@rcompat/crypto": "^0.10.0",
27
+ "@rcompat/fs": "^0.21.1",
28
+ "@rcompat/function": "^0.9.0",
29
+ "@rcompat/http": "^0.15.1",
30
+ "@rcompat/kv": "^0.3.0",
31
+ "@rcompat/package": "^0.22.0",
32
+ "@rcompat/record": "^0.9.1",
33
+ "@rcompat/string": "^0.10.0",
34
+ "pema": "^0.2.0"
34
35
  },
35
36
  "type": "module",
36
37
  "imports": {
37
38
  "#*": {
38
- "livetypes": "./src/private/*.js",
39
- "default": "./src/private/*.js"
40
- },
41
- "#error/*": {
42
- "livetypes": "./src/private/error/*.js",
43
- "default": "./src/private/error/*.js"
39
+ "apekit": "./src/private/*.ts",
40
+ "default": "./lib/private/*.js"
44
41
  }
45
42
  },
46
43
  "exports": {
47
- "./serve": "./src/serve/index.js",
48
- "./build": "./src/build/index.js",
49
- "./error": "./src/error/index.js",
50
- "./log": "./src/log/index.js",
51
- "./dispatch": "./src/dispatch/index.js",
52
- "./http/verbs": "./src/http/verbs.js",
53
- "./handler/*": "./src/serve/handler/*.js"
44
+ "./error": "./lib/error/index.js",
45
+ "./dispatch": "./lib/dispatch/index.js",
46
+ "./frontend": {
47
+ "apekit": "./src/public/Frontend.ts"
48
+ },
49
+ "./*": {
50
+ "apekit": "./src/public/*.ts",
51
+ "default": "./lib/public/*.js"
52
+ }
53
+ },
54
+ "scripts": {
55
+ "build": "npm run clean && tsc && cp -a src/private/defaults lib/private",
56
+ "clean": "rm -rf ./lib",
57
+ "lint": "eslint .",
58
+ "test": "npm run build && npx proby"
54
59
  }
55
60
  }
package/src/build/app.js DELETED
@@ -1,99 +0,0 @@
1
- import join from "@rcompat/fs/join";
2
- import get from "@rcompat/object/get";
3
- import valmap from "@rcompat/object/valmap";
4
- import module_loader from "./module_loader.js";
5
- import { web } from "./targets/exports.js";
6
-
7
- export default async (root, config) => {
8
- const path = valmap(config.location, value => root.join(value));
9
- const error = await path.routes.join("+error.js");
10
-
11
- return {
12
- postbuild: [],
13
- bindings: {},
14
- roots: [],
15
- targets: { web: { target: web } },
16
- importmaps: {},
17
- assets: [],
18
- path,
19
- root,
20
- // pseudostatic thus arrowbound
21
- get: (config_key, fallback) => get(config, config_key) ?? fallback,
22
- set: (key, value) => {
23
- config[key] = value;
24
- },
25
- error: {
26
- default: await error.exists() ? await error.import("default") : undefined,
27
- },
28
- extensions: {},
29
- modules: await module_loader(root, config.modules ?? []),
30
- fonts: [],
31
- // copy files to build folder, potentially transforming them
32
- async stage(source, directory, apply_defines = false) {
33
- const { define = {} } = this.get("build", {});
34
- const defines = Object.entries(define);
35
-
36
- if (!await source.exists()) {
37
- return;
38
- }
39
-
40
- const target_base = this.runpath(directory);
41
-
42
- if (!apply_defines || defines.length === 0) {
43
- // copy everything
44
- await source.copy(target_base);
45
- } else {
46
- // copy files individually, transform them using a defines mapper
47
- const mapper = text =>
48
- defines.reduce((replaced, [key, substitution]) =>
49
- replaced.replaceAll(key, substitution), text);
50
-
51
- await Promise.all((await source.collect()).map(async abs_path => {
52
- const rel_path = join(directory, abs_path.debase(source));
53
- const target = await target_base.join(rel_path.debase(directory));
54
- await target.directory.create();
55
- await target.write(mapper(await abs_path.text()));
56
- }));
57
- }
58
- },
59
- async compile(component) {
60
- const { server, client, components } = this.get("location");
61
-
62
- const compile = this.extensions[component.fullExtension]
63
- ?? this.extensions[component.extension];
64
- if (compile === undefined) {
65
- const source = this.path.build.join(components);
66
- const debased = `${component.path}`.replace(source, "");
67
-
68
- const server_target = this.runpath(server, components, debased);
69
- await server_target.directory.create();
70
- await component.copy(server_target);
71
-
72
- const client_target = this.runpath(client, components, debased);
73
- await client_target.directory.create();
74
- await component.copy(client_target);
75
- } else {
76
- // compile server components
77
- await compile.server(component, this);
78
-
79
- // compile client components
80
- await compile.client(component, this);
81
- }
82
- },
83
- register(extension, compile) {
84
- this.extensions[extension] = compile;
85
- },
86
- runpath(...directories) {
87
- return this.path.build.join(...directories);
88
- },
89
- target(name, handler) {
90
- this.targets[name] = handler;
91
- },
92
- bind(extension, handler) {
93
- this.bindings[extension] = handler;
94
- },
95
- done(fn) {
96
- this.postbuild.push(fn);
97
- },
98
- };
99
- };
@@ -1,188 +0,0 @@
1
- import config_filename from "#config-filename";
2
- import log from "@primate/core/log";
3
- import cascade from "@rcompat/async/cascade";
4
- import Build from "@rcompat/build";
5
- import dim from "@rcompat/cli/color/dim";
6
- import collect from "@rcompat/fs/collect";
7
- import join from "@rcompat/fs/join";
8
- import exclude from "@rcompat/object/exclude";
9
- import stringify from "@rcompat/object/stringify";
10
- import manifest from "@rcompat/package/manifest";
11
- import root from "@rcompat/package/root";
12
- import copy_includes from "./copy_includes.js";
13
- import $router from "./router.js";
14
- import webpath from "@rcompat/fs/webpath";
15
-
16
- const pre = async (app, mode, target) => {
17
- let target$ = target;
18
- if (app.targets[target$] === undefined) {
19
- throw new Error(`target ${dim(target)} does not exist`);
20
- }
21
- if (app.targets[target$].forward) {
22
- target$ = app.targets[target$].forward;
23
- }
24
- app.build_target = target$;
25
- log.system(`starting ${dim(target$)} build in ${dim(mode)} mode`);
26
-
27
- app.build = new Build({
28
- ...exclude(app.get("build"), ["includes", "index"]),
29
- outdir: app.runpath(app.get("location.client")).path,
30
- stdin: {
31
- resolveDir: app.root.path,
32
- },
33
- }, mode);
34
-
35
- app.server_build = ["routes", "types"];
36
-
37
- // remove build directory in case exists
38
- await app.path.build.remove();
39
- await app.path.build.create();
40
-
41
- await Promise.all(["server", "client", "components"]
42
- .map(directory => app.runpath(directory).create()));
43
-
44
- const router = await $router(app.path.routes,
45
- [".js"].concat(Object.keys(app.bindings)));
46
- const layout = { depth: router.depth("layout") };
47
- app.set("layout", layout);
48
-
49
- return { ...app, layout };
50
- };
51
-
52
- const js_re = /^.*.js$/u;
53
- const write_directories = async (build_directory, app) => {
54
- const location = app.get("location");
55
- for (const name of app.server_build) {
56
- const d = app.runpath(location.server, name);
57
- const e = await Promise.all((await collect(d, js_re, { recursive: true }))
58
- .map(async path => `${path}`.replace(d, _ => "")));
59
- const files_js = `
60
- const ${name} = [];
61
- ${e.map((path, i) =>
62
- `import * as ${name}${i} from "${webpath(`../server/${name}${path}`)}";
63
- ${name}.push(["${webpath(path.slice(1, -".js".length))}", ${name}${i}]);`,
64
- ).join("\n")}
65
- export default ${name};`;
66
- await build_directory.join(`${name}.js`).write(files_js);
67
- }
68
- };
69
-
70
- const write_components = async (build_directory, app) => {
71
- const location = app.get("location");
72
- const d2 = app.runpath(location.server, location.components);
73
- const e = await Promise.all((await collect(d2, js_re, { recursive: true }))
74
- .map(async path => `${path}`.replace(d2, _ => "")));
75
- const components_js = `
76
- const components = [];
77
- ${e.map((component, i) =>
78
- `import * as component${i} from "${webpath(`../server/components${component}`)}";
79
- components.push(["${webpath(component.slice(1, -".js".length))}", component${i}]);`,
80
- ).join("\n")}
81
-
82
- ${app.roots.map((root, i) => `
83
- import * as root${i} from "${webpath(`../server/${root.name}`)}";
84
- components.push(["${root.name}", root${i}]);
85
- `).join("\n")}
86
-
87
- export default components;`;
88
- await build_directory.join("components.js").write(components_js);
89
- };
90
-
91
- const write_bootstrap = async (build_number, app, mode) => {
92
- const build_start_script = `
93
- import serve from "primate/serve";
94
- import config from "./${config_filename}";
95
- const files = {};
96
- ${app.server_build.map(name =>
97
- `import ${name} from "./${build_number}/${name}.js";
98
- files.${name} = ${name};`,
99
- ).join("\n")}
100
- import components from "./${build_number}/components.js";
101
- import target from "./target.js";
102
-
103
- await serve(import.meta.url, {
104
- ...target,
105
- config,
106
- files,
107
- components,
108
- mode: "${mode}",
109
- });`;
110
- await app.path.build.join("serve.js").write(build_start_script);
111
- };
112
-
113
- const post = async (app, mode, target) => {
114
- const location = app.get("location");
115
- const defaults = join(import.meta.url, "../../defaults");
116
-
117
- // stage routes
118
- await app.stage(app.path.routes, join(location.server, location.routes));
119
-
120
- // stage types
121
- await app.stage(app.path.types, join(location.server, location.types));
122
-
123
- // stage components, transforming defines
124
- await app.stage(app.path.components, location.components, true);
125
-
126
- const directory = app.runpath(location.server, location.routes);
127
- for (const path of await directory.collect()) {
128
- await app.bindings[path.extension]
129
- ?.(directory, path.debase(`${directory}/`));
130
- }
131
- // copy framework pages
132
- await app.stage(defaults, join(location.server, location.pages));
133
- // overwrite transformed pages to build
134
- await app.stage(app.path.pages, join(location.server, location.pages));
135
-
136
- // copy static files to build/server/static
137
- await app.stage(app.path.static, join(location.server, location.static));
138
-
139
- // publish JavaScript and CSS files
140
- const imports = await collect(app.path.static, /\.(?:css)$/u);
141
- await Promise.all(imports.map(async file => {
142
- const src = file.debase(app.path.static);
143
- app.build.export(`import "./${location.static}${src}";`);
144
- }));
145
-
146
- // copy additional subdirectories to build/server
147
- await copy_includes(app, location.server);
148
-
149
- const components = await app.runpath(location.components).collect();
150
-
151
- // from the build directory, compile to server and client
152
- await Promise.all(components.map(component => app.compile(component)));
153
-
154
- // start the build
155
- await app.build.start();
156
-
157
- // a target needs to create an `assets.js` that exports assets
158
- await app.targets[app.build_target].target(app);
159
-
160
- const build_number = crypto.randomUUID().slice(0, 8);
161
- const build_directory = app.path.build.join(build_number);
162
- // TODO: remove after rcompat automatically creates directories
163
- await build_directory.create();
164
-
165
- await write_components(build_directory, app);
166
- await write_directories(build_directory, app);
167
- await write_bootstrap(build_number, app, mode);
168
-
169
- // copy config file
170
- const local_config = app.root.join(config_filename);
171
- const build_config = app.path.build.join(config_filename);
172
- const root_base = await root(import.meta.url);
173
- const default_config = root_base.join("/src/private/config.js");
174
- (await local_config.exists() ? local_config : default_config)
175
- .copy(build_config);
176
-
177
- const manifest_data = await manifest();
178
- // create package.json
179
- const package_json = "package.json";
180
- await app.path.build.join(package_json).write(stringify(manifest_data));
181
-
182
- log.system(`build written to ${dim(app.path.build)}`);
183
-
184
- app.postbuild.forEach(fn => fn());
185
- };
186
-
187
- export default async (app, mode = "development", target = "web") =>
188
- post(await (await cascade(app.modules.build))(await pre(app, mode, target)), mode, target);
@@ -1,20 +0,0 @@
1
- import join from "@rcompat/fs/join";
2
-
3
- export default async (app, type, post = () => undefined) => {
4
- const includes = app.get("build.includes");
5
- const reserved = Object.values(app.get("location"));
6
-
7
- if (Array.isArray(includes)) {
8
- await Promise.all(includes
9
- .filter(include => !reserved.includes(include))
10
- .filter(include => /^[^/]*$/u.test(include))
11
- .map(async include => {
12
- const path = app.root.join(include);
13
- if (await path.exists()) {
14
- const target = join(type, include);
15
- await app.stage(path, target);
16
- await post(target);
17
- }
18
- }));
19
- }
20
- };
@@ -1,2 +0,0 @@
1
- export { default as init } from "./init.js";
2
- export { default as build } from "./build.js";
@@ -1,3 +0,0 @@
1
- import cascade from "@rcompat/async/cascade";
2
-
3
- export default async app => (await cascade(app.modules.init))(app);
@@ -1,33 +0,0 @@
1
- import double_route from "#error/double-route";
2
- import optional_route from "#error/optional-route";
3
- import rest_route from "#error/rest-route";
4
- import Router from "@rcompat/fs/router";
5
-
6
- const error_entries = Object.entries({
7
- DoubleRoute: double_route,
8
- OptionalRoute: optional_route,
9
- RestRoute: rest_route,
10
- });
11
-
12
- export default async (directory, extensions) => {
13
- try {
14
- return await Router.load({
15
- import: false,
16
- extensions,
17
- directory,
18
- specials: {
19
- guard: { recursive: true },
20
- error: { recursive: false },
21
- layout: { recursive: true },
22
- },
23
- predicate(route, request) {
24
- return route.default[request.method.toLowerCase()] !== undefined;
25
- },
26
- });
27
- } catch (error) {
28
- error_entries.forEach(([key, value]) =>
29
- error instanceof Router.Error[key] && value(error.route));
30
- // rethrow original error
31
- throw error;
32
- }
33
- };
@@ -1,49 +0,0 @@
1
- import bye from "#bye";
2
- import config from "#config";
3
- import config_filename from "#config-filename";
4
- import empty_config_file from "#error/empty-config-file";
5
- import error_in_config_file from "#error/error-in-config-file";
6
- import tryreturn from "@rcompat/async/tryreturn";
7
- import empty from "@rcompat/object/empty";
8
- import override from "@rcompat/object/override";
9
- import root from "@rcompat/package/root";
10
- import runtime from "@rcompat/runtime";
11
- import app from "./app.js";
12
- import { build, init } from "./hook/exports.js";
13
-
14
- const empty_config = config => config === undefined || empty(config);
15
-
16
- const get_config = async project_root => {
17
- const local_config = project_root.join(config_filename);
18
- const exists = await local_config.exists();
19
- if (exists) {
20
- try {
21
- const imported = await local_config.import("default");
22
-
23
- empty_config(imported) && empty_config_file(local_config);
24
-
25
- return imported;
26
- } catch (error) {
27
- if (error.level === undefined) {
28
- error_in_config_file(error.message, `${runtime} ${local_config}`);
29
- } else {
30
- throw error;
31
- }
32
- }
33
- }
34
- return config;
35
- };
36
-
37
- export default async (mode, target) => tryreturn(async _ => {
38
- const package_root = await root();
39
- const app_config = override(config, await get_config(package_root));
40
- const $app = await app(package_root, app_config);
41
- await build(await init($app), mode, target);
42
- return true;
43
- }).orelse(error => {
44
- if (error.level === "error") {
45
- bye();
46
- return;
47
- }
48
- throw error;
49
- });
@@ -1,30 +0,0 @@
1
- import config_filename from "#config-filename";
2
- import double_module from "#error/double-module";
3
- import module_no_name from "#error/module-no-name";
4
- import modules_array from "#error/modules-array";
5
- import * as hooks from "./hook/exports.js";
6
-
7
- const doubled = set => set.find((part, i, array) =>
8
- array.filter((_, j) => i !== j).includes(part));
9
- const filter = (key, array) => array?.flatMap(m => m[key] ?? []) ?? [];
10
- const load = (modules = []) => modules.map(module =>
11
- [module, load(module.load?.() ?? [])]).flat();
12
-
13
- export default async (root, modules) => {
14
- !Array.isArray(modules) && modules_array("modules");
15
-
16
- modules.some(({ name }, n) => name === undefined && module_no_name(n));
17
-
18
- const names = modules.map(({ name }) => name);
19
- new Set(names).size !== modules.length && double_module(
20
- doubled(names), root.join(config_filename));
21
-
22
- // collect modules
23
- const loaded = load(modules).flat(2);
24
-
25
- return {
26
- names: loaded.map(module => module.name),
27
- ...Object.fromEntries([...Object.keys(hooks), "context"]
28
- .map(hook => [hook, filter(hook, loaded)])),
29
- };
30
- };
@@ -1 +0,0 @@
1
- export { default as web } from "./web.js";
@@ -1,70 +0,0 @@
1
- import collect from "@rcompat/fs/collect";
2
- import webpath from "@rcompat/fs/webpath";
3
-
4
- const html = /^.*.html$/u;
5
-
6
- export default async app => {
7
- const location = app.get("location");
8
- const client = app.runpath(location.client);
9
- const client_imports = (await client.collect())
10
- .map((file, i) => {
11
- const type = file.extension === ".css" ? "style" : "js";
12
- const src = `/${file.debase(client).name}`;
13
- const path = `./${file.debase(`${app.path.build}/`)}`;
14
- return {
15
- src,
16
- path,
17
- code: `await load_text(asset${i})`,
18
- type,
19
- };
20
- });
21
- const d = app.runpath(location.server, location.pages);
22
- const pages = await Promise.all((await collect(d, html, { recursive: true }))
23
- .map(async file => `${file.debase(d)}`.slice(1)));
24
- const pages_str = pages.map(page =>
25
- `"${page}": await load_text(import.meta.url,
26
- "${webpath(`../${location.server}/${location.pages}/${page}`)}"),`).join("\n");
27
-
28
- const assets_scripts = `
29
- import loader from "primate/loader";
30
- import load_text from "primate/load-text";
31
-
32
- ${client_imports.map(({ path }, i) =>
33
- `const asset${i} = await load_text(import.meta.url, "../${path}");`)
34
- .join("\n ")}
35
- const assets = [${client_imports.map(($import, i) => `{
36
- src: "${$import.src}",
37
- code: asset${i},
38
- type: "${$import.type}",
39
- inline: false,
40
- }`).join(",\n ")}];
41
-
42
- const imports = {
43
- app: "${client_imports.find(({ src }) =>
44
- src.includes("app") && src.endsWith(".js")).src}"
45
- };
46
- // importmap
47
- assets.push({
48
- inline: true,
49
- code: { imports },
50
- type: "importmap",
51
- });
52
-
53
- const pages = {
54
- ${pages_str}
55
- };
56
-
57
- export default {
58
- assets,
59
- loader: loader({
60
- pages,
61
- rootfile: import.meta.url,
62
- pages_app: "${app.get("pages.app")}",
63
- static_root: "${app.get("http.static.root")}",
64
- }),
65
- target: "web",
66
- };
67
- `;
68
- await app.path.build.join("target.js").write(assets_scripts);
69
-
70
- };
@@ -1 +0,0 @@
1
- export { default } from "#dispatch";
package/src/http/verbs.js DELETED
@@ -1,11 +0,0 @@
1
- export default [
2
- "get",
3
- "post",
4
- "put",
5
- "delete",
6
- "head",
7
- "connect",
8
- "options",
9
- "trace",
10
- "patch",
11
- ];
@@ -1 +0,0 @@
1
- export default "primate.config.js";