@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
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import DEFAULT_PERSIST_MODE from "#i18n/constant/DEFAULT_PERSIST_MODE";
|
|
2
|
+
import format from "#i18n/format";
|
|
3
|
+
import Formatter from "#i18n/Formatter";
|
|
4
|
+
import resolve from "#i18n/resolve";
|
|
5
|
+
import server_storage from "#i18n/storage";
|
|
6
|
+
import sInternal from "#i18n/symbol/internal";
|
|
7
|
+
import validate from "#i18n/validate";
|
|
8
|
+
import sConfig from "#symbol/config";
|
|
9
|
+
import is from "@rcompat/is";
|
|
10
|
+
export default function i18n(config) {
|
|
11
|
+
const catalogs = config.locales;
|
|
12
|
+
for (const [locale, catalog] of Object.entries(catalogs)) {
|
|
13
|
+
validate(catalog, locale);
|
|
14
|
+
}
|
|
15
|
+
const default_catalog = catalogs[config.defaultLocale];
|
|
16
|
+
const currency = config.currency ?? "USD";
|
|
17
|
+
const persist = config.persist ?? DEFAULT_PERSIST_MODE;
|
|
18
|
+
const get_locale = () => {
|
|
19
|
+
const storage = server_storage();
|
|
20
|
+
const store = storage.getStore();
|
|
21
|
+
return store?.locale ?? config.defaultLocale;
|
|
22
|
+
};
|
|
23
|
+
function t(...args) {
|
|
24
|
+
const active_locale = get_locale();
|
|
25
|
+
const formatter = new Formatter(active_locale);
|
|
26
|
+
const [key, params] = args;
|
|
27
|
+
const translated = resolve(catalogs[active_locale], key) ??
|
|
28
|
+
resolve(default_catalog, key) ??
|
|
29
|
+
String(key);
|
|
30
|
+
if (is.string(translated)) {
|
|
31
|
+
return format(translated, params ?? {}, currency, formatter);
|
|
32
|
+
}
|
|
33
|
+
return translated;
|
|
34
|
+
}
|
|
35
|
+
const api = t;
|
|
36
|
+
api.locale = {
|
|
37
|
+
get: get_locale,
|
|
38
|
+
set: (_locale) => {
|
|
39
|
+
throw new Error("[i18n] locale.set is not supported on server.");
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
Object.defineProperty(api, sInternal, {
|
|
43
|
+
value: {
|
|
44
|
+
restore: () => { },
|
|
45
|
+
init: () => { },
|
|
46
|
+
},
|
|
47
|
+
});
|
|
48
|
+
Object.defineProperty(api, sConfig, {
|
|
49
|
+
get: () => ({ ...config, persist }),
|
|
50
|
+
});
|
|
51
|
+
api.subscribe = (run) => {
|
|
52
|
+
run(api);
|
|
53
|
+
return () => { };
|
|
54
|
+
};
|
|
55
|
+
return api;
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type TypeOf from "#i18n/TypeOf";
|
|
2
|
+
import type { Dict } from "@rcompat/type";
|
|
3
|
+
type EntryOf<Body extends string> = Body extends `${infer Name}:${infer Spec}` ? {
|
|
4
|
+
__name: Name & string;
|
|
5
|
+
__type: TypeOf<Spec>;
|
|
6
|
+
} : {
|
|
7
|
+
__name: Body & string;
|
|
8
|
+
__type: string;
|
|
9
|
+
};
|
|
10
|
+
export type EntriesOf<S extends string> = string extends S ? never : S extends `${infer _}{${infer Body}}${infer Rest}` ? EntryOf<Body> | EntriesOf<Rest> : never;
|
|
11
|
+
export type ParamsFromEntries<E> = [
|
|
12
|
+
E
|
|
13
|
+
] extends [never] ? Dict : {
|
|
14
|
+
[K in E as K extends {
|
|
15
|
+
__name: infer N extends string;
|
|
16
|
+
} ? N : never]: K extends {
|
|
17
|
+
__type: infer T;
|
|
18
|
+
} ? T : never;
|
|
19
|
+
};
|
|
20
|
+
type Prev = [never, 0, 1, 2, 3, 4, 5, 6, 7, 8];
|
|
21
|
+
type Primitive = string | number | boolean | null | undefined;
|
|
22
|
+
type NoDot<K extends string> = K extends `${string}.${string}` ? never : K;
|
|
23
|
+
type ObjKeys<T> = NoDot<Extract<keyof T, string>>;
|
|
24
|
+
export type DotPaths<T, D extends number = 6> = [
|
|
25
|
+
D
|
|
26
|
+
] extends [never] ? never : T extends Primitive ? never : T extends readonly (infer E)[] ? `${number}` | `${number}.${DotPaths<E, Prev[D]> & string}` : T extends object ? string extends keyof T ? string : {
|
|
27
|
+
[K in ObjKeys<T>]: K | (DotPaths<T[K], Prev[D]> extends infer R ? R extends string ? `${K}.${R}` : never : never);
|
|
28
|
+
}[ObjKeys<T>] : never;
|
|
29
|
+
export type PathValue<T, P extends string, D extends number = 6> = string extends P ? unknown : [
|
|
30
|
+
D
|
|
31
|
+
] extends [never] ? unknown : P extends `${infer Head}.${infer Tail}` ? Head extends `${number}` ? T extends readonly (infer E)[] ? PathValue<E, Tail, Prev[D]> : unknown : T extends object ? Head extends keyof T ? PathValue<T[Head], Tail, Prev[D]> : unknown : unknown : P extends `${number}` ? T extends readonly (infer E)[] ? E : unknown : T extends object ? (P extends keyof T ? T[P] : unknown) : unknown;
|
|
32
|
+
export {};
|
|
33
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1,5 +1,11 @@
|
|
|
1
|
-
import type
|
|
2
|
-
type
|
|
3
|
-
|
|
1
|
+
import type Catalog from "#i18n/Catalog";
|
|
2
|
+
type Prev = [never, 0, 1, 2, 3, 4, 5, 6];
|
|
3
|
+
type DotKeyMessage<K extends string> = `i18n: dots not allowed in catalog key '${K}', use nested objects instead`;
|
|
4
|
+
type EnforceNoDots<T, D extends number = 6> = [
|
|
5
|
+
D
|
|
6
|
+
] extends [never] ? T : T extends string ? T : T extends readonly (infer E)[] ? readonly EnforceNoDots<E, Prev[D]>[] : T extends object ? {
|
|
7
|
+
[K in keyof T]: K extends string ? K extends `${string}.${string}` ? DotKeyMessage<K> : EnforceNoDots<T[K], Prev[D]> : EnforceNoDots<T[K], Prev[D]>;
|
|
8
|
+
} : T;
|
|
9
|
+
export default function locale<const M extends Catalog>(messages: EnforceNoDots<M>): M;
|
|
4
10
|
export {};
|
|
5
11
|
//# sourceMappingURL=locale.d.ts.map
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import cookie from "#cookie";
|
|
2
|
+
import COOKIE_NAME from "#i18n/constant/COOKIE_NAME";
|
|
3
|
+
import PERSIST_HEADER from "#i18n/constant/PERSIST_HEADER";
|
|
4
|
+
import E from "#i18n/errors";
|
|
5
|
+
import storage from "#i18n/storage";
|
|
6
|
+
import create from "#module/create";
|
|
7
|
+
import { Status } from "@rcompat/http";
|
|
8
|
+
function toLowerCase(string) {
|
|
9
|
+
return string.toLowerCase();
|
|
10
|
+
}
|
|
11
|
+
function pick(client, server) {
|
|
12
|
+
const lower = server.map(toLowerCase);
|
|
13
|
+
for (const raw of client.map(toLowerCase)) {
|
|
14
|
+
const locale = raw.trim();
|
|
15
|
+
if (!locale)
|
|
16
|
+
continue;
|
|
17
|
+
const exact = lower.indexOf(locale);
|
|
18
|
+
if (exact !== -1)
|
|
19
|
+
return server[exact];
|
|
20
|
+
const base = locale.split("-")[0];
|
|
21
|
+
const index = lower.findIndex(s => s === base || s.startsWith(`${base}-`));
|
|
22
|
+
if (index !== -1)
|
|
23
|
+
return server[index];
|
|
24
|
+
}
|
|
25
|
+
return undefined;
|
|
26
|
+
}
|
|
27
|
+
export default function i18n_module(config) {
|
|
28
|
+
const default_locale = config.defaultLocale;
|
|
29
|
+
const locales = Object.keys(config.locales);
|
|
30
|
+
const persist = config.persist ?? "cookie";
|
|
31
|
+
const currency = config.currency ?? "USD";
|
|
32
|
+
let secure = false;
|
|
33
|
+
if (locales.length < 1)
|
|
34
|
+
throw E.at_least_one_locale();
|
|
35
|
+
if (default_locale === undefined)
|
|
36
|
+
throw E.missing_default_locale(locales);
|
|
37
|
+
if (!locales.includes(default_locale)) {
|
|
38
|
+
throw E.unused_default_locale(default_locale, locales);
|
|
39
|
+
}
|
|
40
|
+
return create({
|
|
41
|
+
name: "builtin/i18n",
|
|
42
|
+
setup({ onServe, onHandle, onRoute }) {
|
|
43
|
+
onServe(app => {
|
|
44
|
+
secure = app.secure;
|
|
45
|
+
});
|
|
46
|
+
onHandle(async (request, next) => {
|
|
47
|
+
const requested = request.headers.try(PERSIST_HEADER);
|
|
48
|
+
if (requested === undefined) {
|
|
49
|
+
const locale = request.cookies.try(COOKIE_NAME);
|
|
50
|
+
if (locale === undefined)
|
|
51
|
+
return next(request);
|
|
52
|
+
// if has cookie, run route with i18n
|
|
53
|
+
return await new Promise((resolve, reject) => {
|
|
54
|
+
storage().run({ locale }, async () => {
|
|
55
|
+
try {
|
|
56
|
+
resolve(await next(request));
|
|
57
|
+
}
|
|
58
|
+
catch (e) {
|
|
59
|
+
reject(e);
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
// only cookie-persistance is server-supported
|
|
65
|
+
if (persist !== "cookie")
|
|
66
|
+
return new Response(null, {
|
|
67
|
+
headers: {
|
|
68
|
+
"Content-Length": String(0),
|
|
69
|
+
},
|
|
70
|
+
status: Status.NO_CONTENT,
|
|
71
|
+
});
|
|
72
|
+
// only accept existing locales
|
|
73
|
+
if (!locales.includes(requested))
|
|
74
|
+
return new Response(null, {
|
|
75
|
+
headers: {
|
|
76
|
+
"Content-Length": String(0),
|
|
77
|
+
},
|
|
78
|
+
status: Status.NO_CONTENT,
|
|
79
|
+
});
|
|
80
|
+
const header = cookie(COOKIE_NAME, requested, {
|
|
81
|
+
secure,
|
|
82
|
+
path: "/",
|
|
83
|
+
sameSite: "Strict",
|
|
84
|
+
});
|
|
85
|
+
return new Response(null, {
|
|
86
|
+
headers: {
|
|
87
|
+
"Set-Cookie": header,
|
|
88
|
+
"Content-Length": String(0),
|
|
89
|
+
},
|
|
90
|
+
status: Status.NO_CONTENT,
|
|
91
|
+
});
|
|
92
|
+
});
|
|
93
|
+
onRoute((request, next) => {
|
|
94
|
+
const accept_language = request.headers.try("Accept-Language") ?? "";
|
|
95
|
+
const client_locales = accept_language
|
|
96
|
+
.split(",")
|
|
97
|
+
.map(s => s.split(";")[0].trim())
|
|
98
|
+
.filter(Boolean);
|
|
99
|
+
const cookie_locale = persist === "cookie"
|
|
100
|
+
? request.cookies.try(COOKIE_NAME)
|
|
101
|
+
: undefined;
|
|
102
|
+
const locale = cookie_locale ??
|
|
103
|
+
pick(client_locales, locales) ??
|
|
104
|
+
default_locale;
|
|
105
|
+
return next(request.set("i18n", {
|
|
106
|
+
currency,
|
|
107
|
+
mode: persist,
|
|
108
|
+
locale,
|
|
109
|
+
locales,
|
|
110
|
+
}));
|
|
111
|
+
});
|
|
112
|
+
},
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=module.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolve a translation key from a catalog:
|
|
3
|
+
* - try exact flat-key match (including keys containing dots)
|
|
4
|
+
* - otherwise traverse dot-path segments
|
|
5
|
+
*/
|
|
6
|
+
export default function resolve(root: unknown, key: string): unknown;
|
|
7
|
+
//# sourceMappingURL=resolve.d.ts.map
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolve a translation key from a catalog:
|
|
3
|
+
* - try exact flat-key match (including keys containing dots)
|
|
4
|
+
* - otherwise traverse dot-path segments
|
|
5
|
+
*/
|
|
6
|
+
export default function resolve(root, key) {
|
|
7
|
+
if (root == null)
|
|
8
|
+
return undefined;
|
|
9
|
+
const parts = key.split(".");
|
|
10
|
+
let current = root;
|
|
11
|
+
for (const part of parts) {
|
|
12
|
+
if (part === "")
|
|
13
|
+
continue;
|
|
14
|
+
if (current == null)
|
|
15
|
+
return undefined;
|
|
16
|
+
if (Array.isArray(current)) {
|
|
17
|
+
if (!/^(0|[1-9]\d*)$/.test(part))
|
|
18
|
+
return undefined;
|
|
19
|
+
current = current[Number(part)];
|
|
20
|
+
continue;
|
|
21
|
+
}
|
|
22
|
+
if (typeof current === "object") {
|
|
23
|
+
current = current[part];
|
|
24
|
+
continue;
|
|
25
|
+
}
|
|
26
|
+
return undefined;
|
|
27
|
+
}
|
|
28
|
+
return current;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=resolve.js.map
|
|
@@ -1,8 +1,13 @@
|
|
|
1
|
-
declare const _default: import("pema").ObjectType<{
|
|
2
|
-
defaultLocale: import("pema
|
|
3
|
-
locales: import("pema
|
|
4
|
-
currency: import("pema").DefaultType<import("pema
|
|
5
|
-
persist: import("pema").DefaultType<import("pema
|
|
1
|
+
declare const _default: import("pema").ObjectType<import("pema").NormalizeSchemaObject<{
|
|
2
|
+
readonly defaultLocale: import("pema").StringType;
|
|
3
|
+
readonly locales: import("pema").RecordType<import("pema").StringType, import("pema").UnknownType>;
|
|
4
|
+
readonly currency: import("pema").DefaultType<import("pema").StringType, "USD">;
|
|
5
|
+
readonly persist: import("pema").DefaultType<import("pema").UnionType<[import("pema").LiteralType<"cookie">, import("pema").LiteralType<"localStorage">, import("pema").LiteralType<"sessionStorage">, import("pema").LiteralType<false>]>, false | "cookie" | "localStorage" | "sessionStorage">;
|
|
6
|
+
}>, {
|
|
7
|
+
defaultLocale: string;
|
|
8
|
+
locales: Record<string, unknown>;
|
|
9
|
+
currency: string;
|
|
10
|
+
persist: false | "cookie" | "localStorage" | "sessionStorage";
|
|
6
11
|
}>;
|
|
7
12
|
export default _default;
|
|
8
13
|
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -1,13 +1,9 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
defaultLocale: string,
|
|
8
|
-
locales: record(string, unknown),
|
|
9
|
-
currency: string.default("USD"),
|
|
10
|
-
persist: union("cookie", "localStorage", "sessionStorage", false)
|
|
1
|
+
import p from "pema";
|
|
2
|
+
export default p({
|
|
3
|
+
defaultLocale: p.string,
|
|
4
|
+
locales: p.dict(p.unknown),
|
|
5
|
+
currency: p.string.default("USD"),
|
|
6
|
+
persist: p.union("cookie", "localStorage", "sessionStorage", false)
|
|
11
7
|
.default("cookie"),
|
|
12
8
|
});
|
|
13
9
|
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import E from "#i18n/errors";
|
|
2
|
+
import is from "@rcompat/is";
|
|
3
|
+
export default function validate(key, locale, path = "") {
|
|
4
|
+
if (Array.isArray(key)) {
|
|
5
|
+
for (let i = 0; i < key.length; i++) {
|
|
6
|
+
validate(key[i], locale, `${path}.${i}`);
|
|
7
|
+
}
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
if (!is.dict(key))
|
|
11
|
+
return;
|
|
12
|
+
for (const [k, v] of Object.entries(key)) {
|
|
13
|
+
const at = path ? `${path}.${k}` : k;
|
|
14
|
+
if (k.includes("."))
|
|
15
|
+
throw E.no_dots_catalog_keys(k, at, locale);
|
|
16
|
+
validate(v, locale, at);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=validate.js.map
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export type { default as App } from "#App";
|
|
2
|
+
export type { default as BuildApp } from "#build/App";
|
|
3
|
+
export type { default as Mode } from "#Mode";
|
|
4
|
+
export type { default as Module } from "#Module";
|
|
5
|
+
export type { BuildHook, HandleHook, InitHook, RouteHook, ServeHook, default as Setup } from "#module/Setup";
|
|
6
|
+
export type { default as RequestBag } from "#request/RequestBag";
|
|
7
|
+
export type { default as RequestBody } from "#request/RequestBody";
|
|
8
|
+
export type { default as RequestFacade } from "#request/RequestFacade";
|
|
9
|
+
export type { default as RequestPublic } from "#request/RequestPublic";
|
|
10
|
+
export type { default as RequestView } from "#request/RequestView";
|
|
11
|
+
export type { default as RequestVerb } from "#request/Verb";
|
|
12
|
+
export type { default as ServeApp } from "#serve/App";
|
|
13
|
+
export type { default as Target } from "#target/Target";
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
package/lib/private/log.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ type N = Levels[Level];
|
|
|
9
9
|
declare class Log {
|
|
10
10
|
#private;
|
|
11
11
|
constructor(level: N);
|
|
12
|
+
print(message: string, ...params: unknown[]): void;
|
|
12
13
|
system(message: string, ...params: unknown[]): void;
|
|
13
14
|
info(message: string, ...params: unknown[]): void;
|
|
14
15
|
warn(message: string, ...params: unknown[]): void;
|
package/lib/private/log.js
CHANGED
|
@@ -1,41 +1,42 @@
|
|
|
1
|
-
import
|
|
2
|
-
import args from "@rcompat/args";
|
|
3
|
-
import blue from "@rcompat/cli/color/blue";
|
|
4
|
-
import green from "@rcompat/cli/color/green";
|
|
5
|
-
import red from "@rcompat/cli/color/red";
|
|
6
|
-
import yellow from "@rcompat/cli/color/yellow";
|
|
1
|
+
import color from "@rcompat/cli/color";
|
|
7
2
|
import mark from "@rcompat/cli/mark";
|
|
8
3
|
import print from "@rcompat/cli/print";
|
|
9
|
-
import
|
|
4
|
+
import { CodeError } from "@rcompat/error";
|
|
5
|
+
import runtime from "@rcompat/runtime";
|
|
6
|
+
import p from "pema";
|
|
10
7
|
const levels = {
|
|
11
8
|
error: 0,
|
|
12
9
|
info: 2,
|
|
13
10
|
warn: 1,
|
|
14
11
|
};
|
|
15
12
|
const flag = "--log=";
|
|
16
|
-
const n = args.find(arg => arg.startsWith(flag))?.slice(flag.length);
|
|
17
|
-
const vn = union(...Object.keys(levels)).optional().parse(n);
|
|
13
|
+
const n = runtime.args.find(arg => arg.startsWith(flag))?.slice(flag.length);
|
|
14
|
+
const vn = p.union(...Object.keys(levels)).optional().parse(n);
|
|
18
15
|
class Log {
|
|
19
16
|
#level;
|
|
20
17
|
constructor(level) {
|
|
21
18
|
this.#level = level;
|
|
22
19
|
}
|
|
20
|
+
print(message, ...params) {
|
|
21
|
+
print(mark(message, ...params));
|
|
22
|
+
}
|
|
23
23
|
system(message, ...params) {
|
|
24
|
-
print(
|
|
24
|
+
print(` ${mark(message, ...params)}\n`);
|
|
25
25
|
}
|
|
26
26
|
info(message, ...params) {
|
|
27
27
|
if (this.#level === levels.info) {
|
|
28
|
-
print(green("
|
|
28
|
+
print(color.green("[INFO]"), mark(message, ...params), "\n");
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
31
|
warn(message, ...params) {
|
|
32
32
|
if (this.#level >= levels.warn) {
|
|
33
|
-
print(yellow("
|
|
33
|
+
print(color.yellow("[WARN]"), mark(message, ...params), "\n");
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
36
|
error(error) {
|
|
37
|
-
if (error
|
|
38
|
-
|
|
37
|
+
if (CodeError.is(error)) {
|
|
38
|
+
const message = error.strings.reduce((acc, str, i) => acc + (i > 0 ? color.bold(String(error.params[i - 1])) : "") + str, "");
|
|
39
|
+
print(color.red("[ERROR]"), message, "\n");
|
|
39
40
|
}
|
|
40
41
|
else {
|
|
41
42
|
console.error(error);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type MaybePromise from "@rcompat/type/MaybePromise";
|
|
2
1
|
import type Next from "#module/Next";
|
|
2
|
+
import type { MaybePromise } from "@rcompat/type";
|
|
3
3
|
type Hook<I, O = I> = (t: I, next: Next<I, O>) => MaybePromise<O>;
|
|
4
4
|
export type { Hook as default };
|
|
5
5
|
//# sourceMappingURL=Hook.d.ts.map
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type App from "#App";
|
|
2
|
+
import type BuildApp from "#build/App";
|
|
3
|
+
import type NextHandle from "#module/NextHandle";
|
|
4
|
+
import type NextRoute from "#module/NextRoute";
|
|
5
|
+
import type RequestFacade from "#request/RequestFacade";
|
|
6
|
+
import type ResponseLike from "#response/ResponseLike";
|
|
7
|
+
import type ServeApp from "#serve/App";
|
|
8
|
+
import type { MaybePromise } from "@rcompat/type";
|
|
9
|
+
export type InitHook = (app: App) => MaybePromise<void>;
|
|
10
|
+
export type BuildHook = (app: BuildApp) => MaybePromise<void>;
|
|
11
|
+
export type ServeHook = (app: ServeApp) => MaybePromise<void>;
|
|
12
|
+
export type HandleHook = (request: RequestFacade, next: NextHandle) => MaybePromise<Response>;
|
|
13
|
+
export type RouteHook = (request: RequestFacade, next: NextRoute) => MaybePromise<ResponseLike>;
|
|
14
|
+
export default interface Setup {
|
|
15
|
+
onInit(hook: InitHook): void;
|
|
16
|
+
onBuild(hook: BuildHook): void;
|
|
17
|
+
onServe(hook: ServeHook): void;
|
|
18
|
+
onHandle(hook: HandleHook): void;
|
|
19
|
+
onRoute(hook: RouteHook): void;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=Setup.d.ts.map
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type Module from "#Module";
|
|
2
|
+
import type { BuildHook, HandleHook, InitHook, RouteHook, ServeHook } from "#module/Setup";
|
|
3
|
+
type Hooks = {
|
|
4
|
+
init: InitHook[];
|
|
5
|
+
build: BuildHook[];
|
|
6
|
+
serve: ServeHook[];
|
|
7
|
+
handle: HandleHook[];
|
|
8
|
+
route: RouteHook[];
|
|
9
|
+
};
|
|
10
|
+
type Created = {
|
|
11
|
+
name: string;
|
|
12
|
+
hooks: Hooks;
|
|
13
|
+
};
|
|
14
|
+
export type { Created, Hooks };
|
|
15
|
+
export default function create({ name, setup }: Module): Created;
|
|
16
|
+
//# sourceMappingURL=create.d.ts.map
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export default function create({ name, setup }) {
|
|
2
|
+
const hooks = {
|
|
3
|
+
init: [],
|
|
4
|
+
build: [],
|
|
5
|
+
serve: [],
|
|
6
|
+
handle: [],
|
|
7
|
+
route: [],
|
|
8
|
+
};
|
|
9
|
+
setup({
|
|
10
|
+
onInit(hook) {
|
|
11
|
+
hooks.init.push(hook);
|
|
12
|
+
},
|
|
13
|
+
onBuild(hook) {
|
|
14
|
+
hooks.build.push(hook);
|
|
15
|
+
},
|
|
16
|
+
onServe(hook) {
|
|
17
|
+
hooks.serve.push(hook);
|
|
18
|
+
},
|
|
19
|
+
onHandle(hook) {
|
|
20
|
+
hooks.handle.push(hook);
|
|
21
|
+
},
|
|
22
|
+
onRoute(hook) {
|
|
23
|
+
hooks.route.push(hook);
|
|
24
|
+
},
|
|
25
|
+
});
|
|
26
|
+
return { name, hooks };
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=create.js.map
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type ForeignKey from "#orm/ForeignKey";
|
|
2
|
+
import type PrimaryKey from "#orm/PrimaryKey";
|
|
3
|
+
import type StoreInput from "#orm/StoreInput";
|
|
4
|
+
import type { DataKey, Storable } from "pema";
|
|
5
|
+
type ExtractSchema<T extends StoreInput> = {
|
|
6
|
+
[K in keyof T]: T[K] extends PrimaryKey<infer P> ? P : T[K] extends ForeignKey<infer P> ? P : T[K] extends Storable<DataKey> ? T[K] : never;
|
|
7
|
+
};
|
|
8
|
+
export type { ExtractSchema as default };
|
|
9
|
+
//# sourceMappingURL=ExtractSchema.d.ts.map
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { AllowedPKType } from "#orm/PrimaryKey";
|
|
2
|
+
import type { OptionalType } from "pema";
|
|
3
|
+
export type AllowedFKType = AllowedPKType | OptionalType<AllowedPKType>;
|
|
4
|
+
export default class ForeignKey<T extends AllowedFKType> {
|
|
5
|
+
#private;
|
|
6
|
+
constructor(type: T);
|
|
7
|
+
static new<T extends AllowedFKType>(type: T): ForeignKey<T>;
|
|
8
|
+
get type(): T;
|
|
9
|
+
get datatype(): keyof import("pema").DataType;
|
|
10
|
+
get name(): string;
|
|
11
|
+
get nullable(): boolean;
|
|
12
|
+
parse(value: unknown): unknown;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=ForeignKey.d.ts.map
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export default class ForeignKey {
|
|
2
|
+
#type;
|
|
3
|
+
constructor(type) {
|
|
4
|
+
this.#type = type;
|
|
5
|
+
}
|
|
6
|
+
static new(type) {
|
|
7
|
+
return new ForeignKey(type);
|
|
8
|
+
}
|
|
9
|
+
get type() {
|
|
10
|
+
return this.#type;
|
|
11
|
+
}
|
|
12
|
+
get datatype() {
|
|
13
|
+
return this.#type.datatype;
|
|
14
|
+
}
|
|
15
|
+
get name() {
|
|
16
|
+
return this.#type.name;
|
|
17
|
+
}
|
|
18
|
+
get nullable() {
|
|
19
|
+
return this.#type.nullable;
|
|
20
|
+
}
|
|
21
|
+
parse(value) {
|
|
22
|
+
return this.#type.parse(value);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=ForeignKey.js.map
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { Storable } from "pema";
|
|
2
|
+
export type Options = {
|
|
3
|
+
generate?: boolean;
|
|
4
|
+
};
|
|
5
|
+
export type AllowedPKType = Storable<"uuid"> | Storable<"uuid_v4"> | Storable<"uuid_v7"> | Storable<"u8"> | Storable<"u16"> | Storable<"u32"> | Storable<"u64"> | Storable<"u128">;
|
|
6
|
+
export default class PrimaryKey<T extends AllowedPKType> {
|
|
7
|
+
#private;
|
|
8
|
+
constructor(type: T, options?: Options);
|
|
9
|
+
static new<T extends AllowedPKType>(type: T, options?: Options): PrimaryKey<T>;
|
|
10
|
+
get type(): T;
|
|
11
|
+
get datatype(): "uuid" | "uuid_v4" | "uuid_v7" | "u128" | "u16" | "u32" | "u64" | "u8";
|
|
12
|
+
get name(): string;
|
|
13
|
+
get nullable(): boolean;
|
|
14
|
+
get generate(): boolean;
|
|
15
|
+
parse(value: unknown): unknown;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=PrimaryKey.d.ts.map
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import E from "#db/errors";
|
|
2
|
+
const ALLOWED_TYPES = new Set([
|
|
3
|
+
"uuid", "uuid_v4", "uuid_v7",
|
|
4
|
+
"u8", "u16", "u32", "u64", "u128",
|
|
5
|
+
]);
|
|
6
|
+
export default class PrimaryKey {
|
|
7
|
+
#type;
|
|
8
|
+
#generate;
|
|
9
|
+
constructor(type, options) {
|
|
10
|
+
this.#type = type;
|
|
11
|
+
this.#generate = options?.generate ?? true;
|
|
12
|
+
const datatype = this.#type.datatype;
|
|
13
|
+
if (!ALLOWED_TYPES.has(datatype))
|
|
14
|
+
throw E.pk_invalid_type(datatype);
|
|
15
|
+
}
|
|
16
|
+
static new(type, options) {
|
|
17
|
+
return new PrimaryKey(type, options);
|
|
18
|
+
}
|
|
19
|
+
get type() {
|
|
20
|
+
return this.#type;
|
|
21
|
+
}
|
|
22
|
+
get datatype() {
|
|
23
|
+
return this.#type.datatype;
|
|
24
|
+
}
|
|
25
|
+
get name() {
|
|
26
|
+
return this.#type.name;
|
|
27
|
+
}
|
|
28
|
+
get nullable() {
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
get generate() {
|
|
32
|
+
return this.#generate;
|
|
33
|
+
}
|
|
34
|
+
parse(value) {
|
|
35
|
+
return this.#type.parse(value);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=PrimaryKey.js.map
|