@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.
- package/lib/private/App.d.ts +54 -0
- package/lib/private/App.js +128 -0
- package/lib/private/AppError.d.ts +4 -0
- package/lib/private/AppError.js +8 -0
- package/lib/private/Binder.d.ts +13 -0
- package/lib/private/Binder.js +2 -0
- package/lib/private/BindingContext.d.ts +3 -0
- package/lib/private/BindingContext.js +2 -0
- package/lib/private/BuildApp.d.ts +23 -0
- package/lib/private/BuildApp.js +121 -0
- package/lib/private/CSP.d.ts +6 -0
- package/lib/private/CSP.js +2 -0
- package/lib/private/Loader.d.ts +17 -0
- package/lib/private/Loader.js +46 -0
- package/lib/private/Mode.d.ts +3 -0
- package/lib/private/Mode.js +2 -0
- package/lib/private/Module.d.ts +18 -0
- package/lib/private/Module.js +18 -0
- package/lib/private/ServeApp.d.ts +89 -0
- package/lib/private/ServeApp.js +305 -0
- package/lib/private/ServeInit.d.ts +29 -0
- package/lib/private/ServeInit.js +2 -0
- package/lib/private/asset/Asset.d.ts +11 -0
- package/lib/private/asset/Asset.js +2 -0
- package/lib/private/asset/Font.d.ts +8 -0
- package/lib/private/asset/Font.js +2 -0
- package/lib/private/asset/Script.d.ts +9 -0
- package/lib/private/asset/Script.js +2 -0
- package/lib/private/asset/Style.d.ts +6 -0
- package/lib/private/asset/Style.js +2 -0
- package/lib/private/backend/Module.d.ts +18 -0
- package/lib/private/backend/Module.js +22 -0
- package/lib/private/build.d.ts +4 -0
- package/lib/private/build.js +45 -0
- package/lib/private/builtin/DevModule.d.ts +11 -0
- package/lib/private/builtin/DevModule.js +32 -0
- package/lib/private/builtin/HandleModule.d.ts +10 -0
- package/lib/private/builtin/HandleModule.js +15 -0
- package/lib/private/bye.d.ts +3 -0
- package/{src → lib}/private/bye.js +2 -2
- package/lib/private/client/App.d.ts +4 -0
- package/lib/private/client/App.js +12 -0
- package/lib/private/client/Data.d.ts +9 -0
- package/lib/private/client/Data.js +2 -0
- package/lib/private/client/ValidateInit.d.ts +13 -0
- package/lib/private/client/ValidateInit.js +2 -0
- package/lib/private/client/ValidateUpdater.d.ts +3 -0
- package/lib/private/client/ValidateUpdater.js +2 -0
- package/lib/private/client/ValidationError.d.ts +6 -0
- package/lib/private/client/ValidationError.js +2 -0
- package/lib/private/client/spa/index.d.ts +6 -0
- package/lib/private/client/spa/index.js +192 -0
- package/lib/private/client/spa/storage.d.ts +12 -0
- package/lib/private/client/spa/storage.js +54 -0
- package/lib/private/client/toValidated.d.ts +17 -0
- package/lib/private/client/toValidated.js +21 -0
- package/lib/private/client/validate.d.ts +3 -0
- package/lib/private/client/validate.js +54 -0
- package/lib/private/config/Config.d.ts +4 -0
- package/lib/private/config/Config.js +2 -0
- package/lib/private/config/config/app.d.ts +3 -0
- package/lib/private/config/config/app.js +3 -0
- package/lib/private/config/config/database/index.d.ts +3 -0
- package/lib/private/config/config/database/index.js +3 -0
- package/lib/private/config/config/session.d.ts +3 -0
- package/lib/private/config/config/session.js +3 -0
- package/lib/private/config/index.d.ts +25 -0
- package/lib/private/config/index.js +3 -0
- package/lib/private/config/schema.d.ts +26 -0
- package/lib/private/config/schema.js +34 -0
- package/lib/private/cookie.d.ts +11 -0
- package/lib/private/cookie.js +30 -0
- package/lib/private/database/As.d.ts +7 -0
- package/lib/private/database/As.js +2 -0
- package/lib/private/database/Binds.d.ts +4 -0
- package/lib/private/database/Binds.js +2 -0
- package/lib/private/database/Changes.d.ts +11 -0
- package/lib/private/database/Changes.js +2 -0
- package/lib/private/database/ColumnTypes.d.ts +11 -0
- package/lib/private/database/ColumnTypes.js +2 -0
- package/lib/private/database/DataDict.d.ts +5 -0
- package/lib/private/database/DataDict.js +2 -0
- package/lib/private/database/DataKey.d.ts +4 -0
- package/lib/private/database/DataKey.js +2 -0
- package/lib/private/database/DataRecord.d.ts +8 -0
- package/lib/private/database/DataRecord.js +3 -0
- package/lib/private/database/DataValue.d.ts +5 -0
- package/lib/private/database/DataValue.js +2 -0
- package/lib/private/database/Database.d.ts +56 -0
- package/lib/private/database/Database.js +153 -0
- package/lib/private/database/InMemoryDatabase.d.ts +37 -0
- package/lib/private/database/InMemoryDatabase.js +181 -0
- package/lib/private/database/Query.d.ts +14 -0
- package/lib/private/database/Query.js +15 -0
- package/lib/private/database/QueryBuilder.d.ts +14 -0
- package/lib/private/database/QueryBuilder.js +3 -0
- package/lib/private/database/Sort.d.ts +4 -0
- package/lib/private/database/Sort.js +2 -0
- package/lib/private/database/Store.d.ts +169 -0
- package/lib/private/database/Store.js +255 -0
- package/lib/private/database/TypeMap.d.ts +14 -0
- package/lib/private/database/TypeMap.js +2 -0
- package/lib/private/database/Types.d.ts +6 -0
- package/lib/private/database/Types.js +2 -0
- package/lib/private/database/primary.d.ts +3 -0
- package/lib/private/database/primary.js +2 -0
- package/lib/private/database/storage.d.ts +4 -0
- package/lib/private/database/storage.js +3 -0
- package/lib/private/database/symbol/wrap.d.ts +3 -0
- package/lib/private/database/symbol/wrap.js +2 -0
- package/lib/private/database/symbol.d.ts +3 -0
- package/lib/private/database/symbol.js +2 -0
- package/lib/private/database/test.d.ts +4 -0
- package/lib/private/database/test.js +678 -0
- package/lib/private/database/wrap.d.ts +5 -0
- package/lib/private/database/wrap.js +5 -0
- package/lib/private/fail.d.ts +3 -0
- package/lib/private/fail.js +5 -0
- package/lib/private/frontend/Component.d.ts +8 -0
- package/lib/private/frontend/Component.js +2 -0
- package/lib/private/frontend/Module.d.ts +60 -0
- package/lib/private/frontend/Module.js +241 -0
- package/lib/private/frontend/Publish.d.ts +5 -0
- package/lib/private/frontend/Publish.js +2 -0
- package/lib/private/frontend/Render.d.ts +9 -0
- package/lib/private/frontend/Render.js +2 -0
- package/lib/private/frontend/ServerComponent.d.ts +5 -0
- package/lib/private/frontend/ServerComponent.js +2 -0
- package/lib/private/frontend/ServerData.d.ts +7 -0
- package/lib/private/frontend/ServerData.js +2 -0
- package/lib/private/frontend/ViewOptions.d.ts +12 -0
- package/lib/private/frontend/ViewOptions.js +3 -0
- package/lib/private/frontend/ViewResponse.d.ts +6 -0
- package/lib/private/frontend/ViewResponse.js +2 -0
- package/lib/private/frontend/bundle-server.d.ts +11 -0
- package/lib/private/frontend/bundle-server.js +48 -0
- package/lib/private/hash.d.ts +3 -0
- package/lib/private/hash.js +10 -0
- package/lib/private/hook/build.d.ts +4 -0
- package/lib/private/hook/build.js +246 -0
- package/lib/private/hook/serve.d.ts +4 -0
- package/lib/private/hook/serve.js +13 -0
- package/lib/private/i18n/API.d.ts +21 -0
- package/lib/private/i18n/API.js +2 -0
- package/lib/private/i18n/Catalog.d.ts +4 -0
- package/lib/private/i18n/Catalog.js +2 -0
- package/lib/private/i18n/Catalogs.d.ts +4 -0
- package/lib/private/i18n/Catalogs.js +2 -0
- package/lib/private/i18n/Config.d.ts +10 -0
- package/lib/private/i18n/Config.js +2 -0
- package/lib/private/i18n/ContextData.d.ts +6 -0
- package/lib/private/i18n/ContextData.js +2 -0
- package/lib/private/i18n/Formatter.d.ts +18 -0
- package/lib/private/i18n/Formatter.js +108 -0
- package/lib/private/i18n/Module.d.ts +16 -0
- package/lib/private/i18n/Module.js +109 -0
- package/lib/private/i18n/PersistMode.d.ts +3 -0
- package/lib/private/i18n/PersistMode.js +2 -0
- package/lib/private/i18n/TypeOf.d.ts +4 -0
- package/lib/private/i18n/TypeOf.js +2 -0
- package/lib/private/i18n/constant/COOKIE_NAME.d.ts +3 -0
- package/lib/private/i18n/constant/COOKIE_NAME.js +2 -0
- package/lib/private/i18n/constant/DEFAULT_LOCALE.d.ts +3 -0
- package/lib/private/i18n/constant/DEFAULT_LOCALE.js +2 -0
- package/lib/private/i18n/constant/DEFAULT_PERSIST_MODE.d.ts +3 -0
- package/lib/private/i18n/constant/DEFAULT_PERSIST_MODE.js +2 -0
- package/lib/private/i18n/constant/PERSIST_HEADER.d.ts +3 -0
- package/lib/private/i18n/constant/PERSIST_HEADER.js +2 -0
- package/lib/private/i18n/constant/PERSIST_METHOD.d.ts +3 -0
- package/lib/private/i18n/constant/PERSIST_METHOD.js +2 -0
- package/lib/private/i18n/constant/PERSIST_STORAGE_KEY.d.ts +3 -0
- package/lib/private/i18n/constant/PERSIST_STORAGE_KEY.js +2 -0
- package/lib/private/i18n/index.d.ts +28 -0
- package/lib/private/i18n/index.js +236 -0
- package/lib/private/i18n/locale.d.ts +5 -0
- package/lib/private/i18n/locale.js +4 -0
- package/lib/private/i18n/ordinals.d.ts +4 -0
- package/lib/private/i18n/ordinals.js +52 -0
- package/lib/private/i18n/schema.d.ts +8 -0
- package/lib/private/i18n/schema.js +13 -0
- package/lib/private/i18n/symbol/internal.d.ts +3 -0
- package/lib/private/i18n/symbol/internal.js +3 -0
- package/lib/private/i18n/toIntlUnit.d.ts +3 -0
- package/lib/private/i18n/toIntlUnit.js +125 -0
- package/lib/private/inline.d.ts +7 -0
- package/lib/private/inline.js +12 -0
- package/lib/private/location.d.ts +17 -0
- package/lib/private/location.js +29 -0
- package/lib/private/log.d.ts +19 -0
- package/lib/private/log.js +46 -0
- package/lib/private/module/BuildHook.d.ts +5 -0
- package/lib/private/module/BuildHook.js +2 -0
- package/lib/private/module/Hook.d.ts +5 -0
- package/lib/private/module/Hook.js +2 -0
- package/lib/private/module/Next.d.ts +4 -0
- package/lib/private/module/Next.js +2 -0
- package/lib/private/module/NextBuild.d.ts +5 -0
- package/lib/private/module/NextBuild.js +2 -0
- package/lib/private/module/NextHandle.d.ts +5 -0
- package/lib/private/module/NextHandle.js +2 -0
- package/lib/private/module/NextRoute.d.ts +6 -0
- package/lib/private/module/NextRoute.js +2 -0
- package/lib/private/module/NextServe.d.ts +5 -0
- package/lib/private/module/NextServe.js +2 -0
- package/lib/private/module/RequestHook.d.ts +6 -0
- package/lib/private/module/RequestHook.js +2 -0
- package/lib/private/reducer.d.ts +24 -0
- package/lib/private/reducer.js +10 -0
- package/lib/private/request/RequestBag.d.ts +80 -0
- package/lib/private/request/RequestBag.js +119 -0
- package/lib/private/request/RequestBody.d.ts +39 -0
- package/lib/private/request/RequestBody.js +91 -0
- package/lib/private/request/RequestFacade.d.ts +20 -0
- package/lib/private/request/RequestFacade.js +2 -0
- package/lib/private/request/Verb.d.ts +4 -0
- package/lib/private/request/Verb.js +2 -0
- package/lib/private/request/parse.d.ts +4 -0
- package/lib/private/request/parse.js +69 -0
- package/lib/private/request/route.d.ts +4 -0
- package/lib/private/request/route.js +61 -0
- package/lib/private/request/router.d.ts +5 -0
- package/lib/private/request/router.js +56 -0
- package/lib/private/request/verbs.d.ts +3 -0
- package/lib/private/request/verbs.js +12 -0
- package/lib/private/response/ResponseFunction.d.ts +8 -0
- package/lib/private/response/ResponseFunction.js +2 -0
- package/lib/private/response/ResponseLike.d.ts +6 -0
- package/lib/private/response/ResponseLike.js +2 -0
- package/lib/private/response/binary.d.ts +10 -0
- package/lib/private/response/binary.js +47 -0
- package/lib/private/response/error.d.ts +18 -0
- package/lib/private/response/error.js +18 -0
- package/lib/private/response/json.d.ts +9 -0
- package/lib/private/response/json.js +10 -0
- package/lib/private/response/redirect.d.ts +11 -0
- package/lib/private/response/redirect.js +62 -0
- package/lib/private/response/respond.d.ts +5 -0
- package/lib/private/response/respond.js +31 -0
- package/lib/private/response/sse.d.ts +15 -0
- package/lib/private/response/sse.js +25 -0
- package/lib/private/response/text.d.ts +9 -0
- package/lib/private/response/text.js +11 -0
- package/lib/private/response/view.d.ts +11 -0
- package/lib/private/response/view.js +41 -0
- package/lib/private/response/ws.d.ts +5 -0
- package/lib/private/response/ws.js +2 -0
- package/lib/private/response.d.ts +5 -0
- package/lib/private/response.js +2 -0
- package/lib/private/route/Handler.d.ts +6 -0
- package/lib/private/route/Handler.js +2 -0
- package/lib/private/route/Options.d.ts +5 -0
- package/lib/private/route/Options.js +2 -0
- package/lib/private/route/Path.d.ts +11 -0
- package/lib/private/route/Path.js +2 -0
- package/lib/private/route/guard.d.ts +4 -0
- package/lib/private/route/guard.js +22 -0
- package/lib/private/route/router.d.ts +51 -0
- package/lib/private/route/router.js +32 -0
- package/lib/private/route/wrap.d.ts +6 -0
- package/lib/private/route/wrap.js +17 -0
- package/lib/private/route.d.ts +9 -0
- package/lib/private/route.js +6 -0
- package/lib/private/serve.d.ts +5 -0
- package/lib/private/serve.js +8 -0
- package/lib/private/session/Config.d.ts +4 -0
- package/lib/private/session/Config.js +2 -0
- package/lib/private/session/Data.d.ts +5 -0
- package/lib/private/session/Data.js +2 -0
- package/lib/private/session/InMemoryManager.d.ts +9 -0
- package/lib/private/session/InMemoryManager.js +23 -0
- package/lib/private/session/Manager.d.ts +9 -0
- package/lib/private/session/Manager.js +4 -0
- package/lib/private/session/SessionFacade.d.ts +56 -0
- package/lib/private/session/SessionFacade.js +2 -0
- package/lib/private/session/SessionHandle.d.ts +20 -0
- package/lib/private/session/SessionHandle.js +67 -0
- package/lib/private/session/SessionModule.d.ts +13 -0
- package/lib/private/session/SessionModule.js +99 -0
- package/lib/private/session/index.d.ts +13 -0
- package/lib/private/session/index.js +41 -0
- package/lib/private/session/k-serialize.d.ts +3 -0
- package/lib/private/session/k-serialize.js +2 -0
- package/lib/private/session/schema.d.ts +14 -0
- package/lib/private/session/schema.js +20 -0
- package/lib/private/session/storage.d.ts +5 -0
- package/lib/private/session/storage.js +5 -0
- package/lib/private/symbol/config.d.ts +3 -0
- package/lib/private/symbol/config.js +2 -0
- package/lib/private/symbol/layout-depth.d.ts +3 -0
- package/lib/private/symbol/layout-depth.js +2 -0
- package/lib/private/tags.d.ts +10 -0
- package/lib/private/tags.js +29 -0
- package/lib/private/target/Manager.d.ts +14 -0
- package/lib/private/target/Manager.js +44 -0
- package/lib/private/target/Target.d.ts +8 -0
- package/lib/private/target/Target.js +3 -0
- package/lib/private/target/web.d.ts +4 -0
- package/lib/private/target/web.js +68 -0
- package/lib/private/wasm/API.d.ts +7 -0
- package/lib/private/wasm/API.js +2 -0
- package/lib/private/wasm/BufferViewSource.d.ts +4 -0
- package/lib/private/wasm/BufferViewSource.js +2 -0
- package/lib/private/wasm/Exports.d.ts +23 -0
- package/lib/private/wasm/Exports.js +2 -0
- package/lib/private/wasm/I32.d.ts +5 -0
- package/lib/private/wasm/I32.js +2 -0
- package/lib/private/wasm/I32_SIZE.d.ts +3 -0
- package/lib/private/wasm/I32_SIZE.js +2 -0
- package/lib/private/wasm/Instantiation.d.ts +12 -0
- package/lib/private/wasm/Instantiation.js +2 -0
- package/lib/private/wasm/Tagged.d.ts +7 -0
- package/lib/private/wasm/Tagged.js +2 -0
- package/lib/private/wasm/buffersize.d.ts +2 -0
- package/lib/private/wasm/buffersize.js +5 -0
- package/lib/private/wasm/decode-bytes.d.ts +3 -0
- package/lib/private/wasm/decode-bytes.js +5 -0
- package/lib/private/wasm/decode-json.d.ts +7 -0
- package/lib/private/wasm/decode-json.js +11 -0
- package/lib/private/wasm/decode-option.d.ts +5 -0
- package/lib/private/wasm/decode-option.js +10 -0
- package/lib/private/wasm/decode-response.d.ts +19 -0
- package/lib/private/wasm/decode-response.js +90 -0
- package/lib/private/wasm/decode-string.d.ts +3 -0
- package/lib/private/wasm/decode-string.js +5 -0
- package/lib/private/wasm/decode-websocket-close.d.ts +5 -0
- package/lib/private/wasm/decode-websocket-close.js +6 -0
- package/lib/private/wasm/decode-websocket-send.d.ts +6 -0
- package/lib/private/wasm/decode-websocket-send.js +19 -0
- package/lib/private/wasm/encode-buffer.d.ts +3 -0
- package/lib/private/wasm/encode-buffer.js +6 -0
- package/lib/private/wasm/encode-request.d.ts +9 -0
- package/lib/private/wasm/encode-request.js +198 -0
- package/lib/private/wasm/encode-session.d.ts +3 -0
- package/lib/private/wasm/encode-session.js +25 -0
- package/lib/private/wasm/encode-string-map.d.ts +5 -0
- package/lib/private/wasm/encode-string-map.js +14 -0
- package/lib/private/wasm/encode-string.d.ts +13 -0
- package/lib/private/wasm/encode-string.js +17 -0
- package/lib/private/wasm/encode-url.d.ts +11 -0
- package/lib/private/wasm/encode-url.js +14 -0
- package/lib/private/wasm/encode-websocket-close.d.ts +2 -0
- package/lib/private/wasm/encode-websocket-close.js +7 -0
- package/lib/private/wasm/encode-websocket-message.d.ts +4 -0
- package/lib/private/wasm/encode-websocket-message.js +30 -0
- package/lib/private/wasm/encode-websocket-open.d.ts +2 -0
- package/lib/private/wasm/encode-websocket-open.js +7 -0
- package/lib/private/wasm/filesize.d.ts +2 -0
- package/lib/private/wasm/filesize.js +8 -0
- package/lib/private/wasm/instantiate.d.ts +37 -0
- package/lib/private/wasm/instantiate.js +408 -0
- package/lib/private/wasm/open-websocket.d.ts +4 -0
- package/lib/private/wasm/open-websocket.js +26 -0
- package/lib/private/wasm/stringsize.d.ts +3 -0
- package/lib/private/wasm/stringsize.js +5 -0
- package/lib/private/wasm/urlsize.d.ts +2 -0
- package/lib/private/wasm/urlsize.js +5 -0
- package/lib/public/App.d.ts +2 -0
- package/lib/public/App.js +2 -0
- package/lib/public/AppError.d.ts +2 -0
- package/lib/public/AppError.js +2 -0
- package/lib/public/BuildApp.d.ts +2 -0
- package/lib/public/BuildApp.js +2 -0
- package/lib/public/BuildHook.d.ts +2 -0
- package/lib/public/BuildHook.js +2 -0
- package/lib/public/Database.d.ts +2 -0
- package/lib/public/Database.js +2 -0
- package/lib/public/Loader.d.ts +2 -0
- package/lib/public/Loader.js +2 -0
- package/lib/public/Mode.d.ts +2 -0
- package/lib/public/Mode.js +2 -0
- package/lib/public/Module.d.ts +2 -0
- package/lib/public/Module.js +2 -0
- package/lib/public/Next.d.ts +2 -0
- package/lib/public/Next.js +2 -0
- package/lib/public/NextBuild.d.ts +2 -0
- package/lib/public/NextBuild.js +2 -0
- package/lib/public/NextHandle.d.ts +2 -0
- package/lib/public/NextHandle.js +2 -0
- package/lib/public/NextRoute.d.ts +3 -0
- package/lib/public/NextRoute.js +2 -0
- package/lib/public/NextServe.d.ts +2 -0
- package/lib/public/NextServe.js +2 -0
- package/lib/public/ServeApp.d.ts +2 -0
- package/lib/public/ServeApp.js +2 -0
- package/lib/public/Target.d.ts +2 -0
- package/lib/public/Target.js +2 -0
- package/lib/public/backend/Module.d.ts +2 -0
- package/lib/public/backend/Module.js +2 -0
- package/lib/public/build.d.ts +2 -0
- package/lib/public/build.js +2 -0
- package/lib/public/client/App.d.ts +2 -0
- package/lib/public/client/App.js +2 -0
- package/lib/public/client/Data.d.ts +2 -0
- package/lib/public/client/Data.js +2 -0
- package/lib/public/client/ValidateInit.d.ts +2 -0
- package/lib/public/client/ValidateInit.js +2 -0
- package/lib/public/client/ValidateUpdater.d.ts +2 -0
- package/lib/public/client/ValidateUpdater.js +2 -0
- package/lib/public/client/ValidationError.d.ts +2 -0
- package/lib/public/client/ValidationError.js +2 -0
- package/lib/public/client/spa.d.ts +2 -0
- package/lib/public/client/spa.js +2 -0
- package/lib/public/client/toValidated.d.ts +2 -0
- package/lib/public/client/toValidated.js +2 -0
- package/lib/public/client/validate.d.ts +2 -0
- package/lib/public/client/validate.js +2 -0
- package/lib/public/config.d.ts +2 -0
- package/lib/public/config.js +2 -0
- package/lib/public/database/As.d.ts +2 -0
- package/lib/public/database/As.js +2 -0
- package/lib/public/database/DataDict.d.ts +2 -0
- package/lib/public/database/DataDict.js +2 -0
- package/lib/public/database/InMemoryDatabase.d.ts +2 -0
- package/lib/public/database/InMemoryDatabase.js +2 -0
- package/lib/public/database/Sort.d.ts +2 -0
- package/lib/public/database/Sort.js +2 -0
- package/lib/public/database/Store.d.ts +2 -0
- package/lib/public/database/Store.js +2 -0
- package/lib/public/database/TypeMap.d.ts +2 -0
- package/lib/public/database/TypeMap.js +2 -0
- package/lib/public/database/Types.d.ts +2 -0
- package/lib/public/database/Types.js +2 -0
- package/lib/public/database/test.d.ts +2 -0
- package/lib/public/database/test.js +2 -0
- package/lib/public/database/wrap.d.ts +2 -0
- package/lib/public/database/wrap.js +2 -0
- package/lib/public/frontend/Module.d.ts +2 -0
- package/lib/public/frontend/Module.js +2 -0
- package/lib/public/frontend/Publish.d.ts +2 -0
- package/lib/public/frontend/Publish.js +2 -0
- package/lib/public/frontend/Render.d.ts +2 -0
- package/lib/public/frontend/Render.js +2 -0
- package/lib/public/frontend/ViewResponse.d.ts +2 -0
- package/lib/public/frontend/ViewResponse.js +2 -0
- package/lib/public/i18n/API.d.ts +2 -0
- package/lib/public/i18n/API.js +2 -0
- package/lib/public/i18n/Catalogs.d.ts +2 -0
- package/lib/public/i18n/Catalogs.js +2 -0
- package/lib/public/i18n/ContextData.d.ts +2 -0
- package/lib/public/i18n/ContextData.js +2 -0
- package/lib/public/i18n/config.d.ts +2 -0
- package/lib/public/i18n/config.js +2 -0
- package/lib/public/i18n/locale.d.ts +2 -0
- package/lib/public/i18n/locale.js +2 -0
- package/lib/public/i18n/sInternal.d.ts +2 -0
- package/lib/public/i18n/sInternal.js +2 -0
- package/lib/public/inline.d.ts +2 -0
- package/lib/public/inline.js +2 -0
- package/lib/public/location.d.ts +2 -0
- package/lib/public/location.js +2 -0
- package/lib/public/log.d.ts +2 -0
- package/{src/log/index.js → lib/public/log.js} +1 -0
- package/lib/public/request/RequestBody.d.ts +2 -0
- package/lib/public/request/RequestBody.js +2 -0
- package/lib/public/request/RequestFacade.d.ts +2 -0
- package/lib/public/request/RequestFacade.js +2 -0
- package/lib/public/request/Verb.d.ts +2 -0
- package/lib/public/request/Verb.js +2 -0
- package/lib/public/request/verbs.d.ts +2 -0
- package/lib/public/request/verbs.js +2 -0
- package/lib/public/response/ResponseFunction.d.ts +2 -0
- package/lib/public/response/ResponseFunction.js +2 -0
- package/lib/public/response/ResponseLike.d.ts +2 -0
- package/lib/public/response/ResponseLike.js +2 -0
- package/lib/public/response/binary.d.ts +2 -0
- package/lib/public/response/binary.js +2 -0
- package/lib/public/response/error.d.ts +2 -0
- package/lib/public/response/error.js +2 -0
- package/lib/public/response/json.d.ts +2 -0
- package/lib/public/response/json.js +2 -0
- package/lib/public/response/redirect.d.ts +2 -0
- package/lib/public/response/redirect.js +2 -0
- package/lib/public/response/sse.d.ts +2 -0
- package/lib/public/response/sse.js +2 -0
- package/lib/public/response/text.d.ts +2 -0
- package/lib/public/response/text.js +2 -0
- package/lib/public/response/view.d.ts +2 -0
- package/lib/public/response/view.js +2 -0
- package/lib/public/response/ws.d.ts +2 -0
- package/lib/public/response/ws.js +2 -0
- package/lib/public/route/router.d.ts +2 -0
- package/lib/public/route/router.js +2 -0
- package/lib/public/route/wrap.d.ts +2 -0
- package/lib/public/route/wrap.js +2 -0
- package/lib/public/route.d.ts +2 -0
- package/lib/public/route.js +2 -0
- package/lib/public/serve.d.ts +2 -0
- package/lib/public/serve.js +2 -0
- package/lib/public/session/Manager.d.ts +2 -0
- package/lib/public/session/Manager.js +2 -0
- package/lib/public/session/config.d.ts +2 -0
- package/lib/public/session/config.js +2 -0
- package/lib/public/symbol/config.d.ts +2 -0
- package/lib/public/symbol/config.js +2 -0
- package/lib/public/wasm/decode-json.d.ts +5 -0
- package/lib/public/wasm/decode-json.js +3 -0
- package/lib/public/wasm/decode-response.d.ts +3 -0
- package/lib/public/wasm/decode-response.js +3 -0
- package/lib/public/wasm/encode-request.d.ts +3 -0
- package/lib/public/wasm/encode-request.js +3 -0
- package/lib/public/wasm/encode-session.d.ts +3 -0
- package/lib/public/wasm/encode-session.js +3 -0
- package/lib/public/wasm/instantiate.d.ts +4 -0
- package/lib/public/wasm/instantiate.js +3 -0
- package/package.json +41 -36
- package/src/build/app.js +0 -99
- package/src/build/hook/build.js +0 -188
- package/src/build/hook/copy_includes.js +0 -20
- package/src/build/hook/exports.js +0 -2
- package/src/build/hook/init.js +0 -3
- package/src/build/hook/router.js +0 -33
- package/src/build/index.js +0 -49
- package/src/build/module_loader.js +0 -30
- package/src/build/targets/exports.js +0 -1
- package/src/build/targets/web.js +0 -70
- package/src/dispatch/index.js +0 -1
- package/src/http/verbs.js +0 -11
- package/src/private/config-filename.js +0 -1
- package/src/private/config.js +0 -48
- package/src/private/depend.js +0 -20
- package/src/private/dispatch.js +0 -18
- package/src/private/error/bad-body.js +0 -6
- package/src/private/error/bad-default-export.js +0 -6
- package/src/private/error/bad-path.js +0 -6
- package/src/private/error/bad-type-export.js +0 -6
- package/src/private/error/bad-type-name.js +0 -6
- package/src/private/error/double-extension.js +0 -6
- package/src/private/error/double-module.js +0 -6
- package/src/private/error/double-path-parameter.js +0 -6
- package/src/private/error/double-route.js +0 -6
- package/src/private/error/empty-config-file.js +0 -6
- package/src/private/error/empty-directory.js +0 -6
- package/src/private/error/empty-path-parameter.js +0 -6
- package/src/private/error/empty-route-file.js +0 -6
- package/src/private/error/error-in-config-file.js +0 -6
- package/src/private/error/mismatched-body.js +0 -6
- package/src/private/error/mismatched-path.js +0 -6
- package/src/private/error/mismatched-type.js +0 -6
- package/src/private/error/module-no-name.js +0 -6
- package/src/private/error/modules-array.js +0 -6
- package/src/private/error/no-handler.js +0 -6
- package/src/private/error/no-route-to-path.js +0 -6
- package/src/private/error/optional-route.js +0 -6
- package/src/private/error/reserved-type-name.js +0 -6
- package/src/private/error/rest-route.js +0 -6
- package/src/private/error.js +0 -15
- package/src/private/log.js +0 -69
- package/src/private/loglevel.js +0 -9
- package/src/private/mark.js +0 -5
- package/src/private/validate.js +0 -11
- package/src/serve/app.js +0 -206
- package/src/serve/handler/error.js +0 -10
- package/src/serve/handler/json.js +0 -10
- package/src/serve/handler/redirect.js +0 -11
- package/src/serve/handler/shared/base.js +0 -4
- package/src/serve/handler/sse.js +0 -24
- package/src/serve/handler/stream.js +0 -4
- package/src/serve/handler/text.js +0 -10
- package/src/serve/handler/view.js +0 -15
- package/src/serve/handler/ws.js +0 -2
- package/src/serve/hook/exports.js +0 -5
- package/src/serve/hook/handle.js +0 -106
- package/src/serve/hook/init.js +0 -3
- package/src/serve/hook/parse.js +0 -17
- package/src/serve/hook/respond.js +0 -28
- package/src/serve/hook/route.js +0 -50
- package/src/serve/hook/serve.js +0 -53
- package/src/serve/index.js +0 -9
- package/src/serve/module_loader.js +0 -16
- package/src/serve/to_sorted.js +0 -1
- /package/{src/build → lib/private}/defaults/app.html +0 -0
- /package/{src/build → lib/private}/defaults/error.html +0 -0
package/package.json
CHANGED
|
@@ -1,55 +1,60 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@primate/core",
|
|
3
|
-
"version": "0.1
|
|
4
|
-
"description": "
|
|
5
|
-
"homepage": "https://
|
|
6
|
-
"bugs": "https://github.com/
|
|
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
|
-
"
|
|
10
|
-
"
|
|
11
|
-
"
|
|
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/
|
|
16
|
+
"url": "https://github.com/primate-run/primate",
|
|
16
17
|
"directory": "packages/core"
|
|
17
18
|
},
|
|
18
19
|
"dependencies": {
|
|
19
|
-
"@rcompat/args": "^0.
|
|
20
|
-
"@rcompat/
|
|
21
|
-
"@rcompat/async": "^0.
|
|
22
|
-
"@rcompat/
|
|
23
|
-
"@rcompat/
|
|
24
|
-
"@rcompat/
|
|
25
|
-
"@rcompat/
|
|
26
|
-
"@rcompat/
|
|
27
|
-
"@rcompat/
|
|
28
|
-
"@rcompat/
|
|
29
|
-
"@rcompat/
|
|
30
|
-
"@rcompat/package": "^0.
|
|
31
|
-
"@rcompat/
|
|
32
|
-
"@rcompat/
|
|
33
|
-
"
|
|
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
|
-
"
|
|
39
|
-
"default": "./
|
|
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
|
-
"./
|
|
48
|
-
"./
|
|
49
|
-
"./
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
"
|
|
53
|
-
|
|
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
|
-
};
|
package/src/build/hook/build.js
DELETED
|
@@ -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
|
-
};
|
package/src/build/hook/init.js
DELETED
package/src/build/hook/router.js
DELETED
|
@@ -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
|
-
};
|
package/src/build/index.js
DELETED
|
@@ -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";
|
package/src/build/targets/web.js
DELETED
|
@@ -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
|
-
};
|
package/src/dispatch/index.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { default } from "#dispatch";
|
package/src/http/verbs.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export default "primate.config.js";
|