@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
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type Binder from "#Binder";
|
|
2
|
+
import type Config from "#config/Config";
|
|
3
|
+
import type Mode from "#Mode";
|
|
4
|
+
import type Module from "#Module";
|
|
5
|
+
import TargetManager from "#target/Manager";
|
|
6
|
+
import type FileRef from "@rcompat/fs/FileRef";
|
|
7
|
+
import get from "@rcompat/record/get";
|
|
8
|
+
export default class App {
|
|
9
|
+
#private;
|
|
10
|
+
constructor(root: FileRef, config: Config, mode: Mode);
|
|
11
|
+
init(target: string): Promise<App>;
|
|
12
|
+
get location(): {
|
|
13
|
+
app_html: "app.html";
|
|
14
|
+
build: "build";
|
|
15
|
+
client: "client";
|
|
16
|
+
components: "components";
|
|
17
|
+
config: "config";
|
|
18
|
+
error_html: "error.html";
|
|
19
|
+
modules: "modules";
|
|
20
|
+
pages: "pages";
|
|
21
|
+
routes: "routes";
|
|
22
|
+
server: "server";
|
|
23
|
+
static: "static";
|
|
24
|
+
stores: "stores";
|
|
25
|
+
locales: "locales";
|
|
26
|
+
};
|
|
27
|
+
get target(): TargetManager;
|
|
28
|
+
get root(): FileRef;
|
|
29
|
+
get path(): {
|
|
30
|
+
readonly app_html: FileRef;
|
|
31
|
+
readonly build: FileRef;
|
|
32
|
+
readonly client: FileRef;
|
|
33
|
+
readonly components: FileRef;
|
|
34
|
+
readonly config: FileRef;
|
|
35
|
+
readonly error_html: FileRef;
|
|
36
|
+
readonly modules: FileRef;
|
|
37
|
+
readonly pages: FileRef;
|
|
38
|
+
readonly routes: FileRef;
|
|
39
|
+
readonly server: FileRef;
|
|
40
|
+
readonly static: FileRef;
|
|
41
|
+
readonly stores: FileRef;
|
|
42
|
+
readonly locales: FileRef;
|
|
43
|
+
};
|
|
44
|
+
get mode(): Mode;
|
|
45
|
+
get modules(): Module[];
|
|
46
|
+
get extensions(): string[];
|
|
47
|
+
binder(file: FileRef): Binder | undefined;
|
|
48
|
+
get<T>(key: symbol): T;
|
|
49
|
+
set(key: symbol, value: unknown): void;
|
|
50
|
+
config<P extends string>(path: P): ReturnType<typeof get<Config, P>>;
|
|
51
|
+
runpath(...directories: string[]): FileRef;
|
|
52
|
+
bind(extension: string, binder: Binder): void;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=App.d.ts.map
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import fail from "#fail";
|
|
2
|
+
import location from "#location";
|
|
3
|
+
import reducer from "#reducer";
|
|
4
|
+
import wrap from "#route/wrap";
|
|
5
|
+
import TargetManager from "#target/Manager";
|
|
6
|
+
import assert from "@rcompat/assert";
|
|
7
|
+
import transform from "@rcompat/build/sync/transform";
|
|
8
|
+
import entries from "@rcompat/record/entries";
|
|
9
|
+
import get from "@rcompat/record/get";
|
|
10
|
+
const ts_options = {
|
|
11
|
+
loader: "ts",
|
|
12
|
+
tsconfigRaw: {
|
|
13
|
+
compilerOptions: {
|
|
14
|
+
experimentalDecorators: true,
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
};
|
|
18
|
+
const compile = (code) => transform(code, ts_options).code;
|
|
19
|
+
const toContextString = (array) => array
|
|
20
|
+
.map(member => member.endsWith("s") ? member.slice(0, -1) : member)
|
|
21
|
+
.join(", ");
|
|
22
|
+
const BIND_CONTEXTS = [
|
|
23
|
+
"config",
|
|
24
|
+
"routes",
|
|
25
|
+
"components",
|
|
26
|
+
"stores",
|
|
27
|
+
"locales",
|
|
28
|
+
"modules",
|
|
29
|
+
];
|
|
30
|
+
function generate_bindings(_app) {
|
|
31
|
+
return {
|
|
32
|
+
".js": async (file, { build, context }) => {
|
|
33
|
+
const error = `js: only ${toContextString(BIND_CONTEXTS)} are supported`;
|
|
34
|
+
assert(BIND_CONTEXTS.includes(context), error);
|
|
35
|
+
const code = context === "routes"
|
|
36
|
+
? wrap(await file.text(), file, build)
|
|
37
|
+
: await file.text();
|
|
38
|
+
await file.append(".js").write(code);
|
|
39
|
+
},
|
|
40
|
+
".json": () => {
|
|
41
|
+
// just copy the JSON for now
|
|
42
|
+
},
|
|
43
|
+
".ts": async (file, { build, context }) => {
|
|
44
|
+
const error = `ts: only ${toContextString(BIND_CONTEXTS)} are supported`;
|
|
45
|
+
assert(BIND_CONTEXTS.includes(context), error);
|
|
46
|
+
const code = context === "routes"
|
|
47
|
+
? wrap(compile(await file.text()), file, build)
|
|
48
|
+
: compile(await file.text());
|
|
49
|
+
await file.append(".js").write(code);
|
|
50
|
+
},
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
const doubled = (set) => set.find((part, i, array) => array.filter((_, j) => i !== j).includes(part)) ?? "";
|
|
54
|
+
export default class App {
|
|
55
|
+
#path;
|
|
56
|
+
#root;
|
|
57
|
+
#config;
|
|
58
|
+
#modules;
|
|
59
|
+
#kv = new Map();
|
|
60
|
+
#mode;
|
|
61
|
+
#bindings;
|
|
62
|
+
#target;
|
|
63
|
+
constructor(root, config, mode) {
|
|
64
|
+
this.#root = root;
|
|
65
|
+
this.#config = config;
|
|
66
|
+
this.#modules = config.modules?.flat(10) ?? [];
|
|
67
|
+
this.#path = entries(location).valmap(([, path]) => root.join(path)).get();
|
|
68
|
+
this.#mode = mode;
|
|
69
|
+
this.#target = new TargetManager(this);
|
|
70
|
+
this.#bindings = Object.entries(generate_bindings(this));
|
|
71
|
+
}
|
|
72
|
+
async init(target) {
|
|
73
|
+
const names = this.#modules.map(({ name }) => name);
|
|
74
|
+
if (new Set(names).size !== this.#modules.length) {
|
|
75
|
+
throw fail("module {0} loaded twice", doubled(names));
|
|
76
|
+
}
|
|
77
|
+
const app = await reducer(this.#modules, this, "init");
|
|
78
|
+
this.#target.set(target);
|
|
79
|
+
return app;
|
|
80
|
+
}
|
|
81
|
+
get location() {
|
|
82
|
+
return { ...location };
|
|
83
|
+
}
|
|
84
|
+
get target() {
|
|
85
|
+
return this.#target;
|
|
86
|
+
}
|
|
87
|
+
get root() {
|
|
88
|
+
return this.#root;
|
|
89
|
+
}
|
|
90
|
+
get path() {
|
|
91
|
+
return this.#path;
|
|
92
|
+
}
|
|
93
|
+
get mode() {
|
|
94
|
+
return this.#mode;
|
|
95
|
+
}
|
|
96
|
+
get modules() {
|
|
97
|
+
return [...this.#modules];
|
|
98
|
+
}
|
|
99
|
+
get extensions() {
|
|
100
|
+
return this.#bindings.map(([extension]) => extension);
|
|
101
|
+
}
|
|
102
|
+
binder(file) {
|
|
103
|
+
return this.#bindings
|
|
104
|
+
.toSorted(([a], [b]) => a.length > b.length ? -1 : 1)
|
|
105
|
+
.find(([extension]) => file.path.endsWith(extension))?.[1];
|
|
106
|
+
}
|
|
107
|
+
get(key) {
|
|
108
|
+
return this.#kv.get(key);
|
|
109
|
+
}
|
|
110
|
+
set(key, value) {
|
|
111
|
+
this.#kv.set(key, value);
|
|
112
|
+
}
|
|
113
|
+
config(path) {
|
|
114
|
+
return get(this.#config, path);
|
|
115
|
+
}
|
|
116
|
+
runpath(...directories) {
|
|
117
|
+
return this.#path.build.join(...directories);
|
|
118
|
+
}
|
|
119
|
+
// this is technically not necessary for serving, but it has to be used by
|
|
120
|
+
// the init hook, which is shared between the build and serve app
|
|
121
|
+
bind(extension, binder) {
|
|
122
|
+
if (this.extensions.includes(extension)) {
|
|
123
|
+
throw new Error(`${extension} already bound`);
|
|
124
|
+
}
|
|
125
|
+
this.#bindings.push([extension, binder]);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
//# sourceMappingURL=App.js.map
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type BindingContext from "#BindingContext";
|
|
2
|
+
import type FileRef from "@rcompat/fs/FileRef";
|
|
3
|
+
import type MaybePromise from "@rcompat/type/MaybePromise";
|
|
4
|
+
type Options = {
|
|
5
|
+
build: {
|
|
6
|
+
id: string;
|
|
7
|
+
stage: FileRef;
|
|
8
|
+
};
|
|
9
|
+
context: BindingContext;
|
|
10
|
+
};
|
|
11
|
+
type Binder = (file: FileRef, options: Options) => MaybePromise<void>;
|
|
12
|
+
export type { Binder as default };
|
|
13
|
+
//# sourceMappingURL=Binder.d.ts.map
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import App from "#App";
|
|
2
|
+
import type BindingContext from "#BindingContext";
|
|
3
|
+
import Build from "@rcompat/build";
|
|
4
|
+
import type FileRef from "@rcompat/fs/FileRef";
|
|
5
|
+
import type MaybePromise from "@rcompat/type/MaybePromise";
|
|
6
|
+
export default class BuildApp extends App {
|
|
7
|
+
#private;
|
|
8
|
+
frontends: Map<string, string>;
|
|
9
|
+
buildInit(): Promise<void>;
|
|
10
|
+
get id(): string;
|
|
11
|
+
get build(): Build;
|
|
12
|
+
get server_build(): string[];
|
|
13
|
+
addRoot(root: FileRef): void;
|
|
14
|
+
get roots(): FileRef[];
|
|
15
|
+
done(fn: () => void): void;
|
|
16
|
+
cleanup(): void;
|
|
17
|
+
export(code: string): void;
|
|
18
|
+
stage(directory: FileRef, context: BindingContext, importer: (file: FileRef) => MaybePromise<string>): Promise<void>;
|
|
19
|
+
depth(): number;
|
|
20
|
+
get i18n_active(): boolean;
|
|
21
|
+
set i18n_active(active: boolean);
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=BuildApp.d.ts.map
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import App from "#App";
|
|
2
|
+
import build from "#hook/build";
|
|
3
|
+
import location from "#location";
|
|
4
|
+
import log from "#log";
|
|
5
|
+
import s_layout_depth from "#symbol/layout-depth";
|
|
6
|
+
import Build from "@rcompat/build";
|
|
7
|
+
import cache from "@rcompat/kv/cache";
|
|
8
|
+
const s = Symbol("primate.Build");
|
|
9
|
+
export default class BuildApp extends App {
|
|
10
|
+
frontends = new Map();
|
|
11
|
+
#postbuild = [];
|
|
12
|
+
#roots = [];
|
|
13
|
+
#server_build = ["route"];
|
|
14
|
+
#id = crypto.randomUUID().slice(0, 8);
|
|
15
|
+
#i18n_active = false;
|
|
16
|
+
async buildInit() {
|
|
17
|
+
log.system("starting {0} build in {1} mode", this.target.name, this.mode);
|
|
18
|
+
await build(this);
|
|
19
|
+
}
|
|
20
|
+
get id() {
|
|
21
|
+
return this.#id;
|
|
22
|
+
}
|
|
23
|
+
get build() {
|
|
24
|
+
const extensions = [...this.frontends.values()];
|
|
25
|
+
return cache.get(s, () => new Build({
|
|
26
|
+
...(this.config("build")),
|
|
27
|
+
outdir: this.runpath(location.client).path,
|
|
28
|
+
stdin: {
|
|
29
|
+
contents: "",
|
|
30
|
+
resolveDir: this.root.path,
|
|
31
|
+
},
|
|
32
|
+
resolveExtensions: [".ts", ".js", ...extensions],
|
|
33
|
+
tsconfigRaw: {
|
|
34
|
+
compilerOptions: {
|
|
35
|
+
baseUrl: "${configDir}",
|
|
36
|
+
paths: {
|
|
37
|
+
"#component/*": [
|
|
38
|
+
"components/*", ...extensions.map(e => `components/*${e}`),
|
|
39
|
+
],
|
|
40
|
+
"#static/*": ["./static/*.js", "./static/*.ts"],
|
|
41
|
+
"#i18n": ["config/i18n.ts", "config/i18n.js"],
|
|
42
|
+
"#store/*": ["stores/*"],
|
|
43
|
+
"#locale/*": ["locales/*"],
|
|
44
|
+
"#config/*": ["config/*"],
|
|
45
|
+
"#session": ["config/session.ts", "config/session.js"],
|
|
46
|
+
"#database": [
|
|
47
|
+
"config/database/index.ts",
|
|
48
|
+
"config/database/index.js",
|
|
49
|
+
"config/database/default.ts",
|
|
50
|
+
"config/database/default.js",
|
|
51
|
+
],
|
|
52
|
+
},
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
}, this.mode === "development" ? "development" : "production"));
|
|
56
|
+
}
|
|
57
|
+
get server_build() {
|
|
58
|
+
return this.#server_build;
|
|
59
|
+
}
|
|
60
|
+
addRoot(root) {
|
|
61
|
+
this.#roots.push(root);
|
|
62
|
+
}
|
|
63
|
+
get roots() {
|
|
64
|
+
return [...this.#roots];
|
|
65
|
+
}
|
|
66
|
+
done(fn) {
|
|
67
|
+
this.#postbuild.push(fn);
|
|
68
|
+
}
|
|
69
|
+
cleanup() {
|
|
70
|
+
this.#postbuild.forEach(fn => fn());
|
|
71
|
+
}
|
|
72
|
+
export(code) {
|
|
73
|
+
this.build.export(code);
|
|
74
|
+
}
|
|
75
|
+
async stage(directory, context, importer) {
|
|
76
|
+
if (!await directory.exists()) {
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
if (!await this.runpath("stage").exists()) {
|
|
80
|
+
await this.runpath("stage").create();
|
|
81
|
+
}
|
|
82
|
+
const base = this.runpath("stage", context);
|
|
83
|
+
if (!await base.exists()) {
|
|
84
|
+
await base.create();
|
|
85
|
+
}
|
|
86
|
+
const build_directory = this.runpath(directory.name);
|
|
87
|
+
await build_directory.create();
|
|
88
|
+
for (const file of await directory.collect(({ path }) => /^.*$/.test(path))) {
|
|
89
|
+
const debased = file.debase(directory);
|
|
90
|
+
const target = base.join(debased);
|
|
91
|
+
if (!await target.directory.exists()) {
|
|
92
|
+
await target.directory.create({ recursive: true });
|
|
93
|
+
}
|
|
94
|
+
const binder = this.binder(file);
|
|
95
|
+
if (binder === undefined) {
|
|
96
|
+
log.info("no binder found for {0}", file.path);
|
|
97
|
+
continue;
|
|
98
|
+
}
|
|
99
|
+
// copy to build/stage/${directory}
|
|
100
|
+
await file.copy(target);
|
|
101
|
+
await binder(target, {
|
|
102
|
+
build: { id: this.id, stage: this.runpath("stage") },
|
|
103
|
+
context,
|
|
104
|
+
});
|
|
105
|
+
// actual
|
|
106
|
+
const runtime_file = build_directory.join(debased.bare(".js"));
|
|
107
|
+
await runtime_file.directory.create();
|
|
108
|
+
runtime_file.write(await importer(debased));
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
depth() {
|
|
112
|
+
return this.get(s_layout_depth);
|
|
113
|
+
}
|
|
114
|
+
get i18n_active() {
|
|
115
|
+
return this.#i18n_active;
|
|
116
|
+
}
|
|
117
|
+
set i18n_active(active) {
|
|
118
|
+
this.#i18n_active = active;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=BuildApp.js.map
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import FileRef from "@rcompat/fs/FileRef";
|
|
2
|
+
import type Dict from "@rcompat/type/Dict";
|
|
3
|
+
type Init = {
|
|
4
|
+
pages: Dict<string>;
|
|
5
|
+
rootfile: string;
|
|
6
|
+
static_root: string;
|
|
7
|
+
};
|
|
8
|
+
export default class Loader {
|
|
9
|
+
#private;
|
|
10
|
+
constructor(init: Init);
|
|
11
|
+
get static_root(): string;
|
|
12
|
+
page(name?: string): string;
|
|
13
|
+
asset(file: FileRef): Response;
|
|
14
|
+
serve(pathname: string): Promise<Response | undefined>;
|
|
15
|
+
}
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=Loader.d.ts.map
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import location from "#location";
|
|
2
|
+
import FileRef from "@rcompat/fs/FileRef";
|
|
3
|
+
import Status from "@rcompat/http/Status";
|
|
4
|
+
import resolve from "@rcompat/http/mime/extension/resolve";
|
|
5
|
+
export default class Loader {
|
|
6
|
+
#init;
|
|
7
|
+
#root;
|
|
8
|
+
constructor(init) {
|
|
9
|
+
this.#init = init;
|
|
10
|
+
this.#root = new FileRef(init.rootfile).join("..");
|
|
11
|
+
}
|
|
12
|
+
get static_root() {
|
|
13
|
+
return this.#init.static_root;
|
|
14
|
+
}
|
|
15
|
+
get #pages() {
|
|
16
|
+
return this.#init.pages;
|
|
17
|
+
}
|
|
18
|
+
page(name) {
|
|
19
|
+
if (name === undefined || !(name in this.#pages)) {
|
|
20
|
+
return this.#pages[location.app_html];
|
|
21
|
+
}
|
|
22
|
+
return this.#pages[name];
|
|
23
|
+
}
|
|
24
|
+
asset(file) {
|
|
25
|
+
return new Response(file.stream(), {
|
|
26
|
+
headers: {
|
|
27
|
+
"Content-Type": resolve(file.name),
|
|
28
|
+
},
|
|
29
|
+
status: Status.OK,
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
async serve(pathname) {
|
|
33
|
+
const client_file = this.#root.join(`client/${pathname}`);
|
|
34
|
+
if (await client_file.isFile()) {
|
|
35
|
+
return this.asset(client_file);
|
|
36
|
+
}
|
|
37
|
+
if (pathname.startsWith(this.static_root)) {
|
|
38
|
+
const assetname = pathname.slice(this.static_root.length);
|
|
39
|
+
const static_file = this.#root.join(`static/${assetname}`);
|
|
40
|
+
if (await static_file.isFile()) {
|
|
41
|
+
return this.asset(static_file);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=Loader.js.map
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type App from "#App";
|
|
2
|
+
import type BuildApp from "#BuildApp";
|
|
3
|
+
import type Next from "#module/Next";
|
|
4
|
+
import type NextBuild from "#module/NextBuild";
|
|
5
|
+
import type NextHandle from "#module/NextHandle";
|
|
6
|
+
import type NextRoute from "#module/NextRoute";
|
|
7
|
+
import type NextServe from "#module/NextServe";
|
|
8
|
+
import type RequestFacade from "#request/RequestFacade";
|
|
9
|
+
import type ServeApp from "#ServeApp";
|
|
10
|
+
export default abstract class Module {
|
|
11
|
+
abstract get name(): string;
|
|
12
|
+
init<T extends App>(app: T, next: Next<T>): import("@rcompat/type/MaybePromise").default<T>;
|
|
13
|
+
build(app: BuildApp, next: NextBuild): import("@rcompat/type/MaybePromise").default<BuildApp>;
|
|
14
|
+
serve(app: ServeApp, next: NextServe): import("@rcompat/type/MaybePromise").default<ServeApp>;
|
|
15
|
+
handle(request: RequestFacade, next: NextHandle): import("@rcompat/type/MaybePromise").default<Response>;
|
|
16
|
+
route(request: RequestFacade, next: NextRoute): import("@rcompat/type/MaybePromise").default<import("./response/ResponseLike.js").default>;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=Module.d.ts.map
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export default class Module {
|
|
2
|
+
init(app, next) {
|
|
3
|
+
return next(app);
|
|
4
|
+
}
|
|
5
|
+
build(app, next) {
|
|
6
|
+
return next(app);
|
|
7
|
+
}
|
|
8
|
+
serve(app, next) {
|
|
9
|
+
return next(app);
|
|
10
|
+
}
|
|
11
|
+
handle(request, next) {
|
|
12
|
+
return next(request);
|
|
13
|
+
}
|
|
14
|
+
route(request, next) {
|
|
15
|
+
return next(request);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=Module.js.map
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import App from "#App";
|
|
2
|
+
import type Asset from "#asset/Asset";
|
|
3
|
+
import type ServerComponent from "#frontend/ServerComponent";
|
|
4
|
+
import type ViewOptions from "#frontend/ViewOptions";
|
|
5
|
+
import type ViewResponse from "#frontend/ViewResponse";
|
|
6
|
+
import type I18NConfig from "#i18n/Config";
|
|
7
|
+
import type Loader from "#Loader";
|
|
8
|
+
import RequestBag from "#request/RequestBag";
|
|
9
|
+
import RequestBody from "#request/RequestBody";
|
|
10
|
+
import type RequestFacade from "#request/RequestFacade";
|
|
11
|
+
import type ServeInit from "#ServeInit";
|
|
12
|
+
import FileRouter from "@rcompat/fs/FileRouter";
|
|
13
|
+
import type Actions from "@rcompat/http/Actions";
|
|
14
|
+
import type Dict from "@rcompat/type/Dict";
|
|
15
|
+
interface FullViewOptions extends ViewOptions {
|
|
16
|
+
body: string;
|
|
17
|
+
}
|
|
18
|
+
interface PublishOptions {
|
|
19
|
+
code: string;
|
|
20
|
+
inline: boolean;
|
|
21
|
+
src?: string;
|
|
22
|
+
type: string;
|
|
23
|
+
}
|
|
24
|
+
export default class ServeApp extends App {
|
|
25
|
+
#private;
|
|
26
|
+
constructor(rootfile: string, init: ServeInit);
|
|
27
|
+
get secure(): boolean;
|
|
28
|
+
loader<T extends Loader>(): T;
|
|
29
|
+
serve(pathname: string): Promise<Response | undefined>;
|
|
30
|
+
get assets(): Asset[];
|
|
31
|
+
get modules(): import("./Module.js").default[];
|
|
32
|
+
get url(): string;
|
|
33
|
+
get router(): FileRouter;
|
|
34
|
+
get frontends(): {
|
|
35
|
+
[x: string]: ViewResponse | undefined;
|
|
36
|
+
};
|
|
37
|
+
get files(): {
|
|
38
|
+
routes: [string, {
|
|
39
|
+
default: any;
|
|
40
|
+
}][];
|
|
41
|
+
};
|
|
42
|
+
get stores(): Dict;
|
|
43
|
+
get i18n(): I18NConfig | undefined;
|
|
44
|
+
component<T = ServerComponent>(name: string): T;
|
|
45
|
+
headers(csp?: {}): {
|
|
46
|
+
"Content-Security-Policy"?: string | undefined;
|
|
47
|
+
};
|
|
48
|
+
render(content: Omit<FullViewOptions, keyof ResponseInit>): string;
|
|
49
|
+
page(page?: string): string;
|
|
50
|
+
respond(body: BodyInit | null, init?: ResponseInit): Response;
|
|
51
|
+
view(options: FullViewOptions): Response;
|
|
52
|
+
media(content_type: string, response?: ResponseInit): ResponseInit;
|
|
53
|
+
publish({ code, inline, src, type }: PublishOptions): Promise<void>;
|
|
54
|
+
create_csp(): void;
|
|
55
|
+
register(extension: string, viewFunction: ViewResponse): void;
|
|
56
|
+
start(): Promise<void>;
|
|
57
|
+
stop(): void;
|
|
58
|
+
upgrade(request: Request, actions: Actions): null;
|
|
59
|
+
route(request: RequestFacade): Promise<{
|
|
60
|
+
errors: import("./route/Handler.js").default[];
|
|
61
|
+
guards: import("./route/Handler.js").default[];
|
|
62
|
+
handler: import("./route/Handler.js").default;
|
|
63
|
+
layouts: import("./route/Handler.js").default[];
|
|
64
|
+
request: {
|
|
65
|
+
body: RequestBody;
|
|
66
|
+
path: RequestBag;
|
|
67
|
+
context: Dict;
|
|
68
|
+
cookies: RequestBag;
|
|
69
|
+
forward(to: string, headers?: Dict<string>): Promise<Response>;
|
|
70
|
+
headers: RequestBag;
|
|
71
|
+
original: Request;
|
|
72
|
+
query: RequestBag;
|
|
73
|
+
target: string;
|
|
74
|
+
url: URL;
|
|
75
|
+
};
|
|
76
|
+
} | undefined>;
|
|
77
|
+
get session(): {
|
|
78
|
+
cookie: {
|
|
79
|
+
httpOnly: boolean;
|
|
80
|
+
name: string;
|
|
81
|
+
path: string;
|
|
82
|
+
sameSite: "Lax" | "None" | "Strict";
|
|
83
|
+
};
|
|
84
|
+
manager: import("./session/Manager.js").default<unknown>;
|
|
85
|
+
schema: import("@rcompat/type/Schema").default<unknown> | undefined;
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
export {};
|
|
89
|
+
//# sourceMappingURL=ServeApp.d.ts.map
|