@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,38 @@
|
|
|
1
|
+
import store from "#db/migrate/store";
|
|
2
|
+
import c from "@rcompat/cli/color";
|
|
3
|
+
import print from "@rcompat/cli/print";
|
|
4
|
+
import fs from "@rcompat/fs";
|
|
5
|
+
export default async function status_migration() {
|
|
6
|
+
const root = await fs.project.root();
|
|
7
|
+
const migrations_dir = root.join("migrations");
|
|
8
|
+
const Migration = await store();
|
|
9
|
+
await Migration.table.create();
|
|
10
|
+
const applied = await Migration.find({
|
|
11
|
+
limit: 3,
|
|
12
|
+
sort: { id: "desc" },
|
|
13
|
+
});
|
|
14
|
+
const files = await (async () => {
|
|
15
|
+
if (!await migrations_dir.exists())
|
|
16
|
+
return [];
|
|
17
|
+
return (await migrations_dir.files({ filter: /\d+-.*\.[jt]s$/ }))
|
|
18
|
+
.map(f => ({ name: f.name, n: parseInt(f.name.split("-")[0]) }))
|
|
19
|
+
.toSorted((a, b) => a.n - b.n);
|
|
20
|
+
})();
|
|
21
|
+
const last_id = applied.length === 0 ? 0 : applied[0].id;
|
|
22
|
+
const pending = files.filter(f => f.n > last_id);
|
|
23
|
+
const last_applied = applied.toReversed();
|
|
24
|
+
for (const { id, applied: date } of last_applied) {
|
|
25
|
+
const file = files.find(f => f.n === id);
|
|
26
|
+
print(`${c.green("Applied")} ${file?.name ?? "unknown"} (${date.toISOString()})\n`);
|
|
27
|
+
}
|
|
28
|
+
if (last_applied.length > 0 && pending.length > 0) {
|
|
29
|
+
print("---\n");
|
|
30
|
+
}
|
|
31
|
+
for (const { name, n } of pending) {
|
|
32
|
+
print(`${c.yellow("Pending")} ${c.bold(name)}\n`);
|
|
33
|
+
}
|
|
34
|
+
if (last_applied.length === 0 && pending.length === 0) {
|
|
35
|
+
print("No migrations found.\n");
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=status.js.map
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import bundle from "#db/migrate/bundle";
|
|
2
|
+
import E from "#errors";
|
|
3
|
+
import key from "#orm/key";
|
|
4
|
+
import store from "#orm/store";
|
|
5
|
+
import fs from "@rcompat/fs";
|
|
6
|
+
import p from "pema";
|
|
7
|
+
export default async function migration_store() {
|
|
8
|
+
const root = await fs.project.root();
|
|
9
|
+
const { path } = await (async () => {
|
|
10
|
+
const ts = root.join("config", "app.ts");
|
|
11
|
+
if (await ts.exists())
|
|
12
|
+
return ts;
|
|
13
|
+
const js = root.join("config", "app.js");
|
|
14
|
+
if (await js.exists())
|
|
15
|
+
return js;
|
|
16
|
+
throw E.config_file_missing();
|
|
17
|
+
})();
|
|
18
|
+
const entry = `export { default } from "${path}";`;
|
|
19
|
+
const app = await bundle(entry);
|
|
20
|
+
const migrations_config = app.config("db.migrations");
|
|
21
|
+
if (migrations_config == undefined)
|
|
22
|
+
throw E.config_missing("db.migrations");
|
|
23
|
+
const { table, db } = migrations_config;
|
|
24
|
+
return store({
|
|
25
|
+
name: table,
|
|
26
|
+
db,
|
|
27
|
+
schema: {
|
|
28
|
+
id: key.primary(p.u16, { generate: false }),
|
|
29
|
+
applied: p.date,
|
|
30
|
+
},
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=store.js.map
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type As from "#db/As";
|
|
2
|
+
import type ReadRelationsArgs from "#db/ReadRelationsArgs";
|
|
3
|
+
import type Sort from "#db/Sort";
|
|
4
|
+
import type Types from "#db/Types";
|
|
5
|
+
import type With from "#db/With";
|
|
6
|
+
import type { Dict } from "@rcompat/type";
|
|
7
|
+
import type { DataKey } from "pema";
|
|
8
|
+
declare function quote(name: string): string;
|
|
9
|
+
declare function Q(strings: TemplateStringsArray, ...values: (string | unknown[])[]): string;
|
|
10
|
+
declare const sql: {
|
|
11
|
+
quote: typeof quote;
|
|
12
|
+
orderBy(types: Types, sort?: Sort, alias?: string): string;
|
|
13
|
+
limit(limit?: number): string;
|
|
14
|
+
aliases(tables: string[]): Dict<string>;
|
|
15
|
+
aliased(aliases: Dict<string>, as: As, fields?: string[]): string;
|
|
16
|
+
columns(types: Types, columns?: string[]): string;
|
|
17
|
+
bindKey(column: string, op: string): string;
|
|
18
|
+
joinable(parent: As, relations: With): boolean;
|
|
19
|
+
unbind<R>(types: Types, row: Dict, unbinder: (key: DataKey, value: unknown) => R): Dict<R>;
|
|
20
|
+
nest<T>(as: As, args: {
|
|
21
|
+
rows: Dict[];
|
|
22
|
+
aliases: Dict<string>;
|
|
23
|
+
}, relation_args: ReadRelationsArgs, unbind: (type: DataKey, value: unknown) => T): Dict[];
|
|
24
|
+
Q: typeof Q;
|
|
25
|
+
OPS: Dict<">" | ">=" | "<" | "<=">;
|
|
26
|
+
};
|
|
27
|
+
export default sql;
|
|
28
|
+
//# sourceMappingURL=sql.d.ts.map
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import E from "#db/errors";
|
|
2
|
+
import assert from "@rcompat/assert";
|
|
3
|
+
import is from "@rcompat/is";
|
|
4
|
+
function normalize_sort(key, direction) {
|
|
5
|
+
if (!is.string(direction))
|
|
6
|
+
throw E.sort_invalid();
|
|
7
|
+
const l = direction.toLowerCase();
|
|
8
|
+
if (l !== "asc" && l !== "desc")
|
|
9
|
+
throw E.sort_invalid_value(key, direction);
|
|
10
|
+
return l.toUpperCase();
|
|
11
|
+
}
|
|
12
|
+
function assert_columns(types, columns) {
|
|
13
|
+
const known = new Set(Object.keys(types));
|
|
14
|
+
const unknown = columns.filter(c => !known.has(c));
|
|
15
|
+
if (unknown.length > 0)
|
|
16
|
+
throw E.fields_unknown(unknown);
|
|
17
|
+
}
|
|
18
|
+
function quote(name) {
|
|
19
|
+
if (!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(name))
|
|
20
|
+
throw E.identifier_invalid(name);
|
|
21
|
+
return `\`${name}\``;
|
|
22
|
+
}
|
|
23
|
+
function Q(strings, ...values) {
|
|
24
|
+
return strings.reduce((result, string, i) => {
|
|
25
|
+
if (i === values.length)
|
|
26
|
+
return result + string;
|
|
27
|
+
const value = values[i];
|
|
28
|
+
let processed;
|
|
29
|
+
if (Array.isArray(value)) {
|
|
30
|
+
processed = value.join(", ");
|
|
31
|
+
}
|
|
32
|
+
else if (typeof value === "string") {
|
|
33
|
+
processed = sql.quote(value);
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
throw "Q: use only strings or arrays";
|
|
37
|
+
}
|
|
38
|
+
return result + string + processed;
|
|
39
|
+
}, "");
|
|
40
|
+
}
|
|
41
|
+
;
|
|
42
|
+
const OPS = {
|
|
43
|
+
$gt: ">",
|
|
44
|
+
$gte: ">=",
|
|
45
|
+
$lt: "<",
|
|
46
|
+
$lte: "<=",
|
|
47
|
+
$after: ">",
|
|
48
|
+
$before: "<",
|
|
49
|
+
};
|
|
50
|
+
const sql = {
|
|
51
|
+
quote,
|
|
52
|
+
orderBy(types, sort, alias) {
|
|
53
|
+
if (sort === undefined)
|
|
54
|
+
return "";
|
|
55
|
+
const columns = Object.entries(sort);
|
|
56
|
+
if (columns.length === 0)
|
|
57
|
+
throw E.field_required("sort");
|
|
58
|
+
assert_columns(types, columns.map(([k]) => k));
|
|
59
|
+
const order = columns
|
|
60
|
+
.map(([k, direction]) => {
|
|
61
|
+
const quoted = quote(k);
|
|
62
|
+
const col = alias ? `${alias}.${quoted}` : quoted;
|
|
63
|
+
return `${col} ${normalize_sort(k, direction)}`;
|
|
64
|
+
})
|
|
65
|
+
.join(", ");
|
|
66
|
+
return ` ORDER BY ${order}`;
|
|
67
|
+
},
|
|
68
|
+
limit(limit) {
|
|
69
|
+
return limit !== undefined ? ` LIMIT ${limit}` : "";
|
|
70
|
+
},
|
|
71
|
+
aliases(tables) {
|
|
72
|
+
const counts = {};
|
|
73
|
+
const result = {};
|
|
74
|
+
for (const table of tables) {
|
|
75
|
+
const prefix = table[0].toLowerCase();
|
|
76
|
+
counts[prefix] ??= 0;
|
|
77
|
+
result[table] = `${prefix}${counts[prefix]++}`;
|
|
78
|
+
}
|
|
79
|
+
return result;
|
|
80
|
+
},
|
|
81
|
+
aliased(aliases, as, fields) {
|
|
82
|
+
const alias = aliases[as.table];
|
|
83
|
+
return (fields ?? Object.keys(as.types))
|
|
84
|
+
.map(f => `${alias}.${quote(f)} AS ${alias}_${f}`)
|
|
85
|
+
.join(", ");
|
|
86
|
+
},
|
|
87
|
+
columns(types, columns) {
|
|
88
|
+
if (columns === undefined)
|
|
89
|
+
return "*";
|
|
90
|
+
if (columns.length === 0)
|
|
91
|
+
throw E.field_required("select");
|
|
92
|
+
assert_columns(types, columns);
|
|
93
|
+
return columns.map(quote).join(", ");
|
|
94
|
+
},
|
|
95
|
+
bindKey(column, op) {
|
|
96
|
+
const suffix = op.startsWith("$") ? op.slice(1) : op;
|
|
97
|
+
return `${column}__${suffix}`;
|
|
98
|
+
},
|
|
99
|
+
joinable(parent, relations) {
|
|
100
|
+
const rels = Object.values(relations);
|
|
101
|
+
if (rels.length !== 1)
|
|
102
|
+
return false;
|
|
103
|
+
const r = rels[0];
|
|
104
|
+
if (parent.pk === null)
|
|
105
|
+
return false;
|
|
106
|
+
return (!r.reverse &&
|
|
107
|
+
r.kind === "many" &&
|
|
108
|
+
r.limit === undefined &&
|
|
109
|
+
r.sort === undefined &&
|
|
110
|
+
Object.keys(r.where).length === 0 &&
|
|
111
|
+
r.as.pk !== null);
|
|
112
|
+
},
|
|
113
|
+
unbind(types, row, unbinder) {
|
|
114
|
+
const out = {};
|
|
115
|
+
for (const [key, value] of Object.entries(row)) {
|
|
116
|
+
if (value === null)
|
|
117
|
+
continue;
|
|
118
|
+
assert.true(key in types, E.field_unknown(key, "unbind"));
|
|
119
|
+
out[key] = unbinder(types[key], value);
|
|
120
|
+
}
|
|
121
|
+
return out;
|
|
122
|
+
},
|
|
123
|
+
nest(as, args, relation_args, unbind) {
|
|
124
|
+
if (as.pk === null)
|
|
125
|
+
throw E.relation_requires_pk("parent");
|
|
126
|
+
const base_alias = args.aliases[as.table];
|
|
127
|
+
const base_pk_key = `${base_alias}_${as.pk}`;
|
|
128
|
+
const base_fields = relation_args.fields ?? Object.keys(as.types);
|
|
129
|
+
const grouped = new Map();
|
|
130
|
+
for (const base_row of args.rows) {
|
|
131
|
+
const pk_value = unbind(as.types[as.pk], base_row[base_pk_key]);
|
|
132
|
+
const relation_entries = Object.entries(relation_args.with);
|
|
133
|
+
if (!grouped.has(pk_value)) {
|
|
134
|
+
const parent = {};
|
|
135
|
+
for (const f of base_fields) {
|
|
136
|
+
const v = base_row[`${base_alias}_${f}`];
|
|
137
|
+
if (v == null)
|
|
138
|
+
continue;
|
|
139
|
+
parent[f] = unbind(as.types[f], v);
|
|
140
|
+
}
|
|
141
|
+
for (const [name, relation] of relation_entries) {
|
|
142
|
+
parent[name] = relation.kind === "many" ? [] : null;
|
|
143
|
+
}
|
|
144
|
+
grouped.set(pk_value, parent);
|
|
145
|
+
}
|
|
146
|
+
const parent = grouped.get(pk_value);
|
|
147
|
+
for (const [name, relation] of relation_entries) {
|
|
148
|
+
const alias = args.aliases[relation.as.table];
|
|
149
|
+
const pk = relation.as.pk;
|
|
150
|
+
if (pk === null)
|
|
151
|
+
continue;
|
|
152
|
+
const pk_key = `${alias}_${pk}`;
|
|
153
|
+
if (base_row[pk_key] == null)
|
|
154
|
+
continue;
|
|
155
|
+
const fields = relation.fields ?? Object.keys(relation.as.types);
|
|
156
|
+
const row = {};
|
|
157
|
+
for (const field of fields) {
|
|
158
|
+
const v = base_row[`${alias}_${field}`];
|
|
159
|
+
if (v == null)
|
|
160
|
+
continue;
|
|
161
|
+
row[field] = unbind(relation.as.types[field], v);
|
|
162
|
+
}
|
|
163
|
+
if (relation.kind === "many") {
|
|
164
|
+
parent[name].push(row);
|
|
165
|
+
}
|
|
166
|
+
else if (parent[name] === null) {
|
|
167
|
+
parent[name] = row;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
return [...grouped.values()];
|
|
172
|
+
},
|
|
173
|
+
Q,
|
|
174
|
+
OPS,
|
|
175
|
+
};
|
|
176
|
+
export default sql;
|
|
177
|
+
//# sourceMappingURL=sql.js.map
|