@primate/core 0.4.6 → 0.5.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 +531 -3
- package/lib/private/App.js +8 -3
- package/lib/private/Binder.d.ts +2 -2
- package/lib/private/Flags.d.ts +3 -3
- package/lib/private/Module.d.ts +5 -5
- package/lib/private/app/Facade.d.ts +566 -0
- package/lib/private/app/Facade.js +33 -0
- package/lib/private/asset/Asset.d.ts +1 -1
- package/lib/private/backend/Module.d.ts +1 -1
- package/lib/private/backend/Module.js +2 -5
- package/lib/private/backend/TAG.d.ts +1 -1
- package/lib/private/backend/TAG.js +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 +11 -7
- package/lib/private/build/hook.js +4 -3
- package/lib/private/build/index.js +14 -13
- package/lib/private/build/presets.d.ts +10 -0
- package/lib/private/build/presets.js +39 -0
- package/lib/private/build/server/index.js +5 -7
- 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/db-default.d.ts +4 -0
- package/lib/private/build/server/plugin/db-default.js +45 -0
- 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} +4 -4
- package/lib/private/build/server/plugin/native-addons.js +6 -4
- package/lib/private/build/server/plugin/node-imports.js +2 -2
- package/lib/private/build/server/plugin/route.js +2 -2
- package/lib/private/build/server/plugin/store-wrap.js +2 -2
- package/lib/private/build/server/plugin/store.js +6 -6
- package/lib/private/build/server/plugin/stores.js +4 -5
- package/lib/private/build/server/plugin/view.js +4 -4
- 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/bye.js +2 -3
- package/lib/private/client/Data.d.ts +1 -1
- package/lib/private/client/ValidateInit.d.ts +1 -3
- package/lib/private/client/ValidationError.d.ts +1 -1
- package/lib/private/client/app.js +2 -1
- package/lib/private/client/create-form.d.ts +31 -0
- package/lib/private/client/create-form.js +124 -0
- package/lib/private/client/extract-issues.d.ts +4 -0
- package/lib/private/client/extract-issues.js +20 -0
- package/lib/private/client/spa/index.d.ts +1 -1
- package/lib/private/client/spa/index.js +4 -5
- 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 +2 -21
- package/lib/private/config/index.js +3 -1
- package/lib/private/config/schema.d.ts +13 -9
- package/lib/private/config/schema.js +10 -5
- package/lib/private/cookie.d.ts +5 -5
- package/lib/private/cookie.js +10 -14
- package/lib/private/db/As.d.ts +10 -0
- package/lib/private/db/DB.d.ts +33 -0
- package/lib/private/db/DB.js +2 -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 +35 -0
- package/lib/private/db/MemoryDB.js +317 -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 +18 -0
- package/lib/private/db/common.js +36 -0
- package/lib/private/db/error.d.ts +81 -0
- package/lib/private/db/error.js +199 -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/wrap.js +2 -0
- package/lib/private/db/symbol.js +2 -0
- package/lib/private/db/test.d.ts +4 -0
- package/lib/private/db/test.js +1384 -0
- package/lib/private/frontend/Module.d.ts +6 -6
- package/lib/private/frontend/Module.js +28 -23
- package/lib/private/frontend/Render.d.ts +1 -2
- package/lib/private/frontend/ServerData.d.ts +1 -1
- package/lib/private/frontend/ServerView.d.ts +1 -2
- package/lib/private/frontend/View.d.ts +1 -1
- package/lib/private/frontend/ViewOptions.d.ts +1 -1
- package/lib/private/frontend/ViewResponse.d.ts +1 -1
- package/lib/private/hash.js +0 -1
- package/lib/private/i18n/Catalog.d.ts +5 -2
- package/lib/private/i18n/Formatter.js +20 -8
- package/lib/private/i18n/Module.d.ts +3 -3
- package/lib/private/i18n/Module.js +28 -17
- 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/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 +4 -4
- 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 +21 -0
- package/lib/private/log.d.ts +1 -0
- package/lib/private/log.js +10 -10
- package/lib/private/module/Hook.d.ts +1 -1
- package/lib/private/module/Next.d.ts +1 -1
- package/lib/private/orm/ForeignKey.d.ts +11 -0
- package/lib/private/orm/ForeignKey.js +22 -0
- package/lib/private/orm/PrimaryKey.d.ts +15 -0
- package/lib/private/orm/PrimaryKey.js +35 -0
- package/lib/private/orm/Set.d.ts +11 -0
- package/lib/private/orm/Set.js +2 -0
- package/lib/private/orm/Store.d.ts +171 -0
- package/lib/private/orm/Store.js +518 -0
- package/lib/private/orm/foreign.d.ts +4 -0
- package/lib/private/orm/foreign.js +5 -0
- package/lib/private/orm/key.d.ts +8 -0
- package/lib/private/orm/key.js +4 -0
- package/lib/private/orm/parse.d.ts +12 -0
- package/lib/private/orm/parse.js +29 -0
- package/lib/private/orm/primary.d.ts +5 -0
- package/lib/private/orm/primary.js +5 -0
- package/lib/private/orm/relation.d.ts +43 -0
- package/lib/private/orm/relation.js +26 -0
- package/lib/private/orm/types.d.ts +18 -0
- package/lib/private/orm/types.js +2 -0
- package/lib/private/orm/wrap.d.ts +5 -0
- package/lib/private/orm/wrap.js +5 -0
- package/lib/private/paths.d.ts +2 -2
- package/lib/private/request/RequestBag.d.ts +1 -1
- package/lib/private/request/RequestBag.js +11 -7
- package/lib/private/request/RequestBody.d.ts +2 -4
- package/lib/private/request/RequestBody.js +8 -11
- package/lib/private/request/RequestContext.d.ts +12 -0
- package/lib/private/request/RequestContext.js +31 -0
- package/lib/private/request/RequestFacade.d.ts +16 -6
- package/lib/private/request/parse.d.ts +2 -2
- package/lib/private/request/parse.js +54 -16
- package/lib/private/request/route.js +37 -21
- package/lib/private/request/router.d.ts +1 -1
- package/lib/private/request/router.js +2 -2
- package/lib/private/request/sContext.d.ts +3 -0
- package/lib/private/request/sContext.js +2 -0
- package/lib/private/response/ResponseFunction.d.ts +1 -2
- 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/json.d.ts +1 -1
- package/lib/private/response/json.js +2 -2
- package/lib/private/response/redirect.js +1 -1
- package/lib/private/response/respond.js +7 -10
- 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 +2 -2
- package/lib/private/response/view.js +3 -3
- 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 +9 -5
- package/lib/private/route/router.js +34 -17
- package/lib/private/route/wrap.js +2 -2
- package/lib/private/serve/App.d.ts +5 -18
- package/lib/private/serve/App.js +91 -82
- package/lib/private/serve/Init.d.ts +3 -3
- package/lib/private/serve/hook.js +1 -7
- package/lib/private/serve/index.js +6 -2
- package/lib/private/serve/module/Dev.d.ts +1 -1
- package/lib/private/serve/module/Dev.js +9 -5
- package/lib/private/serve/module/Handle.js +2 -2
- package/lib/private/session/Data.d.ts +1 -2
- package/lib/private/session/SessionHandle.d.ts +1 -1
- package/lib/private/session/SessionHandle.js +10 -9
- package/lib/private/session/SessionModule.js +7 -7
- package/lib/private/session/index.d.ts +3 -4
- package/lib/private/session/schema.d.ts +6 -6
- package/lib/private/session/schema.js +5 -4
- 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/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 +14 -0
- package/lib/public/client.js +10 -0
- package/lib/public/db/MemoryDB.d.ts +2 -0
- package/lib/public/db/MemoryDB.js +2 -0
- package/lib/public/db/error.d.ts +2 -0
- package/lib/public/db/error.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/orm/Store.d.ts +2 -0
- package/lib/public/orm/Store.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/wrap.d.ts +2 -0
- package/lib/public/orm/wrap.js +2 -0
- package/lib/public/request.d.ts +4 -0
- package/lib/public/request.js +2 -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/package.json +28 -23
- 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/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/i18n/index.d.ts +0 -28
- package/lib/private/i18n/index.js +0 -236
- package/lib/private/route/guard.d.ts +0 -4
- package/lib/private/route/guard.js +0 -22
- 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/Database.d.ts +0 -2
- package/lib/public/Database.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/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/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/{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/wrap.d.ts +0 -0
- /package/lib/private/{database → db}/symbol.d.ts +0 -0
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type As from "#db/As";
|
|
2
|
+
import type DB from "#db/DB";
|
|
3
|
+
import type DataDict from "#db/DataDict";
|
|
4
|
+
import type Sort from "#db/Sort";
|
|
5
|
+
import type With from "#db/With";
|
|
6
|
+
import type { Dict, MaybePromise } from "@rcompat/type";
|
|
7
|
+
export default class MemoryDB implements DB {
|
|
8
|
+
#private;
|
|
9
|
+
get schema(): {
|
|
10
|
+
create: (as: As) => void;
|
|
11
|
+
delete: (table: string) => void;
|
|
12
|
+
};
|
|
13
|
+
close(): void;
|
|
14
|
+
create<O extends Dict>(as: As, record: Dict): MaybePromise<O>;
|
|
15
|
+
read(as: As, args: {
|
|
16
|
+
count: true;
|
|
17
|
+
where: DataDict;
|
|
18
|
+
with?: never;
|
|
19
|
+
}): number;
|
|
20
|
+
read(as: As, args: {
|
|
21
|
+
where: DataDict;
|
|
22
|
+
fields?: string[];
|
|
23
|
+
limit?: number;
|
|
24
|
+
sort?: Sort;
|
|
25
|
+
with?: With;
|
|
26
|
+
}): Dict[];
|
|
27
|
+
update(as: As, args: {
|
|
28
|
+
set: DataDict;
|
|
29
|
+
where: DataDict;
|
|
30
|
+
}): Promise<number>;
|
|
31
|
+
delete(as: As, args: {
|
|
32
|
+
where: DataDict;
|
|
33
|
+
}): number;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=MemoryDB.d.ts.map
|
|
@@ -0,0 +1,317 @@
|
|
|
1
|
+
import E from "#db/error";
|
|
2
|
+
import assert from "@rcompat/assert";
|
|
3
|
+
import entries from "@rcompat/dict/entries";
|
|
4
|
+
import is from "@rcompat/is";
|
|
5
|
+
const PK_TYPES = ["string", "bigint", "number"];
|
|
6
|
+
function escape_re(s) {
|
|
7
|
+
return s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
8
|
+
}
|
|
9
|
+
function comparable(x) {
|
|
10
|
+
if (is.date(x))
|
|
11
|
+
return x.getTime();
|
|
12
|
+
if (is.url(x))
|
|
13
|
+
return x.href;
|
|
14
|
+
return x;
|
|
15
|
+
}
|
|
16
|
+
;
|
|
17
|
+
function like_re(pattern, flags = "") {
|
|
18
|
+
return new RegExp("^" + escape_re(pattern)
|
|
19
|
+
.replace(/\\%/g, "<<PERCENT>>")
|
|
20
|
+
.replace(/\\_/g, "<<UNDERSCORE>>")
|
|
21
|
+
.replace(/%/g, "[\\s\\S]*")
|
|
22
|
+
.replace(/_/g, "[\\s\\S]")
|
|
23
|
+
.replace(/<<PERCENT>>/g, "%")
|
|
24
|
+
.replace(/<<UNDERSCORE>>/g, "_") +
|
|
25
|
+
"$", flags);
|
|
26
|
+
}
|
|
27
|
+
function match(record, where) {
|
|
28
|
+
return Object.entries(where).every(([k, v]) => {
|
|
29
|
+
const value = record[k];
|
|
30
|
+
// null where (IS NULL semantics in this DB == key absent)
|
|
31
|
+
if (v === null)
|
|
32
|
+
return value === null || value === undefined;
|
|
33
|
+
// operator objects: only plain dicts
|
|
34
|
+
if (is.dict(v)) {
|
|
35
|
+
// NULL / missing values don't match operator predicates
|
|
36
|
+
if (value === null || value === undefined)
|
|
37
|
+
return false;
|
|
38
|
+
for (const [op, op_val] of Object.entries(v)) {
|
|
39
|
+
switch (op) {
|
|
40
|
+
case "$like": {
|
|
41
|
+
if (!is.string(value))
|
|
42
|
+
return false;
|
|
43
|
+
if (!like_re(op_val).test(value))
|
|
44
|
+
return false;
|
|
45
|
+
break;
|
|
46
|
+
}
|
|
47
|
+
case "$ilike": {
|
|
48
|
+
if (!is.string(value))
|
|
49
|
+
return false;
|
|
50
|
+
if (!like_re(op_val, "i").test(value))
|
|
51
|
+
return false;
|
|
52
|
+
break;
|
|
53
|
+
}
|
|
54
|
+
case "$gte":
|
|
55
|
+
if (!(comparable(value) >= comparable(op_val)))
|
|
56
|
+
return false;
|
|
57
|
+
break;
|
|
58
|
+
case "$gt":
|
|
59
|
+
case "$after":
|
|
60
|
+
if (!(comparable(value) > comparable(op_val)))
|
|
61
|
+
return false;
|
|
62
|
+
break;
|
|
63
|
+
case "$lte":
|
|
64
|
+
if (!(comparable(value) <= comparable(op_val)))
|
|
65
|
+
return false;
|
|
66
|
+
break;
|
|
67
|
+
case "$lt":
|
|
68
|
+
case "$before":
|
|
69
|
+
if (!(comparable(value) < comparable(op_val)))
|
|
70
|
+
return false;
|
|
71
|
+
break;
|
|
72
|
+
case "$ne": {
|
|
73
|
+
if (is.date(value) && is.date(op_val)) {
|
|
74
|
+
if (value.getTime() === op_val.getTime())
|
|
75
|
+
return false;
|
|
76
|
+
break;
|
|
77
|
+
}
|
|
78
|
+
if (is.url(value) && is.url(op_val)) {
|
|
79
|
+
if (value.href === op_val.href)
|
|
80
|
+
return false;
|
|
81
|
+
break;
|
|
82
|
+
}
|
|
83
|
+
if (value === op_val)
|
|
84
|
+
return false;
|
|
85
|
+
break;
|
|
86
|
+
}
|
|
87
|
+
default:
|
|
88
|
+
throw E.operator_unknown(k, op);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
return true;
|
|
92
|
+
}
|
|
93
|
+
// literal equality
|
|
94
|
+
if (is.date(value) && is.date(v))
|
|
95
|
+
return value.getTime() === v.getTime();
|
|
96
|
+
if (is.url(value) && is.url(v))
|
|
97
|
+
return value.href === v.href;
|
|
98
|
+
return value === v;
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
function filter(record, fields) {
|
|
102
|
+
return Object.fromEntries(Object.entries(record)
|
|
103
|
+
.filter(([key]) => fields.includes(key)));
|
|
104
|
+
}
|
|
105
|
+
function toSorted(d1, d2, sort) {
|
|
106
|
+
return [...entries(sort).valmap(([, value]) => value === "asc" ? 1 : -1)]
|
|
107
|
+
.reduce((sorting, [field, direction]) => {
|
|
108
|
+
const left = d1[field];
|
|
109
|
+
const right = d2[field];
|
|
110
|
+
// if sorting has been established, it stays fixed
|
|
111
|
+
if (sorting !== 0) {
|
|
112
|
+
return sorting;
|
|
113
|
+
}
|
|
114
|
+
// equal, sorting doesn't change
|
|
115
|
+
if (left === right) {
|
|
116
|
+
return sorting;
|
|
117
|
+
}
|
|
118
|
+
if (left < right) {
|
|
119
|
+
return -1 * direction;
|
|
120
|
+
}
|
|
121
|
+
return direction;
|
|
122
|
+
}, 0);
|
|
123
|
+
}
|
|
124
|
+
export default class MemoryDB {
|
|
125
|
+
#tables = {};
|
|
126
|
+
#new(as) {
|
|
127
|
+
if (this.#tables[as.table] !== undefined)
|
|
128
|
+
return;
|
|
129
|
+
this.#tables[as.table] = [];
|
|
130
|
+
}
|
|
131
|
+
#drop(table) {
|
|
132
|
+
if (this.#tables[table] !== undefined)
|
|
133
|
+
delete this.#tables[table];
|
|
134
|
+
}
|
|
135
|
+
#use(name) {
|
|
136
|
+
this.#tables[name] ??= [];
|
|
137
|
+
return this.#tables[name];
|
|
138
|
+
}
|
|
139
|
+
get schema() {
|
|
140
|
+
return {
|
|
141
|
+
create: this.#new.bind(this),
|
|
142
|
+
delete: this.#drop.bind(this),
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
// noop
|
|
146
|
+
close() { }
|
|
147
|
+
#next_id(as) {
|
|
148
|
+
const table = this.#use(as.table);
|
|
149
|
+
const size = table.length;
|
|
150
|
+
const pk = assert.defined(as.pk);
|
|
151
|
+
const type = as.types[pk];
|
|
152
|
+
if (type === "string") {
|
|
153
|
+
return crypto.randomUUID();
|
|
154
|
+
}
|
|
155
|
+
else if (["u64", "u128", "i64", "i128"].includes(type)) {
|
|
156
|
+
return size === 0 ? 0n : table[size - 1][pk] + 1n;
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
return size === 0 ? 0 : table[size - 1][pk] + 1;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
create(as, record) {
|
|
163
|
+
assert.nonempty(record, "empty record");
|
|
164
|
+
const table = this.#use(as.table);
|
|
165
|
+
const pk = as.pk;
|
|
166
|
+
let to_insert = record;
|
|
167
|
+
if (pk !== null && !(pk in record)) {
|
|
168
|
+
if (as.generate_pk === false)
|
|
169
|
+
throw E.pk_required(pk);
|
|
170
|
+
to_insert = { ...record, [pk]: this.#next_id(as) };
|
|
171
|
+
}
|
|
172
|
+
if (pk !== null) {
|
|
173
|
+
const pkv = to_insert[pk];
|
|
174
|
+
if (!PK_TYPES.includes(typeof pkv))
|
|
175
|
+
throw E.pk_invalid(pkv);
|
|
176
|
+
if (table.find(stored => stored[pk] === pkv))
|
|
177
|
+
throw E.pk_duplicate(pk);
|
|
178
|
+
}
|
|
179
|
+
table.push({ ...to_insert });
|
|
180
|
+
return to_insert;
|
|
181
|
+
}
|
|
182
|
+
read(as, args) {
|
|
183
|
+
assert.dict(args.where);
|
|
184
|
+
const table = this.#use(as.table);
|
|
185
|
+
const matches = table.filter(r => match(r, args.where));
|
|
186
|
+
if (args.count === true)
|
|
187
|
+
return matches.length;
|
|
188
|
+
const sort = args.sort ?? {};
|
|
189
|
+
const sorted = Object.keys(sort).length === 0
|
|
190
|
+
? matches
|
|
191
|
+
: matches.toSorted((a, b) => toSorted(a, b, sort));
|
|
192
|
+
const limit = args.limit ?? sorted.length;
|
|
193
|
+
const base_rows = sorted.slice(0, limit);
|
|
194
|
+
// no relations -> preserve existing behavior
|
|
195
|
+
if (args.with === undefined) {
|
|
196
|
+
const fields = args.fields ?? [];
|
|
197
|
+
return (fields.length === 0
|
|
198
|
+
? base_rows
|
|
199
|
+
: base_rows.map(r => filter(r, fields)));
|
|
200
|
+
}
|
|
201
|
+
assert.dict(args.with);
|
|
202
|
+
const base_fields = args.fields ?? [];
|
|
203
|
+
// output objects must be detached, so as to not mutate stored rows whilst
|
|
204
|
+
// attaching relations
|
|
205
|
+
const out = base_rows.map(full => {
|
|
206
|
+
return base_fields.length === 0
|
|
207
|
+
? { ...full }
|
|
208
|
+
: filter(full, base_fields);
|
|
209
|
+
});
|
|
210
|
+
// need access to the full base rows to read join keys even if not projected
|
|
211
|
+
const base_full = base_rows;
|
|
212
|
+
for (const [r_name, rel] of Object.entries(args.with)) {
|
|
213
|
+
const target_as = rel.as;
|
|
214
|
+
const kind = rel.kind;
|
|
215
|
+
const fk = rel.fk;
|
|
216
|
+
const reverse = rel.reverse === true;
|
|
217
|
+
const r_where = rel.where;
|
|
218
|
+
const r_sort = rel.sort;
|
|
219
|
+
const r_limit = rel.limit;
|
|
220
|
+
const r_fields = rel.fields ?? [];
|
|
221
|
+
const target = this.#use(target_as.table);
|
|
222
|
+
function project_rel(row) {
|
|
223
|
+
if (r_fields.length === 0)
|
|
224
|
+
return { ...row };
|
|
225
|
+
return filter(row, r_fields);
|
|
226
|
+
}
|
|
227
|
+
;
|
|
228
|
+
// reverse one: FK on parent points to target PK
|
|
229
|
+
if (kind === "one" && reverse) {
|
|
230
|
+
const target_pk = target_as.pk;
|
|
231
|
+
if (target_pk === null)
|
|
232
|
+
throw E.relation_requires_pk("target");
|
|
233
|
+
for (let i = 0; i < out.length; i++) {
|
|
234
|
+
const parent_full = base_full[i];
|
|
235
|
+
const fk_value = parent_full[fk];
|
|
236
|
+
if (fk_value == null) {
|
|
237
|
+
(out[i])[r_name] = null;
|
|
238
|
+
continue;
|
|
239
|
+
}
|
|
240
|
+
// filter by target_pk equality + optional where
|
|
241
|
+
let candidates = target.filter(t => t[target_pk] === fk_value && match(t, r_where));
|
|
242
|
+
if (r_sort && Object.keys(r_sort).length > 0) {
|
|
243
|
+
candidates = candidates.toSorted((a, b) => toSorted(a, b, r_sort));
|
|
244
|
+
}
|
|
245
|
+
if (r_limit !== undefined)
|
|
246
|
+
candidates = candidates.slice(0, r_limit);
|
|
247
|
+
const got = candidates[0];
|
|
248
|
+
(out[i])[r_name] = got ? project_rel(got) : null;
|
|
249
|
+
}
|
|
250
|
+
continue;
|
|
251
|
+
}
|
|
252
|
+
// non-reverse: FK on target points to parent PK
|
|
253
|
+
const parent_pk = as.pk;
|
|
254
|
+
if (parent_pk === null)
|
|
255
|
+
throw E.relation_requires_pk("parent");
|
|
256
|
+
const parent_keys = new Set(base_full.map(r => r[parent_pk]));
|
|
257
|
+
const grouped = new Map();
|
|
258
|
+
for (const row of target) {
|
|
259
|
+
const key = row[fk];
|
|
260
|
+
if (!parent_keys.has(key))
|
|
261
|
+
continue;
|
|
262
|
+
if (!match(row, r_where))
|
|
263
|
+
continue;
|
|
264
|
+
const bucket = grouped.get(key);
|
|
265
|
+
if (bucket)
|
|
266
|
+
bucket.push(row);
|
|
267
|
+
else
|
|
268
|
+
grouped.set(key, [row]);
|
|
269
|
+
}
|
|
270
|
+
for (let i = 0; i < out.length; i++) {
|
|
271
|
+
const parent_full = base_full[i];
|
|
272
|
+
const key = parent_full[parent_pk];
|
|
273
|
+
let rows = grouped.get(key) ?? [];
|
|
274
|
+
if (r_sort && Object.keys(r_sort).length > 0) {
|
|
275
|
+
rows = rows.toSorted((a, b) => toSorted(a, b, r_sort));
|
|
276
|
+
}
|
|
277
|
+
if (kind === "one") {
|
|
278
|
+
if (r_limit !== undefined)
|
|
279
|
+
rows = rows.slice(0, r_limit);
|
|
280
|
+
const got = rows[0];
|
|
281
|
+
(out[i])[r_name] = got ? project_rel(got) : null;
|
|
282
|
+
}
|
|
283
|
+
else {
|
|
284
|
+
if (r_limit !== undefined)
|
|
285
|
+
rows = rows.slice(0, r_limit);
|
|
286
|
+
(out[i])[r_name] = rows.map(project_rel);
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
return out;
|
|
291
|
+
}
|
|
292
|
+
async update(as, args) {
|
|
293
|
+
assert.nonempty(args.set);
|
|
294
|
+
assert.dict(args.where);
|
|
295
|
+
const table = this.#use(as.table);
|
|
296
|
+
const matched = table.filter(record => match(record, args.where));
|
|
297
|
+
const pk = as.pk;
|
|
298
|
+
return matched.map(record => {
|
|
299
|
+
const changed = entries({ ...record, ...args.set })
|
|
300
|
+
.filter(([, value]) => value !== null)
|
|
301
|
+
.get();
|
|
302
|
+
const index = pk !== null
|
|
303
|
+
? table.findIndex(stored => stored[pk] === record[pk])
|
|
304
|
+
: table.findIndex(stored => stored === record);
|
|
305
|
+
table.splice(index, 1, changed);
|
|
306
|
+
return changed;
|
|
307
|
+
}).length;
|
|
308
|
+
}
|
|
309
|
+
delete(as, args) {
|
|
310
|
+
assert.nonempty(args.where);
|
|
311
|
+
const table = this.#use(as.table);
|
|
312
|
+
const size_before = table.length;
|
|
313
|
+
this.#tables[as.table] = table.filter(record => !match(record, args.where));
|
|
314
|
+
return size_before - this.#use(as.table).length;
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
//# sourceMappingURL=MemoryDB.js.map
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import type Schema from "#
|
|
2
|
-
import type InferStoreOut from "pema
|
|
3
|
-
import type StoreSchema from "pema/StoreSchema";
|
|
1
|
+
import type Schema from "#db/Schema";
|
|
2
|
+
import type { InferStoreOut, StoreSchema } from "pema";
|
|
4
3
|
type X<T> = {
|
|
5
4
|
[K in keyof T]: T[K];
|
|
6
5
|
} & {};
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import type MaybePromise from "@rcompat/type
|
|
2
|
-
import type DataType from "pema
|
|
3
|
-
import type Dict from "@rcompat/type/Dict";
|
|
1
|
+
import type { Dict, MaybePromise } from "@rcompat/type";
|
|
2
|
+
import type { DataType } from "pema";
|
|
4
3
|
type TypeMap<Columns extends Dict = Dict> = {
|
|
5
4
|
[K in keyof DataType]: {
|
|
6
5
|
[C in keyof Columns]: {
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type As from "#db/As";
|
|
2
|
+
import type DataDict from "#db/DataDict";
|
|
3
|
+
import type Sort from "#db/Sort";
|
|
4
|
+
import type { Dict } from "@rcompat/type";
|
|
5
|
+
type With = Dict<{
|
|
6
|
+
as: As;
|
|
7
|
+
kind: "one" | "many";
|
|
8
|
+
fk: string;
|
|
9
|
+
reverse?: boolean;
|
|
10
|
+
where: DataDict;
|
|
11
|
+
fields?: string[];
|
|
12
|
+
sort?: Sort;
|
|
13
|
+
limit?: number;
|
|
14
|
+
}>;
|
|
15
|
+
export type { With as default };
|
|
16
|
+
//# sourceMappingURL=With.d.ts.map
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type As from "#db/As";
|
|
2
|
+
import type ReadArgs from "#db/ReadArgs";
|
|
3
|
+
import type ReadRelationsArgs from "#db/ReadRelationsArgs";
|
|
4
|
+
import type With from "#db/With";
|
|
5
|
+
import type { Dict } from "@rcompat/type";
|
|
6
|
+
declare const BASE: {
|
|
7
|
+
withed(args: ReadArgs & {
|
|
8
|
+
with?: With;
|
|
9
|
+
}): args is ReadRelationsArgs;
|
|
10
|
+
fields(base: string[] | undefined, ...add: (string | null)[]): string[] | undefined;
|
|
11
|
+
project(row: Dict, fields?: string[]): Dict;
|
|
12
|
+
expand(as: As, fields: string[] | undefined, relations: With): string[] | undefined;
|
|
13
|
+
BIGINT_STRING_TYPES: string[];
|
|
14
|
+
UNSIGNED_BIGINT_TYPES: string[];
|
|
15
|
+
INT_TYPES: string[];
|
|
16
|
+
};
|
|
17
|
+
export default BASE;
|
|
18
|
+
//# sourceMappingURL=common.d.ts.map
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
const UNSIGNED_BIGINT_TYPES = ["u64", "u128"];
|
|
2
|
+
const SIGNED_BIGINT_TYPES = ["i128"];
|
|
3
|
+
const BIGINT_STRING_TYPES = [...UNSIGNED_BIGINT_TYPES, ...SIGNED_BIGINT_TYPES];
|
|
4
|
+
const INT_TYPES = ["u8", "u16", "u32", "i8", "i16", "i32"];
|
|
5
|
+
const BASE = {
|
|
6
|
+
withed(args) {
|
|
7
|
+
return args.with !== undefined;
|
|
8
|
+
},
|
|
9
|
+
fields(base, ...add) {
|
|
10
|
+
if (base === undefined)
|
|
11
|
+
return undefined;
|
|
12
|
+
const set = new Set(base);
|
|
13
|
+
for (const f of add)
|
|
14
|
+
if (f !== null)
|
|
15
|
+
set.add(f);
|
|
16
|
+
return [...set];
|
|
17
|
+
},
|
|
18
|
+
project(row, fields) {
|
|
19
|
+
if (fields === undefined || fields.length === 0)
|
|
20
|
+
return { ...row };
|
|
21
|
+
const out = {};
|
|
22
|
+
for (const k of fields)
|
|
23
|
+
if (k in row)
|
|
24
|
+
out[k] = row[k];
|
|
25
|
+
return out;
|
|
26
|
+
},
|
|
27
|
+
expand(as, fields, relations) {
|
|
28
|
+
const fks = Object.values(relations).flatMap(r => r.reverse ? [r.fk] : []);
|
|
29
|
+
return BASE.fields(fields, as.pk, ...fks);
|
|
30
|
+
},
|
|
31
|
+
BIGINT_STRING_TYPES,
|
|
32
|
+
UNSIGNED_BIGINT_TYPES,
|
|
33
|
+
INT_TYPES,
|
|
34
|
+
};
|
|
35
|
+
export default BASE;
|
|
36
|
+
//# sourceMappingURL=common.js.map
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
declare function db_missing(): import("../AppError.js").default;
|
|
2
|
+
declare function store_name_required(): import("../AppError.js").default;
|
|
3
|
+
declare function unregistered_schema(): import("../AppError.js").default;
|
|
4
|
+
declare function record_not_found(field: string, value: string | number | bigint): import("../AppError.js").default;
|
|
5
|
+
declare function key_duplicate(key: string): import("../AppError.js").default;
|
|
6
|
+
declare function pk_undefined(store: string): import("../AppError.js").default;
|
|
7
|
+
declare function pk_immutable(pk: string): import("../AppError.js").default;
|
|
8
|
+
declare function pk_duplicate(pk: string): import("../AppError.js").default;
|
|
9
|
+
declare function pk_invalid(pk: unknown): import("../AppError.js").default;
|
|
10
|
+
declare function pk_required(table: string): import("../AppError.js").default;
|
|
11
|
+
type Context = "select" | "where" | "sort" | "insert" | "set";
|
|
12
|
+
declare function field_unknown(field: string, context: Context): import("../AppError.js").default;
|
|
13
|
+
declare function field_duplicate(field: string, context: Context): import("../AppError.js").default;
|
|
14
|
+
declare function field_required(operator: string): import("../AppError.js").default;
|
|
15
|
+
declare function field_undefined(field: string, context: Context): import("../AppError.js").default;
|
|
16
|
+
declare function fields_unknown(fields: string[]): import("../AppError.js").default;
|
|
17
|
+
declare function null_not_allowed(field: string): import("../AppError.js").default;
|
|
18
|
+
declare function wrong_type(type: "string" | "number" | "bigint" | "boolean" | "url" | "date" | "blob", field: string, got: unknown, op?: string): import("../AppError.js").default;
|
|
19
|
+
declare function operator_unknown(field: string, operator: string): import("../AppError.js").default;
|
|
20
|
+
declare function operator_empty(field: string): import("../AppError.js").default;
|
|
21
|
+
declare function operator_scalar(field: string): import("../AppError.js").default;
|
|
22
|
+
declare function sort_empty(): import("../AppError.js").default;
|
|
23
|
+
declare function sort_invalid(): import("../AppError.js").default;
|
|
24
|
+
declare function sort_invalid_value(field: string, value: unknown): import("../AppError.js").default;
|
|
25
|
+
declare function select_empty(): import("../AppError.js").default;
|
|
26
|
+
declare function select_invalid(): import("../AppError.js").default;
|
|
27
|
+
declare function limit_invalid(): import("../AppError.js").default;
|
|
28
|
+
declare function select_invalid_value(index: number, x: unknown): import("../AppError.js").default;
|
|
29
|
+
declare function where_required(): import("../AppError.js").default;
|
|
30
|
+
declare function where_invalid(): import("../AppError.js").default;
|
|
31
|
+
declare function where_invalid_value(field: string, value: unknown): import("../AppError.js").default;
|
|
32
|
+
declare function set_empty(): import("../AppError.js").default;
|
|
33
|
+
declare function relation_unknown(relation: string): import("../AppError.js").default;
|
|
34
|
+
declare function relation_requires_pk(type: "target" | "parent"): import("../AppError.js").default;
|
|
35
|
+
declare function option_unknown(option: string): import("../AppError.js").default;
|
|
36
|
+
declare function identifier_invalid(identifier: string): import("../AppError.js").default;
|
|
37
|
+
declare function count_with_invalid(): import("../AppError.js").default;
|
|
38
|
+
declare function count_overflow(table: string, count: unknown): import("../AppError.js").default;
|
|
39
|
+
declare const errors: {
|
|
40
|
+
option_unknown: typeof option_unknown;
|
|
41
|
+
identifier_invalid: typeof identifier_invalid;
|
|
42
|
+
count_with_invalid: typeof count_with_invalid;
|
|
43
|
+
count_overflow: typeof count_overflow;
|
|
44
|
+
relation_unknown: typeof relation_unknown;
|
|
45
|
+
relation_requires_pk: typeof relation_requires_pk;
|
|
46
|
+
sort_empty: typeof sort_empty;
|
|
47
|
+
sort_invalid: typeof sort_invalid;
|
|
48
|
+
sort_invalid_value: typeof sort_invalid_value;
|
|
49
|
+
select_empty: typeof select_empty;
|
|
50
|
+
select_invalid: typeof select_invalid;
|
|
51
|
+
select_invalid_value: typeof select_invalid_value;
|
|
52
|
+
where_required: typeof where_required;
|
|
53
|
+
where_invalid: typeof where_invalid;
|
|
54
|
+
where_invalid_value: typeof where_invalid_value;
|
|
55
|
+
set_empty: typeof set_empty;
|
|
56
|
+
limit_invalid: typeof limit_invalid;
|
|
57
|
+
operator_unknown: typeof operator_unknown;
|
|
58
|
+
operator_empty: typeof operator_empty;
|
|
59
|
+
wrong_type: typeof wrong_type;
|
|
60
|
+
operator_scalar: typeof operator_scalar;
|
|
61
|
+
null_not_allowed: typeof null_not_allowed;
|
|
62
|
+
field_unknown: typeof field_unknown;
|
|
63
|
+
field_duplicate: typeof field_duplicate;
|
|
64
|
+
field_required: typeof field_required;
|
|
65
|
+
field_undefined: typeof field_undefined;
|
|
66
|
+
fields_unknown: typeof fields_unknown;
|
|
67
|
+
pk_undefined: typeof pk_undefined;
|
|
68
|
+
pk_immutable: typeof pk_immutable;
|
|
69
|
+
pk_duplicate: typeof pk_duplicate;
|
|
70
|
+
pk_invalid: typeof pk_invalid;
|
|
71
|
+
pk_required: typeof pk_required;
|
|
72
|
+
db_missing: typeof db_missing;
|
|
73
|
+
store_name_required: typeof store_name_required;
|
|
74
|
+
unregistered_schema: typeof unregistered_schema;
|
|
75
|
+
record_not_found: typeof record_not_found;
|
|
76
|
+
key_duplicate: typeof key_duplicate;
|
|
77
|
+
};
|
|
78
|
+
export type Code = keyof typeof errors;
|
|
79
|
+
export declare const Code: { [K in Code]: K; };
|
|
80
|
+
export default errors;
|
|
81
|
+
//# sourceMappingURL=error.d.ts.map
|