velocious 1.0.263 → 1.0.265
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/README.md +14 -0
- package/build/bin/velocious.js +7 -2
- package/build/src/application.d.ts +6 -6
- package/build/src/application.d.ts.map +1 -1
- package/build/src/authorization/ability.d.ts +4 -4
- package/build/src/authorization/ability.d.ts.map +1 -1
- package/build/src/authorization/base-resource.d.ts +4 -4
- package/build/src/authorization/base-resource.d.ts.map +1 -1
- package/build/src/background-jobs/client.d.ts +2 -2
- package/build/src/background-jobs/client.d.ts.map +1 -1
- package/build/src/background-jobs/job-runner.d.ts +2 -2
- package/build/src/background-jobs/job-runner.d.ts.map +1 -1
- package/build/src/background-jobs/job-runner.js +5 -3
- package/build/src/background-jobs/job.d.ts +1 -1
- package/build/src/background-jobs/job.d.ts.map +1 -1
- package/build/src/background-jobs/json-socket.d.ts +1 -1
- package/build/src/background-jobs/json-socket.d.ts.map +1 -1
- package/build/src/background-jobs/main.d.ts +34 -12
- package/build/src/background-jobs/main.d.ts.map +1 -1
- package/build/src/background-jobs/main.js +36 -6
- package/build/src/background-jobs/scheduler.d.ts +21 -0
- package/build/src/background-jobs/scheduler.d.ts.map +1 -1
- package/build/src/background-jobs/scheduler.js +3 -2
- package/build/src/background-jobs/status-reporter.d.ts +14 -10
- package/build/src/background-jobs/status-reporter.d.ts.map +1 -1
- package/build/src/background-jobs/status-reporter.js +11 -6
- package/build/src/background-jobs/store.d.ts +73 -117
- package/build/src/background-jobs/store.d.ts.map +1 -1
- package/build/src/background-jobs/store.js +62 -24
- package/build/src/background-jobs/types.d.ts +175 -2
- package/build/src/background-jobs/types.d.ts.map +1 -1
- package/build/src/background-jobs/types.js +44 -1
- package/build/src/background-jobs/worker.d.ts +21 -17
- package/build/src/background-jobs/worker.d.ts.map +1 -1
- package/build/src/background-jobs/worker.js +30 -9
- package/build/src/cli/base-command.d.ts +5 -5
- package/build/src/cli/base-command.d.ts.map +1 -1
- package/build/src/cli/commands/db/create.d.ts.map +1 -1
- package/build/src/cli/commands/db/create.js +11 -3
- package/build/src/cli/commands/db/schema/load.d.ts +7 -0
- package/build/src/cli/commands/db/schema/load.d.ts.map +1 -0
- package/build/src/cli/commands/db/schema/load.js +9 -0
- package/build/src/cli/index.d.ts +25 -13
- package/build/src/cli/index.d.ts.map +1 -1
- package/build/src/cli/index.js +62 -4
- package/build/src/cli/use-browser-cli.d.ts +2 -2
- package/build/src/cli/use-browser-cli.d.ts.map +1 -1
- package/build/src/cli/use-browser-cli.js +4 -4
- package/build/src/configuration-types.d.ts +160 -136
- package/build/src/configuration-types.d.ts.map +1 -1
- package/build/src/configuration.d.ts +32 -31
- package/build/src/configuration.d.ts.map +1 -1
- package/build/src/configuration.js +6 -5
- package/build/src/controller.d.ts +14 -14
- package/build/src/controller.d.ts.map +1 -1
- package/build/src/controller.js +19 -8
- package/build/src/database/drivers/base-columns-index.d.ts +1 -1
- package/build/src/database/drivers/base-columns-index.d.ts.map +1 -1
- package/build/src/database/drivers/base.d.ts +15 -14
- package/build/src/database/drivers/base.d.ts.map +1 -1
- package/build/src/database/drivers/base.js +6 -3
- package/build/src/database/drivers/mssql/column.d.ts +1 -0
- package/build/src/database/drivers/mssql/column.d.ts.map +1 -1
- package/build/src/database/drivers/mssql/connect-connection.d.ts +1 -1
- package/build/src/database/drivers/mssql/connect-connection.d.ts.map +1 -1
- package/build/src/database/drivers/mssql/index.d.ts +4 -3
- package/build/src/database/drivers/mssql/index.d.ts.map +1 -1
- package/build/src/database/drivers/mssql/index.js +8 -12
- package/build/src/database/drivers/mssql/table.d.ts +1 -0
- package/build/src/database/drivers/mssql/table.d.ts.map +1 -1
- package/build/src/database/drivers/mysql/column.d.ts +1 -0
- package/build/src/database/drivers/mysql/column.d.ts.map +1 -1
- package/build/src/database/drivers/mysql/index.d.ts +3 -2
- package/build/src/database/drivers/mysql/index.d.ts.map +1 -1
- package/build/src/database/drivers/mysql/index.js +3 -1
- package/build/src/database/drivers/mysql/query.d.ts +1 -1
- package/build/src/database/drivers/mysql/query.d.ts.map +1 -1
- package/build/src/database/drivers/mysql/query.js +7 -5
- package/build/src/database/drivers/mysql/table.d.ts +1 -0
- package/build/src/database/drivers/mysql/table.d.ts.map +1 -1
- package/build/src/database/drivers/pgsql/column.d.ts +1 -0
- package/build/src/database/drivers/pgsql/column.d.ts.map +1 -1
- package/build/src/database/drivers/pgsql/index.d.ts +3 -2
- package/build/src/database/drivers/pgsql/index.d.ts.map +1 -1
- package/build/src/database/drivers/pgsql/index.js +3 -1
- package/build/src/database/drivers/pgsql/table.d.ts +1 -0
- package/build/src/database/drivers/pgsql/table.d.ts.map +1 -1
- package/build/src/database/drivers/sqlite/base.d.ts +9 -6
- package/build/src/database/drivers/sqlite/base.d.ts.map +1 -1
- package/build/src/database/drivers/sqlite/base.js +22 -6
- package/build/src/database/drivers/sqlite/column.d.ts +1 -0
- package/build/src/database/drivers/sqlite/column.d.ts.map +1 -1
- package/build/src/database/drivers/sqlite/connection-sql-js.d.ts +2 -2
- package/build/src/database/drivers/sqlite/connection-sql-js.d.ts.map +1 -1
- package/build/src/database/drivers/sqlite/index.native.d.ts +1 -2
- package/build/src/database/drivers/sqlite/index.native.d.ts.map +1 -1
- package/build/src/database/drivers/sqlite/index.native.js +8 -3
- package/build/src/database/drivers/sqlite/index.web.d.ts +3 -2
- package/build/src/database/drivers/sqlite/index.web.d.ts.map +1 -1
- package/build/src/database/drivers/sqlite/index.web.js +5 -1
- package/build/src/database/drivers/sqlite/query.web.d.ts +1 -1
- package/build/src/database/drivers/sqlite/query.web.d.ts.map +1 -1
- package/build/src/database/drivers/sqlite/table.d.ts +2 -1
- package/build/src/database/drivers/sqlite/table.d.ts.map +1 -1
- package/build/src/database/drivers/sqlite/table.js +3 -2
- package/build/src/database/migration/index.d.ts +10 -10
- package/build/src/database/migration/index.d.ts.map +1 -1
- package/build/src/database/migrator/types.d.ts +1 -1
- package/build/src/database/migrator/types.d.ts.map +1 -1
- package/build/src/database/migrator.d.ts +1 -1
- package/build/src/database/migrator.d.ts.map +1 -1
- package/build/src/database/pool/async-tracked-multi-connection.d.ts +1 -0
- package/build/src/database/pool/async-tracked-multi-connection.d.ts.map +1 -1
- package/build/src/database/pool/async-tracked-multi-connection.js +12 -8
- package/build/src/database/pool/base-methods-forward.d.ts.map +1 -1
- package/build/src/database/pool/base-methods-forward.js +6 -4
- package/build/src/database/pool/base.d.ts +2 -1
- package/build/src/database/pool/base.d.ts.map +1 -1
- package/build/src/database/pool/base.js +6 -4
- package/build/src/database/pool/single-multi-use.d.ts +1 -1
- package/build/src/database/pool/single-multi-use.d.ts.map +1 -1
- package/build/src/database/query/alter-table-base.d.ts.map +1 -1
- package/build/src/database/query/alter-table-base.js +8 -4
- package/build/src/database/query/base.d.ts +1 -1
- package/build/src/database/query/base.d.ts.map +1 -1
- package/build/src/database/query/create-database-base.d.ts +2 -2
- package/build/src/database/query/create-database-base.d.ts.map +1 -1
- package/build/src/database/query/create-index-base.d.ts +6 -6
- package/build/src/database/query/create-index-base.d.ts.map +1 -1
- package/build/src/database/query/create-table-base.d.ts +3 -3
- package/build/src/database/query/create-table-base.d.ts.map +1 -1
- package/build/src/database/query/create-table-base.js +8 -4
- package/build/src/database/query/drop-table-base.d.ts +4 -4
- package/build/src/database/query/drop-table-base.d.ts.map +1 -1
- package/build/src/database/query/index.d.ts +16 -16
- package/build/src/database/query/index.d.ts.map +1 -1
- package/build/src/database/query/index.js +4 -4
- package/build/src/database/query/insert-base.d.ts +10 -10
- package/build/src/database/query/insert-base.d.ts.map +1 -1
- package/build/src/database/query/join-base.d.ts +1 -1
- package/build/src/database/query/join-base.d.ts.map +1 -1
- package/build/src/database/query/join-object.d.ts +1 -1
- package/build/src/database/query/join-object.d.ts.map +1 -1
- package/build/src/database/query/join-object.js +4 -1
- package/build/src/database/query/model-class-query.d.ts +11 -11
- package/build/src/database/query/model-class-query.d.ts.map +1 -1
- package/build/src/database/query/model-class-query.js +29 -18
- package/build/src/database/query/select-base.d.ts +1 -1
- package/build/src/database/query/select-base.d.ts.map +1 -1
- package/build/src/database/query/where-base.d.ts +1 -1
- package/build/src/database/query/where-base.d.ts.map +1 -1
- package/build/src/database/query/where-hash.d.ts +1 -0
- package/build/src/database/query/where-hash.d.ts.map +1 -1
- package/build/src/database/query/where-model-class-hash.d.ts +2 -1
- package/build/src/database/query/where-model-class-hash.d.ts.map +1 -1
- package/build/src/database/query/where-model-class-hash.js +15 -7
- package/build/src/database/query/where-not.d.ts +1 -0
- package/build/src/database/query/where-not.d.ts.map +1 -1
- package/build/src/database/query/where-plain.d.ts +1 -0
- package/build/src/database/query/where-plain.d.ts.map +1 -1
- package/build/src/database/query-parser/base-query-parser.d.ts +1 -1
- package/build/src/database/query-parser/base-query-parser.d.ts.map +1 -1
- package/build/src/database/record/attachments/download.d.ts +3 -3
- package/build/src/database/record/attachments/download.d.ts.map +1 -1
- package/build/src/database/record/attachments/handle.d.ts +2 -1
- package/build/src/database/record/attachments/handle.d.ts.map +1 -1
- package/build/src/database/record/attachments/handle.js +3 -2
- package/build/src/database/record/attachments/normalize-input.d.ts +4 -4
- package/build/src/database/record/attachments/normalize-input.d.ts.map +1 -1
- package/build/src/database/record/attachments/storage-drivers/filesystem.d.ts +1 -1
- package/build/src/database/record/attachments/storage-drivers/filesystem.d.ts.map +1 -1
- package/build/src/database/record/attachments/storage-drivers/native.d.ts +3 -3
- package/build/src/database/record/attachments/storage-drivers/native.d.ts.map +1 -1
- package/build/src/database/record/attachments/storage-drivers/s3.d.ts +2 -2
- package/build/src/database/record/attachments/storage-drivers/s3.d.ts.map +1 -1
- package/build/src/database/record/attachments/storage-drivers/s3.js +11 -3
- package/build/src/database/record/attachments/store.d.ts +3 -3
- package/build/src/database/record/attachments/store.d.ts.map +1 -1
- package/build/src/database/record/attachments/store.js +3 -2
- package/build/src/database/record/index.d.ts +19 -19
- package/build/src/database/record/index.d.ts.map +1 -1
- package/build/src/database/record/index.js +53 -35
- package/build/src/database/record/instance-relationships/base.d.ts +10 -8
- package/build/src/database/record/instance-relationships/base.d.ts.map +1 -1
- package/build/src/database/record/instance-relationships/base.js +9 -5
- package/build/src/database/record/instance-relationships/belongs-to.d.ts +4 -4
- package/build/src/database/record/instance-relationships/belongs-to.d.ts.map +1 -1
- package/build/src/database/record/instance-relationships/belongs-to.js +9 -2
- package/build/src/database/record/instance-relationships/has-many.d.ts +4 -9
- package/build/src/database/record/instance-relationships/has-many.d.ts.map +1 -1
- package/build/src/database/record/instance-relationships/has-many.js +12 -8
- package/build/src/database/record/instance-relationships/has-one.d.ts +7 -14
- package/build/src/database/record/instance-relationships/has-one.d.ts.map +1 -1
- package/build/src/database/record/instance-relationships/has-one.js +11 -5
- package/build/src/database/record/relationships/base.d.ts +18 -18
- package/build/src/database/record/relationships/base.d.ts.map +1 -1
- package/build/src/database/record/relationships/base.js +3 -3
- package/build/src/database/record/relationships/belongs-to.d.ts +1 -1
- package/build/src/database/record/relationships/belongs-to.d.ts.map +1 -1
- package/build/src/database/record/relationships/has-many.d.ts +1 -1
- package/build/src/database/record/relationships/has-many.d.ts.map +1 -1
- package/build/src/database/record/relationships/has-one.d.ts +1 -1
- package/build/src/database/record/relationships/has-one.d.ts.map +1 -1
- package/build/src/database/table-data/index.d.ts +1 -1
- package/build/src/database/table-data/index.d.ts.map +1 -1
- package/build/src/database/table-data/table-column.d.ts +12 -12
- package/build/src/database/table-data/table-column.d.ts.map +1 -1
- package/build/src/database/table-data/table-foreign-key.d.ts +4 -4
- package/build/src/database/table-data/table-foreign-key.d.ts.map +1 -1
- package/build/src/database/table-data/table-foreign-key.js +2 -2
- package/build/src/database/table-data/table-index.d.ts +3 -3
- package/build/src/database/table-data/table-index.d.ts.map +1 -1
- package/build/src/database/table-data/table-reference.d.ts +1 -1
- package/build/src/database/table-data/table-reference.d.ts.map +1 -1
- package/build/src/environment-handlers/base.d.ts +10 -5
- package/build/src/environment-handlers/base.d.ts.map +1 -1
- package/build/src/environment-handlers/base.js +10 -2
- package/build/src/environment-handlers/browser.d.ts +5 -26
- package/build/src/environment-handlers/browser.d.ts.map +1 -1
- package/build/src/environment-handlers/browser.js +14 -4
- package/build/src/environment-handlers/node/cli/commands/console.js +3 -3
- package/build/src/environment-handlers/node/cli/commands/db/schema/load.d.ts +24 -0
- package/build/src/environment-handlers/node/cli/commands/db/schema/load.d.ts.map +1 -0
- package/build/src/environment-handlers/node/cli/commands/db/schema/load.js +57 -0
- package/build/src/environment-handlers/node/cli/commands/db/seed.d.ts.map +1 -1
- package/build/src/environment-handlers/node/cli/commands/db/seed.js +4 -2
- package/build/src/environment-handlers/node/cli/commands/destroy/migration.d.ts.map +1 -1
- package/build/src/environment-handlers/node/cli/commands/destroy/migration.js +4 -2
- package/build/src/environment-handlers/node/cli/commands/generate/base-models.d.ts.map +1 -1
- package/build/src/environment-handlers/node/cli/commands/generate/base-models.js +9 -4
- package/build/src/environment-handlers/node/cli/commands/generate/frontend-models.d.ts +1 -1
- package/build/src/environment-handlers/node/cli/commands/generate/frontend-models.d.ts.map +1 -1
- package/build/src/environment-handlers/node/cli/commands/generate/frontend-models.js +9 -4
- package/build/src/environment-handlers/node/cli/commands/generate/migration.d.ts.map +1 -1
- package/build/src/environment-handlers/node/cli/commands/generate/migration.js +4 -2
- package/build/src/environment-handlers/node/cli/commands/generate/model.d.ts.map +1 -1
- package/build/src/environment-handlers/node/cli/commands/generate/model.js +4 -2
- package/build/src/environment-handlers/node/cli/commands/routes.d.ts.map +1 -1
- package/build/src/environment-handlers/node/cli/commands/routes.js +3 -1
- package/build/src/environment-handlers/node/cli/commands/run-script.d.ts.map +1 -1
- package/build/src/environment-handlers/node/cli/commands/run-script.js +5 -3
- package/build/src/environment-handlers/node/cli/commands/runner.d.ts.map +1 -1
- package/build/src/environment-handlers/node/cli/commands/runner.js +5 -3
- package/build/src/environment-handlers/node/cli/commands/server.d.ts +3 -3
- package/build/src/environment-handlers/node/cli/commands/server.d.ts.map +1 -1
- package/build/src/environment-handlers/node/cli/commands/server.js +2 -2
- package/build/src/environment-handlers/node/cli/commands/test.js +2 -2
- package/build/src/environment-handlers/node.d.ts +9 -1
- package/build/src/environment-handlers/node.d.ts.map +1 -1
- package/build/src/environment-handlers/node.js +10 -2
- package/build/src/error-logger.d.ts.map +1 -1
- package/build/src/error-logger.js +1 -5
- package/build/src/frontend-model-controller.d.ts +17 -17
- package/build/src/frontend-model-controller.d.ts.map +1 -1
- package/build/src/frontend-model-controller.js +31 -12
- package/build/src/frontend-model-resource/base-resource.d.ts +14 -12
- package/build/src/frontend-model-resource/base-resource.d.ts.map +1 -1
- package/build/src/frontend-model-resource/base-resource.js +16 -4
- package/build/src/frontend-models/base.d.ts +27 -20
- package/build/src/frontend-models/base.d.ts.map +1 -1
- package/build/src/frontend-models/base.js +31 -12
- package/build/src/frontend-models/query.d.ts +29 -8
- package/build/src/frontend-models/query.d.ts.map +1 -1
- package/build/src/frontend-models/query.js +18 -4
- package/build/src/http-client/index.d.ts +11 -11
- package/build/src/http-client/index.d.ts.map +1 -1
- package/build/src/http-client/request.d.ts +2 -2
- package/build/src/http-client/request.d.ts.map +1 -1
- package/build/src/http-client/response.d.ts +1 -1
- package/build/src/http-client/response.d.ts.map +1 -1
- package/build/src/http-client/websocket-client.d.ts +26 -12
- package/build/src/http-client/websocket-client.d.ts.map +1 -1
- package/build/src/http-client/websocket-client.js +26 -12
- package/build/src/http-server/client/index.d.ts +4 -4
- package/build/src/http-server/client/index.d.ts.map +1 -1
- package/build/src/http-server/client/index.js +17 -11
- package/build/src/http-server/client/params-to-object.d.ts.map +1 -1
- package/build/src/http-server/client/params-to-object.js +14 -11
- package/build/src/http-server/client/request-buffer/form-data-part.d.ts +15 -7
- package/build/src/http-server/client/request-buffer/form-data-part.d.ts.map +1 -1
- package/build/src/http-server/client/request-buffer/form-data-part.js +9 -1
- package/build/src/http-server/client/request-buffer/index.d.ts +15 -14
- package/build/src/http-server/client/request-buffer/index.d.ts.map +1 -1
- package/build/src/http-server/client/request-buffer/index.js +19 -7
- package/build/src/http-server/client/request-parser.d.ts +1 -1
- package/build/src/http-server/client/request-parser.d.ts.map +1 -1
- package/build/src/http-server/client/request-parser.js +2 -2
- package/build/src/http-server/client/request-runner.d.ts.map +1 -1
- package/build/src/http-server/client/request-runner.js +4 -2
- package/build/src/http-server/client/request.d.ts +3 -3
- package/build/src/http-server/client/request.d.ts.map +1 -1
- package/build/src/http-server/client/response.d.ts +4 -4
- package/build/src/http-server/client/response.d.ts.map +1 -1
- package/build/src/http-server/client/uploaded-file/uploaded-file.d.ts +2 -2
- package/build/src/http-server/client/uploaded-file/uploaded-file.d.ts.map +1 -1
- package/build/src/http-server/client/websocket-request.d.ts +22 -16
- package/build/src/http-server/client/websocket-request.d.ts.map +1 -1
- package/build/src/http-server/client/websocket-request.js +13 -5
- package/build/src/http-server/client/websocket-session.d.ts +52 -17
- package/build/src/http-server/client/websocket-session.d.ts.map +1 -1
- package/build/src/http-server/client/websocket-session.js +59 -10
- package/build/src/http-server/cookie.d.ts +17 -17
- package/build/src/http-server/cookie.d.ts.map +1 -1
- package/build/src/http-server/index.d.ts +4 -4
- package/build/src/http-server/index.d.ts.map +1 -1
- package/build/src/http-server/index.js +4 -4
- package/build/src/http-server/server-client.d.ts +3 -3
- package/build/src/http-server/server-client.d.ts.map +1 -1
- package/build/src/http-server/server-client.js +4 -4
- package/build/src/http-server/websocket-channel.d.ts +3 -3
- package/build/src/http-server/websocket-channel.d.ts.map +1 -1
- package/build/src/http-server/websocket-events-host.d.ts.map +1 -1
- package/build/src/http-server/websocket-events-host.js +6 -3
- package/build/src/http-server/websocket-events.d.ts +2 -2
- package/build/src/http-server/websocket-events.d.ts.map +1 -1
- package/build/src/http-server/websocket-events.js +3 -1
- package/build/src/http-server/worker-handler/index.d.ts +7 -7
- package/build/src/http-server/worker-handler/index.d.ts.map +1 -1
- package/build/src/http-server/worker-handler/index.js +16 -7
- package/build/src/http-server/worker-handler/worker-thread.d.ts +9 -9
- package/build/src/http-server/worker-handler/worker-thread.d.ts.map +1 -1
- package/build/src/http-server/worker-handler/worker-thread.js +23 -13
- package/build/src/logger/console-logger.d.ts +2 -2
- package/build/src/logger/console-logger.d.ts.map +1 -1
- package/build/src/logger/file-logger.d.ts +2 -2
- package/build/src/logger/file-logger.d.ts.map +1 -1
- package/build/src/logger/outputs/array-output.d.ts +1 -1
- package/build/src/logger/outputs/array-output.d.ts.map +1 -1
- package/build/src/logger/outputs/file-output.d.ts +8 -5
- package/build/src/logger/outputs/file-output.d.ts.map +1 -1
- package/build/src/logger/outputs/file-output.js +4 -1
- package/build/src/logger.d.ts +7 -7
- package/build/src/logger.d.ts.map +1 -1
- package/build/src/mailer/backends/smtp.d.ts +3 -3
- package/build/src/mailer/backends/smtp.d.ts.map +1 -1
- package/build/src/mailer/backends/smtp.js +3 -3
- package/build/src/mailer/base.d.ts +7 -7
- package/build/src/mailer/base.d.ts.map +1 -1
- package/build/src/mailer/base.js +3 -3
- package/build/src/plugins/sqljs-wasm-route.d.ts +2 -2
- package/build/src/plugins/sqljs-wasm-route.d.ts.map +1 -1
- package/build/src/routes/base-route.d.ts +2 -2
- package/build/src/routes/base-route.d.ts.map +1 -1
- package/build/src/routes/base-route.js +2 -2
- package/build/src/routes/get-route.d.ts +5 -0
- package/build/src/routes/get-route.d.ts.map +1 -1
- package/build/src/routes/namespace-route.d.ts +1 -1
- package/build/src/routes/plugin-routes.d.ts +2 -2
- package/build/src/routes/plugin-routes.d.ts.map +1 -1
- package/build/src/routes/post-route.d.ts +5 -0
- package/build/src/routes/post-route.d.ts.map +1 -1
- package/build/src/routes/resolver.d.ts +4 -2
- package/build/src/routes/resolver.d.ts.map +1 -1
- package/build/src/routes/resolver.js +7 -3
- package/build/src/routes/resource-route.d.ts +5 -0
- package/build/src/routes/resource-route.d.ts.map +1 -1
- package/build/src/routes/root-route.d.ts +5 -0
- package/build/src/routes/root-route.d.ts.map +1 -1
- package/build/src/testing/expect-to-change.d.ts +3 -3
- package/build/src/testing/expect-to-change.d.ts.map +1 -1
- package/build/src/testing/expect-utils.d.ts.map +1 -1
- package/build/src/testing/expect-utils.js +7 -5
- package/build/src/testing/expect.d.ts +1 -1
- package/build/src/testing/expect.d.ts.map +1 -1
- package/build/src/testing/request-client.d.ts +1 -1
- package/build/src/testing/request-client.d.ts.map +1 -1
- package/build/src/testing/test-files-finder.d.ts +1 -1
- package/build/src/testing/test-files-finder.d.ts.map +1 -1
- package/build/src/testing/test-runner.d.ts +57 -37
- package/build/src/testing/test-runner.d.ts.map +1 -1
- package/build/src/testing/test-runner.js +14 -3
- package/build/src/testing/test-suite-splitter.d.ts +1 -1
- package/build/src/testing/test-suite-splitter.d.ts.map +1 -1
- package/build/src/testing/test.d.ts +14 -6
- package/build/src/testing/test.d.ts.map +1 -1
- package/build/src/testing/test.js +14 -5
- package/build/src/utils/backtrace-cleaner.d.ts +2 -2
- package/build/src/utils/backtrace-cleaner.d.ts.map +1 -1
- package/build/src/utils/split-sql-statements.d.ts +7 -0
- package/build/src/utils/split-sql-statements.d.ts.map +1 -0
- package/build/src/utils/split-sql-statements.js +77 -0
- package/build/src/utils/with-tracked-stack-async-hooks.d.ts.map +1 -1
- package/build/src/utils/with-tracked-stack-async-hooks.js +5 -3
- package/build/src/utils/with-tracked-stack.d.ts.map +1 -1
- package/build/src/utils/with-tracked-stack.js +5 -3
- package/build/src/velocious-error.d.ts +4 -4
- package/build/src/velocious-error.d.ts.map +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/package.json +10 -2
|
@@ -1,22 +1,26 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @template {typeof import("../index.js").default} MC
|
|
3
|
-
* @template {typeof import("../index.js").default} TMC
|
|
2
|
+
* @template {typeof import("../index.js").default} [MC=typeof import("../index.js").default]
|
|
3
|
+
* @template {typeof import("../index.js").default} [TMC=typeof import("../index.js").default]
|
|
4
4
|
* @typedef {object} InstanceRelationshipsBaseArgs
|
|
5
5
|
* @property {InstanceType<MC>} model - Parent model instance.
|
|
6
6
|
* @property {import("../relationships/base.js").default} relationship - Relationship metadata definition.
|
|
7
7
|
*/
|
|
8
8
|
/**
|
|
9
9
|
* A generic query over some model type.
|
|
10
|
-
* @template {typeof import("../index.js").default} MC
|
|
11
|
-
* @template {typeof import("../index.js").default} TMC
|
|
10
|
+
* @template {typeof import("../index.js").default} [MC=typeof import("../index.js").default]
|
|
11
|
+
* @template {typeof import("../index.js").default} [TMC=typeof import("../index.js").default]
|
|
12
12
|
*/
|
|
13
|
-
export default class VelociousDatabaseRecordBaseInstanceRelationship<MC extends typeof import("../index.js").default, TMC extends typeof import("../index.js").default> {
|
|
13
|
+
export default class VelociousDatabaseRecordBaseInstanceRelationship<MC extends typeof import("../index.js").default = typeof import("../index.js").default, TMC extends typeof import("../index.js").default = typeof import("../index.js").default> {
|
|
14
14
|
/**
|
|
15
15
|
* @param {InstanceRelationshipsBaseArgs<MC, TMC>} args - Options object.
|
|
16
16
|
*/
|
|
17
17
|
constructor({ model, relationship }: InstanceRelationshipsBaseArgs<MC, TMC>);
|
|
18
18
|
/** @type {boolean | undefined} */
|
|
19
19
|
_autoSave: boolean | undefined;
|
|
20
|
+
/** @type {boolean | undefined} */
|
|
21
|
+
_preloaded: boolean | undefined;
|
|
22
|
+
/** @type {InstanceType<TMC> | Array<InstanceType<TMC>> | undefined} */
|
|
23
|
+
_loaded: InstanceType<TMC> | Array<InstanceType<TMC>> | undefined;
|
|
20
24
|
_dirty: boolean;
|
|
21
25
|
model: InstanceType<MC>;
|
|
22
26
|
relationship: import("../relationships/base.js").default;
|
|
@@ -57,14 +61,12 @@ export default class VelociousDatabaseRecordBaseInstanceRelationship<MC extends
|
|
|
57
61
|
loaded(): InstanceType<TMC> | Array<InstanceType<TMC>> | undefined;
|
|
58
62
|
/** @param {InstanceType<TMC> | Array<InstanceType<TMC>> | undefined} model - Related model(s) to mark as loaded. */
|
|
59
63
|
setLoaded(model: InstanceType<TMC> | Array<InstanceType<TMC>> | undefined): void;
|
|
60
|
-
_loaded: InstanceType<TMC> | InstanceType<TMC>[];
|
|
61
64
|
/** @returns {InstanceType<TMC> | InstanceType<TMC>[] | undefined} - The loaded or undefined. */
|
|
62
65
|
getLoadedOrUndefined(): InstanceType<TMC> | InstanceType<TMC>[] | undefined;
|
|
63
66
|
/** @returns {boolean} The loaded model or models (depending on relationship type) */
|
|
64
67
|
getPreloaded(): boolean;
|
|
65
68
|
/** @param {boolean} isPreloaded - Whether the relationship is preloaded. */
|
|
66
69
|
setPreloaded(isPreloaded: boolean): void;
|
|
67
|
-
_preloaded: boolean;
|
|
68
70
|
/** @returns {string} The foreign key for this relationship */
|
|
69
71
|
getForeignKey(): string;
|
|
70
72
|
/** @returns {InstanceType<MC>} - The model. */
|
|
@@ -84,7 +86,7 @@ export default class VelociousDatabaseRecordBaseInstanceRelationship<MC extends
|
|
|
84
86
|
/** @returns {string} The type of relationship (e.g. "has_many", "belongs_to", etc.) */
|
|
85
87
|
getType(): string;
|
|
86
88
|
}
|
|
87
|
-
export type InstanceRelationshipsBaseArgs<MC extends typeof import("../index.js").default, TMC extends typeof import("../index.js").default> = {
|
|
89
|
+
export type InstanceRelationshipsBaseArgs<MC extends typeof import("../index.js").default = typeof import("../index.js").default, TMC extends typeof import("../index.js").default = typeof import("../index.js").default> = {
|
|
88
90
|
/**
|
|
89
91
|
* - Parent model instance.
|
|
90
92
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../../src/database/record/instance-relationships/base.js"],"names":[],"mappings":"AAEA;;;;;;GAMG;AAEH;;;;GAIG;AACH,
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../../src/database/record/instance-relationships/base.js"],"names":[],"mappings":"AAEA;;;;;;GAMG;AAEH;;;;GAIG;AACH,qEAHqD,EAAE,SAA1C,cAAe,aAAa,EAAE,OAAQ,yCACE,GAAG,SAA3C,cAAe,aAAa,EAAE,OAAQ;IAUjD;;OAEG;IACH,qCAFW,6BAA6B,CAAC,EAAE,EAAE,GAAG,CAAC,EAMhD;IAdD,kCAAkC;IAClC,WADW,OAAO,GAAG,SAAS,CACT;IACrB,kCAAkC;IAClC,YADW,OAAO,GAAG,SAAS,CACR;IACtB,uEAAuE;IACvE,SADW,YAAY,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAChD;IAMjB,gBAAmB;IACnB,wBAAkB;IAClB,yDAAgC;IAGlC;;;;OAIG;IACH,oBAHW,YAAY,CAAC,GAAG,CAAC,EAAE,GAAG,YAAY,CAAC,GAAG,CAAC,GACrC,IAAI,CAIhB;IAED;;;;OAIG;IACH,kBAHW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACjB,YAAY,CAAC,GAAG,CAAC,CAI7B;IAED,kHAAkH;IAClH,eADc,OAAO,GAAG,SAAS,CACM;IAEvC;;;OAGG;IACH,8BAHW,OAAO,GACL,IAAI,CAEkD;IAEnE;;;OAGG;IACH,mBAHW,OAAO,GACL,IAAI,CAE4B;IAE7C,+EAA+E;IAC/E,YADc,OAAO,CACY;IAEjC;;;OAGG;IACH,QAFa,OAAO,CAAC,IAAI,CAAC,CAIzB;IAED,sEAAsE;IACtE,YADe,OAAO,CACqB;IAE3C,sIAAsI;IACtI,UADc,YAAY,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAOrE;IAED,oHAAoH;IACpH,iBADY,YAAY,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,QAC3B;IAEzC,iGAAiG;IACjG,wBADc,YAAY,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,EAAE,GAAG,SAAS,CACnB;IAE9C,qFAAqF;IACrF,gBADc,OAAO,CAC6B;IAElD,4EAA4E;IAC5E,0BADY,OAAO,QACwC;IAE3D,8DAA8D;IAC9D,iBADc,MAAM,CAC6C;IAEjE,gDAAgD;IAChD,YADc,YAAY,CAAC,EAAE,CAAC,CACE;IAEhC,sEAAsE;IACtE,iBADc,MAAM,CAC6C;IAEjE,gIAAgI;IAChI,mBADc,OAAO,0BAA0B,EAAE,OAAO,CACV;IAE9C;;;;OAIG;IACH,WAJa,CAAC,SACH,CAAC,GACC,CAAC,CAIb;IAED,iFAAiF;IACjF,uBADc,GAAG,GAAG,SAAS,CAK5B;IAED,uFAAuF;IACvF,WADc,MAAM,CACiC;CACtD;0CA/HoD,EAAE,SAA1C,cAAe,aAAa,EAAE,OAAQ,yCACE,GAAG,SAA3C,cAAe,aAAa,EAAE,OAAQ;;;;WAErC,YAAY,CAAC,EAAE,CAAC;;;;kBAChB,OAAO,0BAA0B,EAAE,OAAO"}
|
|
@@ -1,19 +1,23 @@
|
|
|
1
1
|
// @ts-check
|
|
2
2
|
/**
|
|
3
|
-
* @template {typeof import("../index.js").default} MC
|
|
4
|
-
* @template {typeof import("../index.js").default} TMC
|
|
3
|
+
* @template {typeof import("../index.js").default} [MC=typeof import("../index.js").default]
|
|
4
|
+
* @template {typeof import("../index.js").default} [TMC=typeof import("../index.js").default]
|
|
5
5
|
* @typedef {object} InstanceRelationshipsBaseArgs
|
|
6
6
|
* @property {InstanceType<MC>} model - Parent model instance.
|
|
7
7
|
* @property {import("../relationships/base.js").default} relationship - Relationship metadata definition.
|
|
8
8
|
*/
|
|
9
9
|
/**
|
|
10
10
|
* A generic query over some model type.
|
|
11
|
-
* @template {typeof import("../index.js").default} MC
|
|
12
|
-
* @template {typeof import("../index.js").default} TMC
|
|
11
|
+
* @template {typeof import("../index.js").default} [MC=typeof import("../index.js").default]
|
|
12
|
+
* @template {typeof import("../index.js").default} [TMC=typeof import("../index.js").default]
|
|
13
13
|
*/
|
|
14
14
|
export default class VelociousDatabaseRecordBaseInstanceRelationship {
|
|
15
15
|
/** @type {boolean | undefined} */
|
|
16
16
|
_autoSave = undefined;
|
|
17
|
+
/** @type {boolean | undefined} */
|
|
18
|
+
_preloaded = undefined;
|
|
19
|
+
/** @type {InstanceType<TMC> | Array<InstanceType<TMC>> | undefined} */
|
|
20
|
+
_loaded = undefined;
|
|
17
21
|
/**
|
|
18
22
|
* @param {InstanceRelationshipsBaseArgs<MC, TMC>} args - Options object.
|
|
19
23
|
*/
|
|
@@ -100,4 +104,4 @@ export default class VelociousDatabaseRecordBaseInstanceRelationship {
|
|
|
100
104
|
/** @returns {string} The type of relationship (e.g. "has_many", "belongs_to", etc.) */
|
|
101
105
|
getType() { return this.getRelationship().getType(); }
|
|
102
106
|
}
|
|
103
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
107
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9kYXRhYmFzZS9yZWNvcmQvaW5zdGFuY2UtcmVsYXRpb25zaGlwcy9iYXNlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFFWjs7Ozs7O0dBTUc7QUFFSDs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE9BQU8sT0FBTywrQ0FBK0M7SUFDbEUsa0NBQWtDO0lBQ2xDLFNBQVMsR0FBRyxTQUFTLENBQUE7SUFDckIsa0NBQWtDO0lBQ2xDLFVBQVUsR0FBRyxTQUFTLENBQUE7SUFDdEIsdUVBQXVFO0lBQ3ZFLE9BQU8sR0FBRyxTQUFTLENBQUE7SUFFbkI7O09BRUc7SUFDSCxZQUFZLEVBQUMsS0FBSyxFQUFFLFlBQVksRUFBQztRQUMvQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQTtRQUNuQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQTtRQUNsQixJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFdBQVcsQ0FBQyxNQUFNO1FBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMsNkJBQTZCLENBQUMsQ0FBQTtJQUNoRCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxVQUFVO1FBQ2QsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFBO0lBQzVDLENBQUM7SUFFRCxrSEFBa0g7SUFDbEgsV0FBVyxLQUFLLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQSxDQUFDLENBQUM7SUFFdkM7OztPQUdHO0lBQ0gsV0FBVyxDQUFDLGdCQUFnQixJQUFJLElBQUksQ0FBQyxTQUFTLEdBQUcsZ0JBQWdCLENBQUEsQ0FBQyxDQUFDO0lBRW5FOzs7T0FHRztJQUNILFFBQVEsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUEsQ0FBQyxDQUFDO0lBRTdDLCtFQUErRTtJQUMvRSxRQUFRLEtBQUssT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFBLENBQUMsQ0FBQztJQUVqQzs7O09BR0c7SUFDSCxJQUFJO1FBQ0YsTUFBTSxJQUFJLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxDQUFBO0lBQzNDLENBQUM7SUFFRCxzRUFBc0U7SUFDdEUsUUFBUSxLQUFLLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQSxDQUFDLENBQUM7SUFFM0Msc0lBQXNJO0lBQ3RJLE1BQU07UUFDSixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7WUFDakQsTUFBTSxJQUFJLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLG1CQUFtQixFQUFFLHdCQUF3QixDQUFDLENBQUE7UUFDcEgsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQTtJQUNyQixDQUFDO0lBRUQsb0hBQW9IO0lBQ3BILFNBQVMsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUEsQ0FBQyxDQUFDO0lBRXpDLGlHQUFpRztJQUNqRyxvQkFBb0IsS0FBSyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUEsQ0FBQyxDQUFDO0lBRTlDLHFGQUFxRjtJQUNyRixZQUFZLEtBQUssT0FBTyxJQUFJLENBQUMsVUFBVSxJQUFJLEtBQUssQ0FBQSxDQUFDLENBQUM7SUFFbEQsNEVBQTRFO0lBQzVFLFlBQVksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLFVBQVUsR0FBRyxXQUFXLENBQUEsQ0FBQyxDQUFDO0lBRTNELDhEQUE4RDtJQUM5RCxhQUFhLEtBQUssT0FBTyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUEsQ0FBQyxDQUFDO0lBRWpFLGdEQUFnRDtJQUNoRCxRQUFRLEtBQUssT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFBLENBQUMsQ0FBQztJQUVoQyxzRUFBc0U7SUFDdEUsYUFBYSxLQUFLLE9BQU8sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFBLENBQUMsQ0FBQztJQUVqRSxnSUFBZ0k7SUFDaEksZUFBZSxLQUFLLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQSxDQUFDLENBQUM7SUFFOUM7Ozs7T0FJRztJQUNILFVBQVUsQ0FBQyxLQUFLO1FBQ2QsT0FBTyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ2pELENBQUM7SUFFRCxpRkFBaUY7SUFDakYsbUJBQW1CO1FBQ2pCLE1BQU0sZ0JBQWdCLEdBQUcsa0JBQWtCLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxDQUFBO1FBRTFGLE9BQU8sZ0JBQWdCLENBQUE7SUFDekIsQ0FBQztJQUVELHVGQUF1RjtJQUN2RixPQUFPLEtBQUssT0FBTyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUEsQ0FBQyxDQUFDO0NBQ3REIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbi8qKlxuICogQHRlbXBsYXRlIHt0eXBlb2YgaW1wb3J0KFwiLi4vaW5kZXguanNcIikuZGVmYXVsdH0gW01DPXR5cGVvZiBpbXBvcnQoXCIuLi9pbmRleC5qc1wiKS5kZWZhdWx0XVxuICogQHRlbXBsYXRlIHt0eXBlb2YgaW1wb3J0KFwiLi4vaW5kZXguanNcIikuZGVmYXVsdH0gW1RNQz10eXBlb2YgaW1wb3J0KFwiLi4vaW5kZXguanNcIikuZGVmYXVsdF1cbiAqIEB0eXBlZGVmIHtvYmplY3R9IEluc3RhbmNlUmVsYXRpb25zaGlwc0Jhc2VBcmdzXG4gKiBAcHJvcGVydHkge0luc3RhbmNlVHlwZTxNQz59IG1vZGVsIC0gUGFyZW50IG1vZGVsIGluc3RhbmNlLlxuICogQHByb3BlcnR5IHtpbXBvcnQoXCIuLi9yZWxhdGlvbnNoaXBzL2Jhc2UuanNcIikuZGVmYXVsdH0gcmVsYXRpb25zaGlwIC0gUmVsYXRpb25zaGlwIG1ldGFkYXRhIGRlZmluaXRpb24uXG4gKi9cblxuLyoqXG4gKiBBIGdlbmVyaWMgcXVlcnkgb3ZlciBzb21lIG1vZGVsIHR5cGUuXG4gKiBAdGVtcGxhdGUge3R5cGVvZiBpbXBvcnQoXCIuLi9pbmRleC5qc1wiKS5kZWZhdWx0fSBbTUM9dHlwZW9mIGltcG9ydChcIi4uL2luZGV4LmpzXCIpLmRlZmF1bHRdXG4gKiBAdGVtcGxhdGUge3R5cGVvZiBpbXBvcnQoXCIuLi9pbmRleC5qc1wiKS5kZWZhdWx0fSBbVE1DPXR5cGVvZiBpbXBvcnQoXCIuLi9pbmRleC5qc1wiKS5kZWZhdWx0XVxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBWZWxvY2lvdXNEYXRhYmFzZVJlY29yZEJhc2VJbnN0YW5jZVJlbGF0aW9uc2hpcCB7XG4gIC8qKiBAdHlwZSB7Ym9vbGVhbiB8IHVuZGVmaW5lZH0gKi9cbiAgX2F1dG9TYXZlID0gdW5kZWZpbmVkXG4gIC8qKiBAdHlwZSB7Ym9vbGVhbiB8IHVuZGVmaW5lZH0gKi9cbiAgX3ByZWxvYWRlZCA9IHVuZGVmaW5lZFxuICAvKiogQHR5cGUge0luc3RhbmNlVHlwZTxUTUM+IHwgQXJyYXk8SW5zdGFuY2VUeXBlPFRNQz4+IHwgdW5kZWZpbmVkfSAqL1xuICBfbG9hZGVkID0gdW5kZWZpbmVkXG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7SW5zdGFuY2VSZWxhdGlvbnNoaXBzQmFzZUFyZ3M8TUMsIFRNQz59IGFyZ3MgLSBPcHRpb25zIG9iamVjdC5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHttb2RlbCwgcmVsYXRpb25zaGlwfSkge1xuICAgIHRoaXMuX2RpcnR5ID0gZmFsc2VcbiAgICB0aGlzLm1vZGVsID0gbW9kZWxcbiAgICB0aGlzLnJlbGF0aW9uc2hpcCA9IHJlbGF0aW9uc2hpcFxuICB9XG5cbiAgLyoqXG4gICAqIEBhYnN0cmFjdFxuICAgKiBAcGFyYW0ge0luc3RhbmNlVHlwZTxUTUM+W10gfCBJbnN0YW5jZVR5cGU8VE1DPn0gbW9kZWxzIC0gTW9kZWwgaW5zdGFuY2VzLlxuICAgKiBAcmV0dXJucyB7dm9pZH0gLSBObyByZXR1cm4gdmFsdWUuXG4gICAqL1xuICBhZGRUb0xvYWRlZChtb2RlbHMpIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bnVzZWQtdmFyc1xuICAgIHRocm93IG5ldyBFcnJvcihcImFkZFRvTG9hZGVkIG5vdCBpbXBsZW1lbnRlZFwiKVxuICB9XG5cbiAgLyoqXG4gICAqIEBhYnN0cmFjdFxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIGFueT59IGF0dHJpYnV0ZXMgLSBBdHRyaWJ1dGVzLlxuICAgKiBAcmV0dXJucyB7SW5zdGFuY2VUeXBlPFRNQz59IC0gVGhlIGJ1aWxkLlxuICAgKi9cbiAgYnVpbGQoYXR0cmlidXRlcykgeyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVudXNlZC12YXJzXG4gICAgdGhyb3cgbmV3IEVycm9yKFwiJ2J1aWxkJyBub3QgaW1wbGVtZW50ZWRcIilcbiAgfVxuXG4gIC8qKiBAcmV0dXJucyB7Ym9vbGVhbiB8IHVuZGVmaW5lZH0gV2hldGhlciB0aGUgcmVsYXRpb25zaGlwIHNob3VsZCBiZSBhdXRvLXNhdmVkIGJlZm9yZSBzYXZpbmcgdGhlIHBhcmVudCBtb2RlbCAqL1xuICBnZXRBdXRvU2F2ZSgpIHsgcmV0dXJuIHRoaXMuX2F1dG9TYXZlIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtib29sZWFufSBuZXdBdXRvU2F2ZVZhbHVlIFdoZXRoZXIgdGhlIHJlbGF0aW9uc2hpcCBzaG91bGQgYmUgYXV0by1zYXZlZCBiZWZvcmUgc2F2aW5nIHRoZSBwYXJlbnQgbW9kZWxcbiAgICogQHJldHVybnMge3ZvaWR9IC0gTm8gcmV0dXJuIHZhbHVlLlxuICAgKi9cbiAgc2V0QXV0b1NhdmUobmV3QXV0b1NhdmVWYWx1ZSkgeyB0aGlzLl9hdXRvU2F2ZSA9IG5ld0F1dG9TYXZlVmFsdWUgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IG5ld1ZhbHVlIFdoZXRoZXIgdGhlIHJlbGF0aW9uc2hpcCBpcyBkaXJ0eSAoaGFzIGJlZW4gbW9kaWZpZWQpXG4gICAqIEByZXR1cm5zIHt2b2lkfSAtIE5vIHJldHVybiB2YWx1ZS5cbiAgICovXG4gIHNldERpcnR5KG5ld1ZhbHVlKSB7IHRoaXMuX2RpcnR5ID0gbmV3VmFsdWUgfVxuXG4gIC8qKiBAcmV0dXJucyB7Ym9vbGVhbn0gV2hldGhlciB0aGUgcmVsYXRpb25zaGlwIGlzIGRpcnR5IChoYXMgYmVlbiBtb2RpZmllZCkgKi9cbiAgZ2V0RGlydHkoKSB7IHJldHVybiB0aGlzLl9kaXJ0eSB9XG5cbiAgLyoqXG4gICAqIEBhYnN0cmFjdFxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gLSBSZXNvbHZlcyB3aGVuIGNvbXBsZXRlLlxuICAgKi9cbiAgbG9hZCgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCInbG9hZCcgbm90IGltcGxlbWVudGVkXCIpXG4gIH1cblxuICAvKiogIEByZXR1cm5zIHtib29sZWFufSBXaGV0aGVyIHRoZSByZWxhdGlvbnNoaXAgaGFzIGJlZW4gcHJlbG9hZGVkICovXG4gIGlzTG9hZGVkKCkgeyByZXR1cm4gQm9vbGVhbih0aGlzLl9sb2FkZWQpIH1cblxuICAvKiogQHJldHVybnMge0luc3RhbmNlVHlwZTxUTUM+IHwgQXJyYXk8SW5zdGFuY2VUeXBlPFRNQz4+IHwgdW5kZWZpbmVkfSBUaGUgbG9hZGVkIG1vZGVsIG9yIG1vZGVscyAoZGVwZW5kaW5nIG9uIHJlbGF0aW9uc2hpcCB0eXBlKSAqL1xuICBsb2FkZWQoKSB7XG4gICAgaWYgKCF0aGlzLl9wcmVsb2FkZWQgJiYgdGhpcy5tb2RlbC5pc1BlcnNpc3RlZCgpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7dGhpcy5tb2RlbC5jb25zdHJ1Y3Rvci5uYW1lfSMke3RoaXMucmVsYXRpb25zaGlwLmdldFJlbGF0aW9uc2hpcE5hbWUoKX0gaGFzbid0IGJlZW4gcHJlbG9hZGVkYClcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fbG9hZGVkXG4gIH1cblxuICAvKiogQHBhcmFtIHtJbnN0YW5jZVR5cGU8VE1DPiB8IEFycmF5PEluc3RhbmNlVHlwZTxUTUM+PiB8IHVuZGVmaW5lZH0gbW9kZWwgLSBSZWxhdGVkIG1vZGVsKHMpIHRvIG1hcmsgYXMgbG9hZGVkLiAqL1xuICBzZXRMb2FkZWQobW9kZWwpIHsgdGhpcy5fbG9hZGVkID0gbW9kZWwgfVxuXG4gIC8qKiBAcmV0dXJucyB7SW5zdGFuY2VUeXBlPFRNQz4gfCBJbnN0YW5jZVR5cGU8VE1DPltdIHwgdW5kZWZpbmVkfSAtIFRoZSBsb2FkZWQgb3IgdW5kZWZpbmVkLiAgKi9cbiAgZ2V0TG9hZGVkT3JVbmRlZmluZWQoKSB7IHJldHVybiB0aGlzLl9sb2FkZWQgfVxuXG4gIC8qKiBAcmV0dXJucyB7Ym9vbGVhbn0gVGhlIGxvYWRlZCBtb2RlbCBvciBtb2RlbHMgKGRlcGVuZGluZyBvbiByZWxhdGlvbnNoaXAgdHlwZSkgKi9cbiAgZ2V0UHJlbG9hZGVkKCkgeyByZXR1cm4gdGhpcy5fcHJlbG9hZGVkIHx8IGZhbHNlIH1cblxuICAvKiogQHBhcmFtIHtib29sZWFufSBpc1ByZWxvYWRlZCAtIFdoZXRoZXIgdGhlIHJlbGF0aW9uc2hpcCBpcyBwcmVsb2FkZWQuICovXG4gIHNldFByZWxvYWRlZChpc1ByZWxvYWRlZCkgeyB0aGlzLl9wcmVsb2FkZWQgPSBpc1ByZWxvYWRlZCB9XG5cbiAgLyoqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBmb3JlaWduIGtleSBmb3IgdGhpcyByZWxhdGlvbnNoaXAgKi9cbiAgZ2V0Rm9yZWlnbktleSgpIHsgcmV0dXJuIHRoaXMuZ2V0UmVsYXRpb25zaGlwKCkuZ2V0Rm9yZWlnbktleSgpIH1cblxuICAvKiogQHJldHVybnMge0luc3RhbmNlVHlwZTxNQz59IC0gVGhlIG1vZGVsLiAgKi9cbiAgZ2V0TW9kZWwoKSB7IHJldHVybiB0aGlzLm1vZGVsIH1cblxuICAvKiogQHJldHVybnMge3N0cmluZ30gVGhlIHByaW1hcnkga2V5IGZvciB0aGlzIHJlbGF0aW9uc2hpcCdzIG1vZGVsICovXG4gIGdldFByaW1hcnlLZXkoKSB7IHJldHVybiB0aGlzLmdldFJlbGF0aW9uc2hpcCgpLmdldFByaW1hcnlLZXkoKSB9XG5cbiAgLyoqIEByZXR1cm5zIHtpbXBvcnQoXCIuLi9yZWxhdGlvbnNoaXBzL2Jhc2UuanNcIikuZGVmYXVsdH0gVGhlIHJlbGF0aW9uc2hpcCBvYmplY3QgdGhhdCB0aGlzIGluc3RhbmNlIHJlbGF0aW9uc2hpcCBpcyBiYXNlZCBvbiAqL1xuICBnZXRSZWxhdGlvbnNoaXAoKSB7IHJldHVybiB0aGlzLnJlbGF0aW9uc2hpcCB9XG5cbiAgLyoqXG4gICAqIEB0ZW1wbGF0ZSBUXG4gICAqIEBwYXJhbSB7VH0gcXVlcnkgLSBRdWVyeSBpbnN0YW5jZS5cbiAgICogQHJldHVybnMge1R9IC0gU2NvcGVkIHF1ZXJ5LlxuICAgKi9cbiAgYXBwbHlTY29wZShxdWVyeSkge1xuICAgIHJldHVybiB0aGlzLmdldFJlbGF0aW9uc2hpcCgpLmFwcGx5U2NvcGUocXVlcnkpXG4gIH1cblxuICAvKiogQHJldHVybnMge1RNQyB8IHVuZGVmaW5lZH0gVGhlIG1vZGVsIGNsYXNzIHRoYXQgdGhpcyBpbnN0YW5jZSByZWxhdGlvbnNoaXAgKi9cbiAgZ2V0VGFyZ2V0TW9kZWxDbGFzcygpIHtcbiAgICBjb25zdCBUYXJnZXRNb2RlbENsYXNzID0gLyoqIEB0eXBlIHtUTUN9ICovICh0aGlzLmdldFJlbGF0aW9uc2hpcCgpLmdldFRhcmdldE1vZGVsQ2xhc3MoKSlcblxuICAgIHJldHVybiBUYXJnZXRNb2RlbENsYXNzXG4gIH1cblxuICAvKiogQHJldHVybnMge3N0cmluZ30gVGhlIHR5cGUgb2YgcmVsYXRpb25zaGlwIChlLmcuIFwiaGFzX21hbnlcIiwgXCJiZWxvbmdzX3RvXCIsIGV0Yy4pICovXG4gIGdldFR5cGUoKSB7IHJldHVybiB0aGlzLmdldFJlbGF0aW9uc2hpcCgpLmdldFR5cGUoKSB9XG59XG4iXX0=
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
* A generic query over some model type.
|
|
3
3
|
* @template {typeof import("../index.js").default} MC
|
|
4
4
|
* @template {typeof import("../index.js").default} TMC
|
|
5
|
+
* @extends {BaseInstanceRelationship<MC, TMC>}
|
|
5
6
|
*/
|
|
6
|
-
export default class VelociousDatabaseRecordBelongsToInstanceRelationship<MC extends typeof import("../index.js").default, TMC extends typeof import("../index.js").default> extends BaseInstanceRelationship<
|
|
7
|
+
export default class VelociousDatabaseRecordBelongsToInstanceRelationship<MC extends typeof import("../index.js").default, TMC extends typeof import("../index.js").default> extends BaseInstanceRelationship<MC, TMC> {
|
|
7
8
|
/**
|
|
8
|
-
* @param {
|
|
9
|
-
* @returns {InstanceType<TMC>} - The build.
|
|
9
|
+
* @param {import("./base.js").InstanceRelationshipsBaseArgs<MC, TMC>} args - Options object.
|
|
10
10
|
*/
|
|
11
|
-
|
|
11
|
+
constructor(args: import("./base.js").InstanceRelationshipsBaseArgs<MC, TMC>);
|
|
12
12
|
}
|
|
13
13
|
import BaseInstanceRelationship from "./base.js";
|
|
14
14
|
//# sourceMappingURL=belongs-to.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"belongs-to.d.ts","sourceRoot":"","sources":["../../../../../src/database/record/instance-relationships/belongs-to.js"],"names":[],"mappings":"AAIA
|
|
1
|
+
{"version":3,"file":"belongs-to.d.ts","sourceRoot":"","sources":["../../../../../src/database/record/instance-relationships/belongs-to.js"],"names":[],"mappings":"AAIA;;;;;GAKG;AACH,0EAJoD,EAAE,SAAzC,cAAe,aAAa,EAAE,OAAQ,EACC,GAAG,SAA1C,cAAe,aAAa,EAAE,OAAQ;IAIjD;;OAEG;IACH,kBAFW,OAAO,WAAW,EAAE,6BAA6B,CAAC,EAAE,EAAE,GAAG,CAAC,EAIpE;CA+CF;qCA7DoC,WAAW"}
|
|
@@ -4,6 +4,7 @@ import BaseInstanceRelationship from "./base.js";
|
|
|
4
4
|
* A generic query over some model type.
|
|
5
5
|
* @template {typeof import("../index.js").default} MC
|
|
6
6
|
* @template {typeof import("../index.js").default} TMC
|
|
7
|
+
* @extends {BaseInstanceRelationship<MC, TMC>}
|
|
7
8
|
*/
|
|
8
9
|
export default class VelociousDatabaseRecordBelongsToInstanceRelationship extends BaseInstanceRelationship {
|
|
9
10
|
/**
|
|
@@ -32,14 +33,20 @@ export default class VelociousDatabaseRecordBelongsToInstanceRelationship extend
|
|
|
32
33
|
if (!TargetModelClass)
|
|
33
34
|
throw new Error("Can't load without a target model");
|
|
34
35
|
const primaryKey = TargetModelClass.primaryKey();
|
|
36
|
+
/** @type {Record<string, string | number | null | undefined>} */
|
|
35
37
|
const whereArgs = {};
|
|
36
38
|
whereArgs[primaryKey] = foreignModelID;
|
|
37
39
|
let query = TargetModelClass.where(whereArgs);
|
|
38
40
|
query = this.applyScope(query);
|
|
39
41
|
const foreignModel = await query.first();
|
|
40
|
-
|
|
42
|
+
if (foreignModel) {
|
|
43
|
+
this.setLoaded(foreignModel);
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
this.setLoaded(undefined);
|
|
47
|
+
}
|
|
41
48
|
this.setDirty(false);
|
|
42
49
|
this.setPreloaded(true);
|
|
43
50
|
}
|
|
44
51
|
}
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVsb25ncy10by5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9kYXRhYmFzZS9yZWNvcmQvaW5zdGFuY2UtcmVsYXRpb25zaGlwcy9iZWxvbmdzLXRvLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFFWixPQUFPLHdCQUF3QixNQUFNLFdBQVcsQ0FBQTtBQUVoRDs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxPQUFPLE9BQU8sb0RBQXFELFNBQVEsd0JBQXdCO0lBQ3hHOztPQUVHO0lBQ0gsWUFBWSxJQUFJO1FBQ2QsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ2IsQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxJQUFJO1FBQ1IsTUFBTSxnQkFBZ0IsR0FBRyxrQkFBa0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLENBQUE7UUFFeEUsSUFBSSxDQUFDLGdCQUFnQjtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsaURBQWlELENBQUMsQ0FBQTtRQUV6RixNQUFNLFdBQVcsR0FBRyxnQ0FBZ0MsQ0FBQyxDQUFDLElBQUksZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtRQUVqRixJQUFJLENBQUMsT0FBTyxHQUFHLFdBQVcsQ0FBQTtRQUUxQixPQUFPLFdBQVcsQ0FBQTtJQUNwQixDQUFDO0lBRUQsb0JBQW9CLEtBQUssT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFBLENBQUMsQ0FBQztJQUU5QyxLQUFLLENBQUMsSUFBSTtRQUNSLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQTtRQUN2QyxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBQzdELE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUE7UUFFbkQsSUFBSSxDQUFDLGdCQUFnQjtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsbUNBQW1DLENBQUMsQ0FBQTtRQUUzRSxNQUFNLFVBQVUsR0FBRyxnQkFBZ0IsQ0FBQyxVQUFVLEVBQUUsQ0FBQTtRQUNoRCxpRUFBaUU7UUFDakUsTUFBTSxTQUFTLEdBQUcsRUFBRSxDQUFBO1FBRXBCLFNBQVMsQ0FBQyxVQUFVLENBQUMsR0FBRyxjQUFjLENBQUE7UUFFdEMsSUFBSSxLQUFLLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBRTdDLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBRTlCLE1BQU0sWUFBWSxHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFBO1FBRXhDLElBQUksWUFBWSxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQTtRQUM5QixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUE7UUFDM0IsQ0FBQztRQUNELElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDcEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUN6QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuaW1wb3J0IEJhc2VJbnN0YW5jZVJlbGF0aW9uc2hpcCBmcm9tIFwiLi9iYXNlLmpzXCJcblxuLyoqXG4gKiBBIGdlbmVyaWMgcXVlcnkgb3ZlciBzb21lIG1vZGVsIHR5cGUuXG4gKiBAdGVtcGxhdGUge3R5cGVvZiBpbXBvcnQoXCIuLi9pbmRleC5qc1wiKS5kZWZhdWx0fSBNQ1xuICogQHRlbXBsYXRlIHt0eXBlb2YgaW1wb3J0KFwiLi4vaW5kZXguanNcIikuZGVmYXVsdH0gVE1DXG4gKiBAZXh0ZW5kcyB7QmFzZUluc3RhbmNlUmVsYXRpb25zaGlwPE1DLCBUTUM+fVxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBWZWxvY2lvdXNEYXRhYmFzZVJlY29yZEJlbG9uZ3NUb0luc3RhbmNlUmVsYXRpb25zaGlwIGV4dGVuZHMgQmFzZUluc3RhbmNlUmVsYXRpb25zaGlwIHtcbiAgLyoqXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi9iYXNlLmpzXCIpLkluc3RhbmNlUmVsYXRpb25zaGlwc0Jhc2VBcmdzPE1DLCBUTUM+fSBhcmdzIC0gT3B0aW9ucyBvYmplY3QuXG4gICAqL1xuICBjb25zdHJ1Y3RvcihhcmdzKSB7XG4gICAgc3VwZXIoYXJncylcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIGFueT59IGRhdGEgLSBEYXRhIHBheWxvYWQuXG4gICAqIEByZXR1cm5zIHtJbnN0YW5jZVR5cGU8VE1DPn0gLSBUaGUgYnVpbGQuXG4gICAqL1xuICBidWlsZChkYXRhKSB7XG4gICAgY29uc3QgVGFyZ2V0TW9kZWxDbGFzcyA9IC8qKiBAdHlwZSB7VE1DfSAqLyAodGhpcy5nZXRUYXJnZXRNb2RlbENsYXNzKCkpXG5cbiAgICBpZiAoIVRhcmdldE1vZGVsQ2xhc3MpIHRocm93IG5ldyBFcnJvcihcIkNhbid0IGJ1aWxkIGEgbmV3IHJlY29yZCB3aXRob3V0IGEgdGFyZ2V0IG1vZGVsXCIpXG5cbiAgICBjb25zdCBuZXdJbnN0YW5jZSA9IC8qKiBAdHlwZSB7SW5zdGFuY2VUeXBlPFRNQz59ICovIChuZXcgVGFyZ2V0TW9kZWxDbGFzcyhkYXRhKSlcblxuICAgIHRoaXMuX2xvYWRlZCA9IG5ld0luc3RhbmNlXG5cbiAgICByZXR1cm4gbmV3SW5zdGFuY2VcbiAgfVxuXG4gIGdldExvYWRlZE9yVW5kZWZpbmVkKCkgeyByZXR1cm4gdGhpcy5fbG9hZGVkIH1cblxuICBhc3luYyBsb2FkKCkge1xuICAgIGNvbnN0IGZvcmVpZ25LZXkgPSB0aGlzLmdldEZvcmVpZ25LZXkoKVxuICAgIGNvbnN0IGZvcmVpZ25Nb2RlbElEID0gdGhpcy5nZXRNb2RlbCgpLnJlYWRDb2x1bW4oZm9yZWlnbktleSlcbiAgICBjb25zdCBUYXJnZXRNb2RlbENsYXNzID0gdGhpcy5nZXRUYXJnZXRNb2RlbENsYXNzKClcblxuICAgIGlmICghVGFyZ2V0TW9kZWxDbGFzcykgdGhyb3cgbmV3IEVycm9yKFwiQ2FuJ3QgbG9hZCB3aXRob3V0IGEgdGFyZ2V0IG1vZGVsXCIpXG5cbiAgICBjb25zdCBwcmltYXJ5S2V5ID0gVGFyZ2V0TW9kZWxDbGFzcy5wcmltYXJ5S2V5KClcbiAgICAvKiogQHR5cGUge1JlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQ+fSAqL1xuICAgIGNvbnN0IHdoZXJlQXJncyA9IHt9XG5cbiAgICB3aGVyZUFyZ3NbcHJpbWFyeUtleV0gPSBmb3JlaWduTW9kZWxJRFxuXG4gICAgbGV0IHF1ZXJ5ID0gVGFyZ2V0TW9kZWxDbGFzcy53aGVyZSh3aGVyZUFyZ3MpXG5cbiAgICBxdWVyeSA9IHRoaXMuYXBwbHlTY29wZShxdWVyeSlcblxuICAgIGNvbnN0IGZvcmVpZ25Nb2RlbCA9IGF3YWl0IHF1ZXJ5LmZpcnN0KClcblxuICAgIGlmIChmb3JlaWduTW9kZWwpIHtcbiAgICAgIHRoaXMuc2V0TG9hZGVkKGZvcmVpZ25Nb2RlbClcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZXRMb2FkZWQodW5kZWZpbmVkKVxuICAgIH1cbiAgICB0aGlzLnNldERpcnR5KGZhbHNlKVxuICAgIHRoaXMuc2V0UHJlbG9hZGVkKHRydWUpXG4gIH1cbn1cbiJdfQ==
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
* A generic query over some model type.
|
|
3
3
|
* @template {typeof import("../index.js").default} MC
|
|
4
4
|
* @template {typeof import("../index.js").default} TMC
|
|
5
|
+
* @extends {BaseInstanceRelationship<MC, TMC>}
|
|
5
6
|
*/
|
|
6
|
-
export default class VelociousDatabaseRecordHasManyInstanceRelationship<MC extends typeof import("../index.js").default, TMC extends typeof import("../index.js").default> extends BaseInstanceRelationship<
|
|
7
|
+
export default class VelociousDatabaseRecordHasManyInstanceRelationship<MC extends typeof import("../index.js").default, TMC extends typeof import("../index.js").default> extends BaseInstanceRelationship<MC, TMC> {
|
|
7
8
|
/**
|
|
8
|
-
* @param {
|
|
9
|
-
* @returns {InstanceType<TMC>} - The build.
|
|
9
|
+
* @param {import("./base.js").InstanceRelationshipsBaseArgs<MC, TMC>} args - Options object.
|
|
10
10
|
*/
|
|
11
|
-
|
|
11
|
+
constructor(args: import("./base.js").InstanceRelationshipsBaseArgs<MC, TMC>);
|
|
12
12
|
/**
|
|
13
13
|
* @param {Record<string, any>} data - Data payload.
|
|
14
14
|
* @returns {Promise<InstanceType<TMC>>} - Resolves with the create.
|
|
@@ -28,11 +28,6 @@ export default class VelociousDatabaseRecordHasManyInstanceRelationship<MC exten
|
|
|
28
28
|
query(): import("../../query/model-class-query.js").default<TMC>;
|
|
29
29
|
/** @returns {Array<InstanceType<TMC>>} The loaded model or models (depending on relationship type) */
|
|
30
30
|
loaded(): Array<InstanceType<TMC>>;
|
|
31
|
-
/**
|
|
32
|
-
* @param {InstanceType<MC>[] | InstanceType<MC>} models - Model instances.
|
|
33
|
-
* @returns {void} - No return value.
|
|
34
|
-
*/
|
|
35
|
-
addToLoaded(models: InstanceType<MC>[] | InstanceType<MC>): void;
|
|
36
31
|
/**
|
|
37
32
|
* @param {InstanceType<TMC>[]} models - Model instances.
|
|
38
33
|
* @returns {void} - No return value.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"has-many.d.ts","sourceRoot":"","sources":["../../../../../src/database/record/instance-relationships/has-many.js"],"names":[],"mappings":"AAIA
|
|
1
|
+
{"version":3,"file":"has-many.d.ts","sourceRoot":"","sources":["../../../../../src/database/record/instance-relationships/has-many.js"],"names":[],"mappings":"AAIA;;;;;GAKG;AACH,wEAJoD,EAAE,SAAzC,cAAe,aAAa,EAAE,OAAQ,EACC,GAAG,SAA1C,cAAe,aAAa,EAAE,OAAQ;IAIjD;;OAEG;IACH,kBAFW,OAAO,WAAW,EAAE,6BAA6B,CAAC,EAAE,EAAE,GAAG,CAAC,EAIpE;IA2DD;;;OAGG;IACH,aAHW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACjB,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAQtC;IAWD;;;OAGG;IACH,kBAHW,OAAO,sBAAsB,EAAE,mBAAmB,GAChD,OAAO,kCAAkC,EAAE,OAAO,CAAC,GAAG,CAAC,CAInE;IAED;;;OAGG;IACH,cAHW,MAAM,GAAG,MAAM,GACb,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAItC;IAED,uFAAuF;IACvF,SADc,OAAO,kCAAkC,EAAE,OAAO,CAAC,GAAG,CAAC,CA6CpE;IAED,sGAAsG;IACtG,UADc,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAWrC;IA8BD;;;OAGG;IACH,kBAHW,YAAY,CAAC,GAAG,CAAC,EAAE,GACjB,IAAI,CAMhB;CACF;qCA/MoC,WAAW"}
|
|
@@ -4,6 +4,7 @@ import BaseInstanceRelationship from "./base.js";
|
|
|
4
4
|
* A generic query over some model type.
|
|
5
5
|
* @template {typeof import("../index.js").default} MC
|
|
6
6
|
* @template {typeof import("../index.js").default} TMC
|
|
7
|
+
* @extends {BaseInstanceRelationship<MC, TMC>}
|
|
7
8
|
*/
|
|
8
9
|
export default class VelociousDatabaseRecordHasManyInstanceRelationship extends BaseInstanceRelationship {
|
|
9
10
|
/**
|
|
@@ -21,10 +22,9 @@ export default class VelociousDatabaseRecordHasManyInstanceRelationship extends
|
|
|
21
22
|
const targetModelClass = this.getTargetModelClass();
|
|
22
23
|
if (!targetModelClass)
|
|
23
24
|
throw new Error("Can't build a new record without a taget model class");
|
|
24
|
-
const newInstance = new targetModelClass(data);
|
|
25
|
+
const newInstance = /** @type {InstanceType<TMC>} */ (new targetModelClass(data));
|
|
25
26
|
// Add it to the loaded models of this relationship
|
|
26
27
|
if (this._loaded === undefined) {
|
|
27
|
-
/** @type {import("../index.js").default[]} */
|
|
28
28
|
this._loaded = [newInstance];
|
|
29
29
|
}
|
|
30
30
|
else if (Array.isArray(this._loaded)) {
|
|
@@ -44,9 +44,13 @@ export default class VelociousDatabaseRecordHasManyInstanceRelationship extends
|
|
|
44
44
|
const parentModel = this.getModel();
|
|
45
45
|
if (parentModel.isPersisted()) {
|
|
46
46
|
const foreignKeyName = this.getForeignKey();
|
|
47
|
-
const
|
|
47
|
+
const columnNameMap = targetModelClass.getColumnNameToAttributeNameMap();
|
|
48
|
+
const foreignKeyAttributeName = columnNameMap[foreignKeyName];
|
|
49
|
+
if (!foreignKeyAttributeName)
|
|
50
|
+
throw new Error(`Unknown foreign key attribute name for ${foreignKeyName}`);
|
|
48
51
|
const primaryKeyName = this.getPrimaryKey();
|
|
49
52
|
const foreignKeyValue = parentModel.readColumn(primaryKeyName);
|
|
53
|
+
/** @type {Record<string, any>} */
|
|
50
54
|
const assignData = {};
|
|
51
55
|
assignData[foreignKeyAttributeName] = foreignKeyValue;
|
|
52
56
|
newInstance.assign(assignData);
|
|
@@ -65,7 +69,7 @@ export default class VelociousDatabaseRecordHasManyInstanceRelationship extends
|
|
|
65
69
|
}
|
|
66
70
|
/** @returns {Promise<void>} - Resolves when complete. */
|
|
67
71
|
async load() {
|
|
68
|
-
const foreignModels = await this.query().toArray();
|
|
72
|
+
const foreignModels = /** @type {InstanceType<TMC>[]} */ (await this.query().toArray());
|
|
69
73
|
this.setLoaded(foreignModels);
|
|
70
74
|
this.setDirty(false);
|
|
71
75
|
this.setPreloaded(true);
|
|
@@ -82,7 +86,7 @@ export default class VelociousDatabaseRecordHasManyInstanceRelationship extends
|
|
|
82
86
|
* @returns {Promise<InstanceType<TMC>>} - Resolves with the find.
|
|
83
87
|
*/
|
|
84
88
|
async find(modelID) {
|
|
85
|
-
return
|
|
89
|
+
return /** @type {Promise<InstanceType<TMC>>} */ (this.query().find(modelID));
|
|
86
90
|
}
|
|
87
91
|
/** @returns {import("../../query/model-class-query.js").default<TMC>} - The query. */
|
|
88
92
|
query() {
|
|
@@ -128,10 +132,10 @@ export default class VelociousDatabaseRecordHasManyInstanceRelationship extends
|
|
|
128
132
|
if (this._loaded === undefined && this.model.isNewRecord()) {
|
|
129
133
|
return [];
|
|
130
134
|
}
|
|
131
|
-
return this._loaded;
|
|
135
|
+
return Array.isArray(this._loaded) ? this._loaded : [];
|
|
132
136
|
}
|
|
133
137
|
/**
|
|
134
|
-
* @param {InstanceType<
|
|
138
|
+
* @param {InstanceType<TMC>[] | InstanceType<TMC>} models - Model instances.
|
|
135
139
|
* @returns {void} - No return value.
|
|
136
140
|
*/
|
|
137
141
|
addToLoaded(models) {
|
|
@@ -173,4 +177,4 @@ export default class VelociousDatabaseRecordHasManyInstanceRelationship extends
|
|
|
173
177
|
this._loaded = models;
|
|
174
178
|
}
|
|
175
179
|
}
|
|
176
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzLW1hbnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZGF0YWJhc2UvcmVjb3JkL2luc3RhbmNlLXJlbGF0aW9uc2hpcHMvaGFzLW1hbnkuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLE9BQU8sd0JBQXdCLE1BQU0sV0FBVyxDQUFBO0FBRWhEOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsT0FBTyxPQUFPLGtEQUFtRCxTQUFRLHdCQUF3QjtJQUN0Rzs7T0FFRztJQUNILFlBQVksSUFBSTtRQUNkLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUNiLENBQUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsSUFBSTtRQUNSLHdDQUF3QztRQUN4QyxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFBO1FBRW5ELElBQUksQ0FBQyxnQkFBZ0I7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLHNEQUFzRCxDQUFDLENBQUE7UUFFOUYsTUFBTSxXQUFXLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUc5QyxtREFBbUQ7UUFDbkQsSUFBSSxJQUFJLENBQUMsT0FBTyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQy9CLDhDQUE4QztZQUM5QyxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUE7UUFDOUIsQ0FBQzthQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUN2QyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQTtRQUNoQyxDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sSUFBSSxLQUFLLENBQUMsa0NBQWtDLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUE7UUFDMUUsQ0FBQztRQUdELGlEQUFpRDtRQUNqRCxNQUFNLFNB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T0FBTyxFQUFFLENBQUMsQ0FBQTtZQUNuRSxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSCxTQUFTLENBQUMsTUFBTTtRQUNkLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0RBQWdELE9BQU8sTUFBTSxFQUFFLENBQUMsQ0FBQTtRQUU1RyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQTtJQUN2QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuaW1wb3J0IEJhc2VJbnN0YW5jZVJlbGF0aW9uc2hpcCBmcm9tIFwiLi9iYXNlLmpzXCJcblxuLyoqXG4gKiBBIGdlbmVyaWMgcXVlcnkgb3ZlciBzb21lIG1vZGVsIHR5cGUuXG4gKiBAdGVtcGxhdGUge3R5cGVvZiBpbXBvcnQoXCIuLi9pbmRleC5qc1wiKS5kZWZhdWx0fSBNQ1xuICogQHRlbXBsYXRlIHt0eXBlb2YgaW1wb3J0KFwiLi4vaW5kZXguanNcIikuZGVmYXVsdH0gVE1DXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFZlbG9jaW91c0RhdGFiYXNlUmVjb3JkSGFzTWFueUluc3RhbmNlUmVsYXRpb25zaGlwIGV4dGVuZHMgQmFzZUluc3RhbmNlUmVsYXRpb25zaGlwIHtcbiAgLyoqXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi9iYXNlLmpzXCIpLkluc3RhbmNlUmVsYXRpb25zaGlwc0Jhc2VBcmdzPE1DLCBUTUM+fSBhcmdzIC0gT3B0aW9ucyBvYmplY3QuXG4gICAqL1xuICBjb25zdHJ1Y3RvcihhcmdzKSB7XG4gICAgc3VwZXIoYXJncylcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIGFueT59IGRhdGEgLSBEYXRhIHBheWxvYWQuXG4gICAqIEByZXR1cm5zIHtJbnN0YW5jZVR5cGU8VE1DPn0gLSBUaGUgYnVpbGQuXG4gICAqL1xuICBidWlsZChkYXRhKSB7XG4gICAgLy8gU3Bhd24gbmV3IG1vZGVsIG9mIHRoZSB0YXJnZXRlZCBjbGFzc1xuICAgIGNvbnN0IHRhcmdldE1vZGVsQ2xhc3MgPSB0aGlzLmdldFRhcmdldE1vZGVsQ2xhc3MoKVxuXG4gICAgaWYgKCF0YXJnZXRNb2RlbENsYXNzKSB0aHJvdyBuZXcgRXJyb3IoXCJDYW4ndCBidWlsZCBhIG5ldyByZWNvcmQgd2l0aG91dCBhIHRhZ2V0IG1vZGVsIGNsYXNzXCIpXG5cbiAgICBjb25zdCBuZXdJbnN0YW5jZSA9IG5ldyB0YXJnZXRNb2RlbENsYXNzKGRhdGEpXG5cblxuICAgIC8vIEFkZCBpdCB0byB0aGUgbG9hZGVkIG1vZGVscyBvZiB0aGlzIHJlbGF0aW9uc2hpcFxuICAgIGlmICh0aGlzLl9sb2FkZWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgLyoqIEB0eXBlIHtpbXBvcnQoXCIuLi9pbmRleC5qc1wiKS5kZWZhdWx0W119ICovXG4gICAgICB0aGlzLl9sb2FkZWQgPSBbbmV3SW5zdGFuY2VdXG4gICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHRoaXMuX2xvYWRlZCkpIHtcbiAgICAgIHRoaXMuX2xvYWRlZC5wdXNoKG5ld0luc3RhbmNlKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYExvYWRlZCBoYWQgYW4gdW5leHBlY3RlZCB0eXBlOiAke3R5cGVvZiB0aGlzLl9sb2FkZWR9YClcbiAgICB9XG5cblxuICAgIC8vIFNldCBsb2FkZWQgb24gdGhlIG1vZGVscyBpbnZlcnNlZCByZWxhdGlvbnNoaXBcbiAgICBjb25zdCBpbnZlcnNlT2YgPSB0aGlzLmdldFJlbGF0aW9uc2hpcCgpLmdldEludmVyc2VPZigpXG5cbiAgICBpZiAoaW52ZXJzZU9mKSB7XG4gICAgICBjb25zdCBpbnZlcnNlSW5zdGFuY2VSZWxhdGlvbnNoaXAgPSBuZXdJbnN0YW5jZS5nZXRSZWxhdGlvbnNoaXBCeU5hbWUoaW52ZXJzZU9mKVxuXG4gICAgICBpbnZlcnNlSW5zdGFuY2VSZWxhdGlvbnNoaXAuc2V0QXV0b1NhdmUoZmFsc2UpXG4gICAgICBpbnZlcnNlSW5zdGFuY2VSZWxhdGlvbnNoaXAuc2V0TG9hZGVkKHRoaXMuZ2V0TW9kZWwoKSlcbiAgICB9XG5cblxuICAgIC8vIEFzc2lnbiB0aGUgZm9yZWlnbiBrZXkgdG8gdGhlIG5ldyBtb2RlbFxuICAgIGNvbnN0IHBhcmVudE1vZGVsID0gdGhpcy5nZXRNb2RlbCgpXG5cbiAgICBpZiAocGFyZW50TW9kZWwuaXNQZXJzaXN0ZWQoKSkge1xuICAgICAgY29uc3QgZm9yZWlnbktleU5hbWUgPSB0aGlzLmdldEZvcmVpZ25LZXkoKVxuICAgICAgY29uc3QgZm9yZWlnbktleUF0dHJpYnV0ZU5hbWUgPSB0aGlzLmdldFRhcmdldE1vZGVsQ2xhc3MoKS5nZXRDb2x1bW5OYW1lVG9BdHRyaWJ1dGVOYW1lTWFwKClbZm9yZWlnbktleU5hbWVdXG4gICAgICBjb25zdCBwcmltYXJ5S2V5TmFtZSA9IHRoaXMuZ2V0UHJpbWFyeUtleSgpXG4gICAgICBjb25zdCBmb3JlaWduS2V5VmFsdWUgPSBwYXJlbnRNb2RlbC5yZWFkQ29sdW1uKHByaW1hcnlLZXlOYW1lKVxuICAgICAgY29uc3QgYXNzaWduRGF0YSA9IHt9XG5cbiAgICAgIGFzc2lnbkRhdGFbZm9yZWlnbktleUF0dHJpYnV0ZU5hbWVdID0gZm9yZWlnbktleVZhbHVlXG5cbiAgICAgIG5ld0luc3RhbmNlLmFzc2lnbihhc3NpZ25EYXRhKVxuICAgIH1cblxuXG4gICAgLy8gUmV0dXJuIHRoZSBuZXcgY29udHJ1Y3RlZCBtb2RlbFxuICAgIHJldHVybiBuZXdJbnN0YW5jZVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gZGF0YSAtIERhdGEgcGF5bG9hZC5cbiAgICogQHJldHVybnMge1Byb21pc2U8SW5zdGFuY2VUeXBlPFRNQz4+fSAtIFJlc29sdmVzIHdpdGggdGhlIGNyZWF0ZS5cbiAgICovXG4gIGFzeW5jIGNyZWF0ZShkYXRhKSB7XG4gICAgY29uc3QgbW9kZWwgPSB0aGlzLmJ1aWxkKGRhdGEpXG5cbiAgICBhd2FpdCBtb2RlbC5zYXZlKClcblxuICAgIHJldHVybiBtb2RlbFxuICB9XG5cbiAgLyoqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc29sdmVzIHdoZW4gY29tcGxldGUuICAqL1xuICBhc3luYyBsb2FkKCkge1xuICAgIGNvbnN0IGZvcmVpZ25Nb2RlbHMgPSBhd2FpdCB0aGlzLnF1ZXJ5KCkudG9BcnJheSgpXG5cbiAgICB0aGlzLnNldExvYWRlZChmb3JlaWduTW9kZWxzKVxuICAgIHRoaXMuc2V0RGlydHkoZmFsc2UpXG4gICAgdGhpcy5zZXRQcmVsb2FkZWQodHJ1ZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4uLy4uL3F1ZXJ5L2luZGV4LmpzXCIpLk5lc3RlZFByZWxvYWRSZWNvcmR9IHByZWxvYWRzIC0gUHJlbG9hZCBtYXAgZm9yIHJlbGF0ZWQgcmVjb3Jkcy5cbiAgICogQHJldHVybnMge2ltcG9ydChcIi4uLy4uL3F1ZXJ5L21vZGVsLWNsYXNzLXF1ZXJ5LmpzXCIpLmRlZmF1bHQ8VE1DPn0gLSBUaGUgcHJlbG9hZC5cbiAgICovXG4gIHByZWxvYWQocHJlbG9hZHMpIHtcbiAgICByZXR1cm4gdGhpcy5xdWVyeSgpLmNsb25lKCkucHJlbG9hZChwcmVsb2FkcylcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bWJlcn0gbW9kZWxJRCAtIFJlbGF0ZWQgbW9kZWwgaWRlbnRpZmllci5cbiAgICogQHJldHVybnMge1Byb21pc2U8SW5zdGFuY2VUeXBlPFRNQz4+fSAtIFJlc29sdmVzIHdpdGggdGhlIGZpbmQuXG4gICAqL1xuICBhc3luYyBmaW5kKG1vZGVsSUQpIHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5xdWVyeSgpLmZpbmQobW9kZWxJRClcbiAgfVxuXG4gIC8qKiBAcmV0dXJucyB7aW1wb3J0KFwiLi4vLi4vcXVlcnkvbW9kZWwtY2xhc3MtcXVlcnkuanNcIikuZGVmYXVsdDxUTUM+fSAtIFRoZSBxdWVyeS4gICovXG4gIHF1ZXJ5KCkge1xuICAgIGlmICghdGhpcy5nZXRNb2RlbCgpLmlzUGVyc2lzdGVkKCkpIHRocm93IG5ldyBFcnJvcihcIkNhbm5vdCBidWlsZCBhIHF1ZXJ5IGZvciBhbiB1bnBlcnNpc3RlZCBwYXJlbnQgbW9kZWxcIilcblxuICAgIGNvbnN0IFRhcmdldE1vZGVsQ2xhc3MgPSB0aGlzLmdldFRhcmdldE1vZGVsQ2xhc3MoKVxuXG4gICAgaWYgKCFUYXJnZXRNb2RlbENsYXNzKSB0aHJvdyBuZXcgRXJyb3IoXCJDYW5ub3QgbG9hZCB3aXRob3V0IGEgdGFyZ2V0IG1vZGVsIGNsYXNzXCIpXG5cbiAgICBjb25zdCB0aHJvdWdoUmVsYXRpb25zaGlwTmFtZSA9IHRoaXMuZ2V0UmVsYXRpb25zaGlwKCkudGhyb3VnaFxuXG4gICAgaWYgKHRocm91Z2hSZWxhdGlvbnNoaXBOYW1lKSB7XG4gICAgICBjb25zdCBwYXJlbnRNb2RlbENsYXNzID0gdGhpcy5nZXRNb2RlbCgpLmdldE1vZGVsQ2xhc3MoKVxuICAgICAgY29uc3QgdGhyb3VnaFJlbGF0aW9uc2hpcCA9IHBhcmVudE1vZGVsQ2xhc3MuZ2V0UmVsYXRpb25zaGlwQnlOYW1lKHRocm91Z2hSZWxhdGlvbnNoaXBOYW1lKVxuICAgICAgY29uc3QgdGhyb3VnaE1vZGVsQ2xhc3MgPSB0aHJvdWdoUmVsYXRpb25zaGlwLmdldFRhcmdldE1vZGVsQ2xhc3MoKVxuXG4gICAgICBpZiAoIXRocm91Z2hNb2RlbENsYXNzKSB0aHJvdyBuZXcgRXJyb3IoYFRocm91Z2ggcmVsYXRpb25zaGlwICR7dGhyb3VnaFJlbGF0aW9uc2hpcE5hbWV9IGhhcyBubyB0YXJnZXQgbW9kZWwgY2xhc3NgKVxuXG4gICAgICBjb25zdCB0aHJvdWdoRm9yZWlnbktleSA9IHRocm91Z2hSZWxhdGlvbnNoaXAuZ2V0Rm9yZWlnbktleSgpXG4gICAgICBjb25zdCB0aHJvdWdoUHJpbWFyeUtleSA9IHRocm91Z2hSZWxhdGlvbnNoaXAuZ2V0UHJpbWFyeUtleSgpXG4gICAgICBjb25zdCB0YXJnZXRGb3JlaWduS2V5ID0gdGhpcy5nZXRGb3JlaWduS2V5KClcbiAgICAgIGNvbnN0IHRhcmdldFRhYmxlID0gVGFyZ2V0TW9kZWxDbGFzcy50YWJsZU5hbWUoKVxuICAgICAgY29uc3QgdGhyb3VnaFRhYmxlID0gdGhyb3VnaE1vZGVsQ2xhc3MudGFibGVOYW1lKClcbiAgICAgIGNvbnN0IGRyaXZlciA9IFRhcmdldE1vZGVsQ2xhc3MuY29ubmVjdGlvbigpXG4gICAgICBjb25zdCBwYXJlbnRQcmltYXJ5S2V5ID0gdGhpcy5nZXRQcmltYXJ5S2V5KClcbiAgICBjb25zdCBwYXJlbnRJZCA9IC8qKiBAdHlwZSB7c3RyaW5nIHwgbnVtYmVyfSAqLyAodGhpcy5nZXRNb2RlbCgpLnJlYWRDb2x1bW4ocGFyZW50UHJpbWFyeUtleSkpXG4gICAgICBjb25zdCBqb2luU3FsID0gYExFRlQgSk9JTiAke2RyaXZlci5xdW90ZVRhYmxlKHRocm91Z2hUYWJsZSl9IE9OICR7ZHJpdmVyLnF1b3RlVGFibGUodGhyb3VnaFRhYmxlKX0uJHtkcml2ZXIucXVvdGVDb2x1bW4odGhyb3VnaFByaW1hcnlLZXkpfSA9ICR7ZHJpdmVyLnF1b3RlVGFibGUodGFyZ2V0VGFibGUpfS4ke2RyaXZlci5xdW90ZUNvbHVtbih0YXJnZXRGb3JlaWduS2V5KX1gXG4gICAgICBjb25zdCB3aGVyZVNxbCA9IGAke2RyaXZlci5xdW90ZVRhYmxlKHRocm91Z2hUYWJsZSl9LiR7ZHJpdmVyLnF1b3RlQ29sdW1uKHRocm91Z2hGb3JlaWduS2V5KX0gPSAke2RyaXZlci5vcHRpb25zKCkucXVvdGUocGFyZW50SWQpfWBcblxuICAgICAgY29uc3QgcXVlcnkgPSBUYXJnZXRNb2RlbENsYXNzLmpvaW5zKGpvaW5TcWwpLndoZXJlKHdoZXJlU3FsKVxuXG4gICAgICByZXR1cm4gdGhpcy5hcHBseVNjb3BlKHF1ZXJ5KVxuICAgIH1cblxuICAgIGNvbnN0IGZvcmVpZ25LZXkgPSB0aGlzLmdldEZvcmVpZ25LZXkoKVxuICAgIGNvbnN0IHByaW1hcnlLZXkgPSB0aGlzLmdldFByaW1hcnlLZXkoKVxuICAgIGNvbnN0IHByaW1hcnlNb2RlbElEID0gLyoqIEB0eXBlIHtzdHJpbmcgfCBudW1iZXJ9ICovICh0aGlzLmdldE1vZGVsKCkucmVhZENvbHVtbihwcmltYXJ5S2V5KSlcblxuICAgIC8qKiBAdHlwZSB7UmVjb3JkPHN0cmluZywgc3RyaW5nIHwgbnVtYmVyPn0gKi9cbiAgICBjb25zdCB3aGVyZUFyZ3MgPSB7fVxuXG4gICAgd2hlcmVBcmdzW2ZvcmVpZ25LZXldID0gcHJpbWFyeU1vZGVsSURcblxuICAgIGNvbnN0IHF1ZXJ5ID0gVGFyZ2V0TW9kZWxDbGFzcy53aGVyZSh3aGVyZUFyZ3MpXG5cbiAgICByZXR1cm4gdGhpcy5hcHBseVNjb3BlKHF1ZXJ5KVxuICB9XG5cbiAgLyoqIEByZXR1cm5zIHtBcnJheTxJbnN0YW5jZVR5cGU8VE1DPj59IFRoZSBsb2FkZWQgbW9kZWwgb3IgbW9kZWxzIChkZXBlbmRpbmcgb24gcmVsYXRpb25zaGlwIHR5cGUpICovXG4gIGxvYWRlZCgpIHtcbiAgICBpZiAoIXRoaXMuX3ByZWxvYWRlZCAmJiB0aGlzLm1vZGVsLmlzUGVyc2lzdGVkKCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgJHt0aGlzLm1vZGVsLmNvbnN0cnVjdG9yLm5hbWV9IyR7dGhpcy5yZWxhdGlvbnNoaXAuZ2V0UmVsYXRpb25zaGlwTmFtZSgpfSBoYXNuJ3QgYmVlbiBwcmVsb2FkZWRgKVxuICAgIH1cblxuICAgIGlmICh0aGlzLl9sb2FkZWQgPT09IHVuZGVmaW5lZCAmJiB0aGlzLm1vZGVsLmlzTmV3UmVjb3JkKCkpIHtcbiAgICAgIHJldHVybiBbXVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9sb2FkZWRcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge0luc3RhbmNlVHlwZTxNQz5bXSB8IEluc3RhbmNlVHlwZTxNQz59IG1vZGVscyAtIE1vZGVsIGluc3RhbmNlcy5cbiAgICogQHJldHVybnMge3ZvaWR9IC0gTm8gcmV0dXJuIHZhbHVlLlxuICAgKi9cbiAgYWRkVG9Mb2FkZWQobW9kZWxzKSB7XG4gICAgaWYgKCFtb2RlbHMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk5lZWQgdG8gZ2l2ZSBzb21ldGhpbmdcIilcbiAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkobW9kZWxzKSkge1xuICAgICAgZm9yIChjb25zdCBtb2RlbCBvZiBtb2RlbHMpIHtcbiAgICAgICAgaWYgKHRoaXMuX2xvYWRlZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgdGhpcy5fbG9hZGVkID0gW21vZGVsXVxuICAgICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5fbG9hZGVkKSkge1xuICAgICAgICAgIHRoaXMuX2xvYWRlZC5wdXNoKG1vZGVsKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5leHBlY3RlZCBsb2FkZWQgdHlwZTogJHt0eXBlb2YgdGhpcy5fbG9hZGVkfWApXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMuX2xvYWRlZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuX2xvYWRlZCA9IFttb2RlbHNdXG4gICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5fbG9hZGVkKSkge1xuICAgICAgICB0aGlzLl9sb2FkZWQucHVzaChtb2RlbHMpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgbG9hZGVkIHR5cGU6ICR7dHlwZW9mIHRoaXMuX2xvYWRlZH1gKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge0luc3RhbmNlVHlwZTxUTUM+W119IG1vZGVscyAtIE1vZGVsIGluc3RhbmNlcy5cbiAgICogQHJldHVybnMge3ZvaWR9IC0gTm8gcmV0dXJuIHZhbHVlLlxuICAgKi9cbiAgc2V0TG9hZGVkKG1vZGVscykge1xuICAgIGlmICghQXJyYXkuaXNBcnJheShtb2RlbHMpKSB0aHJvdyBuZXcgRXJyb3IoYEFyZ3VtZW50IGdpdmVuIHRvIHNldExvYWRlZCB3YXNuJ3QgYW4gYXJyYXk6ICR7dHlwZW9mIG1vZGVsc31gKVxuXG4gICAgdGhpcy5fbG9hZGVkID0gbW9kZWxzXG4gIH1cbn1cbiJdfQ==
|
|
180
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzLW1hbnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZGF0YWJhc2UvcmVjb3JkL2luc3RhbmNlLXJlbGF0aW9uc2hpcHMvaGFzLW1hbnkuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLE9BQU8sd0JBQXdCLE1BQU0sV0FBVyxDQUFBO0FBRWhEOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLE9BQU8sT0FBTyxrREFBbUQsU0FBUSx3QkFBd0I7SUFDdEc7O09BRUc7SUFDSCxZQUFZLElBQUk7UUFDZCxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDYixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLElBQUk7UUFDUix3Q0FBd0M7UUFDeEMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQTtRQUVuRCxJQUFJLENBQUMsZ0JBQWdCO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxzREFBc0QsQ0FBQyxDQUFBO1FBRTlGLE1BQU0sV0FBVyxHQUFHLGdDQUFnQyxDQUFDLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO1FBR2pGLG1EQUFtRDtRQUNuRCxJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDL0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFBO1FBQzlCLENBQUM7YUFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDdkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUE7UUFDaEMsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLElBQUksS0FBSyxDQUFDLGtDQUFrQyxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFBO1FBQzFFLENBQUM7UUFHRCxpREFBaUQ7UUFD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Q0FBQyxPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQTtZQUN6QixDQUFDO2lCQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztnQkFDdkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7WUFDM0IsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE1BQU0sSUFBSSxLQUFLLENBQUMsMkJBQTJCLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUE7WUFDbkUsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsU0FBUyxDQUFDLE1BQU07UUFDZCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLGdEQUFnRCxPQUFPLE1BQU0sRUFBRSxDQUFDLENBQUE7UUFFNUcsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUE7SUFDdkIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbmltcG9ydCBCYXNlSW5zdGFuY2VSZWxhdGlvbnNoaXAgZnJvbSBcIi4vYmFzZS5qc1wiXG5cbi8qKlxuICogQSBnZW5lcmljIHF1ZXJ5IG92ZXIgc29tZSBtb2RlbCB0eXBlLlxuICogQHRlbXBsYXRlIHt0eXBlb2YgaW1wb3J0KFwiLi4vaW5kZXguanNcIikuZGVmYXVsdH0gTUNcbiAqIEB0ZW1wbGF0ZSB7dHlwZW9mIGltcG9ydChcIi4uL2luZGV4LmpzXCIpLmRlZmF1bHR9IFRNQ1xuICogQGV4dGVuZHMge0Jhc2VJbnN0YW5jZVJlbGF0aW9uc2hpcDxNQywgVE1DPn1cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVmVsb2Npb3VzRGF0YWJhc2VSZWNvcmRIYXNNYW55SW5zdGFuY2VSZWxhdGlvbnNoaXAgZXh0ZW5kcyBCYXNlSW5zdGFuY2VSZWxhdGlvbnNoaXAge1xuICAvKipcbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuL2Jhc2UuanNcIikuSW5zdGFuY2VSZWxhdGlvbnNoaXBzQmFzZUFyZ3M8TUMsIFRNQz59IGFyZ3MgLSBPcHRpb25zIG9iamVjdC5cbiAgICovXG4gIGNvbnN0cnVjdG9yKGFyZ3MpIHtcbiAgICBzdXBlcihhcmdzKVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gZGF0YSAtIERhdGEgcGF5bG9hZC5cbiAgICogQHJldHVybnMge0luc3RhbmNlVHlwZTxUTUM+fSAtIFRoZSBidWlsZC5cbiAgICovXG4gIGJ1aWxkKGRhdGEpIHtcbiAgICAvLyBTcGF3biBuZXcgbW9kZWwgb2YgdGhlIHRhcmdldGVkIGNsYXNzXG4gICAgY29uc3QgdGFyZ2V0TW9kZWxDbGFzcyA9IHRoaXMuZ2V0VGFyZ2V0TW9kZWxDbGFzcygpXG5cbiAgICBpZiAoIXRhcmdldE1vZGVsQ2xhc3MpIHRocm93IG5ldyBFcnJvcihcIkNhbid0IGJ1aWxkIGEgbmV3IHJlY29yZCB3aXRob3V0IGEgdGFnZXQgbW9kZWwgY2xhc3NcIilcblxuICAgIGNvbnN0IG5ld0luc3RhbmNlID0gLyoqIEB0eXBlIHtJbnN0YW5jZVR5cGU8VE1DPn0gKi8gKG5ldyB0YXJnZXRNb2RlbENsYXNzKGRhdGEpKVxuXG5cbiAgICAvLyBBZGQgaXQgdG8gdGhlIGxvYWRlZCBtb2RlbHMgb2YgdGhpcyByZWxhdGlvbnNoaXBcbiAgICBpZiAodGhpcy5fbG9hZGVkID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuX2xvYWRlZCA9IFtuZXdJbnN0YW5jZV1cbiAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5fbG9hZGVkKSkge1xuICAgICAgdGhpcy5fbG9hZGVkLnB1c2gobmV3SW5zdGFuY2UpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTG9hZGVkIGhhZCBhbiB1bmV4cGVjdGVkIHR5cGU6ICR7dHlwZW9mIHRoaXMuX2xvYWRlZH1gKVxuICAgIH1cblxuXG4gICAgLy8gU2V0IGxvYWRlZCBvbiB0aGUgbW9kZWxzIGludmVyc2VkIHJlbGF0aW9uc2hpcFxuICAgIGNvbnN0IGludmVyc2VPZiA9IHRoaXMuZ2V0UmVsYXRpb25zaGlwKCkuZ2V0SW52ZXJzZU9mKClcblxuICAgIGlmIChpbnZlcnNlT2YpIHtcbiAgICAgIGNvbnN0IGludmVyc2VJbnN0YW5jZVJlbGF0aW9uc2hpcCA9IG5ld0luc3RhbmNlLmdldFJlbGF0aW9uc2hpcEJ5TmFtZShpbnZlcnNlT2YpXG5cbiAgICAgIGludmVyc2VJbnN0YW5jZVJlbGF0aW9uc2hpcC5zZXRBdXRvU2F2ZShmYWxzZSlcbiAgICAgIGludmVyc2VJbnN0YW5jZVJlbGF0aW9uc2hpcC5zZXRMb2FkZWQodGhpcy5nZXRNb2RlbCgpKVxuICAgIH1cblxuXG4gICAgLy8gQXNzaWduIHRoZSBmb3JlaWduIGtleSB0byB0aGUgbmV3IG1vZGVsXG4gICAgY29uc3QgcGFyZW50TW9kZWwgPSB0aGlzLmdldE1vZGVsKClcblxuICAgIGlmIChwYXJlbnRNb2RlbC5pc1BlcnNpc3RlZCgpKSB7XG4gICAgICBjb25zdCBmb3JlaWduS2V5TmFtZSA9IHRoaXMuZ2V0Rm9yZWlnbktleSgpXG4gICAgICBjb25zdCBjb2x1bW5OYW1lTWFwID0gdGFyZ2V0TW9kZWxDbGFzcy5nZXRDb2x1bW5OYW1lVG9BdHRyaWJ1dGVOYW1lTWFwKClcbiAgICAgIGNvbnN0IGZvcmVpZ25LZXlBdHRyaWJ1dGVOYW1lID0gY29sdW1uTmFtZU1hcFtmb3JlaWduS2V5TmFtZV1cbiAgICAgIGlmICghZm9yZWlnbktleUF0dHJpYnV0ZU5hbWUpIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBmb3JlaWduIGtleSBhdHRyaWJ1dGUgbmFtZSBmb3IgJHtmb3JlaWduS2V5TmFtZX1gKVxuICAgICAgY29uc3QgcHJpbWFyeUtleU5hbWUgPSB0aGlzLmdldFByaW1hcnlLZXkoKVxuICAgICAgY29uc3QgZm9yZWlnbktleVZhbHVlID0gcGFyZW50TW9kZWwucmVhZENvbHVtbihwcmltYXJ5S2V5TmFtZSlcbiAgICAgIC8qKiBAdHlwZSB7UmVjb3JkPHN0cmluZywgYW55Pn0gKi9cbiAgICAgIGNvbnN0IGFzc2lnbkRhdGEgPSB7fVxuXG4gICAgICBhc3NpZ25EYXRhW2ZvcmVpZ25LZXlBdHRyaWJ1dGVOYW1lXSA9IGZvcmVpZ25LZXlWYWx1ZVxuXG4gICAgICBuZXdJbnN0YW5jZS5hc3NpZ24oYXNzaWduRGF0YSlcbiAgICB9XG5cblxuICAgIC8vIFJldHVybiB0aGUgbmV3IGNvbnRydWN0ZWQgbW9kZWxcbiAgICByZXR1cm4gbmV3SW5zdGFuY2VcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIGFueT59IGRhdGEgLSBEYXRhIHBheWxvYWQuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPEluc3RhbmNlVHlwZTxUTUM+Pn0gLSBSZXNvbHZlcyB3aXRoIHRoZSBjcmVhdGUuXG4gICAqL1xuICBhc3luYyBjcmVhdGUoZGF0YSkge1xuICAgIGNvbnN0IG1vZGVsID0gdGhpcy5idWlsZChkYXRhKVxuXG4gICAgYXdhaXQgbW9kZWwuc2F2ZSgpXG5cbiAgICByZXR1cm4gbW9kZWxcbiAgfVxuXG4gIC8qKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gLSBSZXNvbHZlcyB3aGVuIGNvbXBsZXRlLiAgKi9cbiAgYXN5bmMgbG9hZCgpIHtcbiAgICBjb25zdCBmb3JlaWduTW9kZWxzID0gLyoqIEB0eXBlIHtJbnN0YW5jZVR5cGU8VE1DPltdfSAqLyAoYXdhaXQgdGhpcy5xdWVyeSgpLnRvQXJyYXkoKSlcblxuICAgIHRoaXMuc2V0TG9hZGVkKGZvcmVpZ25Nb2RlbHMpXG4gICAgdGhpcy5zZXREaXJ0eShmYWxzZSlcbiAgICB0aGlzLnNldFByZWxvYWRlZCh0cnVlKVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vLi4vcXVlcnkvaW5kZXguanNcIikuTmVzdGVkUHJlbG9hZFJlY29yZH0gcHJlbG9hZHMgLSBQcmVsb2FkIG1hcCBmb3IgcmVsYXRlZCByZWNvcmRzLlxuICAgKiBAcmV0dXJucyB7aW1wb3J0KFwiLi4vLi4vcXVlcnkvbW9kZWwtY2xhc3MtcXVlcnkuanNcIikuZGVmYXVsdDxUTUM+fSAtIFRoZSBwcmVsb2FkLlxuICAgKi9cbiAgcHJlbG9hZChwcmVsb2Fkcykge1xuICAgIHJldHVybiB0aGlzLnF1ZXJ5KCkuY2xvbmUoKS5wcmVsb2FkKHByZWxvYWRzKVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVtYmVyfSBtb2RlbElEIC0gUmVsYXRlZCBtb2RlbCBpZGVudGlmaWVyLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxJbnN0YW5jZVR5cGU8VE1DPj59IC0gUmVzb2x2ZXMgd2l0aCB0aGUgZmluZC5cbiAgICovXG4gIGFzeW5jIGZpbmQobW9kZWxJRCkge1xuICAgIHJldHVybiAvKiogQHR5cGUge1Byb21pc2U8SW5zdGFuY2VUeXBlPFRNQz4+fSAqLyAodGhpcy5xdWVyeSgpLmZpbmQobW9kZWxJRCkpXG4gIH1cblxuICAvKiogQHJldHVybnMge2ltcG9ydChcIi4uLy4uL3F1ZXJ5L21vZGVsLWNsYXNzLXF1ZXJ5LmpzXCIpLmRlZmF1bHQ8VE1DPn0gLSBUaGUgcXVlcnkuICAqL1xuICBxdWVyeSgpIHtcbiAgICBpZiAoIXRoaXMuZ2V0TW9kZWwoKS5pc1BlcnNpc3RlZCgpKSB0aHJvdyBuZXcgRXJyb3IoXCJDYW5ub3QgYnVpbGQgYSBxdWVyeSBmb3IgYW4gdW5wZXJzaXN0ZWQgcGFyZW50IG1vZGVsXCIpXG5cbiAgICBjb25zdCBUYXJnZXRNb2RlbENsYXNzID0gdGhpcy5nZXRUYXJnZXRNb2RlbENsYXNzKClcblxuICAgIGlmICghVGFyZ2V0TW9kZWxDbGFzcykgdGhyb3cgbmV3IEVycm9yKFwiQ2Fubm90IGxvYWQgd2l0aG91dCBhIHRhcmdldCBtb2RlbCBjbGFzc1wiKVxuXG4gICAgY29uc3QgdGhyb3VnaFJlbGF0aW9uc2hpcE5hbWUgPSB0aGlzLmdldFJlbGF0aW9uc2hpcCgpLnRocm91Z2hcblxuICAgIGlmICh0aHJvdWdoUmVsYXRpb25zaGlwTmFtZSkge1xuICAgICAgY29uc3QgcGFyZW50TW9kZWxDbGFzcyA9IHRoaXMuZ2V0TW9kZWwoKS5nZXRNb2RlbENsYXNzKClcbiAgICAgIGNvbnN0IHRocm91Z2hSZWxhdGlvbnNoaXAgPSBwYXJlbnRNb2RlbENsYXNzLmdldFJlbGF0aW9uc2hpcEJ5TmFtZSh0aHJvdWdoUmVsYXRpb25zaGlwTmFtZSlcbiAgICAgIGNvbnN0IHRocm91Z2hNb2RlbENsYXNzID0gdGhyb3VnaFJlbGF0aW9uc2hpcC5nZXRUYXJnZXRNb2RlbENsYXNzKClcblxuICAgICAgaWYgKCF0aHJvdWdoTW9kZWxDbGFzcykgdGhyb3cgbmV3IEVycm9yKGBUaHJvdWdoIHJlbGF0aW9uc2hpcCAke3Rocm91Z2hSZWxhdGlvbnNoaXBOYW1lfSBoYXMgbm8gdGFyZ2V0IG1vZGVsIGNsYXNzYClcblxuICAgICAgY29uc3QgdGhyb3VnaEZvcmVpZ25LZXkgPSB0aHJvdWdoUmVsYXRpb25zaGlwLmdldEZvcmVpZ25LZXkoKVxuICAgICAgY29uc3QgdGhyb3VnaFByaW1hcnlLZXkgPSB0aHJvdWdoUmVsYXRpb25zaGlwLmdldFByaW1hcnlLZXkoKVxuICAgICAgY29uc3QgdGFyZ2V0Rm9yZWlnbktleSA9IHRoaXMuZ2V0Rm9yZWlnbktleSgpXG4gICAgICBjb25zdCB0YXJnZXRUYWJsZSA9IFRhcmdldE1vZGVsQ2xhc3MudGFibGVOYW1lKClcbiAgICAgIGNvbnN0IHRocm91Z2hUYWJsZSA9IHRocm91Z2hNb2RlbENsYXNzLnRhYmxlTmFtZSgpXG4gICAgICBjb25zdCBkcml2ZXIgPSBUYXJnZXRNb2RlbENsYXNzLmNvbm5lY3Rpb24oKVxuICAgICAgY29uc3QgcGFyZW50UHJpbWFyeUtleSA9IHRoaXMuZ2V0UHJpbWFyeUtleSgpXG4gICAgICBjb25zdCBwYXJlbnRJZCA9IC8qKiBAdHlwZSB7c3RyaW5nIHwgbnVtYmVyfSAqLyAodGhpcy5nZXRNb2RlbCgpLnJlYWRDb2x1bW4ocGFyZW50UHJpbWFyeUtleSkpXG4gICAgICBjb25zdCBqb2luU3FsID0gYExFRlQgSk9JTiAke2RyaXZlci5xdW90ZVRhYmxlKHRocm91Z2hUYWJsZSl9IE9OICR7ZHJpdmVyLnF1b3RlVGFibGUodGhyb3VnaFRhYmxlKX0uJHtkcml2ZXIucXVvdGVDb2x1bW4odGhyb3VnaFByaW1hcnlLZXkpfSA9ICR7ZHJpdmVyLnF1b3RlVGFibGUodGFyZ2V0VGFibGUpfS4ke2RyaXZlci5xdW90ZUNvbHVtbih0YXJnZXRGb3JlaWduS2V5KX1gXG4gICAgICBjb25zdCB3aGVyZVNxbCA9IGAke2RyaXZlci5xdW90ZVRhYmxlKHRocm91Z2hUYWJsZSl9LiR7ZHJpdmVyLnF1b3RlQ29sdW1uKHRocm91Z2hGb3JlaWduS2V5KX0gPSAke2RyaXZlci5vcHRpb25zKCkucXVvdGUocGFyZW50SWQpfWBcblxuICAgICAgY29uc3QgcXVlcnkgPSBUYXJnZXRNb2RlbENsYXNzLmpvaW5zKGpvaW5TcWwpLndoZXJlKHdoZXJlU3FsKVxuXG4gICAgICByZXR1cm4gdGhpcy5hcHBseVNjb3BlKHF1ZXJ5KVxuICAgIH1cblxuICAgIGNvbnN0IGZvcmVpZ25LZXkgPSB0aGlzLmdldEZvcmVpZ25LZXkoKVxuICAgIGNvbnN0IHByaW1hcnlLZXkgPSB0aGlzLmdldFByaW1hcnlLZXkoKVxuICAgIGNvbnN0IHByaW1hcnlNb2RlbElEID0gLyoqIEB0eXBlIHtzdHJpbmcgfCBudW1iZXJ9ICovICh0aGlzLmdldE1vZGVsKCkucmVhZENvbHVtbihwcmltYXJ5S2V5KSlcblxuICAgIC8qKiBAdHlwZSB7UmVjb3JkPHN0cmluZywgc3RyaW5nIHwgbnVtYmVyPn0gKi9cbiAgICBjb25zdCB3aGVyZUFyZ3MgPSB7fVxuXG4gICAgd2hlcmVBcmdzW2ZvcmVpZ25LZXldID0gcHJpbWFyeU1vZGVsSURcblxuICAgIGNvbnN0IHF1ZXJ5ID0gVGFyZ2V0TW9kZWxDbGFzcy53aGVyZSh3aGVyZUFyZ3MpXG5cbiAgICByZXR1cm4gdGhpcy5hcHBseVNjb3BlKHF1ZXJ5KVxuICB9XG5cbiAgLyoqIEByZXR1cm5zIHtBcnJheTxJbnN0YW5jZVR5cGU8VE1DPj59IFRoZSBsb2FkZWQgbW9kZWwgb3IgbW9kZWxzIChkZXBlbmRpbmcgb24gcmVsYXRpb25zaGlwIHR5cGUpICovXG4gIGxvYWRlZCgpIHtcbiAgICBpZiAoIXRoaXMuX3ByZWxvYWRlZCAmJiB0aGlzLm1vZGVsLmlzUGVyc2lzdGVkKCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgJHt0aGlzLm1vZGVsLmNvbnN0cnVjdG9yLm5hbWV9IyR7dGhpcy5yZWxhdGlvbnNoaXAuZ2V0UmVsYXRpb25zaGlwTmFtZSgpfSBoYXNuJ3QgYmVlbiBwcmVsb2FkZWRgKVxuICAgIH1cblxuICAgIGlmICh0aGlzLl9sb2FkZWQgPT09IHVuZGVmaW5lZCAmJiB0aGlzLm1vZGVsLmlzTmV3UmVjb3JkKCkpIHtcbiAgICAgIHJldHVybiBbXVxuICAgIH1cblxuICAgIHJldHVybiBBcnJheS5pc0FycmF5KHRoaXMuX2xvYWRlZCkgPyB0aGlzLl9sb2FkZWQgOiBbXVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7SW5zdGFuY2VUeXBlPFRNQz5bXSB8IEluc3RhbmNlVHlwZTxUTUM+fSBtb2RlbHMgLSBNb2RlbCBpbnN0YW5jZXMuXG4gICAqIEByZXR1cm5zIHt2b2lkfSAtIE5vIHJldHVybiB2YWx1ZS5cbiAgICovXG4gIGFkZFRvTG9hZGVkKG1vZGVscykge1xuICAgIGlmICghbW9kZWxzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJOZWVkIHRvIGdpdmUgc29tZXRoaW5nXCIpXG4gICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KG1vZGVscykpIHtcbiAgICAgIGZvciAoY29uc3QgbW9kZWwgb2YgbW9kZWxzKSB7XG4gICAgICAgIGlmICh0aGlzLl9sb2FkZWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHRoaXMuX2xvYWRlZCA9IFttb2RlbF1cbiAgICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHRoaXMuX2xvYWRlZCkpIHtcbiAgICAgICAgICB0aGlzLl9sb2FkZWQucHVzaChtb2RlbClcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgbG9hZGVkIHR5cGU6ICR7dHlwZW9mIHRoaXMuX2xvYWRlZH1gKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLl9sb2FkZWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLl9sb2FkZWQgPSBbbW9kZWxzXVxuICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHRoaXMuX2xvYWRlZCkpIHtcbiAgICAgICAgdGhpcy5fbG9hZGVkLnB1c2gobW9kZWxzKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIGxvYWRlZCB0eXBlOiAke3R5cGVvZiB0aGlzLl9sb2FkZWR9YClcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtJbnN0YW5jZVR5cGU8VE1DPltdfSBtb2RlbHMgLSBNb2RlbCBpbnN0YW5jZXMuXG4gICAqIEByZXR1cm5zIHt2b2lkfSAtIE5vIHJldHVybiB2YWx1ZS5cbiAgICovXG4gIHNldExvYWRlZChtb2RlbHMpIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkobW9kZWxzKSkgdGhyb3cgbmV3IEVycm9yKGBBcmd1bWVudCBnaXZlbiB0byBzZXRMb2FkZWQgd2Fzbid0IGFuIGFycmF5OiAke3R5cGVvZiBtb2RlbHN9YClcblxuICAgIHRoaXMuX2xvYWRlZCA9IG1vZGVsc1xuICB9XG59XG4iXX0=
|
|
@@ -2,23 +2,16 @@
|
|
|
2
2
|
* A generic query over some model type.
|
|
3
3
|
* @template {typeof import("../index.js").default} MC
|
|
4
4
|
* @template {typeof import("../index.js").default} TMC
|
|
5
|
+
* @augments {BaseInstanceRelationship<MC, TMC>}
|
|
5
6
|
*/
|
|
6
|
-
export default class VelociousDatabaseRecordHasOneInstanceRelationship<MC extends typeof import("../index.js").default, TMC extends typeof import("../index.js").default> extends BaseInstanceRelationship<
|
|
7
|
-
/** @type {InstanceType<TMC> | undefined} */
|
|
8
|
-
_loaded: InstanceType<TMC> | undefined;
|
|
9
|
-
/**
|
|
10
|
-
* @param {Record<string, any>} data - Data payload.
|
|
11
|
-
* @returns {InstanceType<TMC>} - The build.
|
|
12
|
-
*/
|
|
13
|
-
build(data: Record<string, any>): InstanceType<TMC>;
|
|
7
|
+
export default class VelociousDatabaseRecordHasOneInstanceRelationship<MC extends typeof import("../index.js").default, TMC extends typeof import("../index.js").default> extends BaseInstanceRelationship<MC, TMC> {
|
|
14
8
|
/**
|
|
15
|
-
* @
|
|
9
|
+
* @param {import("./base.js").InstanceRelationshipsBaseArgs<MC, TMC>} args - Options object.
|
|
16
10
|
*/
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
getTargetModelClass(): typeof import("../index.js").default;
|
|
11
|
+
constructor(args: import("./base.js").InstanceRelationshipsBaseArgs<MC, TMC>);
|
|
12
|
+
/** @type {InstanceType<TMC> | undefined} */
|
|
13
|
+
_loaded: InstanceType<TMC> | undefined;
|
|
14
|
+
getLoadedOrUndefined(): InstanceType<TMC> | undefined;
|
|
22
15
|
}
|
|
23
16
|
import BaseInstanceRelationship from "./base.js";
|
|
24
17
|
//# sourceMappingURL=has-one.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"has-one.d.ts","sourceRoot":"","sources":["../../../../../src/database/record/instance-relationships/has-one.js"],"names":[],"mappings":"AAIA
|
|
1
|
+
{"version":3,"file":"has-one.d.ts","sourceRoot":"","sources":["../../../../../src/database/record/instance-relationships/has-one.js"],"names":[],"mappings":"AAIA;;;;;GAKG;AACH,uEAJoD,EAAE,SAAzC,cAAe,aAAa,EAAE,OAAQ,EACC,GAAG,SAA1C,cAAe,aAAa,EAAE,OAAQ;IAIjD;;OAEG;IACH,kBAFW,OAAO,WAAW,EAAE,6BAA6B,CAAC,EAAE,EAAE,GAAG,CAAC,EAIpE;IAED,4CAA4C;IAC5C,SADW,YAAY,CAAC,GAAG,CAAC,GAAG,SAAS,CACrB;IAyDnB,sDAA8C;CAU/C;qCApFoC,WAAW"}
|
|
@@ -4,6 +4,7 @@ import BaseInstanceRelationship from "./base.js";
|
|
|
4
4
|
* A generic query over some model type.
|
|
5
5
|
* @template {typeof import("../index.js").default} MC
|
|
6
6
|
* @template {typeof import("../index.js").default} TMC
|
|
7
|
+
* @augments {BaseInstanceRelationship<MC, TMC>}
|
|
7
8
|
*/
|
|
8
9
|
export default class VelociousDatabaseRecordHasOneInstanceRelationship extends BaseInstanceRelationship {
|
|
9
10
|
/**
|
|
@@ -38,8 +39,13 @@ export default class VelociousDatabaseRecordHasOneInstanceRelationship extends B
|
|
|
38
39
|
whereArgs[foreignKey] = primaryModelID;
|
|
39
40
|
let query = TargetModelClass.where(whereArgs);
|
|
40
41
|
query = this.applyScope(query);
|
|
41
|
-
const foreignModel =
|
|
42
|
-
|
|
42
|
+
const foreignModel = await query.first();
|
|
43
|
+
if (foreignModel) {
|
|
44
|
+
this.setLoaded(foreignModel);
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
this.setLoaded(undefined);
|
|
48
|
+
}
|
|
43
49
|
this.setDirty(false);
|
|
44
50
|
this.setPreloaded(true);
|
|
45
51
|
}
|
|
@@ -53,12 +59,12 @@ export default class VelociousDatabaseRecordHasOneInstanceRelationship extends B
|
|
|
53
59
|
return this._loaded;
|
|
54
60
|
}
|
|
55
61
|
getLoadedOrUndefined() { return this._loaded; }
|
|
56
|
-
/** @param {InstanceType<TMC> | Array<InstanceType<TMC>>} model - Related model(s). */
|
|
62
|
+
/** @param {InstanceType<TMC> | Array<InstanceType<TMC>> | undefined} model - Related model(s). */
|
|
57
63
|
setLoaded(model) {
|
|
58
64
|
if (Array.isArray(model))
|
|
59
65
|
throw new Error(`Argument given to setLoaded was an array: ${typeof model}`);
|
|
60
66
|
this._loaded = model;
|
|
61
67
|
}
|
|
62
|
-
getTargetModelClass() { return this.relationship.getTargetModelClass(); }
|
|
68
|
+
getTargetModelClass() { return /** @type {TMC | undefined} */ (this.relationship.getTargetModelClass()); }
|
|
63
69
|
}
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzLW9uZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9kYXRhYmFzZS9yZWNvcmQvaW5zdGFuY2UtcmVsYXRpb25zaGlwcy9oYXMtb25lLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFFWixPQUFPLHdCQUF3QixNQUFNLFdBQVcsQ0FBQTtBQUVoRDs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxPQUFPLE9BQU8saURBQWtELFNBQVEsd0JBQXdCO0lBQ3JHOztPQUVHO0lBQ0gsWUFBWSxJQUFJO1FBQ2QsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ2IsQ0FBQztJQUVELDRDQUE0QztJQUM1QyxPQUFPLEdBQUcsU0FBUyxDQUFBO0lBRW5COzs7T0FHRztJQUNILEtBQUssQ0FBQyxJQUFJO1FBQ1IsTUFBTSxnQkFBZ0IsR0FBRyxrQkFBa0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLENBQUE7UUFFeEUsSUFBSSxDQUFDLGdCQUFnQjtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsdURBQXVELENBQUMsQ0FBQTtRQUUvRixNQUFNLFdBQVcsR0FBRyxnQ0FBZ0MsQ0FBQyxDQUFDLElBQUksZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtRQUVqRixJQUFJLENBQUMsT0FBTyxHQUFHLFdBQVcsQ0FBQTtRQUUxQixPQUFPLFdBQVcsQ0FBQTtJQUNwQixDQUFDO0lBRUQsS0FBSyxDQUFDLElBQUk7UUFDUixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUE7UUFDdkMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFBO1FBQ3ZDLE1BQU0sY0FBYyxHQUFHLDhCQUE4QixDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFBO1FBQzlGLE1BQU0sZ0JBQWdCLEdBQUcsa0JBQWtCLENBQUMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxDQUFBO1FBRXhFLElBQUksQ0FBQyxnQkFBZ0I7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLHlDQUF5QyxDQUFDLENBQUE7UUFFakYsOENBQThDO1FBQzlDLE1BQU0sU0FBUyxHQUFHLEVBQUUsQ0FBQTtRQUVwQixTQUFTLENBQUMsVUFBVSxDQUFDLEdBQUcsY0FBYyxDQUFBO1FBRXRDLElBQUksS0FBSyxHQUFHLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUU3QyxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUU5QixNQUFNLFlBQVksR0FBRyxNQUFNLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQTtRQUV4QyxJQUFJLFlBQVksRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUE7UUFDOUIsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQzNCLENBQUM7UUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ3BCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDekIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTTtRQUNKLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztZQUNqRCxNQUFNLElBQUksS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsbUJBQW1CLEVBQUUsd0JBQXdCLENBQUMsQ0FBQTtRQUNwSCxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFBO0lBQ3JCLENBQUM7SUFFRCxvQkFBb0IsS0FBSyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUEsQ0FBQyxDQUFDO0lBRTlDLGtHQUFrRztJQUNsRyxTQUFTLENBQUMsS0FBSztRQUNiLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLDZDQUE2QyxPQUFPLEtBQUssRUFBRSxDQUFDLENBQUE7UUFFdEcsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUE7SUFDdEIsQ0FBQztJQUVELG1CQUFtQixLQUFLLE9BQU8sOEJBQThCLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLG1CQUFtQixFQUFFLENBQUMsQ0FBQSxDQUFDLENBQUM7Q0FDMUciLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuaW1wb3J0IEJhc2VJbnN0YW5jZVJlbGF0aW9uc2hpcCBmcm9tIFwiLi9iYXNlLmpzXCJcblxuLyoqXG4gKiBBIGdlbmVyaWMgcXVlcnkgb3ZlciBzb21lIG1vZGVsIHR5cGUuXG4gKiBAdGVtcGxhdGUge3R5cGVvZiBpbXBvcnQoXCIuLi9pbmRleC5qc1wiKS5kZWZhdWx0fSBNQ1xuICogQHRlbXBsYXRlIHt0eXBlb2YgaW1wb3J0KFwiLi4vaW5kZXguanNcIikuZGVmYXVsdH0gVE1DXG4gKiBAYXVnbWVudHMge0Jhc2VJbnN0YW5jZVJlbGF0aW9uc2hpcDxNQywgVE1DPn1cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVmVsb2Npb3VzRGF0YWJhc2VSZWNvcmRIYXNPbmVJbnN0YW5jZVJlbGF0aW9uc2hpcCBleHRlbmRzIEJhc2VJbnN0YW5jZVJlbGF0aW9uc2hpcCB7XG4gIC8qKlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4vYmFzZS5qc1wiKS5JbnN0YW5jZVJlbGF0aW9uc2hpcHNCYXNlQXJnczxNQywgVE1DPn0gYXJncyAtIE9wdGlvbnMgb2JqZWN0LlxuICAgKi9cbiAgY29uc3RydWN0b3IoYXJncykge1xuICAgIHN1cGVyKGFyZ3MpXG4gIH1cblxuICAvKiogQHR5cGUge0luc3RhbmNlVHlwZTxUTUM+IHwgdW5kZWZpbmVkfSAqL1xuICBfbG9hZGVkID0gdW5kZWZpbmVkXG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gZGF0YSAtIERhdGEgcGF5bG9hZC5cbiAgICogQHJldHVybnMge0luc3RhbmNlVHlwZTxUTUM+fSAtIFRoZSBidWlsZC5cbiAgICovXG4gIGJ1aWxkKGRhdGEpIHtcbiAgICBjb25zdCBUYXJnZXRNb2RlbENsYXNzID0gLyoqIEB0eXBlIHtUTUN9ICovICh0aGlzLmdldFRhcmdldE1vZGVsQ2xhc3MoKSlcblxuICAgIGlmICghVGFyZ2V0TW9kZWxDbGFzcykgdGhyb3cgbmV3IEVycm9yKFwiQ2FuJ3QgYnVpbGQgYSBuZXcgcmVjb3JkIHdpdGhvdXQgYSB0YXJnZXQgbW9kZWwgY2xhc3NcIilcblxuICAgIGNvbnN0IG5ld0luc3RhbmNlID0gLyoqIEB0eXBlIHtJbnN0YW5jZVR5cGU8VE1DPn0gKi8gKG5ldyBUYXJnZXRNb2RlbENsYXNzKGRhdGEpKVxuXG4gICAgdGhpcy5fbG9hZGVkID0gbmV3SW5zdGFuY2VcblxuICAgIHJldHVybiBuZXdJbnN0YW5jZVxuICB9XG5cbiAgYXN5bmMgbG9hZCgpIHtcbiAgICBjb25zdCBmb3JlaWduS2V5ID0gdGhpcy5nZXRGb3JlaWduS2V5KClcbiAgICBjb25zdCBwcmltYXJ5S2V5ID0gdGhpcy5nZXRQcmltYXJ5S2V5KClcbiAgICBjb25zdCBwcmltYXJ5TW9kZWxJRCA9IC8qKiBAdHlwZSB7c3RyaW5nIHwgbnVtYmVyfSAqLyAodGhpcy5nZXRNb2RlbCgpLnJlYWRDb2x1bW4ocHJpbWFyeUtleSkpXG4gICAgY29uc3QgVGFyZ2V0TW9kZWxDbGFzcyA9IC8qKiBAdHlwZSB7VE1DfSAqLyAodGhpcy5nZXRUYXJnZXRNb2RlbENsYXNzKCkpXG5cbiAgICBpZiAoIVRhcmdldE1vZGVsQ2xhc3MpIHRocm93IG5ldyBFcnJvcihcIkNhbid0IGxvYWQgd2l0aG91dCBhIHRhcmdldCBtb2RlbCBjbGFzc1wiKVxuXG4gICAgLyoqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudW1iZXI+fSAqL1xuICAgIGNvbnN0IHdoZXJlQXJncyA9IHt9XG5cbiAgICB3aGVyZUFyZ3NbZm9yZWlnbktleV0gPSBwcmltYXJ5TW9kZWxJRFxuXG4gICAgbGV0IHF1ZXJ5ID0gVGFyZ2V0TW9kZWxDbGFzcy53aGVyZSh3aGVyZUFyZ3MpXG5cbiAgICBxdWVyeSA9IHRoaXMuYXBwbHlTY29wZShxdWVyeSlcblxuICAgIGNvbnN0IGZvcmVpZ25Nb2RlbCA9IGF3YWl0IHF1ZXJ5LmZpcnN0KClcblxuICAgIGlmIChmb3JlaWduTW9kZWwpIHtcbiAgICAgIHRoaXMuc2V0TG9hZGVkKGZvcmVpZ25Nb2RlbClcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZXRMb2FkZWQodW5kZWZpbmVkKVxuICAgIH1cbiAgICB0aGlzLnNldERpcnR5KGZhbHNlKVxuICAgIHRoaXMuc2V0UHJlbG9hZGVkKHRydWUpXG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMge0luc3RhbmNlVHlwZTxUTUM+IHwgQXJyYXk8SW5zdGFuY2VUeXBlPFRNQz4+IHwgdW5kZWZpbmVkfSBUaGUgbG9hZGVkIG1vZGVsIG9yIG1vZGVscyAoZGVwZW5kaW5nIG9uIHJlbGF0aW9uc2hpcCB0eXBlKVxuICAgKi9cbiAgbG9hZGVkKCkge1xuICAgIGlmICghdGhpcy5fcHJlbG9hZGVkICYmIHRoaXMubW9kZWwuaXNQZXJzaXN0ZWQoKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGAke3RoaXMubW9kZWwuY29uc3RydWN0b3IubmFtZX0jJHt0aGlzLnJlbGF0aW9uc2hpcC5nZXRSZWxhdGlvbnNoaXBOYW1lKCl9IGhhc24ndCBiZWVuIHByZWxvYWRlZGApXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX2xvYWRlZFxuICB9XG5cbiAgZ2V0TG9hZGVkT3JVbmRlZmluZWQoKSB7IHJldHVybiB0aGlzLl9sb2FkZWQgfVxuXG4gIC8qKiBAcGFyYW0ge0luc3RhbmNlVHlwZTxUTUM+IHwgQXJyYXk8SW5zdGFuY2VUeXBlPFRNQz4+IHwgdW5kZWZpbmVkfSBtb2RlbCAtIFJlbGF0ZWQgbW9kZWwocykuICovXG4gIHNldExvYWRlZChtb2RlbCkge1xuICAgIGlmIChBcnJheS5pc0FycmF5KG1vZGVsKSkgdGhyb3cgbmV3IEVycm9yKGBBcmd1bWVudCBnaXZlbiB0byBzZXRMb2FkZWQgd2FzIGFuIGFycmF5OiAke3R5cGVvZiBtb2RlbH1gKVxuXG4gICAgdGhpcy5fbG9hZGVkID0gbW9kZWxcbiAgfVxuXG4gIGdldFRhcmdldE1vZGVsQ2xhc3MoKSB7IHJldHVybiAvKiogQHR5cGUge1RNQyB8IHVuZGVmaW5lZH0gKi8gKHRoaXMucmVsYXRpb25zaGlwLmdldFRhcmdldE1vZGVsQ2xhc3MoKSkgfVxufVxuIl19
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @typedef {(query: import("../../query/model-class-query.js").default) => (import("../../query/model-class-query.js").default | void)} RelationshipScopeCallback
|
|
2
|
+
* @typedef {(query: import("../../query/model-class-query.js").default<any>) => (import("../../query/model-class-query.js").default<any> | void)} RelationshipScopeCallback
|
|
3
3
|
*/
|
|
4
4
|
/**
|
|
5
5
|
* @typedef {object} RelationshipBaseArgsType
|
|
@@ -19,17 +19,17 @@
|
|
|
19
19
|
export default class VelociousDatabaseRecordBaseRelationship {
|
|
20
20
|
/** @param {RelationshipBaseArgsType} args - Relationship definition arguments. */
|
|
21
21
|
constructor({ className, dependent, foreignKey, inverseOf, klass, modelClass, primaryKey, polymorphic, relationshipName, scope, through, type, ...restArgs }: RelationshipBaseArgsType);
|
|
22
|
-
className: string;
|
|
23
|
-
_dependent: string;
|
|
24
|
-
foreignKey: string;
|
|
25
|
-
_inverseOf: string;
|
|
26
|
-
klass: typeof import("../index.js").default;
|
|
22
|
+
className: string | undefined;
|
|
23
|
+
_dependent: string | undefined;
|
|
24
|
+
foreignKey: string | undefined;
|
|
25
|
+
_inverseOf: string | undefined;
|
|
26
|
+
klass: typeof import("../index.js").default | undefined;
|
|
27
27
|
modelClass: typeof import("../index.js").default;
|
|
28
|
-
_polymorphic: boolean;
|
|
28
|
+
_polymorphic: boolean | undefined;
|
|
29
29
|
_primaryKey: string;
|
|
30
30
|
relationshipName: string;
|
|
31
|
-
_scope: RelationshipScopeCallback;
|
|
32
|
-
through: string;
|
|
31
|
+
_scope: RelationshipScopeCallback | undefined;
|
|
32
|
+
through: string | undefined;
|
|
33
33
|
type: string;
|
|
34
34
|
getConfiguration(): import("../../../configuration.js").default;
|
|
35
35
|
/** @returns {string | undefined} What will be done when the parent record is destroyed. E.g. "destroy", "nullify", "restrict" etc. */
|
|
@@ -60,7 +60,7 @@ export default class VelociousDatabaseRecordBaseRelationship {
|
|
|
60
60
|
getPolymorphic(): boolean;
|
|
61
61
|
/** @returns {string} - The polymorphic type column. */
|
|
62
62
|
getPolymorphicTypeColumn(): string;
|
|
63
|
-
_polymorphicTypeColumn: string;
|
|
63
|
+
_polymorphicTypeColumn: string | undefined;
|
|
64
64
|
/** @returns {string} The name of the foreign key, e.g. "id" etc. */
|
|
65
65
|
getPrimaryKey(): string;
|
|
66
66
|
/** @returns {string} The type of the relationship, e.g. "has_many", "belongs_to", "has_one", "has_and_belongs_to_many" etc. */
|
|
@@ -73,11 +73,11 @@ export type RelationshipBaseArgsType = {
|
|
|
73
73
|
/**
|
|
74
74
|
* - Name of the related model class.
|
|
75
75
|
*/
|
|
76
|
-
className?: string;
|
|
76
|
+
className?: string | undefined;
|
|
77
77
|
/**
|
|
78
78
|
* - Dependent action when parent is destroyed.
|
|
79
79
|
*/
|
|
80
|
-
dependent?: string;
|
|
80
|
+
dependent?: string | undefined;
|
|
81
81
|
/**
|
|
82
82
|
* - Explicit foreign key column name.
|
|
83
83
|
*/
|
|
@@ -85,11 +85,11 @@ export type RelationshipBaseArgsType = {
|
|
|
85
85
|
/**
|
|
86
86
|
* - Inverse relationship name on the related model.
|
|
87
87
|
*/
|
|
88
|
-
inverseOf?: string;
|
|
88
|
+
inverseOf?: string | undefined;
|
|
89
89
|
/**
|
|
90
90
|
* - Related model class.
|
|
91
91
|
*/
|
|
92
|
-
klass?: typeof import("../index.js").default;
|
|
92
|
+
klass?: typeof import("../index.js").default | undefined;
|
|
93
93
|
/**
|
|
94
94
|
* - Owning model class.
|
|
95
95
|
*/
|
|
@@ -97,11 +97,11 @@ export type RelationshipBaseArgsType = {
|
|
|
97
97
|
/**
|
|
98
98
|
* - Primary key column on the owning model.
|
|
99
99
|
*/
|
|
100
|
-
primaryKey?: string;
|
|
100
|
+
primaryKey?: string | undefined;
|
|
101
101
|
/**
|
|
102
102
|
* - Whether the relationship is polymorphic.
|
|
103
103
|
*/
|
|
104
|
-
polymorphic?: boolean;
|
|
104
|
+
polymorphic?: boolean | undefined;
|
|
105
105
|
/**
|
|
106
106
|
* - Name of the relationship on the model.
|
|
107
107
|
*/
|
|
@@ -109,11 +109,11 @@ export type RelationshipBaseArgsType = {
|
|
|
109
109
|
/**
|
|
110
110
|
* - Optional scope callback for the relationship.
|
|
111
111
|
*/
|
|
112
|
-
scope?: RelationshipScopeCallback;
|
|
112
|
+
scope?: RelationshipScopeCallback | undefined;
|
|
113
113
|
/**
|
|
114
114
|
* - Name of the through association.
|
|
115
115
|
*/
|
|
116
|
-
through?: string;
|
|
116
|
+
through?: string | undefined;
|
|
117
117
|
/**
|
|
118
118
|
* - Relationship type (e.g. "hasMany").
|
|
119
119
|
*/
|