@primate/core 0.1.10 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +245 -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/src/private/config.js
DELETED
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
export default {
|
|
2
|
-
base: "/",
|
|
3
|
-
modules: [],
|
|
4
|
-
pages: {
|
|
5
|
-
app: "app.html",
|
|
6
|
-
error: "error.html",
|
|
7
|
-
},
|
|
8
|
-
log: {
|
|
9
|
-
level: "warn",
|
|
10
|
-
trace: false,
|
|
11
|
-
},
|
|
12
|
-
http: {
|
|
13
|
-
host: "localhost",
|
|
14
|
-
port: 6161,
|
|
15
|
-
csp: {},
|
|
16
|
-
static: {
|
|
17
|
-
root: "/",
|
|
18
|
-
},
|
|
19
|
-
},
|
|
20
|
-
request: {
|
|
21
|
-
body: {
|
|
22
|
-
parse: true,
|
|
23
|
-
},
|
|
24
|
-
},
|
|
25
|
-
location: {
|
|
26
|
-
// renderable components
|
|
27
|
-
components: "components",
|
|
28
|
-
// HTML pages
|
|
29
|
-
pages: "pages",
|
|
30
|
-
// hierarchical routes
|
|
31
|
-
routes: "routes",
|
|
32
|
-
// static assets
|
|
33
|
-
static: "static",
|
|
34
|
-
// runtime types
|
|
35
|
-
types: "types",
|
|
36
|
-
// build environment
|
|
37
|
-
build: "build",
|
|
38
|
-
// client build
|
|
39
|
-
client: "client",
|
|
40
|
-
// server build
|
|
41
|
-
server: "server",
|
|
42
|
-
},
|
|
43
|
-
build: {
|
|
44
|
-
name: "app",
|
|
45
|
-
includes: [],
|
|
46
|
-
excludes: [],
|
|
47
|
-
},
|
|
48
|
-
};
|
package/src/private/depend.js
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import filter from "@rcompat/object/filter";
|
|
2
|
-
import manifest from "@rcompat/package/manifest";
|
|
3
|
-
import packager from "@rcompat/package/packager";
|
|
4
|
-
import errors from "./errors.js";
|
|
5
|
-
|
|
6
|
-
const { MissingDependencies } = errors;
|
|
7
|
-
|
|
8
|
-
export default async (library_manifest, desired, from) => {
|
|
9
|
-
const app_dependencies = (await manifest()).dependencies;
|
|
10
|
-
const keys = Object.keys(app_dependencies);
|
|
11
|
-
const library_peers = filter(library_manifest.peerDependencies, ([key]) =>
|
|
12
|
-
desired.includes(key));
|
|
13
|
-
const missing = desired.filter(peer => !keys.includes(peer));
|
|
14
|
-
|
|
15
|
-
if (missing.length > 0) {
|
|
16
|
-
const to_install = missing.map(key => `${key}@${library_peers[key]}`);
|
|
17
|
-
const install = `${packager()} install ${to_install.join(" ")}`;
|
|
18
|
-
MissingDependencies.throw(missing.join(", "), from, install);
|
|
19
|
-
}
|
|
20
|
-
};
|
package/src/private/dispatch.js
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import is from "@rcompat/invariant/is";
|
|
2
|
-
|
|
3
|
-
export default (object, raw, cased = true) => {
|
|
4
|
-
return Object.assign(Object.create(null), {
|
|
5
|
-
get(key) {
|
|
6
|
-
is(key).string();
|
|
7
|
-
|
|
8
|
-
return object[cased ? key : key.toLowerCase()];
|
|
9
|
-
},
|
|
10
|
-
json() {
|
|
11
|
-
return JSON.parse(JSON.stringify(object));
|
|
12
|
-
},
|
|
13
|
-
toString() {
|
|
14
|
-
return JSON.stringify(object);
|
|
15
|
-
},
|
|
16
|
-
raw,
|
|
17
|
-
});
|
|
18
|
-
};
|
package/src/private/error.js
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import log from "@primate/core/log";
|
|
2
|
-
import file from "@rcompat/fs/file";
|
|
3
|
-
|
|
4
|
-
const base = level => (url, args) => (...params) => log[level]({
|
|
5
|
-
params,
|
|
6
|
-
name: file(url).base,
|
|
7
|
-
module: "@primate/core",
|
|
8
|
-
...args,
|
|
9
|
-
});
|
|
10
|
-
|
|
11
|
-
const info = base("info");
|
|
12
|
-
const warn = base("warn");
|
|
13
|
-
const error = base("error");
|
|
14
|
-
|
|
15
|
-
export { error, info, warn };
|
package/src/private/log.js
DELETED
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
import loglevel from "#loglevel";
|
|
2
|
-
import mark from "#mark";
|
|
3
|
-
import blue from "@rcompat/cli/color/blue";
|
|
4
|
-
import dim from "@rcompat/cli/color/dim";
|
|
5
|
-
import green from "@rcompat/cli/color/green";
|
|
6
|
-
import red from "@rcompat/cli/color/red";
|
|
7
|
-
import yellow from "@rcompat/cli/color/yellow";
|
|
8
|
-
import print from "@rcompat/cli/print";
|
|
9
|
-
|
|
10
|
-
const url = "https://primatejs.com/errors";
|
|
11
|
-
const slice_length = "@primate/".length;
|
|
12
|
-
const helpat = (name, error) => `${url}/${name.slice(slice_length)}#${error}`;
|
|
13
|
-
|
|
14
|
-
const levels = {
|
|
15
|
-
error: 0,
|
|
16
|
-
warn: 1,
|
|
17
|
-
info: 2,
|
|
18
|
-
};
|
|
19
|
-
const level = levels[loglevel];
|
|
20
|
-
|
|
21
|
-
const make_error = (level, { message, fix, name, params, module }) => ({
|
|
22
|
-
level,
|
|
23
|
-
fix: mark(fix, ...params),
|
|
24
|
-
message: mark(message, ...params),
|
|
25
|
-
name,
|
|
26
|
-
module,
|
|
27
|
-
});
|
|
28
|
-
|
|
29
|
-
const normalize = (level, message) => typeof message === "string"
|
|
30
|
-
? { message }
|
|
31
|
-
: make_error(level, message);
|
|
32
|
-
|
|
33
|
-
const log = (pre, color, error, override) => {
|
|
34
|
-
const { fix, module, name, message } = { ...error, ...override };
|
|
35
|
-
print(color(pre), `${module !== undefined ? `${color(module)} ` : ""}${message}`, "\n");
|
|
36
|
-
if (fix) {
|
|
37
|
-
print(blue("++"), fix);
|
|
38
|
-
name && print(dim(`\n -> ${helpat(module, name)}`), "\n");
|
|
39
|
-
}
|
|
40
|
-
};
|
|
41
|
-
|
|
42
|
-
export default {
|
|
43
|
-
system(message) {
|
|
44
|
-
log("++", blue, { message });
|
|
45
|
-
},
|
|
46
|
-
|
|
47
|
-
info(error, override) {
|
|
48
|
-
// info prints only on info level
|
|
49
|
-
level === levels.info && log("--", green, normalize("info", error), override);
|
|
50
|
-
},
|
|
51
|
-
|
|
52
|
-
warn(error, override) {
|
|
53
|
-
// warn prints on info and warn levels
|
|
54
|
-
level >= levels.warn && log("??", yellow, normalize("warn", error), override);
|
|
55
|
-
},
|
|
56
|
-
|
|
57
|
-
error(error, override, toss = true) {
|
|
58
|
-
// error always prints
|
|
59
|
-
log("!!", red, normalize("error", error));
|
|
60
|
-
if (toss) {
|
|
61
|
-
error.level = "error";
|
|
62
|
-
throw error;
|
|
63
|
-
}
|
|
64
|
-
},
|
|
65
|
-
|
|
66
|
-
auto(error) {
|
|
67
|
-
Object.keys(levels).includes(error.level) && this[error.level](error, {}, false);
|
|
68
|
-
},
|
|
69
|
-
};
|
package/src/private/loglevel.js
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import args from "@rcompat/args";
|
|
2
|
-
|
|
3
|
-
const default_level = "warn";
|
|
4
|
-
const flag = "--loglevel=";
|
|
5
|
-
const levels = ["error", "warn", "info"];
|
|
6
|
-
|
|
7
|
-
const loglevel = args.find(arg => arg.startsWith(flag))?.slice(flag.length);
|
|
8
|
-
|
|
9
|
-
export default levels.includes(loglevel) ? loglevel : default_level;
|
package/src/private/mark.js
DELETED
package/src/private/validate.js
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import is from "@rcompat/invariant/is";
|
|
2
|
-
import maybe from "@rcompat/invariant/maybe";
|
|
3
|
-
|
|
4
|
-
export default (type, value, name) => {
|
|
5
|
-
maybe(type.validate).function();
|
|
6
|
-
if (type.validate) {
|
|
7
|
-
return type.validate(value, name);
|
|
8
|
-
}
|
|
9
|
-
is(type).function();
|
|
10
|
-
return type(value, name);
|
|
11
|
-
};
|
package/src/serve/app.js
DELETED
|
@@ -1,206 +0,0 @@
|
|
|
1
|
-
import double_extension from "#error/double-extension";
|
|
2
|
-
import crypto from "@rcompat/crypto";
|
|
3
|
-
import file from "@rcompat/fs/file";
|
|
4
|
-
import join from "@rcompat/fs/join";
|
|
5
|
-
import { html } from "@rcompat/http/mime";
|
|
6
|
-
import { OK } from "@rcompat/http/status";
|
|
7
|
-
import is from "@rcompat/invariant/is";
|
|
8
|
-
import empty from "@rcompat/object/empty";
|
|
9
|
-
import get from "@rcompat/object/get";
|
|
10
|
-
import stringify from "@rcompat/object/stringify";
|
|
11
|
-
import valmap from "@rcompat/object/valmap";
|
|
12
|
-
import module_loader from "./module_loader.js";
|
|
13
|
-
import to_sorted from "./to_sorted.js";
|
|
14
|
-
|
|
15
|
-
const to_csp = (config_csp, assets, csp) => config_csp
|
|
16
|
-
// only csp entries in the config will be enriched
|
|
17
|
-
.map(([key, directives]) =>
|
|
18
|
-
// enrich with application assets
|
|
19
|
-
[key, assets[key] ? directives.concat(...assets[key]) : directives])
|
|
20
|
-
.map(([key, directives]) =>
|
|
21
|
-
// enrich with explicit csp
|
|
22
|
-
[key, csp[key] ? directives.concat(...csp[key]) : directives])
|
|
23
|
-
.map(([key, directives]) => `${key} ${directives.join(" ")}`)
|
|
24
|
-
.join(";");
|
|
25
|
-
|
|
26
|
-
const attribute = attributes => empty(attributes)
|
|
27
|
-
? ""
|
|
28
|
-
: " ".concat(Object.entries(attributes)
|
|
29
|
-
.map(([key, value]) => `${key}="${value}"`).join(" "))
|
|
30
|
-
;
|
|
31
|
-
const tag = (name, { attributes = {}, code = "", close = true }) =>
|
|
32
|
-
`<${name}${attribute(attributes)}${close ? `>${code}</${name}>` : "/>"}`;
|
|
33
|
-
const nctag = (name, properties) => tag(name, { ...properties, close: false });
|
|
34
|
-
const tags = {
|
|
35
|
-
// inline: <script type integrity>...</script>
|
|
36
|
-
// outline: <script type integrity src></script>
|
|
37
|
-
script({ inline, code, type, integrity, src }) {
|
|
38
|
-
return inline
|
|
39
|
-
? tag("script", { attributes: { type, integrity }, code })
|
|
40
|
-
: tag("script", { attributes: { type, integrity, src } });
|
|
41
|
-
},
|
|
42
|
-
// inline: <style>...</style>
|
|
43
|
-
// outline: <link rel="stylesheet" href />
|
|
44
|
-
style({ inline, code, href, rel = "stylesheet" }) {
|
|
45
|
-
return inline
|
|
46
|
-
? tag("style", { code })
|
|
47
|
-
: nctag("link", { attributes: { rel, href } });
|
|
48
|
-
},
|
|
49
|
-
font({ href, rel = "preload", as = "font", type, crossorigin = true }) {
|
|
50
|
-
return nctag("link", { attributes: { rel, href, as, type, crossorigin } });
|
|
51
|
-
},
|
|
52
|
-
};
|
|
53
|
-
|
|
54
|
-
const render_head = (assets, fonts, head) =>
|
|
55
|
-
to_sorted(assets, ({ type }) => -1 * (type === "importmap"))
|
|
56
|
-
.map(({ src, code, type, inline, integrity }) =>
|
|
57
|
-
type === "style"
|
|
58
|
-
? tags.style({ inline, code, href: src })
|
|
59
|
-
: tags.script({ inline, code, type, integrity, src }),
|
|
60
|
-
).join("\n").concat("\n", head ?? "").concat("\n", fonts.map(href =>
|
|
61
|
-
tags.font({ href, type: "font/woff2" }),
|
|
62
|
-
).join("\n"));
|
|
63
|
-
|
|
64
|
-
const encoder = new TextEncoder();
|
|
65
|
-
const hash = async (data, algorithm = "sha-384") => {
|
|
66
|
-
const bytes = await crypto.subtle.digest(algorithm, encoder.encode(data));
|
|
67
|
-
const prefix = algorithm.replace("-", _ => "");
|
|
68
|
-
return`${prefix}-${btoa(String.fromCharCode(...new Uint8Array(bytes)))}`;
|
|
69
|
-
};
|
|
70
|
-
|
|
71
|
-
export default async (rootfile, build) => {
|
|
72
|
-
const root = file(rootfile).directory;
|
|
73
|
-
const { config, files, components, loader, target, mode } = build;
|
|
74
|
-
const assets = await Promise.all(build.assets.map(async asset => {
|
|
75
|
-
const code = asset.type === "importmap" ? stringify(asset.code) : asset.code;
|
|
76
|
-
return {
|
|
77
|
-
...asset,
|
|
78
|
-
code,
|
|
79
|
-
integrity: await hash(code),
|
|
80
|
-
};
|
|
81
|
-
}));
|
|
82
|
-
|
|
83
|
-
const { http } = build.config;
|
|
84
|
-
const secure = http?.ssl !== undefined;
|
|
85
|
-
const path = valmap(config.location, value => root.join(value));
|
|
86
|
-
|
|
87
|
-
// if ssl activated, resolve key and cert early
|
|
88
|
-
if (secure) {
|
|
89
|
-
http.ssl.key = root.join(http.ssl.key);
|
|
90
|
-
http.ssl.cert = root.join(http.ssl.cert);
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
const $components = Object.fromEntries(components ?? []);
|
|
94
|
-
const error = await path.routes.join("+error.js");
|
|
95
|
-
|
|
96
|
-
return {
|
|
97
|
-
secure,
|
|
98
|
-
importmaps: {},
|
|
99
|
-
assets,
|
|
100
|
-
files,
|
|
101
|
-
path,
|
|
102
|
-
root,
|
|
103
|
-
get_component(name) {
|
|
104
|
-
const component = $components[name];
|
|
105
|
-
return component?.default ?? component;
|
|
106
|
-
},
|
|
107
|
-
// pseudostatic thus arrowbound
|
|
108
|
-
get: (config_key, fallback) => get(config, config_key) ?? fallback,
|
|
109
|
-
set: (key, value) => {
|
|
110
|
-
config[key] = value;
|
|
111
|
-
},
|
|
112
|
-
error: {
|
|
113
|
-
default: await error.exists() ? await error.import("default") : undefined,
|
|
114
|
-
},
|
|
115
|
-
handlers: {},
|
|
116
|
-
modules: await module_loader(root, config.modules ?? []),
|
|
117
|
-
fonts: [],
|
|
118
|
-
headers(csp = {}) {
|
|
119
|
-
const http_csp = Object.entries(this.get("http.csp", {}));
|
|
120
|
-
|
|
121
|
-
return {
|
|
122
|
-
...this.get("http.headers", {}),
|
|
123
|
-
...http_csp.length === 0 ? {} : {
|
|
124
|
-
"Content-Security-Policy": to_csp(http_csp, this.asset_csp, csp),
|
|
125
|
-
},
|
|
126
|
-
};
|
|
127
|
-
},
|
|
128
|
-
runpath(...directories) {
|
|
129
|
-
return this.root.join(...directories);
|
|
130
|
-
},
|
|
131
|
-
async render(content) {
|
|
132
|
-
const { body, head, partial, placeholders = {}, page } = content;
|
|
133
|
-
["body", "head"].every(used => is(placeholders[used]).undefined());
|
|
134
|
-
|
|
135
|
-
return partial ? body : Object.entries(placeholders)
|
|
136
|
-
// replace given placeholders, defaulting to ""
|
|
137
|
-
.reduce((html, [key, value]) => html.replace(`%${key}%`, value ?? ""),
|
|
138
|
-
this.loader.page(page))
|
|
139
|
-
// replace non-given placeholders, aside from %body% / %head%
|
|
140
|
-
.replaceAll(/(?<keep>%(?:head|body)%)|%.*?%/gus, "$1")
|
|
141
|
-
// replace body and head
|
|
142
|
-
.replace("%body%", body)
|
|
143
|
-
.replace("%head%", render_head(this.assets, this.fonts, head));
|
|
144
|
-
},
|
|
145
|
-
respond(body, { status = OK, headers = {} } = {}) {
|
|
146
|
-
return new Response(body, { status, headers: {
|
|
147
|
-
"Content-Type": html, ...this.headers(), ...headers },
|
|
148
|
-
});
|
|
149
|
-
},
|
|
150
|
-
async view(options) {
|
|
151
|
-
// split render and respond options
|
|
152
|
-
const { status, headers, ...rest } = options;
|
|
153
|
-
return this.respond(await this.render(rest), { status, headers });
|
|
154
|
-
},
|
|
155
|
-
media(type, { status, headers } = {}) {
|
|
156
|
-
return { status, headers: { ...headers, "Content-Type": type } };
|
|
157
|
-
},
|
|
158
|
-
async inline(code, type) {
|
|
159
|
-
const integrity = await this.hash(code);
|
|
160
|
-
const tag_name = type === "style" ? "style" : "script";
|
|
161
|
-
const head = tags[tag_name]({ code, type, inline: true, integrity });
|
|
162
|
-
return { head, integrity: `'${integrity}'` };
|
|
163
|
-
},
|
|
164
|
-
async publish({ src, code, type = "", inline = false }) {
|
|
165
|
-
if (inline || type === "style") {
|
|
166
|
-
this.assets.push({
|
|
167
|
-
src: join(http.static.root, src ?? "").path,
|
|
168
|
-
code: inline ? code : "",
|
|
169
|
-
type,
|
|
170
|
-
inline,
|
|
171
|
-
integrity: await this.hash(code),
|
|
172
|
-
});
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
// rehash assets_csp
|
|
176
|
-
this.asset_csp = this.assets.map(({ type: directive, integrity }) => [
|
|
177
|
-
`${directive === "style" ? "style" : "script"}-src`, integrity])
|
|
178
|
-
.reduce((csp, [directive, hash]) =>
|
|
179
|
-
({ ...csp, [directive]: csp[directive].concat(`'${hash}'`) } ),
|
|
180
|
-
{ "style-src": [], "script-src": [] },
|
|
181
|
-
);
|
|
182
|
-
},
|
|
183
|
-
create_csp() {
|
|
184
|
-
this.asset_csp = this.assets.map(({ type: directive, integrity }) => [
|
|
185
|
-
`${directive === "style" ? "style" : "script"}-src`, integrity])
|
|
186
|
-
.reduce((csp, [directive, hash]) =>
|
|
187
|
-
({ ...csp, [directive]: csp[directive].concat(`'${hash}'`) } ),
|
|
188
|
-
{ "style-src": [], "script-src": [] },
|
|
189
|
-
);
|
|
190
|
-
},
|
|
191
|
-
register(extension, handle) {
|
|
192
|
-
this.handlers[extension] !== undefined && double_extension(extension);
|
|
193
|
-
this.handlers[extension] = handle;
|
|
194
|
-
},
|
|
195
|
-
hash,
|
|
196
|
-
// noops
|
|
197
|
-
target(name, handler) {},
|
|
198
|
-
bind(extension, handler) {},
|
|
199
|
-
build_target: target,
|
|
200
|
-
loader,
|
|
201
|
-
stop() {
|
|
202
|
-
this.get("server").stop();
|
|
203
|
-
},
|
|
204
|
-
mode,
|
|
205
|
-
};
|
|
206
|
-
};
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { NOT_FOUND } from "@rcompat/http/status";
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Render an error page
|
|
5
|
-
* @param {string} body replacement for %body%
|
|
6
|
-
* @param {ErrorOptions} options rendering options
|
|
7
|
-
* @return {ResponseFn}
|
|
8
|
-
*/
|
|
9
|
-
export default (body = "Not Found", { status = NOT_FOUND, page } = {}) =>
|
|
10
|
-
app => app.view({ body, status, page: page ?? app.get("pages.error") });
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { json } from "@rcompat/http/mime";
|
|
2
|
-
import base from "./shared/base.js";
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Issue a JSON response
|
|
6
|
-
* @param {object} body object
|
|
7
|
-
* @param {MinOptions} options rendering options
|
|
8
|
-
* @return {ResponseFn}
|
|
9
|
-
*/
|
|
10
|
-
export default base(json, JSON.stringify);
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { FOUND } from "@rcompat/http/status";
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Redirect request
|
|
5
|
-
* @param {string} Location location to redirect to
|
|
6
|
-
* @param {MinOptions} options handler options
|
|
7
|
-
* @return {ResponseFn}
|
|
8
|
-
*/
|
|
9
|
-
export default (Location, { status = FOUND } = {}) => app =>
|
|
10
|
-
// no body
|
|
11
|
-
app.respond(null, { status, headers: { Location } });
|