@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,5 @@
1
+ import AppError from "#AppError";
2
+ export default function fail(message, ...params) {
3
+ return new AppError(message, ...params);
4
+ }
5
+ //# sourceMappingURL=fail.js.map
@@ -0,0 +1,8 @@
1
+ import type Dict from "@rcompat/type/Dict";
2
+ type Component = {
3
+ component: unknown;
4
+ name: string;
5
+ props: Dict;
6
+ };
7
+ export type { Component as default };
8
+ //# sourceMappingURL=Component.d.ts.map
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Component.js.map
@@ -0,0 +1,60 @@
1
+ import type App from "#App";
2
+ import type BuildApp from "#BuildApp";
3
+ import type Render from "#frontend/Render";
4
+ import type ServerComponent from "#frontend/ServerComponent";
5
+ import type ViewResponse from "#frontend/ViewResponse";
6
+ import Module from "#Module";
7
+ import type Next from "#module/Next";
8
+ import type NextBuild from "#module/NextBuild";
9
+ import type NextServe from "#module/NextServe";
10
+ import type ServeApp from "#ServeApp";
11
+ import FileRef from "@rcompat/fs/FileRef";
12
+ import type MaybePromise from "@rcompat/type/MaybePromise";
13
+ export default abstract class FrontendModule<S = ServerComponent> extends Module {
14
+ #private;
15
+ abstract client: boolean;
16
+ abstract layouts: boolean;
17
+ abstract defaultExtensions: string[];
18
+ render: Render<S>;
19
+ root?: {
20
+ create: (depth: number, i18n_active: boolean) => string;
21
+ };
22
+ compile: {
23
+ client?: (text: string, file: FileRef, root: boolean) => MaybePromise<{
24
+ css?: null | string;
25
+ js: string;
26
+ }>;
27
+ server?: (text: string) => MaybePromise<string>;
28
+ };
29
+ css?: {
30
+ filter: RegExp;
31
+ };
32
+ static schema: import("pema").ObjectType<{
33
+ fileExtensions: import("pema").OptionalType<import("pema/array").ArrayType<import("pema/string").StringType>>;
34
+ spa: import("pema").DefaultType<import("pema/boolean").BooleanType, true>;
35
+ ssr: import("pema").DefaultType<import("pema/boolean").BooleanType, true>;
36
+ }>;
37
+ static options: {
38
+ fileExtensions: string[] | undefined;
39
+ spa: boolean;
40
+ ssr: boolean;
41
+ };
42
+ static input: {
43
+ fileExtensions?: string[] | undefined;
44
+ spa?: boolean | undefined;
45
+ ssr?: boolean | undefined;
46
+ } | undefined;
47
+ constructor(options?: typeof FrontendModule.schema.input);
48
+ get fileExtensions(): string[];
49
+ get package(): string;
50
+ get rootname(): string;
51
+ get ssr(): boolean;
52
+ get spa(): boolean;
53
+ normalize(name: string): Promise<string>;
54
+ respond: ViewResponse;
55
+ serve(app: ServeApp, next: NextServe): MaybePromise<ServeApp>;
56
+ publish(app: BuildApp): void;
57
+ init<T extends App>(app: T, next: Next<T>): MaybePromise<T>;
58
+ build(app: BuildApp, next: NextBuild): Promise<BuildApp>;
59
+ }
60
+ //# sourceMappingURL=Module.d.ts.map
@@ -0,0 +1,241 @@
1
+ import AppError from "#AppError";
2
+ import bundle from "#frontend/bundle-server";
3
+ import inline from "#inline";
4
+ import location from "#location";
5
+ import Module from "#Module";
6
+ import assert from "@rcompat/assert";
7
+ import map from "@rcompat/async/map";
8
+ import hash from "@rcompat/crypto/hash";
9
+ import FileRef from "@rcompat/fs/FileRef";
10
+ import APPLICATION_JSON from "@rcompat/http/mime/application/json";
11
+ import Status from "@rcompat/http/Status";
12
+ import pema from "pema";
13
+ import array from "pema/array";
14
+ import boolean from "pema/boolean";
15
+ import string from "pema/string";
16
+ async function normalize(path) {
17
+ return `p_${await hash(path)}`;
18
+ }
19
+ export default class FrontendModule extends Module {
20
+ #options;
21
+ render = async (component, props) => ({ body: await component(props) });
22
+ root;
23
+ compile = {};
24
+ css;
25
+ static schema = pema({
26
+ fileExtensions: array(string).optional(),
27
+ spa: boolean.default(true),
28
+ ssr: boolean.default(true),
29
+ });
30
+ static options = FrontendModule.schema.infer;
31
+ static input = FrontendModule.schema.input;
32
+ constructor(options) {
33
+ super();
34
+ this.#options = FrontendModule.schema.parse(options);
35
+ }
36
+ get fileExtensions() {
37
+ return this.#options.fileExtensions ?? this.defaultExtensions;
38
+ }
39
+ get package() {
40
+ return `@primate/${this.name}`;
41
+ }
42
+ get rootname() {
43
+ return `root_${this.name}`;
44
+ }
45
+ get ssr() {
46
+ return this.#options.ssr;
47
+ }
48
+ get spa() {
49
+ return this.#options.spa;
50
+ }
51
+ #load(name, props, app) {
52
+ const component = app.component(name);
53
+ return { component, name, props };
54
+ }
55
+ ;
56
+ async #render(server, client, app) {
57
+ const { body, head = "", headers = {} } = this.ssr
58
+ ? await this.render(server.component, server.props)
59
+ : { body: "", head: "" };
60
+ if (!this.client) {
61
+ return { body, head, headers };
62
+ }
63
+ const code = "import app from \"app\"; app.start();";
64
+ const inlined = await inline(code, "module");
65
+ const json_props = JSON.stringify({ frontend: this.name, ...client });
66
+ const hydrated = await inline(json_props, APPLICATION_JSON, "hydration");
67
+ const script_src = [inlined.integrity, hydrated.integrity];
68
+ return {
69
+ body,
70
+ head: head.concat(inlined.head, hydrated.head),
71
+ headers: app.headers({ "script-src": script_src }),
72
+ };
73
+ }
74
+ normalize(name) {
75
+ return normalize(name);
76
+ }
77
+ respond = (component, props = {}, options = {}) => async (app, { as_layout, layouts = [] } = {}, request) => {
78
+ if (as_layout) {
79
+ return this.#load(component, props, app);
80
+ }
81
+ const components = (await Promise.all(layouts
82
+ .map(layout => layout(app, { as_layout: true }, request))))
83
+ /* set the actual page as the last component */
84
+ .concat(this.#load(component, props, app));
85
+ const $request = {
86
+ context: request.context,
87
+ cookies: request.cookies.toJSON(),
88
+ headers: request.headers.toJSON(),
89
+ path: request.path.toJSON(),
90
+ query: request.query.toJSON(),
91
+ url: request.url,
92
+ };
93
+ const $props = this.layouts
94
+ ? {
95
+ components: await map(components, ({ name }) => normalize(name)),
96
+ props: components.map(c => c.props),
97
+ request: $request,
98
+ }
99
+ : { props, request: $request };
100
+ const client = {
101
+ component: this.layouts ? "root" : await normalize(component),
102
+ spa: this.spa,
103
+ ssr: this.ssr,
104
+ ...$props,
105
+ };
106
+ if (this.spa && request.headers.get("Accept") === APPLICATION_JSON) {
107
+ return new Response(JSON.stringify(client), {
108
+ headers: { ...app.headers(), "Content-Type": APPLICATION_JSON },
109
+ status: options.status ?? Status.OK,
110
+ });
111
+ }
112
+ try {
113
+ const server = this.layouts
114
+ ? {
115
+ component: app.component(`${this.rootname}.js`),
116
+ props: {
117
+ components: components.map(c => c.component),
118
+ props: components.map(c => c.props),
119
+ request: $request,
120
+ },
121
+ }
122
+ : {
123
+ component: app.component(component),
124
+ props,
125
+ request: $request,
126
+ };
127
+ const { body, head, headers } = await this.#render(server, client, app);
128
+ return app.view({ body, head, headers, ...options });
129
+ }
130
+ catch (error) {
131
+ const path = `${location.components}/${component}`;
132
+ throw new AppError("error in component {0}\n{1}", path, error);
133
+ }
134
+ };
135
+ serve(app, next) {
136
+ this.fileExtensions.forEach(fe => app.register(fe, this.respond));
137
+ return next(app);
138
+ }
139
+ publish(app) {
140
+ if (this.compile.client) {
141
+ const { compile, css, fileExtensions, name, root } = this;
142
+ if (this.client) {
143
+ fileExtensions.forEach(fe => app.frontends.set(name, fe));
144
+ }
145
+ app.build.plugin({
146
+ name,
147
+ setup(build) {
148
+ const resolveDir = app.root.path;
149
+ if (root !== undefined) {
150
+ const filter = new RegExp(`^${name}:root`);
151
+ build.onResolve({ filter }, ({ path }) => {
152
+ return { namespace: `${name}`, path };
153
+ });
154
+ build.onLoad({ filter }, async () => {
155
+ const contents = (await compile.client(root.create(app.depth(), app.i18n_active), new FileRef("/tmp"), true)).js;
156
+ return contents ? { contents, loader: "js", resolveDir } : null;
157
+ });
158
+ }
159
+ if (css !== undefined) {
160
+ build.onResolve({ filter: css.filter }, ({ path }) => {
161
+ return { namespace: `${name}css`, path };
162
+ });
163
+ build.onLoad({ filter: css.filter }, ({ path }) => {
164
+ const contents = app.build.load(FileRef.webpath(path));
165
+ return contents
166
+ ? { contents, loader: "css", resolveDir: resolveDir }
167
+ : null;
168
+ });
169
+ }
170
+ const components_filter = new RegExp(`^${name}:components`);
171
+ build.onResolve({ filter: components_filter }, ({ path }) => {
172
+ return { namespace: `${name}`, path };
173
+ });
174
+ build.onLoad({ filter: components_filter }, async () => {
175
+ const components = await app.root
176
+ .join(location.components)
177
+ .collect(c => fileExtensions.includes(c.fullExtension));
178
+ let contents = "";
179
+ for (const component of components) {
180
+ const { path } = component.debase(component.directory, "/");
181
+ contents += `export { default as ${await normalize(path)} }
182
+ from "#component/${path}";\n`;
183
+ }
184
+ return { contents, resolveDir: app.root.path };
185
+ });
186
+ const filter = new RegExp(`(${fileExtensions.map(e => e.replace(".", "\\.")).join("|")})$`);
187
+ build.onLoad({ filter }, async (args) => {
188
+ const file = new FileRef(args.path);
189
+ // Compile file to JavaScript and potentially CSS
190
+ const compiled = await compile.client(await file.text(), file, false);
191
+ let contents = compiled.js;
192
+ if (css
193
+ && compiled.css !== null
194
+ && compiled.css !== undefined
195
+ && compiled.css !== "") {
196
+ const path = FileRef.webpath(`${args.path}css`);
197
+ app.build.save(path, compiled.css);
198
+ contents += `\nimport "${path}";`;
199
+ }
200
+ return { contents };
201
+ });
202
+ },
203
+ });
204
+ }
205
+ }
206
+ init(app, next) {
207
+ this.fileExtensions.forEach(e => {
208
+ app.bind(e, async (file, { context }) => {
209
+ assert(context === "components", `${this.name}: only components supported`);
210
+ if (this.compile.server) {
211
+ const original = file.debase(app.runpath("stage", "components"));
212
+ const source = app.path.components.join(original);
213
+ const code = await this.compile.server(await source.text());
214
+ const bundled = await bundle({
215
+ code,
216
+ source,
217
+ root: app.root,
218
+ extensions: this.fileExtensions,
219
+ compile: async (s) => this.compile.server(s),
220
+ });
221
+ await file.append(".js").write(bundled);
222
+ }
223
+ });
224
+ });
225
+ return next(app);
226
+ }
227
+ async build(app, next) {
228
+ // compile root server
229
+ if (this.root !== undefined && this.compile.server !== undefined) {
230
+ const filename = `${this.rootname}.js`;
231
+ const root = await this.compile.server(this.root.create(app.depth(), app.i18n_active));
232
+ const path = app.runpath(location.server, filename);
233
+ await path.write(root);
234
+ app.addRoot(path);
235
+ }
236
+ this.publish(app);
237
+ return next(app);
238
+ }
239
+ ;
240
+ }
241
+ //# sourceMappingURL=Module.js.map
@@ -0,0 +1,5 @@
1
+ import type BuildApp from "#BuildApp";
2
+ import type { Plugin } from "esbuild";
3
+ type Publish = (app: BuildApp, extension: string) => Plugin;
4
+ export { Publish as default };
5
+ //# sourceMappingURL=Publish.d.ts.map
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Publish.js.map
@@ -0,0 +1,9 @@
1
+ import type Dict from "@rcompat/type/Dict";
2
+ import type MaybePromise from "@rcompat/type/MaybePromise";
3
+ type Render<S = unknown> = (component: S, props: Dict) => MaybePromise<{
4
+ body: string;
5
+ head?: string;
6
+ headers?: Record<string, string>;
7
+ }>;
8
+ export type { Render as default };
9
+ //# sourceMappingURL=Render.d.ts.map
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Render.js.map
@@ -0,0 +1,5 @@
1
+ import type Dict from "@rcompat/type/Dict";
2
+ import type MaybePromise from "@rcompat/type/MaybePromise";
3
+ type ServerComponent = (props: Dict) => MaybePromise<string>;
4
+ export { ServerComponent as default };
5
+ //# sourceMappingURL=ServerComponent.d.ts.map
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ServerComponent.js.map
@@ -0,0 +1,7 @@
1
+ import type Dict from "@rcompat/type/Dict";
2
+ type ServerData<T> = {
3
+ component: T;
4
+ props: Dict;
5
+ };
6
+ export type { ServerData as default };
7
+ //# sourceMappingURL=ServerData.d.ts.map
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ServerData.js.map
@@ -0,0 +1,12 @@
1
+ import type Dict from "@rcompat/type/Dict";
2
+ export default interface ViewOptions extends ResponseInit {
3
+ csp?: {
4
+ script_src?: string[];
5
+ style_src?: string[];
6
+ };
7
+ head?: string;
8
+ page?: string;
9
+ partial?: boolean;
10
+ placeholders?: Omit<Dict, "body" | "head">;
11
+ }
12
+ //# sourceMappingURL=ViewOptions.d.ts.map
@@ -0,0 +1,3 @@
1
+ ;
2
+ export {};
3
+ //# sourceMappingURL=ViewOptions.js.map
@@ -0,0 +1,6 @@
1
+ import type ViewOptions from "#frontend/ViewOptions";
2
+ import type ResponseFunction from "#response/ResponseFunction";
3
+ import type Dict from "@rcompat/type/Dict";
4
+ type View = (name: string, props?: Dict, options?: ViewOptions) => ResponseFunction;
5
+ export { View as default };
6
+ //# sourceMappingURL=ViewResponse.d.ts.map
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ViewResponse.js.map
@@ -0,0 +1,11 @@
1
+ import FileRef from "@rcompat/fs/FileRef";
2
+ type Init = {
3
+ code: string;
4
+ source: FileRef;
5
+ root: FileRef;
6
+ extensions: string[];
7
+ compile: (src: string, file?: FileRef) => Promise<string>;
8
+ };
9
+ export default function bundleServer(init: Init): Promise<string>;
10
+ export {};
11
+ //# sourceMappingURL=bundle-server.d.ts.map
@@ -0,0 +1,48 @@
1
+ import FileRef from "@rcompat/fs/FileRef";
2
+ import * as esbuild from "esbuild";
3
+ export default async function bundleServer(init) {
4
+ const { code, source, root, extensions, compile } = init;
5
+ const filter = new RegExp(`(${extensions.map(e => e.replace(".", "\\.")).join("|")})$`);
6
+ const plugin = {
7
+ name: "primate/bundle/server",
8
+ setup(build) {
9
+ // compile non-JS sources to JS
10
+ build.onLoad({ filter }, async (args) => {
11
+ const file = new FileRef(args.path);
12
+ const src = await file.text();
13
+ const contents = await compile(src, file);
14
+ return { contents, loader: "js", resolveDir: file.directory.path };
15
+ });
16
+ // externalise anything not relative nor "#component/"
17
+ build.onResolve({ filter: /.*/ }, args => {
18
+ const p = args.path;
19
+ const relative = p.startsWith("./") || p.startsWith("../");
20
+ const components = p.startsWith("#component/");
21
+ if (!relative && !components)
22
+ return { path: p, external: true };
23
+ return null;
24
+ });
25
+ },
26
+ };
27
+ const result = await esbuild.build({
28
+ absWorkingDir: root.path,
29
+ tsconfig: root.join("tsconfig.json").path,
30
+ bundle: true,
31
+ write: false,
32
+ platform: "node",
33
+ format: "esm",
34
+ target: "esnext",
35
+ conditions: ["node", "default", "apekit"],
36
+ resolveExtensions: [".ts", ".js", ...extensions],
37
+ plugins: [plugin],
38
+ stdin: {
39
+ contents: code,
40
+ sourcefile: source.path,
41
+ resolveDir: source.directory.path,
42
+ loader: "js",
43
+ },
44
+ logLevel: "silent",
45
+ });
46
+ return result.outputFiles[0].text;
47
+ }
48
+ //# sourceMappingURL=bundle-server.js.map
@@ -0,0 +1,3 @@
1
+ declare function hash(data: string, algorithm?: string): Promise<string>;
2
+ export default hash;
3
+ //# sourceMappingURL=hash.d.ts.map
@@ -0,0 +1,10 @@
1
+ import crypto from "@rcompat/crypto";
2
+ const encoder = new TextEncoder();
3
+ async function hash(data, algorithm = "sha-384") {
4
+ const bytes = await crypto.subtle.digest(algorithm, encoder.encode(data));
5
+ const prefix = algorithm.replace("-", _ => "");
6
+ return `${prefix}-${btoa(String.fromCharCode(...new Uint8Array(bytes)))}`;
7
+ }
8
+ ;
9
+ export default hash;
10
+ //# sourceMappingURL=hash.js.map
@@ -0,0 +1,4 @@
1
+ import type BuildApp from "#BuildApp";
2
+ declare const _default: (app: BuildApp) => Promise<BuildApp>;
3
+ export default _default;
4
+ //# sourceMappingURL=build.d.ts.map