@primate/core 0.4.6 → 0.6.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 +771 -6
- package/lib/private/App.js +49 -16
- package/lib/private/Binder.d.ts +2 -2
- package/lib/private/Flags.d.ts +8 -4
- package/lib/private/Module.d.ts +4 -16
- package/lib/private/Module.js +1 -17
- package/lib/private/app/EnvSchema.d.ts +5 -0
- package/lib/private/app/EnvSchema.js +2 -0
- package/lib/private/app/Facade.browser.d.ts +11 -0
- package/lib/private/app/Facade.browser.js +19 -0
- package/lib/private/app/Facade.d.ts +811 -0
- package/lib/private/app/Facade.js +56 -0
- package/lib/private/asset/Asset.d.ts +1 -1
- package/lib/private/build/App.d.ts +2 -2
- package/lib/private/build/App.js +0 -2
- package/lib/private/build/client/index.js +19 -10
- package/lib/private/build/client/plugin/app-request.d.ts +4 -0
- package/lib/private/build/client/plugin/app-request.js +19 -0
- package/lib/private/build/client/plugin/view.d.ts +4 -0
- package/lib/private/build/client/plugin/view.js +13 -0
- package/lib/private/build/hook.d.ts +1 -2
- package/lib/private/build/hook.js +25 -19
- package/lib/private/build/index.d.ts +2 -1
- package/lib/private/build/index.js +27 -27
- package/lib/private/build/presets.d.ts +10 -0
- package/lib/private/build/presets.js +39 -0
- package/lib/private/build/server/index.js +10 -14
- package/lib/private/build/server/plugin/app-request.d.ts +4 -0
- package/lib/private/build/server/plugin/app-request.js +19 -0
- package/lib/private/build/server/plugin/assets.js +9 -7
- package/lib/private/build/server/plugin/config.js +11 -4
- package/lib/private/build/server/plugin/frontend.js +4 -2
- package/lib/private/build/server/plugin/live-reload.d.ts +4 -0
- package/lib/private/build/server/plugin/{hot-reload.js → live-reload.js} +12 -12
- package/lib/private/build/server/plugin/native-addons.js +10 -11
- package/lib/private/build/server/plugin/node-imports.js +2 -2
- package/lib/private/build/server/plugin/route.js +4 -4
- package/lib/private/build/server/plugin/store.js +11 -33
- package/lib/private/build/server/plugin/stores.js +12 -9
- package/lib/private/build/server/plugin/view.js +5 -5
- package/lib/private/build/server/plugin/views.js +4 -4
- package/lib/private/build/server/plugin/virtual-pages.js +8 -8
- package/lib/private/build/server/plugin/virtual-routes.js +8 -13
- package/lib/private/build/server/plugin/wasm.js +2 -3
- package/lib/private/build/shared/plugin/app-request.d.ts +4 -0
- package/lib/private/build/shared/plugin/app-request.js +19 -0
- package/lib/private/bye.js +2 -3
- package/lib/private/client/Data.d.ts +3 -2
- package/lib/private/client/Render.d.ts +8 -0
- package/lib/private/{frontend → client}/ServerData.d.ts +1 -1
- package/lib/private/client/ServerView.d.ts +4 -0
- package/lib/private/client/ValidateInit.d.ts +1 -3
- package/lib/private/client/ValidationError.d.ts +1 -1
- package/lib/private/{frontend → client}/View.d.ts +1 -1
- package/lib/private/{frontend → client}/ViewOptions.d.ts +1 -1
- package/lib/private/{frontend → client}/ViewResponse.d.ts +2 -2
- package/lib/private/client/app.js +3 -3
- package/lib/private/client/boot.d.ts +5 -0
- package/lib/private/client/boot.js +64 -0
- package/lib/private/client/create-form.d.ts +32 -0
- package/lib/private/client/create-form.js +123 -0
- package/lib/private/client/extract-issues.d.ts +4 -0
- package/lib/private/client/extract-issues.js +21 -0
- package/lib/private/client/http.d.ts +13 -0
- package/lib/private/client/http.js +57 -0
- package/lib/private/client/index.d.ts +23 -0
- package/lib/private/client/index.js +16 -0
- package/lib/private/client/navigate.d.ts +13 -0
- package/lib/private/client/navigate.js +67 -0
- package/lib/private/client/root.d.ts +9 -0
- package/lib/private/client/root.js +11 -0
- package/lib/private/client/submit.d.ts +2 -0
- package/lib/private/client/submit.js +41 -0
- package/lib/private/client/{toValidated.d.ts → to-validated.d.ts} +2 -4
- package/lib/private/client/{toValidated.js → to-validated.js} +1 -1
- package/lib/private/client/validate-field.d.ts +3 -0
- package/lib/private/client/validate-field.js +41 -0
- package/lib/private/config/index.d.ts +7 -21
- package/lib/private/config/index.js +4 -1
- package/lib/private/config/schema.d.ts +82 -22
- package/lib/private/config/schema.js +25 -7
- package/lib/private/cookie.d.ts +12 -6
- package/lib/private/cookie.js +10 -14
- package/lib/private/db/As.d.ts +10 -0
- package/lib/private/db/DB.d.ts +49 -0
- package/lib/private/db/DB.js +3 -0
- package/lib/private/db/DataDict.d.ts +5 -0
- package/lib/private/db/DataKey.d.ts +4 -0
- package/lib/private/db/DataValue.d.ts +17 -0
- package/lib/private/db/MemoryDB.d.ts +33 -0
- package/lib/private/db/MemoryDB.js +335 -0
- package/lib/private/db/PK.d.ts +3 -0
- package/lib/private/db/PK.js +2 -0
- package/lib/private/{database → db}/Query.d.ts +2 -2
- package/lib/private/{database → db}/QueryBuilder.d.ts +2 -3
- package/lib/private/db/ReadArgs.d.ts +9 -0
- package/lib/private/db/ReadArgs.js +2 -0
- package/lib/private/db/ReadRelationsArgs.d.ts +6 -0
- package/lib/private/db/ReadRelationsArgs.js +2 -0
- package/lib/private/{database → db}/Schema.d.ts +1 -2
- package/lib/private/db/Sort.d.ts +4 -0
- package/lib/private/{database → db}/TypeMap.d.ts +2 -3
- package/lib/private/{database → db}/Types.d.ts +1 -1
- package/lib/private/db/With.d.ts +16 -0
- package/lib/private/db/With.js +2 -0
- package/lib/private/db/common.d.ts +25 -0
- package/lib/private/db/common.js +67 -0
- package/lib/private/db/errors.d.ts +104 -0
- package/lib/private/db/errors.js +237 -0
- package/lib/private/db/migrate/apply.d.ts +2 -0
- package/lib/private/db/migrate/apply.js +32 -0
- package/lib/private/db/migrate/bundle.d.ts +3 -0
- package/lib/private/db/migrate/bundle.js +22 -0
- package/lib/private/db/migrate/create.d.ts +2 -0
- package/lib/private/db/migrate/create.js +154 -0
- package/lib/private/db/migrate/index.d.ts +10 -0
- package/lib/private/db/migrate/index.js +6 -0
- package/lib/private/db/migrate/status.d.ts +2 -0
- package/lib/private/db/migrate/status.js +38 -0
- package/lib/private/db/migrate/store.d.ts +5 -0
- package/lib/private/db/migrate/store.js +33 -0
- package/lib/private/db/sql.d.ts +28 -0
- package/lib/private/db/sql.js +177 -0
- package/lib/private/db/storage.d.ts +3 -0
- package/lib/private/db/storage.js +3 -0
- package/lib/private/db/symbol.js +2 -0
- package/lib/private/db/test.d.ts +4 -0
- package/lib/private/db/test.js +1750 -0
- package/lib/private/errors.d.ts +88 -0
- package/lib/private/errors.js +211 -0
- package/lib/private/frontend.d.ts +72 -0
- package/lib/private/frontend.js +245 -0
- package/lib/private/hash.js +0 -1
- package/lib/private/i18n/Catalog.d.ts +5 -2
- package/lib/private/i18n/Formatter.js +21 -9
- package/lib/private/i18n/errors.d.ts +16 -0
- package/lib/private/i18n/errors.js +27 -0
- package/lib/private/i18n/format.d.ts +4 -0
- package/lib/private/i18n/format.js +95 -0
- package/lib/private/i18n/index/client.d.ts +9 -0
- package/lib/private/i18n/index/client.js +152 -0
- package/lib/private/i18n/index/server.d.ts +9 -0
- package/lib/private/i18n/index/server.js +57 -0
- package/lib/private/i18n/index/types.d.ts +33 -0
- package/lib/private/i18n/index/types.js +2 -0
- package/lib/private/i18n/locale.d.ts +9 -3
- package/lib/private/i18n/module.d.ts +3 -0
- package/lib/private/i18n/module.js +115 -0
- package/lib/private/i18n/ordinals.d.ts +1 -1
- package/lib/private/i18n/resolve.d.ts +7 -0
- package/lib/private/i18n/resolve.js +30 -0
- package/lib/private/i18n/schema.d.ts +10 -5
- package/lib/private/i18n/schema.js +6 -10
- package/lib/private/i18n/storage.d.ts +3 -0
- package/lib/private/i18n/storage.js +5 -0
- package/lib/private/i18n/validate.d.ts +2 -0
- package/lib/private/i18n/validate.js +19 -0
- package/lib/private/index.d.ts +14 -0
- package/lib/private/index.js +2 -0
- package/lib/private/log.d.ts +1 -0
- package/lib/private/log.js +15 -14
- package/lib/private/module/Hook.d.ts +1 -1
- package/lib/private/module/Next.d.ts +1 -1
- package/lib/private/module/Setup.d.ts +21 -0
- package/lib/private/module/Setup.js +2 -0
- package/lib/private/module/create.d.ts +16 -0
- package/lib/private/module/create.js +28 -0
- package/lib/private/orm/ExtractSchema.d.ts +9 -0
- package/lib/private/orm/ExtractSchema.js +2 -0
- package/lib/private/orm/ForeignKey.d.ts +14 -0
- package/lib/private/orm/ForeignKey.js +25 -0
- package/lib/private/orm/PrimaryKey.d.ts +17 -0
- package/lib/private/orm/PrimaryKey.js +38 -0
- package/lib/private/orm/StoreInput.d.ts +10 -0
- package/lib/private/orm/StoreInput.js +2 -0
- package/lib/private/orm/key.d.ts +8 -0
- package/lib/private/orm/key.js +8 -0
- package/lib/private/orm/parse.d.ts +13 -0
- package/lib/private/orm/parse.js +29 -0
- package/lib/private/orm/relation.d.ts +43 -0
- package/lib/private/orm/relation.js +26 -0
- package/lib/private/orm/store.d.ts +187 -0
- package/lib/private/orm/store.js +542 -0
- package/lib/private/paths.d.ts +2 -2
- package/lib/private/paths.js +3 -3
- package/lib/private/request/RequestBag.d.ts +5 -1
- package/lib/private/request/RequestBag.js +16 -9
- package/lib/private/request/RequestBody.d.ts +6 -11
- package/lib/private/request/RequestBody.js +51 -59
- package/lib/private/request/RequestContext.d.ts +12 -0
- package/lib/private/request/RequestContext.js +31 -0
- package/lib/private/request/RequestFacade.d.ts +11 -6
- package/lib/private/request/RequestPublic.d.ts +9 -0
- package/lib/private/request/RequestPublic.js +2 -0
- package/lib/private/request/RequestView.d.ts +11 -0
- package/lib/private/request/RequestView.js +3 -0
- package/lib/private/request/handle.d.ts +4 -0
- package/lib/private/request/handle.js +18 -0
- package/lib/private/request/parse.d.ts +2 -2
- package/lib/private/request/parse.js +55 -16
- package/lib/private/request/route.js +37 -22
- package/lib/private/request/router.d.ts +1 -1
- package/lib/private/request/router.js +22 -50
- package/lib/private/{database/symbol/wrap.d.ts → request/sContext.d.ts} +1 -1
- package/lib/private/request/sContext.js +2 -0
- package/lib/private/request/storage.d.ts +4 -0
- package/lib/private/request/storage.js +5 -0
- package/lib/private/response/ResponseFunction.d.ts +2 -3
- package/lib/private/response/ResponseLike.d.ts +1 -1
- package/lib/private/response/binary.d.ts +1 -1
- package/lib/private/response/binary.js +4 -3
- package/lib/private/response/error.d.ts +1 -1
- package/lib/private/response/error.js +1 -1
- package/lib/private/response/json.d.ts +1 -1
- package/lib/private/response/json.js +2 -2
- package/lib/private/response/redirect.d.ts +5 -5
- package/lib/private/response/redirect.js +9 -10
- package/lib/private/response/respond.js +16 -17
- package/lib/private/response/sse.d.ts +1 -1
- package/lib/private/response/sse.js +2 -2
- package/lib/private/response/text.d.ts +1 -1
- package/lib/private/response/text.js +3 -3
- package/lib/private/response/view.d.ts +3 -3
- package/lib/private/response/view.js +7 -14
- package/lib/private/response/ws.d.ts +1 -1
- package/lib/private/response.d.ts +1 -1
- package/lib/private/route/Handler.d.ts +1 -1
- package/lib/private/route/hook.d.ts +6 -0
- package/lib/private/route/hook.js +5 -0
- package/lib/private/route/router.d.ts +6 -2
- package/lib/private/route/router.js +32 -18
- package/lib/private/route/wrap.js +2 -2
- package/lib/private/serve/App.d.ts +11 -25
- package/lib/private/serve/App.js +138 -120
- package/lib/private/serve/Init.d.ts +5 -5
- package/lib/private/serve/dev-module.d.ts +2 -0
- package/lib/private/serve/dev-module.js +34 -0
- package/lib/private/serve/hook.d.ts +1 -2
- package/lib/private/serve/hook.js +2 -9
- package/lib/private/serve/index.d.ts +1 -1
- package/lib/private/serve/index.js +36 -2
- package/lib/private/server/TAG.d.ts +3 -0
- package/lib/private/server/TAG.js +2 -0
- package/lib/private/server/index.d.ts +5 -0
- package/lib/private/server/index.js +6 -0
- package/lib/private/session/Data.d.ts +1 -2
- package/lib/private/session/SessionHandle.d.ts +1 -1
- package/lib/private/session/SessionHandle.js +11 -9
- package/lib/private/session/index.d.ts +3 -4
- package/lib/private/session/module.d.ts +3 -0
- package/lib/private/session/module.js +114 -0
- package/lib/private/session/schema.d.ts +17 -9
- package/lib/private/session/schema.js +11 -6
- package/lib/private/session/storage.d.ts +1 -2
- package/lib/private/session/storage.js +2 -2
- package/lib/private/tags.js +2 -2
- package/lib/private/target/Manager.js +6 -12
- package/lib/private/target/Target.d.ts +1 -1
- package/lib/public/AppFacade.d.ts +2 -0
- package/lib/public/AppFacade.js +2 -0
- package/lib/public/build/presets.d.ts +2 -0
- package/lib/public/build/presets.js +2 -0
- package/lib/public/build/transform.d.ts +2 -0
- package/lib/public/build/transform.js +2 -0
- package/lib/public/client.d.ts +3 -0
- package/lib/public/client.js +2 -0
- package/lib/public/db/MemoryDB.d.ts +2 -0
- package/lib/public/db/MemoryDB.js +2 -0
- package/lib/public/db/errors.d.ts +2 -0
- package/lib/public/db/errors.js +2 -0
- package/lib/public/db/migrate.d.ts +2 -0
- package/lib/public/db/migrate.js +2 -0
- package/lib/public/db/sql.d.ts +2 -0
- package/lib/public/db/sql.js +2 -0
- package/lib/public/db/test.d.ts +2 -0
- package/lib/public/db/test.js +2 -0
- package/lib/public/db.d.ts +12 -0
- package/lib/public/db.js +2 -0
- package/lib/public/frontend.d.ts +3 -0
- package/lib/public/frontend.js +2 -0
- package/lib/public/index.d.ts +2 -0
- package/lib/public/index.js +2 -0
- package/lib/public/orm/key.d.ts +2 -0
- package/lib/public/orm/key.js +2 -0
- package/lib/public/orm/relation.d.ts +2 -0
- package/lib/public/orm/relation.js +2 -0
- package/lib/public/orm/store.d.ts +2 -0
- package/lib/public/orm/store.js +2 -0
- package/lib/public/request/server.d.ts +5 -0
- package/lib/public/request/server.js +7 -0
- package/lib/public/response.d.ts +22 -0
- package/lib/public/response.js +19 -0
- package/lib/public/route/hook.d.ts +2 -0
- package/lib/public/route/hook.js +2 -0
- package/lib/public/server.d.ts +3 -0
- package/lib/public/server.js +2 -0
- package/package.json +40 -30
- package/lib/private/AppError.d.ts +0 -4
- package/lib/private/AppError.js +0 -8
- package/lib/private/backend/Module.d.ts +0 -18
- package/lib/private/backend/Module.js +0 -22
- package/lib/private/backend/TAG.d.ts +0 -3
- package/lib/private/backend/TAG.js +0 -2
- package/lib/private/build/client/reload.d.ts +0 -7
- package/lib/private/build/client/reload.js +0 -6
- package/lib/private/build/server/plugin/database-default.d.ts +0 -4
- package/lib/private/build/server/plugin/database-default.js +0 -48
- package/lib/private/build/server/plugin/hot-reload.d.ts +0 -4
- package/lib/private/build/server/plugin/store-wrap.d.ts +0 -4
- package/lib/private/build/server/plugin/store-wrap.js +0 -33
- package/lib/private/client/spa/index.d.ts +0 -6
- package/lib/private/client/spa/index.js +0 -201
- package/lib/private/client/validate.d.ts +0 -3
- package/lib/private/client/validate.js +0 -54
- package/lib/private/database/As.d.ts +0 -7
- package/lib/private/database/Binds.d.ts +0 -4
- package/lib/private/database/Binds.js +0 -2
- package/lib/private/database/Changes.d.ts +0 -11
- package/lib/private/database/Changes.js +0 -2
- package/lib/private/database/ColumnTypes.d.ts +0 -11
- package/lib/private/database/ColumnTypes.js +0 -2
- package/lib/private/database/DataDict.d.ts +0 -5
- package/lib/private/database/DataKey.d.ts +0 -4
- package/lib/private/database/DataValue.d.ts +0 -5
- package/lib/private/database/Database.d.ts +0 -56
- package/lib/private/database/Database.js +0 -153
- package/lib/private/database/InMemoryDatabase.d.ts +0 -37
- package/lib/private/database/InMemoryDatabase.js +0 -181
- package/lib/private/database/Sort.d.ts +0 -4
- package/lib/private/database/Store.d.ts +0 -172
- package/lib/private/database/Store.js +0 -261
- package/lib/private/database/storage.d.ts +0 -4
- package/lib/private/database/storage.js +0 -3
- package/lib/private/database/symbol/wrap.js +0 -2
- package/lib/private/database/symbol.js +0 -2
- package/lib/private/database/test.d.ts +0 -4
- package/lib/private/database/test.js +0 -678
- package/lib/private/database/wrap.d.ts +0 -5
- package/lib/private/database/wrap.js +0 -5
- package/lib/private/fail.d.ts +0 -3
- package/lib/private/fail.js +0 -5
- package/lib/private/frontend/Module.d.ts +0 -62
- package/lib/private/frontend/Module.js +0 -250
- package/lib/private/frontend/Render.d.ts +0 -9
- package/lib/private/frontend/ServerView.d.ts +0 -5
- package/lib/private/i18n/Module.d.ts +0 -16
- package/lib/private/i18n/Module.js +0 -122
- package/lib/private/i18n/index.d.ts +0 -28
- package/lib/private/i18n/index.js +0 -236
- package/lib/private/module/BuildHook.d.ts +0 -5
- package/lib/private/module/BuildHook.js +0 -2
- package/lib/private/module/NextBuild.d.ts +0 -5
- package/lib/private/module/NextBuild.js +0 -2
- package/lib/private/module/NextServe.d.ts +0 -5
- package/lib/private/module/NextServe.js +0 -2
- package/lib/private/reducer.d.ts +0 -24
- package/lib/private/reducer.js +0 -10
- package/lib/private/route/guard.d.ts +0 -4
- package/lib/private/route/guard.js +0 -22
- package/lib/private/serve/module/Dev.d.ts +0 -11
- package/lib/private/serve/module/Dev.js +0 -28
- package/lib/private/serve/module/Handle.d.ts +0 -10
- package/lib/private/serve/module/Handle.js +0 -15
- package/lib/private/session/SessionModule.d.ts +0 -14
- package/lib/private/session/SessionModule.js +0 -122
- package/lib/private/wasm/API.d.ts +0 -7
- package/lib/private/wasm/API.js +0 -2
- package/lib/private/wasm/BufferViewSource.d.ts +0 -4
- package/lib/private/wasm/BufferViewSource.js +0 -2
- package/lib/private/wasm/Exports.d.ts +0 -23
- package/lib/private/wasm/Exports.js +0 -2
- package/lib/private/wasm/I32.d.ts +0 -5
- package/lib/private/wasm/I32.js +0 -2
- package/lib/private/wasm/I32_SIZE.d.ts +0 -3
- package/lib/private/wasm/I32_SIZE.js +0 -2
- package/lib/private/wasm/Instantiation.d.ts +0 -12
- package/lib/private/wasm/Instantiation.js +0 -2
- package/lib/private/wasm/Tagged.d.ts +0 -7
- package/lib/private/wasm/Tagged.js +0 -2
- package/lib/private/wasm/buffersize.d.ts +0 -2
- package/lib/private/wasm/buffersize.js +0 -5
- package/lib/private/wasm/decode-bytes.d.ts +0 -3
- package/lib/private/wasm/decode-bytes.js +0 -5
- package/lib/private/wasm/decode-json.d.ts +0 -7
- package/lib/private/wasm/decode-json.js +0 -11
- package/lib/private/wasm/decode-option.d.ts +0 -5
- package/lib/private/wasm/decode-option.js +0 -10
- package/lib/private/wasm/decode-response.d.ts +0 -19
- package/lib/private/wasm/decode-response.js +0 -90
- package/lib/private/wasm/decode-string.d.ts +0 -3
- package/lib/private/wasm/decode-string.js +0 -5
- package/lib/private/wasm/decode-websocket-close.d.ts +0 -5
- package/lib/private/wasm/decode-websocket-close.js +0 -6
- package/lib/private/wasm/decode-websocket-send.d.ts +0 -6
- package/lib/private/wasm/decode-websocket-send.js +0 -19
- package/lib/private/wasm/encode-buffer.d.ts +0 -3
- package/lib/private/wasm/encode-buffer.js +0 -6
- package/lib/private/wasm/encode-request.d.ts +0 -9
- package/lib/private/wasm/encode-request.js +0 -195
- package/lib/private/wasm/encode-session.d.ts +0 -3
- package/lib/private/wasm/encode-session.js +0 -25
- package/lib/private/wasm/encode-string-map.d.ts +0 -5
- package/lib/private/wasm/encode-string-map.js +0 -14
- package/lib/private/wasm/encode-string.d.ts +0 -13
- package/lib/private/wasm/encode-string.js +0 -17
- package/lib/private/wasm/encode-url.d.ts +0 -11
- package/lib/private/wasm/encode-url.js +0 -14
- package/lib/private/wasm/encode-websocket-close.d.ts +0 -2
- package/lib/private/wasm/encode-websocket-close.js +0 -7
- package/lib/private/wasm/encode-websocket-message.d.ts +0 -4
- package/lib/private/wasm/encode-websocket-message.js +0 -30
- package/lib/private/wasm/encode-websocket-open.d.ts +0 -2
- package/lib/private/wasm/encode-websocket-open.js +0 -7
- package/lib/private/wasm/filesize.d.ts +0 -2
- package/lib/private/wasm/filesize.js +0 -8
- package/lib/private/wasm/instantiate.d.ts +0 -37
- package/lib/private/wasm/instantiate.js +0 -408
- package/lib/private/wasm/open-websocket.d.ts +0 -4
- package/lib/private/wasm/open-websocket.js +0 -26
- package/lib/private/wasm/stringsize.d.ts +0 -3
- package/lib/private/wasm/stringsize.js +0 -5
- package/lib/private/wasm/urlsize.d.ts +0 -2
- package/lib/private/wasm/urlsize.js +0 -5
- package/lib/public/App.d.ts +0 -2
- package/lib/public/App.js +0 -2
- package/lib/public/AppError.d.ts +0 -2
- package/lib/public/AppError.js +0 -2
- package/lib/public/BuildApp.d.ts +0 -2
- package/lib/public/BuildApp.js +0 -2
- package/lib/public/BuildHook.d.ts +0 -2
- package/lib/public/BuildHook.js +0 -2
- package/lib/public/Database.d.ts +0 -2
- package/lib/public/Database.js +0 -2
- package/lib/public/Mode.d.ts +0 -2
- package/lib/public/Mode.js +0 -2
- package/lib/public/Module.d.ts +0 -2
- package/lib/public/Module.js +0 -2
- package/lib/public/Next.d.ts +0 -2
- package/lib/public/Next.js +0 -2
- package/lib/public/NextBuild.d.ts +0 -2
- package/lib/public/NextBuild.js +0 -2
- package/lib/public/NextHandle.d.ts +0 -2
- package/lib/public/NextHandle.js +0 -2
- package/lib/public/NextRoute.d.ts +0 -3
- package/lib/public/NextRoute.js +0 -2
- package/lib/public/NextServe.d.ts +0 -2
- package/lib/public/NextServe.js +0 -2
- package/lib/public/ServeApp.d.ts +0 -2
- package/lib/public/ServeApp.js +0 -2
- package/lib/public/Target.d.ts +0 -2
- package/lib/public/Target.js +0 -2
- package/lib/public/backend/Module.d.ts +0 -2
- package/lib/public/backend/Module.js +0 -2
- package/lib/public/backend/TAG.d.ts +0 -2
- package/lib/public/backend/TAG.js +0 -2
- package/lib/public/client/Data.d.ts +0 -2
- package/lib/public/client/Data.js +0 -2
- package/lib/public/client/ValidateInit.d.ts +0 -2
- package/lib/public/client/ValidateInit.js +0 -2
- package/lib/public/client/ValidateUpdater.d.ts +0 -2
- package/lib/public/client/ValidateUpdater.js +0 -2
- package/lib/public/client/ValidationError.d.ts +0 -2
- package/lib/public/client/ValidationError.js +0 -2
- package/lib/public/client/spa.d.ts +0 -2
- package/lib/public/client/spa.js +0 -2
- package/lib/public/client/toValidated.d.ts +0 -2
- package/lib/public/client/toValidated.js +0 -2
- package/lib/public/client/validate.d.ts +0 -2
- package/lib/public/client/validate.js +0 -2
- package/lib/public/database/As.d.ts +0 -2
- package/lib/public/database/As.js +0 -2
- package/lib/public/database/DataDict.d.ts +0 -2
- package/lib/public/database/DataDict.js +0 -2
- package/lib/public/database/InMemoryDatabase.d.ts +0 -2
- package/lib/public/database/InMemoryDatabase.js +0 -2
- package/lib/public/database/Sort.d.ts +0 -2
- package/lib/public/database/Sort.js +0 -2
- package/lib/public/database/Store.d.ts +0 -2
- package/lib/public/database/Store.js +0 -2
- package/lib/public/database/TypeMap.d.ts +0 -2
- package/lib/public/database/TypeMap.js +0 -2
- package/lib/public/database/Types.d.ts +0 -2
- package/lib/public/database/Types.js +0 -2
- package/lib/public/database/test.d.ts +0 -2
- package/lib/public/database/test.js +0 -2
- package/lib/public/database/wrap.d.ts +0 -2
- package/lib/public/database/wrap.js +0 -2
- package/lib/public/fail.d.ts +0 -2
- package/lib/public/fail.js +0 -2
- package/lib/public/frontend/Module.d.ts +0 -2
- package/lib/public/frontend/Module.js +0 -2
- package/lib/public/frontend/Publish.d.ts +0 -2
- package/lib/public/frontend/Publish.js +0 -2
- package/lib/public/frontend/Render.d.ts +0 -2
- package/lib/public/frontend/Render.js +0 -2
- package/lib/public/frontend/ViewResponse.d.ts +0 -2
- package/lib/public/frontend/ViewResponse.js +0 -2
- package/lib/public/request/RequestBody.d.ts +0 -2
- package/lib/public/request/RequestBody.js +0 -2
- package/lib/public/request/RequestFacade.d.ts +0 -2
- package/lib/public/request/RequestFacade.js +0 -2
- package/lib/public/request/Verb.d.ts +0 -2
- package/lib/public/request/Verb.js +0 -2
- package/lib/public/response/ResponseFunction.d.ts +0 -2
- package/lib/public/response/ResponseFunction.js +0 -2
- package/lib/public/response/ResponseLike.d.ts +0 -2
- package/lib/public/response/ResponseLike.js +0 -2
- package/lib/public/response/binary.d.ts +0 -2
- package/lib/public/response/binary.js +0 -2
- package/lib/public/response/error.d.ts +0 -2
- package/lib/public/response/error.js +0 -2
- package/lib/public/response/json.d.ts +0 -2
- package/lib/public/response/json.js +0 -2
- package/lib/public/response/redirect.d.ts +0 -2
- package/lib/public/response/redirect.js +0 -2
- package/lib/public/response/sse.d.ts +0 -2
- package/lib/public/response/sse.js +0 -2
- package/lib/public/response/text.d.ts +0 -2
- package/lib/public/response/text.js +0 -2
- package/lib/public/response/view.d.ts +0 -2
- package/lib/public/response/view.js +0 -2
- package/lib/public/response/ws.d.ts +0 -2
- package/lib/public/response/ws.js +0 -2
- package/lib/public/wasm/decode-json.d.ts +0 -5
- package/lib/public/wasm/decode-json.js +0 -3
- package/lib/public/wasm/decode-response.d.ts +0 -3
- package/lib/public/wasm/decode-response.js +0 -3
- package/lib/public/wasm/encode-request.d.ts +0 -3
- package/lib/public/wasm/encode-request.js +0 -3
- package/lib/public/wasm/encode-session.d.ts +0 -3
- package/lib/public/wasm/encode-session.js +0 -3
- package/lib/public/wasm/instantiate.d.ts +0 -4
- package/lib/public/wasm/instantiate.js +0 -3
- /package/lib/private/{frontend → client}/Publish.d.ts +0 -0
- /package/lib/private/{frontend → client}/Publish.js +0 -0
- /package/lib/private/{frontend → client}/Render.js +0 -0
- /package/lib/private/{frontend → client}/ServerData.js +0 -0
- /package/lib/private/{frontend → client}/ServerView.js +0 -0
- /package/lib/private/{frontend → client}/View.js +0 -0
- /package/lib/private/{frontend → client}/ViewOptions.js +0 -0
- /package/lib/private/{frontend → client}/ViewResponse.js +0 -0
- /package/lib/private/client/{spa/storage.d.ts → storage.d.ts} +0 -0
- /package/lib/private/client/{spa/storage.js → storage.js} +0 -0
- /package/lib/private/{database → db}/As.js +0 -0
- /package/lib/private/{database → db}/DataDict.js +0 -0
- /package/lib/private/{database → db}/DataKey.js +0 -0
- /package/lib/private/{database → db}/DataValue.js +0 -0
- /package/lib/private/{database → db}/Query.js +0 -0
- /package/lib/private/{database → db}/QueryBuilder.js +0 -0
- /package/lib/private/{database → db}/Schema.js +0 -0
- /package/lib/private/{database → db}/Sort.js +0 -0
- /package/lib/private/{database → db}/TypeMap.js +0 -0
- /package/lib/private/{database → db}/Types.js +0 -0
- /package/lib/private/{database → db}/primary.d.ts +0 -0
- /package/lib/private/{database → db}/primary.js +0 -0
- /package/lib/private/{database → db}/symbol.d.ts +0 -0
|
@@ -4,6 +4,6 @@
|
|
|
4
4
|
* @param options response options
|
|
5
5
|
* @return Response rendering function
|
|
6
6
|
*/
|
|
7
|
-
declare const _default: (body: unknown, init?: ResponseInit) => (app: import("../
|
|
7
|
+
declare const _default: (body: unknown, init?: ResponseInit) => (app: import("../index.js").ServeApp) => import("@rcompat/type").MaybePromise<Response>;
|
|
8
8
|
export default _default;
|
|
9
9
|
//# sourceMappingURL=json.d.ts.map
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import response from "#response";
|
|
2
|
-
import
|
|
2
|
+
import { MIME } from "@rcompat/http";
|
|
3
3
|
/**
|
|
4
4
|
* Issue a JSON response
|
|
5
5
|
* @param body body object
|
|
6
6
|
* @param options response options
|
|
7
7
|
* @return Response rendering function
|
|
8
8
|
*/
|
|
9
|
-
export default response(
|
|
9
|
+
export default response(MIME.APPLICATION_JSON, JSON.stringify);
|
|
10
10
|
//# sourceMappingURL=json.js.map
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import type ResponseFunction from "#response/ResponseFunction";
|
|
2
2
|
type Redirection = 300 | 301 | 302 | 303 | 304 | 307 | 308;
|
|
3
3
|
/**
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
* Redirect request
|
|
5
|
+
* @param location location to redirect to
|
|
6
|
+
* @param status redirection 3xx code
|
|
7
|
+
* @return Response rendering function
|
|
8
|
+
*/
|
|
9
9
|
declare const _default: (location: string, status?: Redirection) => ResponseFunction;
|
|
10
10
|
export default _default;
|
|
11
11
|
//# sourceMappingURL=redirect.d.ts.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import Status from "@rcompat/http
|
|
1
|
+
import { Status } from "@rcompat/http";
|
|
2
2
|
function hasCRLF(s) {
|
|
3
3
|
return /[\r\n]/.test(s);
|
|
4
4
|
}
|
|
@@ -22,9 +22,8 @@ function encodePathname(s) {
|
|
|
22
22
|
.map((each, i) => i === 0 ? "" : encodeURIComponent(each)).join("/");
|
|
23
23
|
}
|
|
24
24
|
function toSearch(query) {
|
|
25
|
-
if (!query)
|
|
25
|
+
if (!query)
|
|
26
26
|
return "";
|
|
27
|
-
}
|
|
28
27
|
const search = Object.entries(query)
|
|
29
28
|
.filter(([, v]) => v !== null && v !== undefined)
|
|
30
29
|
.reduce((params, [k, v]) => {
|
|
@@ -36,7 +35,7 @@ function toSearch(query) {
|
|
|
36
35
|
}
|
|
37
36
|
function toNormalized(relative, base) {
|
|
38
37
|
// base -> URL resolution
|
|
39
|
-
if (base) {
|
|
38
|
+
if (base !== undefined) {
|
|
40
39
|
const url = new URL(relative, new URL(String(base)));
|
|
41
40
|
return url.pathname + url.search;
|
|
42
41
|
}
|
|
@@ -48,18 +47,18 @@ function toNormalized(relative, base) {
|
|
|
48
47
|
return i === -1 ? relative : relative.slice(0, i);
|
|
49
48
|
}
|
|
50
49
|
/**
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
50
|
+
* Redirect request
|
|
51
|
+
* @param location location to redirect to
|
|
52
|
+
* @param status redirection 3xx code
|
|
53
|
+
* @return Response rendering function
|
|
54
|
+
*/
|
|
56
55
|
export default (location, status) =>
|
|
57
56
|
// no body
|
|
58
57
|
app => app.respond(null, {
|
|
59
58
|
headers: {
|
|
60
59
|
"Content-Length": String(0),
|
|
61
60
|
Location: location,
|
|
62
|
-
"Cache-Control":
|
|
61
|
+
"Cache-Control": "no-cache",
|
|
63
62
|
},
|
|
64
63
|
status: status ?? Status.FOUND,
|
|
65
64
|
});
|
|
@@ -1,31 +1,30 @@
|
|
|
1
|
-
import
|
|
1
|
+
import E from "#errors";
|
|
2
2
|
import binary from "#response/binary";
|
|
3
3
|
import json from "#response/json";
|
|
4
4
|
import redirect from "#response/redirect";
|
|
5
5
|
import text from "#response/text";
|
|
6
6
|
import Streamable from "@rcompat/fs/Streamable";
|
|
7
|
-
import Status from "@rcompat/http
|
|
8
|
-
import
|
|
9
|
-
function invalid_body(body) {
|
|
10
|
-
throw fail("invalid body {0} returned from route", body);
|
|
11
|
-
}
|
|
12
|
-
const is_instance = (of) => ((value) => value instanceof of);
|
|
13
|
-
const is_response = is_instance(Response);
|
|
14
|
-
const is_url = is_instance(URL);
|
|
15
|
-
const is_null = (value) => value === null;
|
|
7
|
+
import { Status } from "@rcompat/http";
|
|
8
|
+
import is from "@rcompat/is";
|
|
16
9
|
function match(m) {
|
|
17
10
|
return m;
|
|
18
11
|
}
|
|
19
12
|
// [if, then]
|
|
20
13
|
const guesses = match([
|
|
21
|
-
[
|
|
22
|
-
[
|
|
14
|
+
[is.null, () => () => new Response(null, { status: Status.NO_CONTENT })],
|
|
15
|
+
[is.url, value => redirect(value.toString())],
|
|
23
16
|
[Streamable.is, value => binary(value)],
|
|
24
|
-
[
|
|
25
|
-
[
|
|
26
|
-
[
|
|
17
|
+
[is.response, value => _ => value],
|
|
18
|
+
[is.dict, json],
|
|
19
|
+
[is.array, json],
|
|
20
|
+
[is.string, text],
|
|
27
21
|
]);
|
|
28
|
-
|
|
29
|
-
|
|
22
|
+
function guess(value) {
|
|
23
|
+
const found = guesses.find(([_if]) => _if(value))?.[1](value);
|
|
24
|
+
if (found === undefined)
|
|
25
|
+
throw E.response_invalid_body(`${value}`);
|
|
26
|
+
return found;
|
|
27
|
+
}
|
|
28
|
+
;
|
|
30
29
|
export default (result) => typeof result === "function" ? result : guess(result);
|
|
31
30
|
//# sourceMappingURL=respond.js.map
|
|
@@ -10,6 +10,6 @@ type Body = {
|
|
|
10
10
|
* @param options response options
|
|
11
11
|
* @return Response rendering function
|
|
12
12
|
*/
|
|
13
|
-
declare const _default: (body: Body, init?: ResponseInit) => (app: import("../
|
|
13
|
+
declare const _default: (body: Body, init?: ResponseInit) => (app: import("../index.js").ServeApp) => import("@rcompat/type").MaybePromise<Response>;
|
|
14
14
|
export default _default;
|
|
15
15
|
//# sourceMappingURL=sse.d.ts.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import response from "#response";
|
|
2
|
-
import
|
|
2
|
+
import { MIME } from "@rcompat/http";
|
|
3
3
|
const encode = (input) => new TextEncoder().encode(input);
|
|
4
4
|
const handle = (body) => new ReadableStream({
|
|
5
5
|
cancel() {
|
|
@@ -21,5 +21,5 @@ const handle = (body) => new ReadableStream({
|
|
|
21
21
|
* @param options response options
|
|
22
22
|
* @return Response rendering function
|
|
23
23
|
*/
|
|
24
|
-
export default response(
|
|
24
|
+
export default response(MIME.TEXT_EVENT_STREAM, handle);
|
|
25
25
|
//# sourceMappingURL=sse.js.map
|
|
@@ -4,6 +4,6 @@
|
|
|
4
4
|
* @param options response options
|
|
5
5
|
* @return Response rendering function
|
|
6
6
|
*/
|
|
7
|
-
declare const _default: (body: string, init?: ResponseInit) => (app: import("../
|
|
7
|
+
declare const _default: (body: string, init?: ResponseInit) => (app: import("../index.js").ServeApp) => import("@rcompat/type").MaybePromise<Response>;
|
|
8
8
|
export default _default;
|
|
9
9
|
//# sourceMappingURL=text.d.ts.map
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import response from "#response";
|
|
2
|
-
import
|
|
3
|
-
import
|
|
2
|
+
import fn from "@rcompat/fn";
|
|
3
|
+
import { MIME } from "@rcompat/http";
|
|
4
4
|
/**
|
|
5
5
|
* Return a plaintext response
|
|
6
6
|
* @param body plaintext body
|
|
7
7
|
* @param options response options
|
|
8
8
|
* @return Response rendering function
|
|
9
9
|
*/
|
|
10
|
-
export default response(
|
|
10
|
+
export default response(MIME.TEXT_PLAIN, fn.identity);
|
|
11
11
|
//# sourceMappingURL=text.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type ViewOptions from "#
|
|
2
|
-
import type
|
|
3
|
-
import type
|
|
1
|
+
import type ViewOptions from "#client/ViewOptions";
|
|
2
|
+
import type ResponseFunction from "#response/ResponseFunction";
|
|
3
|
+
import type { Dict } from "@rcompat/type";
|
|
4
4
|
declare function view<Props>(component: (props: Props) => any, props: Props, options?: ViewOptions): ResponseFunction;
|
|
5
5
|
declare function view(component: () => any, props?: Dict, options?: ViewOptions): ResponseFunction;
|
|
6
6
|
declare function view(name: string, props?: Dict, options?: ViewOptions): ResponseFunction;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
1
|
+
import E from "#errors";
|
|
2
|
+
import fs from "@rcompat/fs";
|
|
3
3
|
const extensions = ["extension", "fullExtension"];
|
|
4
4
|
const backmap = {
|
|
5
5
|
"component.ts": "angular",
|
|
@@ -17,14 +17,6 @@ const backmap = {
|
|
|
17
17
|
tsx: "react",
|
|
18
18
|
jsx: "react",
|
|
19
19
|
};
|
|
20
|
-
function no_frontend(view) {
|
|
21
|
-
const extension = new FileRef(view).fullExtension.slice(1);
|
|
22
|
-
const hasPkg = extension in backmap;
|
|
23
|
-
const error = "No frontend for {0}";
|
|
24
|
-
const fix = hasPkg ? ", did you configure {1}?" : "";
|
|
25
|
-
const pkgname = hasPkg ? `@primate/${backmap[extension]}` : "";
|
|
26
|
-
return fail(`${error}${fix}`, view, pkgname);
|
|
27
|
-
}
|
|
28
20
|
/**
|
|
29
21
|
* Render a view component using a frontend for the given filename extension
|
|
30
22
|
* @param view path to view
|
|
@@ -33,14 +25,15 @@ function no_frontend(view) {
|
|
|
33
25
|
* @return Response rendering function
|
|
34
26
|
*/
|
|
35
27
|
function view(name, props, options) {
|
|
36
|
-
const
|
|
28
|
+
const view_name = name;
|
|
37
29
|
return async (app, transfer, request) => {
|
|
38
30
|
const found_view = extensions
|
|
39
|
-
.map(extension => app.frontends[
|
|
40
|
-
.find(extension => extension !== undefined)?.(
|
|
31
|
+
.map(extension => app.frontends[fs.ref(view_name)[extension]])
|
|
32
|
+
.find(extension => extension !== undefined)?.(view_name, props, options)(app, transfer, request);
|
|
41
33
|
if (found_view !== undefined)
|
|
42
34
|
return found_view;
|
|
43
|
-
|
|
35
|
+
const extension = fs.ref(view_name).fullExtension.slice(1);
|
|
36
|
+
throw E.frontend_missing(view_name, backmap[extension]);
|
|
44
37
|
};
|
|
45
38
|
}
|
|
46
39
|
export default view;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type ResponseFunction from "#response/ResponseFunction";
|
|
2
|
-
import type Actions from "@rcompat/http
|
|
2
|
+
import type { Actions } from "@rcompat/http";
|
|
3
3
|
declare const _default: (actions: Actions) => ResponseFunction;
|
|
4
4
|
export default _default;
|
|
5
5
|
//# sourceMappingURL=ws.d.ts.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type ServeApp from "#serve/App";
|
|
2
|
-
import type MaybePromise from "@rcompat/type
|
|
2
|
+
import type { MaybePromise } from "@rcompat/type";
|
|
3
3
|
declare const _default: <T>(mime: string, mapper: (input: T) => BodyInit) => (body: T, init?: ResponseInit) => (app: ServeApp) => MaybePromise<Response>;
|
|
4
4
|
export default _default;
|
|
5
5
|
//# sourceMappingURL=response.d.ts.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type RequestFacade from "#request/RequestFacade";
|
|
2
2
|
import type ResponseLike from "#response/ResponseLike";
|
|
3
|
-
import type MaybePromise from "@rcompat/type
|
|
3
|
+
import type { MaybePromise } from "@rcompat/type";
|
|
4
4
|
type RouteHandler = (request: RequestFacade) => MaybePromise<ResponseLike>;
|
|
5
5
|
export { RouteHandler as default };
|
|
6
6
|
//# sourceMappingURL=Handler.d.ts.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type NextRoute from "#module/NextRoute";
|
|
2
|
+
import type RequestFacade from "#request/RequestFacade";
|
|
3
|
+
import type ResponseLike from "#response/ResponseLike";
|
|
4
|
+
import type { MaybePromise } from "@rcompat/type";
|
|
5
|
+
export default function hook(fn: (request: RequestFacade, next: NextRoute) => MaybePromise<ResponseLike>): void;
|
|
6
|
+
//# sourceMappingURL=hook.d.ts.map
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type RequestHook from "#module/RequestHook";
|
|
1
2
|
import type Verb from "#request/Verb";
|
|
2
3
|
import type RouteHandler from "#route/Handler";
|
|
3
4
|
import type RouteOptions from "#route/Options";
|
|
@@ -8,12 +9,15 @@ declare class Router {
|
|
|
8
9
|
pop(): void;
|
|
9
10
|
get active(): string | undefined;
|
|
10
11
|
add(verb: Verb, handler: RouteHandler, options?: RouteOptions): void;
|
|
12
|
+
addHook(fn: RequestHook): void;
|
|
13
|
+
getHooks(path: string): RequestHook[];
|
|
14
|
+
verifyHook(path: string): void;
|
|
11
15
|
get(path: string): {
|
|
12
|
-
|
|
16
|
+
options?: {
|
|
13
17
|
handler: RouteHandler;
|
|
14
18
|
options: RouteOptions;
|
|
15
19
|
} | undefined;
|
|
16
|
-
|
|
20
|
+
head?: {
|
|
17
21
|
handler: RouteHandler;
|
|
18
22
|
options: RouteOptions;
|
|
19
23
|
} | undefined;
|
|
@@ -1,29 +1,43 @@
|
|
|
1
|
+
import E from "#errors";
|
|
1
2
|
import assert from "@rcompat/assert";
|
|
2
|
-
import is from "@rcompat/assert/is";
|
|
3
|
-
import maybe from "@rcompat/assert/maybe";
|
|
4
3
|
const stack = [];
|
|
5
4
|
export const routes = stack;
|
|
5
|
+
function is_hook_file(p) {
|
|
6
|
+
const basename = p.split("/").at(-1) ?? p;
|
|
7
|
+
return basename === "+hook" || basename.startsWith("+hook.");
|
|
8
|
+
}
|
|
6
9
|
class Router {
|
|
7
10
|
#routes = {};
|
|
8
|
-
|
|
9
|
-
|
|
11
|
+
#hooks = {};
|
|
12
|
+
push(route) { stack.push(route); }
|
|
13
|
+
pop() { stack.pop(); }
|
|
14
|
+
get active() { return stack.at(-1); }
|
|
15
|
+
add(verb, handler, options) {
|
|
16
|
+
assert.string(verb);
|
|
17
|
+
assert.function(handler);
|
|
18
|
+
assert.maybe.dict(options);
|
|
19
|
+
assert.maybe.boolean(options?.parseBody);
|
|
20
|
+
const active = assert.defined(this.active);
|
|
21
|
+
if (is_hook_file(active))
|
|
22
|
+
throw E.hook_route_functions_not_allowed(active);
|
|
23
|
+
const _routes = this.#routes;
|
|
24
|
+
if (!(active in _routes))
|
|
25
|
+
_routes[active] = {};
|
|
26
|
+
_routes[active][verb] = { handler, options: options ?? {} };
|
|
10
27
|
}
|
|
11
|
-
|
|
12
|
-
|
|
28
|
+
addHook(fn) {
|
|
29
|
+
assert.function(fn);
|
|
30
|
+
const active = assert.defined(this.active);
|
|
31
|
+
if (!is_hook_file(active))
|
|
32
|
+
throw E.hook_not_allowed(active);
|
|
33
|
+
(this.#hooks[active] ??= []).push(fn);
|
|
13
34
|
}
|
|
14
|
-
|
|
15
|
-
return
|
|
35
|
+
getHooks(path) {
|
|
36
|
+
return [...(this.#hooks[path] ?? [])];
|
|
16
37
|
}
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
maybe(options).object();
|
|
21
|
-
const active = this.active;
|
|
22
|
-
const routes = this.#routes;
|
|
23
|
-
if (!(active in routes)) {
|
|
24
|
-
routes[active] = {};
|
|
25
|
-
}
|
|
26
|
-
routes[active][verb] = { handler, options };
|
|
38
|
+
verifyHook(path) {
|
|
39
|
+
if ((this.#hooks[path] ?? []).length === 0)
|
|
40
|
+
throw E.hook_unused(path);
|
|
27
41
|
}
|
|
28
42
|
get(path) {
|
|
29
43
|
return { ...this.#routes[path] };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import
|
|
1
|
+
import string from "@rcompat/string";
|
|
2
2
|
export default function wrap(code, path, build_id) {
|
|
3
3
|
const router = `ROUTER_${build_id}`;
|
|
4
|
-
const prelude = dedent `
|
|
4
|
+
const prelude = string.dedent `
|
|
5
5
|
import ${router} from "primate/router";
|
|
6
6
|
${router}.push("${path}");
|
|
7
7
|
`;
|
|
@@ -1,17 +1,15 @@
|
|
|
1
1
|
import App from "#App";
|
|
2
2
|
import type Asset from "#asset/Asset";
|
|
3
|
-
import type ServerView from "#
|
|
4
|
-
import type ViewOptions from "#
|
|
5
|
-
import type ViewResponse from "#
|
|
3
|
+
import type ServerView from "#client/ServerView";
|
|
4
|
+
import type ViewOptions from "#client/ViewOptions";
|
|
5
|
+
import type ViewResponse from "#client/ViewResponse";
|
|
6
6
|
import type I18NConfig from "#i18n/Config";
|
|
7
|
-
import RequestBag from "#request/RequestBag";
|
|
8
|
-
import RequestBody from "#request/RequestBody";
|
|
9
7
|
import type RequestFacade from "#request/RequestFacade";
|
|
10
8
|
import type RouteHandler from "#route/Handler";
|
|
11
9
|
import type ServeInit from "#serve/Init";
|
|
12
10
|
import FileRouter from "@rcompat/fs/FileRouter";
|
|
13
|
-
import type Actions from "@rcompat/http
|
|
14
|
-
import type Dict from "@rcompat/type
|
|
11
|
+
import type { Actions } from "@rcompat/http";
|
|
12
|
+
import type { Dict } from "@rcompat/type";
|
|
15
13
|
interface FullViewOptions extends ViewOptions {
|
|
16
14
|
body: string;
|
|
17
15
|
}
|
|
@@ -26,11 +24,10 @@ export default class ServeApp extends App {
|
|
|
26
24
|
constructor(rootfile: string, init: ServeInit);
|
|
27
25
|
get secure(): boolean;
|
|
28
26
|
get assets(): Asset[];
|
|
29
|
-
get modules(): import("../Module.js").default[];
|
|
30
27
|
get url(): string;
|
|
31
28
|
get router(): FileRouter;
|
|
32
29
|
get frontends(): {
|
|
33
|
-
[
|
|
30
|
+
[k: string]: ViewResponse;
|
|
34
31
|
};
|
|
35
32
|
get stores(): Dict;
|
|
36
33
|
get i18n(): I18NConfig | undefined;
|
|
@@ -45,29 +42,18 @@ export default class ServeApp extends App {
|
|
|
45
42
|
media(content_type: string, response?: ResponseInit): ResponseInit;
|
|
46
43
|
publish({ code, inline, src, type }: PublishOptions): Promise<void>;
|
|
47
44
|
create_csp(): void;
|
|
48
|
-
|
|
45
|
+
frontend(extension: string, view_response: ViewResponse): void;
|
|
49
46
|
page(name?: string): string;
|
|
50
|
-
|
|
47
|
+
serve_assets(pathname: string): Promise<Response | undefined>;
|
|
51
48
|
start(): Promise<void>;
|
|
52
49
|
stop(): void;
|
|
53
50
|
upgrade(request: Request, actions: Actions): null;
|
|
54
51
|
route(request: RequestFacade): Promise<{
|
|
55
52
|
errors: RouteHandler[];
|
|
56
|
-
|
|
57
|
-
handler: RouteHandler;
|
|
53
|
+
hooks: import("../module/RequestHook.js").default[];
|
|
58
54
|
layouts: RouteHandler[];
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
path: RequestBag;
|
|
62
|
-
context: Dict;
|
|
63
|
-
cookies: RequestBag;
|
|
64
|
-
forward(to: string, headers?: Dict<string>): Promise<Response>;
|
|
65
|
-
headers: RequestBag;
|
|
66
|
-
original: Request;
|
|
67
|
-
query: RequestBag;
|
|
68
|
-
target: string;
|
|
69
|
-
url: URL;
|
|
70
|
-
};
|
|
55
|
+
handler: RouteHandler;
|
|
56
|
+
request: any;
|
|
71
57
|
} | undefined>;
|
|
72
58
|
}
|
|
73
59
|
export {};
|