velocious 1.0.577 → 1.0.579
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 +12 -6
- package/build/application.js +3 -3
- package/build/authorization/ability.js +6 -6
- package/build/authorization/base-resource.js +1 -1
- package/build/background-jobs/client.js +2 -2
- package/build/background-jobs/forked-runner-child.js +4 -4
- package/build/background-jobs/job-runner.js +2 -2
- package/build/background-jobs/job.js +6 -6
- package/build/background-jobs/json-socket.js +1 -1
- package/build/background-jobs/main.js +13 -13
- package/build/background-jobs/normalize-error.js +2 -2
- package/build/background-jobs/pooled-runner-child.js +3 -3
- package/build/background-jobs/scheduler.js +1 -1
- package/build/background-jobs/status-reporter.js +2 -2
- package/build/background-jobs/store.js +23 -23
- package/build/background-jobs/types.js +6 -6
- package/build/background-jobs/web/controller.js +6 -6
- package/build/background-jobs/web/counts-channel.js +1 -1
- package/build/background-jobs/worker.js +8 -8
- package/build/beacon/client.js +3 -3
- package/build/beacon/in-process-client.js +3 -3
- package/build/beacon/types.js +1 -1
- package/build/cli/base-command.js +1 -1
- package/build/cli/commands/console.js +1 -1
- package/build/cli/commands/db/schema/dump.js +1 -1
- package/build/cli/commands/db/schema/load.js +1 -1
- package/build/cli/commands/db/seed.js +1 -1
- package/build/cli/commands/generate/frontend-models.js +1 -1
- package/build/cli/commands/lint/relationships.js +1 -1
- package/build/cli/commands/run-script.js +1 -1
- package/build/cli/commands/runner.js +1 -1
- package/build/cli/index.js +2 -2
- package/build/cli/tenant-database-command-helper.js +2 -2
- package/build/configuration-types.js +48 -47
- package/build/configuration.js +150 -65
- package/build/controller.js +11 -8
- package/build/current.js +2 -2
- package/build/database/annotations-async-hooks.js +3 -3
- package/build/database/annotations.js +1 -1
- package/build/database/drivers/base-column.js +1 -1
- package/build/database/drivers/base-foreign-key.js +1 -1
- package/build/database/drivers/base-table.js +1 -1
- package/build/database/drivers/base.js +18 -18
- package/build/database/drivers/mssql/column.js +1 -1
- package/build/database/drivers/mssql/index.js +2 -2
- package/build/database/drivers/mssql/options.js +1 -1
- package/build/database/drivers/mssql/structure-sql.js +1 -1
- package/build/database/drivers/mssql/table.js +1 -1
- package/build/database/drivers/mysql/column.js +1 -1
- package/build/database/drivers/mysql/index.js +4 -4
- package/build/database/drivers/mysql/options.js +1 -1
- package/build/database/drivers/mysql/query.js +7 -7
- package/build/database/drivers/mysql/structure-sql.js +71 -10
- package/build/database/drivers/pgsql/column.js +1 -1
- package/build/database/drivers/pgsql/index.js +6 -6
- package/build/database/drivers/pgsql/structure-sql.js +1 -1
- package/build/database/drivers/sqlite/base.js +7 -7
- package/build/database/drivers/sqlite/column.js +1 -1
- package/build/database/drivers/sqlite/connection-sql-js.js +1 -1
- package/build/database/drivers/sqlite/foreign-key.js +1 -1
- package/build/database/drivers/sqlite/index.js +1 -1
- package/build/database/drivers/sqlite/index.native.js +2 -2
- package/build/database/drivers/sqlite/index.web.js +2 -2
- package/build/database/drivers/sqlite/query.js +2 -2
- package/build/database/drivers/sqlite/query.native.js +2 -2
- package/build/database/drivers/sqlite/query.web.js +2 -2
- package/build/database/drivers/sqlite/table-rebuilder.js +1 -1
- package/build/database/migration/index.js +2 -2
- package/build/database/migrator/types.js +2 -2
- package/build/database/operation.js +59 -6
- package/build/database/pool/async-tracked-multi-connection.js +75 -24
- package/build/database/pool/base-methods-forward.js +2 -2
- package/build/database/pool/base.js +48 -17
- package/build/database/pool/single-multi-use.js +501 -103
- package/build/database/query/delete-base.js +1 -1
- package/build/database/query/index.js +3 -3
- package/build/database/query/insert-base.js +4 -4
- package/build/database/query/model-class-query.js +39 -39
- package/build/database/query/preloader/belongs-to.js +2 -2
- package/build/database/query/preloader/ensure-model-class-initialized.js +3 -2
- package/build/database/query/preloader/has-many.js +3 -3
- package/build/database/query/preloader/has-one.js +1 -1
- package/build/database/query/preloader.js +9 -2
- package/build/database/query/query-data.js +7 -7
- package/build/database/query/update-base.js +3 -3
- package/build/database/query/upsert-base.js +2 -2
- package/build/database/query/where-model-class-hash.js +13 -13
- package/build/database/query/with-count.js +12 -12
- package/build/database/query-parser/options.js +2 -2
- package/build/database/query-parser/select-parser.js +1 -1
- package/build/database/record/acts-as-list.js +2 -2
- package/build/database/record/attachments/handle.js +6 -6
- package/build/database/record/attachments/normalize-input.js +11 -11
- package/build/database/record/attachments/storage-drivers/filesystem.js +1 -1
- package/build/database/record/attachments/storage-drivers/native.js +5 -5
- package/build/database/record/attachments/storage-drivers/s3.js +10 -10
- package/build/database/record/attachments/store.js +24 -20
- package/build/database/record/auditing.js +123 -29
- package/build/database/record/counter-cache-magnitude.js +11 -11
- package/build/database/record/index.js +227 -174
- package/build/database/record/instance-relationships/base.js +4 -4
- package/build/database/record/instance-relationships/belongs-to.js +1 -1
- package/build/database/record/instance-relationships/has-many.js +3 -3
- package/build/database/record/instance-relationships/has-one.js +1 -1
- package/build/database/record/record-not-found-error.js +1 -0
- package/build/database/record/relationships/base.js +22 -0
- package/build/database/record/state-machine.js +6 -6
- package/build/database/record/validators/base.js +1 -1
- package/build/database/structure-sql-loader.js +3 -3
- package/build/database/table-data/table-column.js +3 -3
- package/build/database/use-live-query.js +3 -3
- package/build/environment-handlers/base.js +56 -37
- package/build/environment-handlers/browser.js +1 -1
- package/build/environment-handlers/node/cli/commands/console.js +4 -4
- package/build/environment-handlers/node/cli/commands/db/seed.js +2 -2
- package/build/environment-handlers/node/cli/commands/generate/base-models.js +1 -1
- package/build/environment-handlers/node/cli/commands/run-script.js +2 -2
- package/build/environment-handlers/node/cli/commands/runner.js +2 -2
- package/build/environment-handlers/node/cli/commands/server.js +1 -1
- package/build/environment-handlers/node.js +36 -36
- package/build/error-logger.js +2 -2
- package/build/error-reporting/request-details.js +32 -32
- package/build/frontend-model-controller.js +215 -213
- package/build/frontend-model-resource/base-resource.js +44 -44
- package/build/frontend-model-resource/velocious-attachment-resource.js +1 -1
- package/build/frontend-models/base.js +146 -142
- package/build/frontend-models/clear-pending-debounced-callback.js +2 -2
- package/build/frontend-models/model-registry.js +4 -4
- package/build/frontend-models/outgoing-event-buffer.js +1 -1
- package/build/frontend-models/preloader.js +1 -1
- package/build/frontend-models/query.js +60 -60
- package/build/frontend-models/resource-definition.js +9 -9
- package/build/frontend-models/transport-serialization.js +27 -27
- package/build/frontend-models/websocket-channel.js +4 -4
- package/build/frontend-models/websocket-publishers.js +1 -1
- package/build/http-client/request.js +1 -1
- package/build/http-client/response.js +1 -1
- package/build/http-server/client/index.js +4 -4
- package/build/http-server/client/params-to-object.js +16 -16
- package/build/http-server/client/request-buffer/index.js +5 -2
- package/build/http-server/client/request-parser.js +2 -2
- package/build/http-server/client/request-runner.js +2 -2
- package/build/http-server/client/request.js +2 -2
- package/build/http-server/client/websocket-request.js +6 -6
- package/build/http-server/client/websocket-session.js +28 -28
- package/build/http-server/cookie.js +2 -2
- package/build/http-server/development-reloader.js +1 -1
- package/build/http-server/index.js +5 -5
- package/build/http-server/remote-address.js +1 -1
- package/build/http-server/server-lock.js +4 -4
- package/build/http-server/websocket-channel-subscribers.js +4 -4
- package/build/http-server/websocket-channel.js +1 -1
- package/build/http-server/websocket-connection.js +3 -3
- package/build/http-server/websocket-event-log-store.js +9 -9
- package/build/http-server/websocket-events-host.js +7 -7
- package/build/http-server/websocket-events.js +4 -4
- package/build/http-server/worker-handler/channel-subscriber-dispatch.js +1 -1
- package/build/http-server/worker-handler/in-process.js +5 -5
- package/build/http-server/worker-handler/index.js +10 -10
- package/build/http-server/worker-handler/worker-thread.js +8 -8
- package/build/index.d.ts.map +1 -1
- package/build/logger/base-logger.js +1 -1
- package/build/logger.js +12 -12
- package/build/mailer/backends/smtp.js +3 -3
- package/build/mailer/base.js +14 -14
- package/build/mailer/delivery.js +3 -3
- package/build/mailer/index.js +1 -1
- package/build/mailer.js +1 -1
- package/build/plugins/sqljs-wasm-route-controller.js +1 -1
- package/build/record-payload-values.js +3 -3
- package/build/routes/base-route.js +5 -5
- package/build/routes/basic-route.js +4 -4
- package/build/routes/get-route.js +2 -2
- package/build/routes/hooks/frontend-model-command-route-hook.js +1 -1
- package/build/routes/index.js +3 -3
- package/build/routes/namespace-route.js +1 -1
- package/build/routes/plugin-routes.js +1 -1
- package/build/routes/post-route.js +2 -2
- package/build/routes/resolver.js +5 -5
- package/build/routes/resource-route.js +1 -1
- package/build/src/application.d.ts +26 -29
- package/build/src/application.d.ts.map +1 -1
- package/build/src/application.js +4 -4
- package/build/src/authorization/ability.d.ts +47 -53
- package/build/src/authorization/ability.d.ts.map +1 -1
- package/build/src/authorization/ability.js +7 -7
- package/build/src/authorization/base-resource.d.ts +13 -13
- package/build/src/authorization/base-resource.d.ts.map +1 -1
- package/build/src/authorization/base-resource.js +2 -2
- package/build/src/background-jobs/client.d.ts +9 -9
- package/build/src/background-jobs/client.d.ts.map +1 -1
- package/build/src/background-jobs/client.js +3 -3
- package/build/src/background-jobs/cron-expression.d.ts +25 -16
- package/build/src/background-jobs/cron-expression.d.ts.map +1 -1
- package/build/src/background-jobs/forked-runner-child.js +5 -5
- package/build/src/background-jobs/job-record.d.ts +4 -3
- package/build/src/background-jobs/job-record.d.ts.map +1 -1
- package/build/src/background-jobs/job-registry.d.ts +6 -6
- package/build/src/background-jobs/job-registry.d.ts.map +1 -1
- package/build/src/background-jobs/job-runner.d.ts +9 -9
- package/build/src/background-jobs/job-runner.d.ts.map +1 -1
- package/build/src/background-jobs/job-runner.js +3 -3
- package/build/src/background-jobs/job.d.ts +14 -14
- package/build/src/background-jobs/job.d.ts.map +1 -1
- package/build/src/background-jobs/job.js +7 -7
- package/build/src/background-jobs/json-socket.d.ts +9 -10
- package/build/src/background-jobs/json-socket.d.ts.map +1 -1
- package/build/src/background-jobs/json-socket.js +2 -2
- package/build/src/background-jobs/main.d.ts +56 -59
- package/build/src/background-jobs/main.d.ts.map +1 -1
- package/build/src/background-jobs/main.js +14 -14
- package/build/src/background-jobs/normalize-error.d.ts +2 -2
- package/build/src/background-jobs/normalize-error.d.ts.map +1 -1
- package/build/src/background-jobs/normalize-error.js +3 -3
- package/build/src/background-jobs/pooled-runner-child.js +4 -4
- package/build/src/background-jobs/runner-graceful-shutdown.d.ts +7 -12
- package/build/src/background-jobs/runner-graceful-shutdown.d.ts.map +1 -1
- package/build/src/background-jobs/runner-process-title.d.ts.map +1 -1
- package/build/src/background-jobs/scheduler.d.ts +41 -41
- package/build/src/background-jobs/scheduler.d.ts.map +1 -1
- package/build/src/background-jobs/scheduler.js +2 -2
- package/build/src/background-jobs/socket-request.d.ts +14 -14
- package/build/src/background-jobs/socket-request.d.ts.map +1 -1
- package/build/src/background-jobs/status-reporter.d.ts +28 -28
- package/build/src/background-jobs/status-reporter.d.ts.map +1 -1
- package/build/src/background-jobs/status-reporter.js +3 -3
- package/build/src/background-jobs/store.d.ts +100 -103
- package/build/src/background-jobs/store.d.ts.map +1 -1
- package/build/src/background-jobs/store.js +24 -24
- package/build/src/background-jobs/types.d.ts +124 -124
- package/build/src/background-jobs/types.d.ts.map +1 -1
- package/build/src/background-jobs/types.js +7 -7
- package/build/src/background-jobs/web/authorization.d.ts +2 -2
- package/build/src/background-jobs/web/authorization.d.ts.map +1 -1
- package/build/src/background-jobs/web/controller.d.ts +13 -13
- package/build/src/background-jobs/web/controller.d.ts.map +1 -1
- package/build/src/background-jobs/web/controller.js +7 -7
- package/build/src/background-jobs/web/counts-channel.d.ts +8 -8
- package/build/src/background-jobs/web/counts-channel.d.ts.map +1 -1
- package/build/src/background-jobs/web/counts-channel.js +2 -2
- package/build/src/background-jobs/web/index.d.ts +4 -4
- package/build/src/background-jobs/web/index.d.ts.map +1 -1
- package/build/src/background-jobs/web/path-matcher.d.ts +18 -13
- package/build/src/background-jobs/web/path-matcher.d.ts.map +1 -1
- package/build/src/background-jobs/web/registry.d.ts +21 -24
- package/build/src/background-jobs/web/registry.d.ts.map +1 -1
- package/build/src/background-jobs/worker.d.ts +74 -77
- package/build/src/background-jobs/worker.d.ts.map +1 -1
- package/build/src/background-jobs/worker.js +9 -9
- package/build/src/beacon/client.d.ts +30 -34
- package/build/src/beacon/client.d.ts.map +1 -1
- package/build/src/beacon/client.js +4 -4
- package/build/src/beacon/in-process-broker.d.ts +6 -9
- package/build/src/beacon/in-process-broker.d.ts.map +1 -1
- package/build/src/beacon/in-process-client.d.ts +17 -21
- package/build/src/beacon/in-process-client.d.ts.map +1 -1
- package/build/src/beacon/in-process-client.js +4 -4
- package/build/src/beacon/server.d.ts +15 -15
- package/build/src/beacon/server.d.ts.map +1 -1
- package/build/src/beacon/types.d.ts +21 -46
- package/build/src/beacon/types.d.ts.map +1 -1
- package/build/src/beacon/types.js +2 -2
- package/build/src/cli/base-command.d.ts +25 -28
- package/build/src/cli/base-command.d.ts.map +1 -1
- package/build/src/cli/base-command.js +2 -2
- package/build/src/cli/browser-cli.d.ts +1 -1
- package/build/src/cli/browser-cli.d.ts.map +1 -1
- package/build/src/cli/commands/background-jobs-main.d.ts +2 -1
- package/build/src/cli/commands/background-jobs-main.d.ts.map +1 -1
- package/build/src/cli/commands/background-jobs-runner.d.ts +2 -1
- package/build/src/cli/commands/background-jobs-runner.d.ts.map +1 -1
- package/build/src/cli/commands/background-jobs-worker.d.ts +2 -1
- package/build/src/cli/commands/background-jobs-worker.d.ts.map +1 -1
- package/build/src/cli/commands/beacon.d.ts +2 -1
- package/build/src/cli/commands/beacon.d.ts.map +1 -1
- package/build/src/cli/commands/console.d.ts +6 -1
- package/build/src/cli/commands/console.d.ts.map +1 -1
- package/build/src/cli/commands/console.js +2 -2
- package/build/src/cli/commands/db/base-command.d.ts +1 -1
- package/build/src/cli/commands/db/base-command.d.ts.map +1 -1
- package/build/src/cli/commands/db/create.d.ts +1 -1
- package/build/src/cli/commands/db/create.d.ts.map +1 -1
- package/build/src/cli/commands/db/drop.d.ts +1 -1
- package/build/src/cli/commands/db/drop.d.ts.map +1 -1
- package/build/src/cli/commands/db/migrate.d.ts +1 -1
- package/build/src/cli/commands/db/migrate.d.ts.map +1 -1
- package/build/src/cli/commands/db/reset.d.ts +1 -1
- package/build/src/cli/commands/db/reset.d.ts.map +1 -1
- package/build/src/cli/commands/db/rollback.d.ts +1 -1
- package/build/src/cli/commands/db/rollback.d.ts.map +1 -1
- package/build/src/cli/commands/db/schema/dump.d.ts +6 -1
- package/build/src/cli/commands/db/schema/dump.d.ts.map +1 -1
- package/build/src/cli/commands/db/schema/dump.js +2 -2
- package/build/src/cli/commands/db/schema/load.d.ts +6 -1
- package/build/src/cli/commands/db/schema/load.d.ts.map +1 -1
- package/build/src/cli/commands/db/schema/load.js +2 -2
- package/build/src/cli/commands/db/seed.d.ts +6 -1
- package/build/src/cli/commands/db/seed.d.ts.map +1 -1
- package/build/src/cli/commands/db/seed.js +2 -2
- package/build/src/cli/commands/db/tenants/check.d.ts +1 -1
- package/build/src/cli/commands/db/tenants/check.d.ts.map +1 -1
- package/build/src/cli/commands/db/tenants/create.d.ts +1 -1
- package/build/src/cli/commands/db/tenants/create.d.ts.map +1 -1
- package/build/src/cli/commands/db/tenants/drop.d.ts +1 -1
- package/build/src/cli/commands/db/tenants/drop.d.ts.map +1 -1
- package/build/src/cli/commands/db/tenants/migrate.d.ts +1 -1
- package/build/src/cli/commands/db/tenants/migrate.d.ts.map +1 -1
- package/build/src/cli/commands/destroy/migration.d.ts +2 -1
- package/build/src/cli/commands/destroy/migration.d.ts.map +1 -1
- package/build/src/cli/commands/generate/base-models.d.ts +2 -1
- package/build/src/cli/commands/generate/base-models.d.ts.map +1 -1
- package/build/src/cli/commands/generate/frontend-models.d.ts +6 -1
- package/build/src/cli/commands/generate/frontend-models.d.ts.map +1 -1
- package/build/src/cli/commands/generate/frontend-models.js +2 -2
- package/build/src/cli/commands/generate/migration.d.ts +2 -1
- package/build/src/cli/commands/generate/migration.d.ts.map +1 -1
- package/build/src/cli/commands/generate/model.d.ts +2 -1
- package/build/src/cli/commands/generate/model.d.ts.map +1 -1
- package/build/src/cli/commands/init.d.ts +4 -2
- package/build/src/cli/commands/init.d.ts.map +1 -1
- package/build/src/cli/commands/lint/relationships.d.ts +6 -1
- package/build/src/cli/commands/lint/relationships.d.ts.map +1 -1
- package/build/src/cli/commands/lint/relationships.js +2 -2
- package/build/src/cli/commands/routes.d.ts +2 -1
- package/build/src/cli/commands/routes.d.ts.map +1 -1
- package/build/src/cli/commands/run-script.d.ts +6 -1
- package/build/src/cli/commands/run-script.d.ts.map +1 -1
- package/build/src/cli/commands/run-script.js +2 -2
- package/build/src/cli/commands/runner.d.ts +6 -1
- package/build/src/cli/commands/runner.d.ts.map +1 -1
- package/build/src/cli/commands/runner.js +2 -2
- package/build/src/cli/commands/server.d.ts +2 -1
- package/build/src/cli/commands/server.d.ts.map +1 -1
- package/build/src/cli/commands/test.d.ts +2 -1
- package/build/src/cli/commands/test.d.ts.map +1 -1
- package/build/src/cli/index.d.ts +20 -20
- package/build/src/cli/index.d.ts.map +1 -1
- package/build/src/cli/index.js +3 -3
- package/build/src/cli/tenant-database-command-helper.d.ts +13 -13
- package/build/src/cli/tenant-database-command-helper.d.ts.map +1 -1
- package/build/src/cli/tenant-database-command-helper.js +3 -3
- package/build/src/cli/use-browser-cli.d.ts +1 -1
- package/build/src/cli/use-browser-cli.d.ts.map +1 -1
- package/build/src/configuration-resolver.d.ts +1 -1
- package/build/src/configuration-resolver.d.ts.map +1 -1
- package/build/src/configuration-types.d.ts +947 -1038
- package/build/src/configuration-types.d.ts.map +1 -1
- package/build/src/configuration-types.js +49 -48
- package/build/src/configuration.d.ts +145 -139
- package/build/src/configuration.d.ts.map +1 -1
- package/build/src/configuration.js +149 -66
- package/build/src/controller.d.ts +37 -35
- package/build/src/controller.d.ts.map +1 -1
- package/build/src/controller.js +11 -9
- package/build/src/current-configuration.d.ts +5 -4
- package/build/src/current-configuration.d.ts.map +1 -1
- package/build/src/current.d.ts +3 -3
- package/build/src/current.d.ts.map +1 -1
- package/build/src/current.js +3 -3
- package/build/src/database/advisory-lock-runner.d.ts +61 -60
- package/build/src/database/advisory-lock-runner.d.ts.map +1 -1
- package/build/src/database/annotations-async-hooks.js +4 -4
- package/build/src/database/annotations.d.ts +4 -6
- package/build/src/database/annotations.d.ts.map +1 -1
- package/build/src/database/annotations.js +2 -2
- package/build/src/database/column-types.d.ts +1 -1
- package/build/src/database/column-types.d.ts.map +1 -1
- package/build/src/database/datetime-storage.d.ts +6 -6
- package/build/src/database/datetime-storage.d.ts.map +1 -1
- package/build/src/database/drivers/base-column.d.ts +3 -3
- package/build/src/database/drivers/base-column.d.ts.map +1 -1
- package/build/src/database/drivers/base-column.js +2 -2
- package/build/src/database/drivers/base-columns-index.d.ts +2 -2
- package/build/src/database/drivers/base-columns-index.d.ts.map +1 -1
- package/build/src/database/drivers/base-foreign-key.d.ts +7 -7
- package/build/src/database/drivers/base-foreign-key.d.ts.map +1 -1
- package/build/src/database/drivers/base-foreign-key.js +2 -2
- package/build/src/database/drivers/base-table.d.ts +3 -3
- package/build/src/database/drivers/base-table.d.ts.map +1 -1
- package/build/src/database/drivers/base-table.js +2 -2
- package/build/src/database/drivers/base.d.ts +297 -342
- package/build/src/database/drivers/base.d.ts.map +1 -1
- package/build/src/database/drivers/base.js +19 -19
- package/build/src/database/drivers/index-metadata.d.ts +15 -18
- package/build/src/database/drivers/index-metadata.d.ts.map +1 -1
- package/build/src/database/drivers/mssql/column.d.ts +10 -5
- package/build/src/database/drivers/mssql/column.d.ts.map +1 -1
- package/build/src/database/drivers/mssql/column.js +2 -2
- package/build/src/database/drivers/mssql/columns-index.d.ts +30 -22
- package/build/src/database/drivers/mssql/columns-index.d.ts.map +1 -1
- package/build/src/database/drivers/mssql/connect-connection.d.ts.map +1 -1
- package/build/src/database/drivers/mssql/foreign-key.d.ts +1 -1
- package/build/src/database/drivers/mssql/foreign-key.d.ts.map +1 -1
- package/build/src/database/drivers/mssql/index.d.ts +250 -9
- package/build/src/database/drivers/mssql/index.d.ts.map +1 -1
- package/build/src/database/drivers/mssql/index.js +3 -3
- package/build/src/database/drivers/mssql/options.d.ts +31 -1
- package/build/src/database/drivers/mssql/options.d.ts.map +1 -1
- package/build/src/database/drivers/mssql/options.js +2 -2
- package/build/src/database/drivers/mssql/query-parser.d.ts +1 -1
- package/build/src/database/drivers/mssql/query-parser.d.ts.map +1 -1
- package/build/src/database/drivers/mssql/sql/alter-table.d.ts +1 -1
- package/build/src/database/drivers/mssql/sql/alter-table.d.ts.map +1 -1
- package/build/src/database/drivers/mssql/sql/create-database.d.ts +3 -2
- package/build/src/database/drivers/mssql/sql/create-database.d.ts.map +1 -1
- package/build/src/database/drivers/mssql/sql/create-index.d.ts +1 -1
- package/build/src/database/drivers/mssql/sql/create-index.d.ts.map +1 -1
- package/build/src/database/drivers/mssql/sql/create-table.d.ts +1 -1
- package/build/src/database/drivers/mssql/sql/create-table.d.ts.map +1 -1
- package/build/src/database/drivers/mssql/sql/delete.d.ts +1 -1
- package/build/src/database/drivers/mssql/sql/delete.d.ts.map +1 -1
- package/build/src/database/drivers/mssql/sql/drop-database.d.ts +14 -1
- package/build/src/database/drivers/mssql/sql/drop-database.d.ts.map +1 -1
- package/build/src/database/drivers/mssql/sql/drop-table.d.ts +1 -1
- package/build/src/database/drivers/mssql/sql/drop-table.d.ts.map +1 -1
- package/build/src/database/drivers/mssql/sql/insert.d.ts +1 -1
- package/build/src/database/drivers/mssql/sql/insert.d.ts.map +1 -1
- package/build/src/database/drivers/mssql/sql/remove-index.d.ts +1 -1
- package/build/src/database/drivers/mssql/sql/remove-index.d.ts.map +1 -1
- package/build/src/database/drivers/mssql/sql/update.d.ts +1 -1
- package/build/src/database/drivers/mssql/sql/update.d.ts.map +1 -1
- package/build/src/database/drivers/mssql/sql/upsert.d.ts +1 -1
- package/build/src/database/drivers/mssql/sql/upsert.d.ts.map +1 -1
- package/build/src/database/drivers/mssql/structure-sql.d.ts +3 -3
- package/build/src/database/drivers/mssql/structure-sql.d.ts.map +1 -1
- package/build/src/database/drivers/mssql/structure-sql.js +2 -2
- package/build/src/database/drivers/mssql/table.d.ts +39 -29
- package/build/src/database/drivers/mssql/table.d.ts.map +1 -1
- package/build/src/database/drivers/mssql/table.js +2 -2
- package/build/src/database/drivers/mysql/column.d.ts +10 -6
- package/build/src/database/drivers/mysql/column.d.ts.map +1 -1
- package/build/src/database/drivers/mysql/column.js +2 -2
- package/build/src/database/drivers/mysql/columns-index.d.ts +3 -1
- package/build/src/database/drivers/mysql/columns-index.d.ts.map +1 -1
- package/build/src/database/drivers/mysql/foreign-key.d.ts +1 -1
- package/build/src/database/drivers/mysql/foreign-key.d.ts.map +1 -1
- package/build/src/database/drivers/mysql/index.d.ts +225 -6
- package/build/src/database/drivers/mysql/index.d.ts.map +1 -1
- package/build/src/database/drivers/mysql/index.js +5 -5
- package/build/src/database/drivers/mysql/options.d.ts +7 -1
- package/build/src/database/drivers/mysql/options.d.ts.map +1 -1
- package/build/src/database/drivers/mysql/options.js +2 -2
- package/build/src/database/drivers/mysql/query-parser.d.ts +1 -1
- package/build/src/database/drivers/mysql/query-parser.d.ts.map +1 -1
- package/build/src/database/drivers/mysql/query-stream.d.ts.map +1 -1
- package/build/src/database/drivers/mysql/query.d.ts +2 -2
- package/build/src/database/drivers/mysql/query.d.ts.map +1 -1
- package/build/src/database/drivers/mysql/query.js +8 -8
- package/build/src/database/drivers/mysql/sql/alter-table.d.ts +12 -1
- package/build/src/database/drivers/mysql/sql/alter-table.d.ts.map +1 -1
- package/build/src/database/drivers/mysql/sql/create-database.d.ts +6 -1
- package/build/src/database/drivers/mysql/sql/create-database.d.ts.map +1 -1
- package/build/src/database/drivers/mysql/sql/create-index.d.ts +1 -1
- package/build/src/database/drivers/mysql/sql/create-index.d.ts.map +1 -1
- package/build/src/database/drivers/mysql/sql/create-table.d.ts +1 -1
- package/build/src/database/drivers/mysql/sql/create-table.d.ts.map +1 -1
- package/build/src/database/drivers/mysql/sql/delete.d.ts +1 -1
- package/build/src/database/drivers/mysql/sql/delete.d.ts.map +1 -1
- package/build/src/database/drivers/mysql/sql/drop-database.d.ts +1 -1
- package/build/src/database/drivers/mysql/sql/drop-database.d.ts.map +1 -1
- package/build/src/database/drivers/mysql/sql/drop-table.d.ts +1 -1
- package/build/src/database/drivers/mysql/sql/drop-table.d.ts.map +1 -1
- package/build/src/database/drivers/mysql/sql/insert.d.ts +1 -1
- package/build/src/database/drivers/mysql/sql/insert.d.ts.map +1 -1
- package/build/src/database/drivers/mysql/sql/remove-index.d.ts +1 -1
- package/build/src/database/drivers/mysql/sql/remove-index.d.ts.map +1 -1
- package/build/src/database/drivers/mysql/sql/update.d.ts +1 -1
- package/build/src/database/drivers/mysql/sql/update.d.ts.map +1 -1
- package/build/src/database/drivers/mysql/sql/upsert.d.ts +1 -1
- package/build/src/database/drivers/mysql/sql/upsert.d.ts.map +1 -1
- package/build/src/database/drivers/mysql/structure-sql.d.ts +14 -3
- package/build/src/database/drivers/mysql/structure-sql.d.ts.map +1 -1
- package/build/src/database/drivers/mysql/structure-sql.js +62 -11
- package/build/src/database/drivers/mysql/table.d.ts +11 -6
- package/build/src/database/drivers/mysql/table.d.ts.map +1 -1
- package/build/src/database/drivers/pgsql/column.d.ts +10 -5
- package/build/src/database/drivers/pgsql/column.d.ts.map +1 -1
- package/build/src/database/drivers/pgsql/column.js +2 -2
- package/build/src/database/drivers/pgsql/columns-index.d.ts +30 -22
- package/build/src/database/drivers/pgsql/columns-index.d.ts.map +1 -1
- package/build/src/database/drivers/pgsql/foreign-key.d.ts +1 -1
- package/build/src/database/drivers/pgsql/foreign-key.d.ts.map +1 -1
- package/build/src/database/drivers/pgsql/index.d.ts +157 -6
- package/build/src/database/drivers/pgsql/index.d.ts.map +1 -1
- package/build/src/database/drivers/pgsql/index.js +7 -7
- package/build/src/database/drivers/pgsql/options.d.ts +1 -1
- package/build/src/database/drivers/pgsql/options.d.ts.map +1 -1
- package/build/src/database/drivers/pgsql/query-parser.d.ts +1 -1
- package/build/src/database/drivers/pgsql/query-parser.d.ts.map +1 -1
- package/build/src/database/drivers/pgsql/sql/alter-table.d.ts +1 -1
- package/build/src/database/drivers/pgsql/sql/alter-table.d.ts.map +1 -1
- package/build/src/database/drivers/pgsql/sql/create-database.d.ts +2 -1
- package/build/src/database/drivers/pgsql/sql/create-database.d.ts.map +1 -1
- package/build/src/database/drivers/pgsql/sql/create-index.d.ts +1 -1
- package/build/src/database/drivers/pgsql/sql/create-index.d.ts.map +1 -1
- package/build/src/database/drivers/pgsql/sql/create-table.d.ts +1 -1
- package/build/src/database/drivers/pgsql/sql/create-table.d.ts.map +1 -1
- package/build/src/database/drivers/pgsql/sql/delete.d.ts +1 -1
- package/build/src/database/drivers/pgsql/sql/delete.d.ts.map +1 -1
- package/build/src/database/drivers/pgsql/sql/drop-database.d.ts +1 -1
- package/build/src/database/drivers/pgsql/sql/drop-database.d.ts.map +1 -1
- package/build/src/database/drivers/pgsql/sql/drop-table.d.ts +1 -1
- package/build/src/database/drivers/pgsql/sql/drop-table.d.ts.map +1 -1
- package/build/src/database/drivers/pgsql/sql/insert.d.ts +1 -1
- package/build/src/database/drivers/pgsql/sql/insert.d.ts.map +1 -1
- package/build/src/database/drivers/pgsql/sql/remove-index.d.ts +1 -1
- package/build/src/database/drivers/pgsql/sql/remove-index.d.ts.map +1 -1
- package/build/src/database/drivers/pgsql/sql/update.d.ts +1 -1
- package/build/src/database/drivers/pgsql/sql/update.d.ts.map +1 -1
- package/build/src/database/drivers/pgsql/sql/upsert.d.ts +1 -1
- package/build/src/database/drivers/pgsql/sql/upsert.d.ts.map +1 -1
- package/build/src/database/drivers/pgsql/structure-sql.d.ts +3 -3
- package/build/src/database/drivers/pgsql/structure-sql.d.ts.map +1 -1
- package/build/src/database/drivers/pgsql/structure-sql.js +2 -2
- package/build/src/database/drivers/pgsql/table.d.ts +33 -31
- package/build/src/database/drivers/pgsql/table.d.ts.map +1 -1
- package/build/src/database/drivers/sqlite/base.d.ts +162 -12
- package/build/src/database/drivers/sqlite/base.d.ts.map +1 -1
- package/build/src/database/drivers/sqlite/base.js +8 -8
- package/build/src/database/drivers/sqlite/column.d.ts +12 -6
- package/build/src/database/drivers/sqlite/column.d.ts.map +1 -1
- package/build/src/database/drivers/sqlite/column.js +2 -2
- package/build/src/database/drivers/sqlite/columns-index.d.ts +5 -1
- package/build/src/database/drivers/sqlite/columns-index.d.ts.map +1 -1
- package/build/src/database/drivers/sqlite/connection-sql-js.d.ts +9 -9
- package/build/src/database/drivers/sqlite/connection-sql-js.d.ts.map +1 -1
- package/build/src/database/drivers/sqlite/connection-sql-js.js +2 -2
- package/build/src/database/drivers/sqlite/foreign-key.d.ts +5 -4
- package/build/src/database/drivers/sqlite/foreign-key.d.ts.map +1 -1
- package/build/src/database/drivers/sqlite/foreign-key.js +2 -2
- package/build/src/database/drivers/sqlite/index.d.ts +53 -3
- package/build/src/database/drivers/sqlite/index.d.ts.map +1 -1
- package/build/src/database/drivers/sqlite/index.js +2 -2
- package/build/src/database/drivers/sqlite/index.native.d.ts +13 -5
- package/build/src/database/drivers/sqlite/index.native.d.ts.map +1 -1
- package/build/src/database/drivers/sqlite/index.native.js +3 -3
- package/build/src/database/drivers/sqlite/index.web.d.ts +48 -14
- package/build/src/database/drivers/sqlite/index.web.d.ts.map +1 -1
- package/build/src/database/drivers/sqlite/index.web.js +3 -3
- package/build/src/database/drivers/sqlite/options.d.ts +1 -1
- package/build/src/database/drivers/sqlite/options.d.ts.map +1 -1
- package/build/src/database/drivers/sqlite/query-parser.d.ts +1 -1
- package/build/src/database/drivers/sqlite/query-parser.d.ts.map +1 -1
- package/build/src/database/drivers/sqlite/query.d.ts +2 -2
- package/build/src/database/drivers/sqlite/query.d.ts.map +1 -1
- package/build/src/database/drivers/sqlite/query.js +3 -3
- package/build/src/database/drivers/sqlite/query.native.d.ts +4 -4
- package/build/src/database/drivers/sqlite/query.native.d.ts.map +1 -1
- package/build/src/database/drivers/sqlite/query.native.js +3 -3
- package/build/src/database/drivers/sqlite/query.web.d.ts +2 -2
- package/build/src/database/drivers/sqlite/query.web.d.ts.map +1 -1
- package/build/src/database/drivers/sqlite/query.web.js +3 -3
- package/build/src/database/drivers/sqlite/sql/alter-table.d.ts +19 -4
- package/build/src/database/drivers/sqlite/sql/alter-table.d.ts.map +1 -1
- package/build/src/database/drivers/sqlite/sql/create-index.d.ts +1 -1
- package/build/src/database/drivers/sqlite/sql/create-index.d.ts.map +1 -1
- package/build/src/database/drivers/sqlite/sql/create-table.d.ts +1 -1
- package/build/src/database/drivers/sqlite/sql/create-table.d.ts.map +1 -1
- package/build/src/database/drivers/sqlite/sql/delete.d.ts +1 -1
- package/build/src/database/drivers/sqlite/sql/delete.d.ts.map +1 -1
- package/build/src/database/drivers/sqlite/sql/drop-table.d.ts +1 -1
- package/build/src/database/drivers/sqlite/sql/drop-table.d.ts.map +1 -1
- package/build/src/database/drivers/sqlite/sql/insert.d.ts +1 -1
- package/build/src/database/drivers/sqlite/sql/insert.d.ts.map +1 -1
- package/build/src/database/drivers/sqlite/sql/remove-index.d.ts +1 -1
- package/build/src/database/drivers/sqlite/sql/remove-index.d.ts.map +1 -1
- package/build/src/database/drivers/sqlite/sql/update.d.ts +1 -1
- package/build/src/database/drivers/sqlite/sql/update.d.ts.map +1 -1
- package/build/src/database/drivers/sqlite/sql/upsert.d.ts +1 -1
- package/build/src/database/drivers/sqlite/sql/upsert.d.ts.map +1 -1
- package/build/src/database/drivers/sqlite/structure-sql.d.ts +1 -1
- package/build/src/database/drivers/sqlite/structure-sql.d.ts.map +1 -1
- package/build/src/database/drivers/sqlite/table-rebuilder.d.ts +5 -5
- package/build/src/database/drivers/sqlite/table-rebuilder.d.ts.map +1 -1
- package/build/src/database/drivers/sqlite/table-rebuilder.js +2 -2
- package/build/src/database/drivers/sqlite/table.d.ts +15 -5
- package/build/src/database/drivers/sqlite/table.d.ts.map +1 -1
- package/build/src/database/drivers/sqlite/web-persistence.d.ts +28 -34
- package/build/src/database/drivers/sqlite/web-persistence.d.ts.map +1 -1
- package/build/src/database/drivers/structure-sql/utils.d.ts +2 -2
- package/build/src/database/drivers/structure-sql/utils.d.ts.map +1 -1
- package/build/src/database/handler.d.ts.map +1 -1
- package/build/src/database/initializer-from-require-context.d.ts +18 -16
- package/build/src/database/initializer-from-require-context.d.ts.map +1 -1
- package/build/src/database/live-query.d.ts +13 -24
- package/build/src/database/live-query.d.ts.map +1 -1
- package/build/src/database/migration/index.d.ts +146 -169
- package/build/src/database/migration/index.d.ts.map +1 -1
- package/build/src/database/migration/index.js +3 -3
- package/build/src/database/migrations-ledger.d.ts.map +1 -1
- package/build/src/database/migrator/files-finder.d.ts +1 -1
- package/build/src/database/migrator/files-finder.d.ts.map +1 -1
- package/build/src/database/migrator/types.d.ts +26 -2
- package/build/src/database/migrator/types.d.ts.map +1 -1
- package/build/src/database/migrator/types.js +24 -1
- package/build/src/database/migrator.d.ts +10 -10
- package/build/src/database/migrator.d.ts.map +1 -1
- package/build/src/database/operation-connection.d.ts +3 -3
- package/build/src/database/operation-connection.d.ts.map +1 -1
- package/build/src/database/operation-lease.d.ts +4 -4
- package/build/src/database/operation-lease.d.ts.map +1 -1
- package/build/src/database/operation.d.ts +38 -7
- package/build/src/database/operation.d.ts.map +1 -1
- package/build/src/database/operation.js +55 -8
- package/build/src/database/pool/async-tracked-multi-connection.d.ts +174 -79
- package/build/src/database/pool/async-tracked-multi-connection.d.ts.map +1 -1
- package/build/src/database/pool/async-tracked-multi-connection.js +70 -25
- package/build/src/database/pool/base-methods-forward.d.ts.map +1 -1
- package/build/src/database/pool/base-methods-forward.js +3 -3
- package/build/src/database/pool/base.d.ts +93 -71
- package/build/src/database/pool/base.d.ts.map +1 -1
- package/build/src/database/pool/base.js +47 -17
- package/build/src/database/pool/single-multi-use.d.ts +243 -10
- package/build/src/database/pool/single-multi-use.d.ts.map +1 -1
- package/build/src/database/pool/single-multi-use.js +467 -103
- package/build/src/database/query/alter-table-base.d.ts +8 -3
- package/build/src/database/query/alter-table-base.d.ts.map +1 -1
- package/build/src/database/query/base.d.ts +3 -3
- package/build/src/database/query/base.d.ts.map +1 -1
- package/build/src/database/query/create-database-base.d.ts +28 -22
- package/build/src/database/query/create-database-base.d.ts.map +1 -1
- package/build/src/database/query/create-index-base.d.ts +32 -30
- package/build/src/database/query/create-index-base.d.ts.map +1 -1
- package/build/src/database/query/create-table-base.d.ts +7 -7
- package/build/src/database/query/create-table-base.d.ts.map +1 -1
- package/build/src/database/query/delete-base.d.ts +5 -5
- package/build/src/database/query/delete-base.d.ts.map +1 -1
- package/build/src/database/query/delete-base.js +2 -2
- package/build/src/database/query/drop-database-base.d.ts +22 -18
- package/build/src/database/query/drop-database-base.d.ts.map +1 -1
- package/build/src/database/query/drop-table-base.d.ts +11 -6
- package/build/src/database/query/drop-table-base.d.ts.map +1 -1
- package/build/src/database/query/from-base.d.ts.map +1 -1
- package/build/src/database/query/from-plain.d.ts +3 -2
- package/build/src/database/query/from-plain.d.ts.map +1 -1
- package/build/src/database/query/from-table.d.ts +3 -2
- package/build/src/database/query/from-table.d.ts.map +1 -1
- package/build/src/database/query/index.d.ts +92 -107
- 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 +18 -18
- package/build/src/database/query/insert-base.d.ts.map +1 -1
- package/build/src/database/query/insert-base.js +5 -5
- 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 +9 -15
- package/build/src/database/query/join-object.d.ts.map +1 -1
- package/build/src/database/query/join-plain.d.ts +2 -2
- package/build/src/database/query/join-plain.d.ts.map +1 -1
- package/build/src/database/query/join-tracker.d.ts +3 -3
- package/build/src/database/query/join-tracker.d.ts.map +1 -1
- package/build/src/database/query/model-class-query.d.ts +39 -36
- package/build/src/database/query/model-class-query.d.ts.map +1 -1
- package/build/src/database/query/model-class-query.js +40 -40
- package/build/src/database/query/order-base.d.ts +1 -1
- package/build/src/database/query/order-base.d.ts.map +1 -1
- package/build/src/database/query/order-column.d.ts +19 -22
- package/build/src/database/query/order-column.d.ts.map +1 -1
- package/build/src/database/query/order-plain.d.ts +3 -3
- package/build/src/database/query/order-plain.d.ts.map +1 -1
- package/build/src/database/query/preloader/belongs-to.d.ts +5 -5
- package/build/src/database/query/preloader/belongs-to.d.ts.map +1 -1
- package/build/src/database/query/preloader/belongs-to.js +3 -3
- package/build/src/database/query/preloader/ensure-model-class-initialized.d.ts +2 -1
- package/build/src/database/query/preloader/ensure-model-class-initialized.d.ts.map +1 -1
- package/build/src/database/query/preloader/ensure-model-class-initialized.js +4 -3
- package/build/src/database/query/preloader/has-many.d.ts +6 -6
- package/build/src/database/query/preloader/has-many.d.ts.map +1 -1
- package/build/src/database/query/preloader/has-many.js +4 -4
- package/build/src/database/query/preloader/has-one.d.ts +5 -5
- package/build/src/database/query/preloader/has-one.d.ts.map +1 -1
- package/build/src/database/query/preloader/has-one.js +2 -2
- package/build/src/database/query/preloader/query-for-model.d.ts.map +1 -1
- package/build/src/database/query/preloader/selection.d.ts +6 -6
- package/build/src/database/query/preloader/selection.d.ts.map +1 -1
- package/build/src/database/query/preloader.d.ts +8 -8
- package/build/src/database/query/preloader.d.ts.map +1 -1
- package/build/src/database/query/preloader.js +9 -3
- package/build/src/database/query/query-data.d.ts +43 -55
- package/build/src/database/query/query-data.d.ts.map +1 -1
- package/build/src/database/query/query-data.js +8 -8
- package/build/src/database/query/remove-index-base.d.ts +21 -19
- package/build/src/database/query/remove-index-base.d.ts.map +1 -1
- 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/select-plain.d.ts +3 -2
- package/build/src/database/query/select-plain.d.ts.map +1 -1
- package/build/src/database/query/select-table-and-column.d.ts +4 -3
- package/build/src/database/query/select-table-and-column.d.ts.map +1 -1
- package/build/src/database/query/update-base.d.ts +10 -10
- package/build/src/database/query/update-base.d.ts.map +1 -1
- package/build/src/database/query/update-base.js +4 -4
- package/build/src/database/query/upsert-base.d.ts +9 -9
- package/build/src/database/query/upsert-base.d.ts.map +1 -1
- package/build/src/database/query/upsert-base.js +3 -3
- 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-combinator.d.ts +9 -4
- package/build/src/database/query/where-combinator.d.ts.map +1 -1
- package/build/src/database/query/where-hash.d.ts +11 -9
- package/build/src/database/query/where-hash.d.ts.map +1 -1
- package/build/src/database/query/where-model-class-hash.d.ts +28 -26
- package/build/src/database/query/where-model-class-hash.d.ts.map +1 -1
- package/build/src/database/query/where-model-class-hash.js +14 -14
- package/build/src/database/query/where-not.d.ts +8 -3
- package/build/src/database/query/where-not.d.ts.map +1 -1
- package/build/src/database/query/where-plain.d.ts +4 -3
- package/build/src/database/query/where-plain.d.ts.map +1 -1
- package/build/src/database/query/with-count.d.ts +22 -28
- package/build/src/database/query/with-count.d.ts.map +1 -1
- package/build/src/database/query/with-count.js +12 -12
- package/build/src/database/query-aborted-error.d.ts +5 -5
- package/build/src/database/query-aborted-error.d.ts.map +1 -1
- package/build/src/database/query-parser/base-query-parser.d.ts +3 -3
- package/build/src/database/query-parser/base-query-parser.d.ts.map +1 -1
- package/build/src/database/query-parser/from-parser.d.ts +2 -2
- package/build/src/database/query-parser/from-parser.d.ts.map +1 -1
- package/build/src/database/query-parser/group-parser.d.ts +2 -2
- package/build/src/database/query-parser/group-parser.d.ts.map +1 -1
- package/build/src/database/query-parser/joins-parser.d.ts +3 -3
- package/build/src/database/query-parser/joins-parser.d.ts.map +1 -1
- package/build/src/database/query-parser/limit-parser.d.ts +2 -2
- package/build/src/database/query-parser/limit-parser.d.ts.map +1 -1
- package/build/src/database/query-parser/options.d.ts +31 -34
- package/build/src/database/query-parser/options.d.ts.map +1 -1
- package/build/src/database/query-parser/options.js +3 -3
- package/build/src/database/query-parser/order-parser.d.ts +2 -2
- package/build/src/database/query-parser/order-parser.d.ts.map +1 -1
- package/build/src/database/query-parser/select-parser.d.ts +2 -2
- package/build/src/database/query-parser/select-parser.d.ts.map +1 -1
- package/build/src/database/query-parser/select-parser.js +2 -2
- package/build/src/database/query-parser/where-parser.d.ts +2 -2
- package/build/src/database/query-parser/where-parser.d.ts.map +1 -1
- package/build/src/database/record/acts-as-list.d.ts.map +1 -1
- package/build/src/database/record/acts-as-list.js +3 -3
- package/build/src/database/record/attachments/attachment-record.d.ts +7 -3
- package/build/src/database/record/attachments/attachment-record.d.ts.map +1 -1
- package/build/src/database/record/attachments/download.d.ts +9 -9
- package/build/src/database/record/attachments/download.d.ts.map +1 -1
- package/build/src/database/record/attachments/handle.d.ts +12 -12
- package/build/src/database/record/attachments/handle.d.ts.map +1 -1
- package/build/src/database/record/attachments/handle.js +7 -7
- package/build/src/database/record/attachments/normalize-input.d.ts +16 -22
- package/build/src/database/record/attachments/normalize-input.d.ts.map +1 -1
- package/build/src/database/record/attachments/normalize-input.js +12 -12
- package/build/src/database/record/attachments/storage-drivers/filesystem.d.ts +4 -4
- package/build/src/database/record/attachments/storage-drivers/filesystem.d.ts.map +1 -1
- package/build/src/database/record/attachments/storage-drivers/filesystem.js +2 -2
- package/build/src/database/record/attachments/storage-drivers/native.d.ts +12 -12
- package/build/src/database/record/attachments/storage-drivers/native.d.ts.map +1 -1
- package/build/src/database/record/attachments/storage-drivers/native.js +6 -6
- package/build/src/database/record/attachments/storage-drivers/s3.d.ts +17 -17
- 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 -11
- package/build/src/database/record/attachments/store.d.ts +38 -41
- package/build/src/database/record/attachments/store.d.ts.map +1 -1
- package/build/src/database/record/attachments/store.js +24 -21
- package/build/src/database/record/auditing.d.ts +67 -87
- package/build/src/database/record/auditing.d.ts.map +1 -1
- package/build/src/database/record/auditing.js +109 -30
- package/build/src/database/record/counter-cache-magnitude.d.ts +15 -35
- package/build/src/database/record/counter-cache-magnitude.d.ts.map +1 -1
- package/build/src/database/record/counter-cache-magnitude.js +12 -12
- package/build/src/database/record/index.d.ts +2390 -488
- package/build/src/database/record/index.d.ts.map +1 -1
- package/build/src/database/record/index.js +222 -172
- package/build/src/database/record/instance-relationships/base.d.ts +20 -23
- package/build/src/database/record/instance-relationships/base.d.ts.map +1 -1
- package/build/src/database/record/instance-relationships/base.js +5 -5
- package/build/src/database/record/instance-relationships/belongs-to.d.ts +9 -1
- package/build/src/database/record/instance-relationships/belongs-to.d.ts.map +1 -1
- package/build/src/database/record/instance-relationships/belongs-to.js +2 -2
- package/build/src/database/record/instance-relationships/has-many.d.ts +15 -3
- package/build/src/database/record/instance-relationships/has-many.d.ts.map +1 -1
- package/build/src/database/record/instance-relationships/has-many.js +4 -4
- package/build/src/database/record/instance-relationships/has-one.d.ts +19 -1
- package/build/src/database/record/instance-relationships/has-one.d.ts.map +1 -1
- package/build/src/database/record/instance-relationships/has-one.js +2 -2
- package/build/src/database/record/record-not-found-error.d.ts +1 -0
- package/build/src/database/record/record-not-found-error.d.ts.map +1 -1
- package/build/src/database/record/record-not-found-error.js +2 -1
- package/build/src/database/record/relationships/base.d.ts +83 -71
- package/build/src/database/record/relationships/base.d.ts.map +1 -1
- package/build/src/database/record/relationships/base.js +21 -1
- package/build/src/database/record/relationships/belongs-to.d.ts +11 -1
- package/build/src/database/record/relationships/belongs-to.d.ts.map +1 -1
- package/build/src/database/record/relationships/has-many.d.ts +11 -1
- package/build/src/database/record/relationships/has-many.d.ts.map +1 -1
- package/build/src/database/record/relationships/has-one.d.ts +11 -1
- package/build/src/database/record/relationships/has-one.d.ts.map +1 -1
- package/build/src/database/record/state-machine.d.ts +20 -29
- package/build/src/database/record/state-machine.d.ts.map +1 -1
- package/build/src/database/record/state-machine.js +7 -7
- package/build/src/database/record/user-module.d.ts +1 -1
- package/build/src/database/record/user-module.d.ts.map +1 -1
- package/build/src/database/record/validation-messages.d.ts +19 -22
- package/build/src/database/record/validation-messages.d.ts.map +1 -1
- package/build/src/database/record/validators/base.d.ts +4 -4
- package/build/src/database/record/validators/base.d.ts.map +1 -1
- package/build/src/database/record/validators/base.js +2 -2
- package/build/src/database/record/validators/format.d.ts +12 -1
- package/build/src/database/record/validators/format.d.ts.map +1 -1
- package/build/src/database/record/validators/length.d.ts +14 -1
- package/build/src/database/record/validators/length.d.ts.map +1 -1
- package/build/src/database/record/validators/presence.d.ts +11 -1
- package/build/src/database/record/validators/presence.d.ts.map +1 -1
- package/build/src/database/record/validators/uniqueness.d.ts +12 -1
- package/build/src/database/record/validators/uniqueness.d.ts.map +1 -1
- package/build/src/database/record-changes.d.ts +7 -18
- package/build/src/database/record-changes.d.ts.map +1 -1
- package/build/src/database/structure-sql-loader.d.ts +2 -2
- package/build/src/database/structure-sql-loader.d.ts.map +1 -1
- package/build/src/database/structure-sql-loader.js +4 -4
- package/build/src/database/table-data/index.d.ts +21 -24
- package/build/src/database/table-data/index.d.ts.map +1 -1
- package/build/src/database/table-data/table-column.d.ts +74 -80
- package/build/src/database/table-data/table-column.d.ts.map +1 -1
- package/build/src/database/table-data/table-column.js +4 -4
- package/build/src/database/table-data/table-foreign-key.d.ts +10 -10
- package/build/src/database/table-data/table-foreign-key.d.ts.map +1 -1
- package/build/src/database/table-data/table-index.d.ts +12 -15
- package/build/src/database/table-data/table-index.d.ts.map +1 -1
- package/build/src/database/table-data/table-reference.d.ts +2 -2
- package/build/src/database/table-data/table-reference.d.ts.map +1 -1
- package/build/src/database/tenants/data-copier.d.ts +7 -7
- package/build/src/database/tenants/data-copier.d.ts.map +1 -1
- package/build/src/database/tenants/schema-cloner.d.ts +3 -3
- package/build/src/database/tenants/schema-cloner.d.ts.map +1 -1
- package/build/src/database/tenants/tenant-table-plan.d.ts +20 -14
- package/build/src/database/tenants/tenant-table-plan.d.ts.map +1 -1
- package/build/src/database/tenants/tenant-table-plan.js +17 -1
- package/build/src/database/use-database.d.ts.map +1 -1
- package/build/src/database/use-live-query.d.ts +17 -29
- package/build/src/database/use-live-query.d.ts.map +1 -1
- package/build/src/database/use-live-query.js +4 -4
- package/build/src/environment-handlers/base.d.ts +112 -103
- package/build/src/environment-handlers/base.d.ts.map +1 -1
- package/build/src/environment-handlers/base.js +54 -38
- package/build/src/environment-handlers/browser.d.ts +63 -56
- package/build/src/environment-handlers/browser.d.ts.map +1 -1
- package/build/src/environment-handlers/browser.js +2 -2
- package/build/src/environment-handlers/node/attachment-path-source.d.ts +9 -9
- package/build/src/environment-handlers/node/attachment-path-source.d.ts.map +1 -1
- package/build/src/environment-handlers/node/cli/commands/background-jobs-main.d.ts +1 -1
- package/build/src/environment-handlers/node/cli/commands/background-jobs-main.d.ts.map +1 -1
- package/build/src/environment-handlers/node/cli/commands/background-jobs-runner.d.ts +1 -1
- package/build/src/environment-handlers/node/cli/commands/background-jobs-runner.d.ts.map +1 -1
- package/build/src/environment-handlers/node/cli/commands/background-jobs-worker.d.ts +1 -1
- package/build/src/environment-handlers/node/cli/commands/background-jobs-worker.d.ts.map +1 -1
- package/build/src/environment-handlers/node/cli/commands/beacon.d.ts +1 -1
- package/build/src/environment-handlers/node/cli/commands/beacon.d.ts.map +1 -1
- package/build/src/environment-handlers/node/cli/commands/cli-command-context.d.ts +7 -10
- package/build/src/environment-handlers/node/cli/commands/cli-command-context.d.ts.map +1 -1
- package/build/src/environment-handlers/node/cli/commands/console.d.ts +9 -7
- package/build/src/environment-handlers/node/cli/commands/console.d.ts.map +1 -1
- package/build/src/environment-handlers/node/cli/commands/console.js +5 -5
- package/build/src/environment-handlers/node/cli/commands/db/schema/dump.d.ts +1 -1
- package/build/src/environment-handlers/node/cli/commands/db/schema/dump.d.ts.map +1 -1
- package/build/src/environment-handlers/node/cli/commands/db/schema/load.d.ts +1 -1
- package/build/src/environment-handlers/node/cli/commands/db/schema/load.d.ts.map +1 -1
- package/build/src/environment-handlers/node/cli/commands/db/seed.d.ts +7 -5
- 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 +3 -3
- package/build/src/environment-handlers/node/cli/commands/destroy/migration.d.ts +4 -7
- package/build/src/environment-handlers/node/cli/commands/destroy/migration.d.ts.map +1 -1
- package/build/src/environment-handlers/node/cli/commands/generate/base-models.d.ts +1 -1
- 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 +2 -2
- package/build/src/environment-handlers/node/cli/commands/generate/frontend-models.d.ts +93 -108
- 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/generated-file-banner.d.ts.map +1 -1
- package/build/src/environment-handlers/node/cli/commands/generate/migration.d.ts +9 -12
- package/build/src/environment-handlers/node/cli/commands/generate/migration.d.ts.map +1 -1
- package/build/src/environment-handlers/node/cli/commands/generate/model.d.ts +8 -11
- package/build/src/environment-handlers/node/cli/commands/generate/model.d.ts.map +1 -1
- package/build/src/environment-handlers/node/cli/commands/init.d.ts +7 -9
- package/build/src/environment-handlers/node/cli/commands/init.d.ts.map +1 -1
- package/build/src/environment-handlers/node/cli/commands/lint/relationships.d.ts +7 -7
- package/build/src/environment-handlers/node/cli/commands/lint/relationships.d.ts.map +1 -1
- package/build/src/environment-handlers/node/cli/commands/routes.d.ts +1 -1
- package/build/src/environment-handlers/node/cli/commands/routes.d.ts.map +1 -1
- package/build/src/environment-handlers/node/cli/commands/run-script.d.ts +7 -5
- 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 +3 -3
- package/build/src/environment-handlers/node/cli/commands/runner.d.ts +9 -7
- package/build/src/environment-handlers/node/cli/commands/runner.d.ts.map +1 -1
- package/build/src/environment-handlers/node/cli/commands/runner.js +3 -3
- package/build/src/environment-handlers/node/cli/commands/server.d.ts +24 -30
- 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.d.ts +5 -5
- package/build/src/environment-handlers/node/cli/commands/test.d.ts.map +1 -1
- package/build/src/environment-handlers/node/source-peer-package.d.ts +5 -7
- package/build/src/environment-handlers/node/source-peer-package.d.ts.map +1 -1
- package/build/src/environment-handlers/node/source-peer-package.js +1 -1
- package/build/src/environment-handlers/node.d.ts +362 -13
- package/build/src/environment-handlers/node.d.ts.map +1 -1
- package/build/src/environment-handlers/node.js +37 -37
- package/build/src/error-logger.d.ts +3 -3
- package/build/src/error-logger.d.ts.map +1 -1
- package/build/src/error-logger.js +3 -3
- package/build/src/error-reporting/request-details.d.ts +1 -1
- package/build/src/error-reporting/request-details.d.ts.map +1 -1
- package/build/src/error-reporting/request-details.js +33 -33
- package/build/src/frontend-model-controller.d.ts +216 -230
- package/build/src/frontend-model-controller.d.ts.map +1 -1
- package/build/src/frontend-model-controller.js +217 -211
- package/build/src/frontend-model-resource/base-resource.d.ts +315 -365
- package/build/src/frontend-model-resource/base-resource.d.ts.map +1 -1
- package/build/src/frontend-model-resource/base-resource.js +45 -45
- package/build/src/frontend-model-resource/velocious-attachment-resource.d.ts +11 -5
- package/build/src/frontend-model-resource/velocious-attachment-resource.d.ts.map +1 -1
- package/build/src/frontend-model-resource/velocious-attachment-resource.js +2 -2
- package/build/src/frontend-models/base.d.ts +632 -726
- package/build/src/frontend-models/base.d.ts.map +1 -1
- package/build/src/frontend-models/base.js +147 -143
- package/build/src/frontend-models/built-in-resources.d.ts +2 -2
- package/build/src/frontend-models/built-in-resources.d.ts.map +1 -1
- package/build/src/frontend-models/clear-pending-debounced-callback.d.ts +2 -2
- package/build/src/frontend-models/clear-pending-debounced-callback.d.ts.map +1 -1
- package/build/src/frontend-models/clear-pending-debounced-callback.js +3 -3
- package/build/src/frontend-models/event-hook-models.d.ts +3 -6
- package/build/src/frontend-models/event-hook-models.d.ts.map +1 -1
- package/build/src/frontend-models/model-registry.d.ts +5 -5
- package/build/src/frontend-models/model-registry.d.ts.map +1 -1
- package/build/src/frontend-models/model-registry.js +5 -5
- package/build/src/frontend-models/outgoing-event-buffer.d.ts +20 -17
- package/build/src/frontend-models/outgoing-event-buffer.d.ts.map +1 -1
- package/build/src/frontend-models/outgoing-event-buffer.js +2 -2
- package/build/src/frontend-models/preloader.d.ts.map +1 -1
- package/build/src/frontend-models/preloader.js +2 -2
- package/build/src/frontend-models/query.d.ts +286 -331
- package/build/src/frontend-models/query.d.ts.map +1 -1
- package/build/src/frontend-models/query.js +61 -61
- package/build/src/frontend-models/resource-config-validation.d.ts +2 -2
- package/build/src/frontend-models/resource-config-validation.d.ts.map +1 -1
- package/build/src/frontend-models/resource-definition.d.ts +30 -33
- package/build/src/frontend-models/resource-definition.d.ts.map +1 -1
- package/build/src/frontend-models/resource-definition.js +10 -10
- package/build/src/frontend-models/transport-deadline.d.ts.map +1 -1
- package/build/src/frontend-models/transport-serialization.d.ts +26 -32
- package/build/src/frontend-models/transport-serialization.d.ts.map +1 -1
- package/build/src/frontend-models/transport-serialization.js +28 -28
- package/build/src/frontend-models/use-created-event.d.ts +4 -4
- package/build/src/frontend-models/use-created-event.d.ts.map +1 -1
- package/build/src/frontend-models/use-destroyed-event.d.ts +8 -29
- package/build/src/frontend-models/use-destroyed-event.d.ts.map +1 -1
- package/build/src/frontend-models/use-model-class-event.d.ts +9 -33
- package/build/src/frontend-models/use-model-class-event.d.ts.map +1 -1
- package/build/src/frontend-models/use-updated-event.d.ts +8 -29
- package/build/src/frontend-models/use-updated-event.d.ts.map +1 -1
- package/build/src/frontend-models/websocket-channel.d.ts +30 -34
- package/build/src/frontend-models/websocket-channel.d.ts.map +1 -1
- package/build/src/frontend-models/websocket-channel.js +5 -5
- package/build/src/frontend-models/websocket-publishers.d.ts +4 -4
- package/build/src/frontend-models/websocket-publishers.d.ts.map +1 -1
- package/build/src/frontend-models/websocket-publishers.js +2 -2
- package/build/src/http-client/header.d.ts +2 -2
- package/build/src/http-client/header.d.ts.map +1 -1
- package/build/src/http-client/index.d.ts +23 -23
- package/build/src/http-client/index.d.ts.map +1 -1
- package/build/src/http-client/request.d.ts +9 -9
- package/build/src/http-client/request.d.ts.map +1 -1
- package/build/src/http-client/request.js +2 -2
- package/build/src/http-client/response.d.ts +12 -12
- package/build/src/http-client/response.d.ts.map +1 -1
- package/build/src/http-client/response.js +2 -2
- package/build/src/http-client/websocket-client.d.ts +20 -4
- package/build/src/http-client/websocket-client.d.ts.map +1 -1
- package/build/src/http-server/client/index.d.ts +26 -26
- package/build/src/http-server/client/index.d.ts.map +1 -1
- package/build/src/http-server/client/index.js +5 -5
- package/build/src/http-server/client/params-to-object.d.ts +11 -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 +17 -17
- package/build/src/http-server/client/request-buffer/form-data-part.d.ts +9 -9
- package/build/src/http-server/client/request-buffer/form-data-part.d.ts.map +1 -1
- package/build/src/http-server/client/request-buffer/header.d.ts +3 -3
- package/build/src/http-server/client/request-buffer/header.d.ts.map +1 -1
- package/build/src/http-server/client/request-buffer/index.d.ts +28 -30
- package/build/src/http-server/client/request-buffer/index.d.ts.map +1 -1
- package/build/src/http-server/client/request-buffer/index.js +5 -3
- package/build/src/http-server/client/request-parser.d.ts +11 -11
- package/build/src/http-server/client/request-parser.d.ts.map +1 -1
- package/build/src/http-server/client/request-parser.js +3 -3
- package/build/src/http-server/client/request-runner.d.ts +11 -11
- package/build/src/http-server/client/request-runner.d.ts.map +1 -1
- package/build/src/http-server/client/request-runner.js +3 -3
- package/build/src/http-server/client/request-timing.d.ts +5 -11
- package/build/src/http-server/client/request-timing.d.ts.map +1 -1
- package/build/src/http-server/client/request.d.ts +10 -10
- package/build/src/http-server/client/request.d.ts.map +1 -1
- package/build/src/http-server/client/request.js +3 -3
- package/build/src/http-server/client/response-compression.d.ts +5 -5
- package/build/src/http-server/client/response-compression.d.ts.map +1 -1
- package/build/src/http-server/client/response.d.ts +13 -13
- package/build/src/http-server/client/response.d.ts.map +1 -1
- package/build/src/http-server/client/uploaded-file/memory-uploaded-file.d.ts +8 -2
- package/build/src/http-server/client/uploaded-file/memory-uploaded-file.d.ts.map +1 -1
- package/build/src/http-server/client/uploaded-file/temporary-uploaded-file.d.ts +8 -2
- package/build/src/http-server/client/uploaded-file/temporary-uploaded-file.d.ts.map +1 -1
- package/build/src/http-server/client/uploaded-file/uploaded-file.d.ts +4 -4
- 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 +26 -26
- package/build/src/http-server/client/websocket-request.d.ts.map +1 -1
- package/build/src/http-server/client/websocket-request.js +7 -7
- package/build/src/http-server/client/websocket-session.d.ts +105 -108
- package/build/src/http-server/client/websocket-session.d.ts.map +1 -1
- package/build/src/http-server/client/websocket-session.js +29 -29
- package/build/src/http-server/client-delivery-queue.d.ts +30 -30
- package/build/src/http-server/client-delivery-queue.d.ts.map +1 -1
- package/build/src/http-server/cookie.d.ts +80 -108
- package/build/src/http-server/cookie.d.ts.map +1 -1
- package/build/src/http-server/cookie.js +3 -3
- package/build/src/http-server/development-reloader.d.ts +24 -24
- package/build/src/http-server/development-reloader.d.ts.map +1 -1
- package/build/src/http-server/development-reloader.js +2 -2
- package/build/src/http-server/index.d.ts +66 -72
- package/build/src/http-server/index.d.ts.map +1 -1
- package/build/src/http-server/index.js +6 -6
- package/build/src/http-server/remote-address.d.ts.map +1 -1
- package/build/src/http-server/remote-address.js +2 -2
- package/build/src/http-server/server-client.d.ts +9 -9
- package/build/src/http-server/server-client.d.ts.map +1 -1
- package/build/src/http-server/server-lock.d.ts +11 -11
- package/build/src/http-server/server-lock.d.ts.map +1 -1
- package/build/src/http-server/server-lock.js +5 -5
- package/build/src/http-server/websocket-channel-subscribers.d.ts +11 -10
- package/build/src/http-server/websocket-channel-subscribers.d.ts.map +1 -1
- package/build/src/http-server/websocket-channel-subscribers.js +6 -6
- package/build/src/http-server/websocket-channel.d.ts +8 -14
- package/build/src/http-server/websocket-channel.d.ts.map +1 -1
- package/build/src/http-server/websocket-channel.js +2 -2
- package/build/src/http-server/websocket-connection.d.ts +10 -10
- package/build/src/http-server/websocket-connection.d.ts.map +1 -1
- package/build/src/http-server/websocket-connection.js +4 -4
- package/build/src/http-server/websocket-event-log-store.d.ts +58 -64
- package/build/src/http-server/websocket-event-log-store.d.ts.map +1 -1
- package/build/src/http-server/websocket-event-log-store.js +10 -10
- package/build/src/http-server/websocket-events-host.d.ts +17 -16
- package/build/src/http-server/websocket-events-host.d.ts.map +1 -1
- package/build/src/http-server/websocket-events-host.js +8 -8
- package/build/src/http-server/websocket-events.d.ts +9 -9
- package/build/src/http-server/websocket-events.d.ts.map +1 -1
- package/build/src/http-server/websocket-events.js +5 -5
- package/build/src/http-server/worker-handler/channel-subscriber-dispatch.d.ts +2 -2
- package/build/src/http-server/worker-handler/channel-subscriber-dispatch.d.ts.map +1 -1
- package/build/src/http-server/worker-handler/channel-subscriber-dispatch.js +2 -2
- package/build/src/http-server/worker-handler/in-process.d.ts +22 -22
- package/build/src/http-server/worker-handler/in-process.d.ts.map +1 -1
- package/build/src/http-server/worker-handler/in-process.js +6 -6
- package/build/src/http-server/worker-handler/index.d.ts +50 -50
- package/build/src/http-server/worker-handler/index.d.ts.map +1 -1
- package/build/src/http-server/worker-handler/index.js +11 -11
- package/build/src/http-server/worker-handler/worker-thread.d.ts +61 -61
- package/build/src/http-server/worker-handler/worker-thread.d.ts.map +1 -1
- package/build/src/http-server/worker-handler/worker-thread.js +9 -9
- package/build/src/initializer.d.ts +2 -2
- package/build/src/initializer.d.ts.map +1 -1
- package/build/src/jobs/mail-delivery.d.ts +7 -2
- package/build/src/jobs/mail-delivery.d.ts.map +1 -1
- package/build/src/jobs/prune-terminal-background-jobs.d.ts +15 -2
- package/build/src/jobs/prune-terminal-background-jobs.d.ts.map +1 -1
- package/build/src/jobs/prune-terminal-background-jobs.js +1 -1
- package/build/src/logger/base-logger.d.ts.map +1 -1
- package/build/src/logger/base-logger.js +2 -2
- package/build/src/logger/console-logger.d.ts +3 -3
- package/build/src/logger/console-logger.d.ts.map +1 -1
- package/build/src/logger/file-logger.d.ts +4 -4
- package/build/src/logger/file-logger.d.ts.map +1 -1
- package/build/src/logger/outputs/array-output.d.ts +9 -12
- package/build/src/logger/outputs/array-output.d.ts.map +1 -1
- package/build/src/logger/outputs/console-output.d.ts +1 -4
- package/build/src/logger/outputs/console-output.d.ts.map +1 -1
- package/build/src/logger/outputs/file-output.d.ts +13 -16
- package/build/src/logger/outputs/file-output.d.ts.map +1 -1
- package/build/src/logger/outputs/stdout-output.d.ts +1 -4
- package/build/src/logger/outputs/stdout-output.d.ts.map +1 -1
- package/build/src/logger.d.ts +30 -29
- package/build/src/logger.d.ts.map +1 -1
- package/build/src/logger.js +13 -13
- package/build/src/mailer/backends/smtp.d.ts +8 -11
- package/build/src/mailer/backends/smtp.d.ts.map +1 -1
- package/build/src/mailer/backends/smtp.js +4 -4
- package/build/src/mailer/base.d.ts +61 -61
- package/build/src/mailer/base.d.ts.map +1 -1
- package/build/src/mailer/base.js +15 -15
- package/build/src/mailer/delivery.d.ts +16 -16
- package/build/src/mailer/delivery.d.ts.map +1 -1
- package/build/src/mailer/delivery.js +4 -4
- package/build/src/mailer/index.d.ts +8 -13
- package/build/src/mailer/index.d.ts.map +1 -1
- package/build/src/mailer/index.js +2 -2
- package/build/src/mailer.d.ts +9 -7
- package/build/src/mailer.d.ts.map +1 -1
- package/build/src/mailer.js +2 -2
- package/build/src/packages/velocious-package.d.ts +5 -5
- package/build/src/packages/velocious-package.d.ts.map +1 -1
- package/build/src/plugins/sqljs-wasm-route-controller.d.ts +1 -1
- package/build/src/plugins/sqljs-wasm-route-controller.d.ts.map +1 -1
- package/build/src/plugins/sqljs-wasm-route-controller.js +2 -2
- package/build/src/plugins/sqljs-wasm-route.d.ts +14 -20
- package/build/src/plugins/sqljs-wasm-route.d.ts.map +1 -1
- package/build/src/plugins/sqljs-wasm-route.js +1 -1
- package/build/src/record-payload-values.d.ts +14 -14
- package/build/src/record-payload-values.d.ts.map +1 -1
- package/build/src/record-payload-values.js +4 -4
- package/build/src/routes/app-routes.d.ts.map +1 -1
- package/build/src/routes/base-route.d.ts +11 -10
- package/build/src/routes/base-route.d.ts.map +1 -1
- package/build/src/routes/base-route.js +6 -6
- package/build/src/routes/basic-route.d.ts +36 -3
- package/build/src/routes/basic-route.d.ts.map +1 -1
- package/build/src/routes/basic-route.js +5 -5
- package/build/src/routes/built-in/api-manifest/controller.d.ts +1 -1
- package/build/src/routes/built-in/api-manifest/controller.d.ts.map +1 -1
- package/build/src/routes/built-in/debug/controller.d.ts +1 -1
- package/build/src/routes/built-in/debug/controller.d.ts.map +1 -1
- package/build/src/routes/built-in/errors/controller.d.ts +1 -1
- package/build/src/routes/built-in/errors/controller.d.ts.map +1 -1
- package/build/src/routes/get-route.d.ts +19 -4
- package/build/src/routes/get-route.d.ts.map +1 -1
- package/build/src/routes/get-route.js +3 -3
- package/build/src/routes/hooks/frontend-model-command-route-hook.d.ts +1 -1
- package/build/src/routes/hooks/frontend-model-command-route-hook.d.ts.map +1 -1
- package/build/src/routes/hooks/frontend-model-command-route-hook.js +2 -2
- package/build/src/routes/index.d.ts +5 -5
- package/build/src/routes/index.d.ts.map +1 -1
- package/build/src/routes/index.js +4 -4
- package/build/src/routes/namespace-route.d.ts +19 -4
- package/build/src/routes/namespace-route.d.ts.map +1 -1
- package/build/src/routes/namespace-route.js +2 -2
- package/build/src/routes/plugin-routes.d.ts +16 -19
- package/build/src/routes/plugin-routes.d.ts.map +1 -1
- package/build/src/routes/plugin-routes.js +2 -2
- package/build/src/routes/post-route.d.ts +19 -4
- package/build/src/routes/post-route.d.ts.map +1 -1
- package/build/src/routes/post-route.js +3 -3
- package/build/src/routes/resolver.d.ts +16 -16
- package/build/src/routes/resolver.d.ts.map +1 -1
- package/build/src/routes/resolver.js +6 -6
- package/build/src/routes/resource-route.d.ts +23 -8
- package/build/src/routes/resource-route.d.ts.map +1 -1
- package/build/src/routes/resource-route.js +2 -2
- package/build/src/routes/root-route.d.ts +1 -1
- package/build/src/routes/root-route.d.ts.map +1 -1
- package/build/src/sync/conflict-strategy.d.ts +50 -35
- package/build/src/sync/conflict-strategy.d.ts.map +1 -1
- package/build/src/sync/conflict-strategy.js +2 -2
- package/build/src/sync/device-identity.d.ts +109 -79
- package/build/src/sync/device-identity.d.ts.map +1 -1
- package/build/src/sync/local-mutation-log.d.ts +115 -92
- package/build/src/sync/local-mutation-log.d.ts.map +1 -1
- package/build/src/sync/offline-grant.d.ts +80 -63
- package/build/src/sync/offline-grant.d.ts.map +1 -1
- package/build/src/sync/peer-mutation-bundle.d.ts +33 -39
- package/build/src/sync/peer-mutation-bundle.d.ts.map +1 -1
- package/build/src/sync/query-scope.d.ts +3 -3
- package/build/src/sync/query-scope.d.ts.map +1 -1
- package/build/src/sync/query-scope.js +8 -8
- package/build/src/sync/server-change-feed.d.ts +129 -129
- package/build/src/sync/server-change-feed.d.ts.map +1 -1
- package/build/src/sync/server-change-feed.js +14 -14
- package/build/src/sync/server-sequence-allocator.d.ts +36 -36
- package/build/src/sync/server-sequence-allocator.d.ts.map +1 -1
- package/build/src/sync/server-sequence-allocator.js +6 -6
- package/build/src/sync/signed-sync-envelope-replay-service.d.ts +60 -48
- package/build/src/sync/signed-sync-envelope-replay-service.d.ts.map +1 -1
- package/build/src/sync/signed-sync-envelope-replay-service.js +21 -21
- package/build/src/sync/stable-json.d.ts +2 -2
- package/build/src/sync/stable-json.d.ts.map +1 -1
- package/build/src/sync/stable-json.js +5 -5
- package/build/src/sync/sync-api-client-types.d.ts +98 -25
- package/build/src/sync/sync-api-client-types.d.ts.map +1 -1
- package/build/src/sync/sync-api-client-types.js +73 -1
- package/build/src/sync/sync-api-client.d.ts +71 -71
- package/build/src/sync/sync-api-client.d.ts.map +1 -1
- package/build/src/sync/sync-api-client.js +30 -30
- package/build/src/sync/sync-api-controller.d.ts +23 -23
- package/build/src/sync/sync-api-controller.d.ts.map +1 -1
- package/build/src/sync/sync-change-fanout.d.ts +32 -38
- package/build/src/sync/sync-change-fanout.d.ts.map +1 -1
- package/build/src/sync/sync-change-fanout.js +7 -7
- package/build/src/sync/sync-channel-name.d.ts +1 -1
- package/build/src/sync/sync-channel-name.d.ts.map +1 -1
- package/build/src/sync/sync-client-registry.d.ts +4 -4
- package/build/src/sync/sync-client-registry.d.ts.map +1 -1
- package/build/src/sync/sync-client-registry.js +4 -4
- package/build/src/sync/sync-client-types.d.ts +130 -82
- package/build/src/sync/sync-client-types.d.ts.map +1 -1
- package/build/src/sync/sync-client-types.js +89 -1
- package/build/src/sync/sync-client.d.ts +76 -76
- package/build/src/sync/sync-client.d.ts.map +1 -1
- package/build/src/sync/sync-client.js +19 -19
- package/build/src/sync/sync-envelope-replay-service.d.ts +266 -298
- package/build/src/sync/sync-envelope-replay-service.d.ts.map +1 -1
- package/build/src/sync/sync-envelope-replay-service.js +77 -77
- package/build/src/sync/sync-model-change-feed-service.d.ts +23 -23
- package/build/src/sync/sync-model-change-feed-service.d.ts.map +1 -1
- package/build/src/sync/sync-model-change-feed-service.js +8 -8
- package/build/src/sync/sync-publish-suppression.d.ts +5 -5
- package/build/src/sync/sync-publish-suppression.d.ts.map +1 -1
- package/build/src/sync/sync-publish-suppression.js +3 -3
- package/build/src/sync/sync-publisher-types.d.ts +98 -55
- package/build/src/sync/sync-publisher-types.d.ts.map +1 -1
- package/build/src/sync/sync-publisher-types.js +75 -1
- package/build/src/sync/sync-publisher.d.ts +43 -43
- package/build/src/sync/sync-publisher.d.ts.map +1 -1
- package/build/src/sync/sync-publisher.js +20 -20
- package/build/src/sync/sync-realtime-bridge.d.ts +23 -23
- package/build/src/sync/sync-realtime-bridge.d.ts.map +1 -1
- package/build/src/sync/sync-realtime-bridge.js +9 -9
- package/build/src/sync/sync-replay-upsert-applier.d.ts +70 -70
- package/build/src/sync/sync-replay-upsert-applier.d.ts.map +1 -1
- package/build/src/sync/sync-replay-upsert-applier.js +17 -17
- package/build/src/sync/sync-resource-base.d.ts +52 -51
- package/build/src/sync/sync-resource-base.d.ts.map +1 -1
- package/build/src/sync/sync-resource-base.js +15 -15
- package/build/src/sync/sync-scope-attributes.d.ts +2 -2
- package/build/src/sync/sync-scope-attributes.d.ts.map +1 -1
- package/build/src/sync/sync-scope-attributes.js +2 -2
- package/build/src/sync/sync-scope-store.d.ts +36 -36
- package/build/src/sync/sync-scope-store.d.ts.map +1 -1
- package/build/src/sync/sync-scope-store.js +6 -6
- package/build/src/sync/sync-websocket-channel.d.ts +11 -6
- package/build/src/sync/sync-websocket-channel.d.ts.map +1 -1
- package/build/src/sync/sync-websocket-channel.js +6 -6
- package/build/src/tenants/default-tenant-database-provisioning.d.ts +4 -4
- package/build/src/tenants/default-tenant-database-provisioning.d.ts.map +1 -1
- package/build/src/tenants/default-tenant-database-provisioning.js +2 -2
- package/build/src/tenants/tenant-aggregator.d.ts +81 -81
- package/build/src/tenants/tenant-aggregator.d.ts.map +1 -1
- package/build/src/tenants/tenant-aggregator.js +13 -13
- package/build/src/tenants/tenant-handle.d.ts +64 -0
- package/build/src/tenants/tenant-handle.d.ts.map +1 -0
- package/build/src/tenants/tenant-handle.js +221 -0
- package/build/src/tenants/tenant-iterator.d.ts +17 -17
- package/build/src/tenants/tenant-iterator.d.ts.map +1 -1
- package/build/src/tenants/tenant-iterator.js +7 -7
- package/build/src/tenants/tenant-model-scope.d.ts +73 -0
- package/build/src/tenants/tenant-model-scope.d.ts.map +1 -0
- package/build/src/tenants/tenant-model-scope.js +115 -0
- package/build/src/tenants/tenant.d.ts +16 -6
- package/build/src/tenants/tenant.d.ts.map +1 -1
- package/build/src/tenants/tenant.js +15 -3
- package/build/src/testing/base-expect.d.ts.map +1 -1
- package/build/src/testing/browser-frontend-model-event-hook-scenarios.d.ts +19 -31
- package/build/src/testing/browser-frontend-model-event-hook-scenarios.d.ts.map +1 -1
- package/build/src/testing/browser-test-app.js +6 -6
- package/build/src/testing/expect-to-change.d.ts +9 -7
- package/build/src/testing/expect-to-change.d.ts.map +1 -1
- package/build/src/testing/expect-to-change.js +2 -2
- package/build/src/testing/expect-utils.d.ts +30 -29
- package/build/src/testing/expect-utils.d.ts.map +1 -1
- package/build/src/testing/expect-utils.js +30 -30
- package/build/src/testing/expect.d.ts +30 -30
- package/build/src/testing/expect.d.ts.map +1 -1
- package/build/src/testing/expect.js +19 -19
- package/build/src/testing/factory/association-declaration.d.ts +16 -16
- package/build/src/testing/factory/association-declaration.d.ts.map +1 -1
- package/build/src/testing/factory/association-declaration.js +3 -3
- package/build/src/testing/factory/declarations.d.ts +90 -115
- package/build/src/testing/factory/declarations.d.ts.map +1 -1
- package/build/src/testing/factory/declarations.js +6 -6
- package/build/src/testing/factory/definition-builder.d.ts +72 -70
- package/build/src/testing/factory/definition-builder.d.ts.map +1 -1
- package/build/src/testing/factory/definition-builder.js +40 -40
- package/build/src/testing/factory/errors.d.ts +30 -29
- package/build/src/testing/factory/errors.d.ts.map +1 -1
- package/build/src/testing/factory/evaluation-context.d.ts +29 -29
- package/build/src/testing/factory/evaluation-context.d.ts.map +1 -1
- package/build/src/testing/factory/evaluation-context.js +17 -17
- package/build/src/testing/factory/events.d.ts +4 -5
- package/build/src/testing/factory/events.d.ts.map +1 -1
- package/build/src/testing/factory/factory-definition.d.ts +14 -14
- package/build/src/testing/factory/factory-definition.d.ts.map +1 -1
- package/build/src/testing/factory/factory-definition.js +3 -3
- package/build/src/testing/factory/factory-registry.d.ts +56 -54
- package/build/src/testing/factory/factory-registry.d.ts.map +1 -1
- package/build/src/testing/factory/factory-registry.js +35 -35
- package/build/src/testing/factory/factory-runner.d.ts +67 -73
- package/build/src/testing/factory/factory-runner.d.ts.map +1 -1
- package/build/src/testing/factory/factory-runner.js +9 -9
- package/build/src/testing/factory/index.d.ts +7 -7
- package/build/src/testing/factory/index.d.ts.map +1 -1
- package/build/src/testing/factory/linter.d.ts +7 -7
- package/build/src/testing/factory/linter.d.ts.map +1 -1
- package/build/src/testing/factory/linter.js +3 -3
- package/build/src/testing/factory/model-contract.d.ts +3 -3
- package/build/src/testing/factory/model-contract.d.ts.map +1 -1
- package/build/src/testing/factory/model-contract.js +4 -4
- package/build/src/testing/factory/node/load-definitions.d.ts +2 -2
- package/build/src/testing/factory/node/load-definitions.d.ts.map +1 -1
- package/build/src/testing/factory/sequence.d.ts +19 -23
- package/build/src/testing/factory/sequence.d.ts.map +1 -1
- package/build/src/testing/factory/sequence.js +3 -3
- package/build/src/testing/factory/strategies/attributes-for.d.ts +3 -3
- package/build/src/testing/factory/strategies/attributes-for.d.ts.map +1 -1
- package/build/src/testing/factory/strategies/attributes-for.js +2 -2
- package/build/src/testing/factory/strategies/base.d.ts +32 -32
- package/build/src/testing/factory/strategies/base.d.ts.map +1 -1
- package/build/src/testing/factory/strategies/base.js +25 -25
- package/build/src/testing/factory/strategies/build.d.ts +3 -3
- package/build/src/testing/factory/strategies/build.d.ts.map +1 -1
- package/build/src/testing/factory/strategies/build.js +3 -3
- package/build/src/testing/factory/strategies/create.d.ts +6 -6
- package/build/src/testing/factory/strategies/create.d.ts.map +1 -1
- package/build/src/testing/factory/strategies/create.js +5 -5
- package/build/src/testing/factory/trait-definition.d.ts +4 -4
- package/build/src/testing/factory/trait-definition.d.ts.map +1 -1
- package/build/src/testing/request-client.d.ts +19 -19
- package/build/src/testing/request-client.d.ts.map +1 -1
- package/build/src/testing/test-files-finder.d.ts +15 -15
- package/build/src/testing/test-files-finder.d.ts.map +1 -1
- package/build/src/testing/test-files-finder.js +2 -2
- package/build/src/testing/test-filter-parser.d.ts +19 -12
- package/build/src/testing/test-filter-parser.d.ts.map +1 -1
- package/build/src/testing/test-runner.d.ts +204 -251
- package/build/src/testing/test-runner.d.ts.map +1 -1
- package/build/src/testing/test-runner.js +15 -15
- package/build/src/testing/test-suite-splitter.d.ts +25 -31
- package/build/src/testing/test-suite-splitter.d.ts.map +1 -1
- package/build/src/testing/test.d.ts +51 -55
- package/build/src/testing/test.d.ts.map +1 -1
- package/build/src/testing/test.js +20 -18
- package/build/src/testing/wait-for-event.d.ts +25 -25
- package/build/src/testing/wait-for-event.d.ts.map +1 -1
- package/build/src/testing/wait-for-event.js +6 -6
- package/build/src/time-zone.d.ts +3 -3
- package/build/src/time-zone.d.ts.map +1 -1
- package/build/src/utils/backtrace-cleaner-node.d.ts +35 -2
- package/build/src/utils/backtrace-cleaner-node.d.ts.map +1 -1
- package/build/src/utils/backtrace-cleaner-node.js +1 -1
- package/build/src/utils/backtrace-cleaner.d.ts +33 -28
- package/build/src/utils/backtrace-cleaner.d.ts.map +1 -1
- package/build/src/utils/bearer-token.d.ts +2 -2
- package/build/src/utils/bearer-token.d.ts.map +1 -1
- package/build/src/utils/deburr-column-name.d.ts.map +1 -1
- package/build/src/utils/event-emitter.d.ts +1 -1
- package/build/src/utils/event-emitter.d.ts.map +1 -1
- package/build/src/utils/event-emitter.js +2 -2
- package/build/src/utils/file-exists.d.ts.map +1 -1
- package/build/src/utils/format-value.d.ts +9 -8
- package/build/src/utils/format-value.d.ts.map +1 -1
- package/build/src/utils/format-value.js +7 -7
- package/build/src/utils/is-date.d.ts +2 -2
- package/build/src/utils/is-date.d.ts.map +1 -1
- package/build/src/utils/is-date.js +2 -2
- package/build/src/utils/model-scope.d.ts +29 -24
- package/build/src/utils/model-scope.d.ts.map +1 -1
- package/build/src/utils/model-scope.js +11 -11
- package/build/src/utils/mount-prefix.d.ts +2 -2
- package/build/src/utils/mount-prefix.d.ts.map +1 -1
- package/build/src/utils/nest-callbacks.d.ts.map +1 -1
- package/build/src/utils/plain-object.d.ts +3 -3
- package/build/src/utils/plain-object.d.ts.map +1 -1
- package/build/src/utils/plain-object.js +3 -3
- package/build/src/utils/ransack.d.ts +69 -90
- package/build/src/utils/ransack.d.ts.map +1 -1
- package/build/src/utils/ransack.js +36 -36
- package/build/src/utils/rest-args-error.d.ts.map +1 -1
- package/build/src/utils/sha256-hex.d.ts.map +1 -1
- package/build/src/utils/shutdown-lifecycle.d.ts +1 -1
- package/build/src/utils/shutdown-lifecycle.d.ts.map +1 -1
- package/build/src/utils/singularize-model-name.d.ts.map +1 -1
- package/build/src/utils/split-sql-statements.d.ts.map +1 -1
- package/build/src/utils/to-import-specifier.d.ts.map +1 -1
- package/build/src/utils/with-tracked-stack-async-hooks.d.ts +6 -5
- package/build/src/utils/with-tracked-stack-async-hooks.d.ts.map +1 -1
- package/build/src/utils/with-tracked-stack-async-hooks.js +9 -9
- package/build/src/utils/with-tracked-stack.d.ts +6 -5
- package/build/src/utils/with-tracked-stack.d.ts.map +1 -1
- package/build/src/utils/with-tracked-stack.js +7 -7
- package/build/src/velocious-error.d.ts +27 -17
- package/build/src/velocious-error.d.ts.map +1 -1
- package/build/src/velocious-error.js +10 -4
- package/build/sync/conflict-strategy.js +1 -1
- package/build/sync/query-scope.js +7 -7
- package/build/sync/server-change-feed.js +13 -13
- package/build/sync/server-sequence-allocator.js +5 -5
- package/build/sync/signed-sync-envelope-replay-service.js +20 -20
- package/build/sync/stable-json.js +4 -4
- package/build/sync/sync-api-client-types.js +7 -7
- package/build/sync/sync-api-client.js +26 -26
- package/build/sync/sync-change-fanout.js +6 -6
- package/build/sync/sync-client-registry.js +3 -3
- package/build/sync/sync-client-types.js +10 -10
- package/build/sync/sync-client.js +18 -18
- package/build/sync/sync-envelope-replay-service.js +76 -76
- package/build/sync/sync-model-change-feed-service.js +7 -7
- package/build/sync/sync-publish-suppression.js +2 -2
- package/build/sync/sync-publisher-types.js +11 -11
- package/build/sync/sync-publisher.js +19 -19
- package/build/sync/sync-realtime-bridge.js +8 -8
- package/build/sync/sync-replay-upsert-applier.js +16 -16
- package/build/sync/sync-resource-base.js +14 -14
- package/build/sync/sync-scope-attributes.js +1 -1
- package/build/sync/sync-scope-store.js +5 -5
- package/build/sync/sync-websocket-channel.js +5 -5
- package/build/tenants/default-tenant-database-provisioning.js +1 -1
- package/build/tenants/tenant-aggregator.js +13 -13
- package/build/tenants/tenant-handle.js +252 -0
- package/build/tenants/tenant-iterator.js +6 -6
- package/build/tenants/tenant-model-scope.js +132 -0
- package/build/tenants/tenant.js +15 -2
- package/build/testing/browser-test-app.js +2 -2
- package/build/testing/expect-to-change.js +1 -1
- package/build/testing/expect-utils.js +29 -29
- package/build/testing/expect.js +18 -18
- package/build/testing/factory/association-declaration.js +2 -2
- package/build/testing/factory/declarations.js +5 -5
- package/build/testing/factory/definition-builder.js +39 -39
- package/build/testing/factory/evaluation-context.js +16 -16
- package/build/testing/factory/factory-definition.js +2 -2
- package/build/testing/factory/factory-registry.js +34 -34
- package/build/testing/factory/factory-runner.js +8 -8
- package/build/testing/factory/linter.js +2 -2
- package/build/testing/factory/model-contract.js +3 -3
- package/build/testing/factory/sequence.js +2 -2
- package/build/testing/factory/strategies/attributes-for.js +1 -1
- package/build/testing/factory/strategies/base.js +24 -24
- package/build/testing/factory/strategies/build.js +2 -2
- package/build/testing/factory/strategies/create.js +4 -4
- package/build/testing/test-files-finder.js +1 -1
- package/build/testing/test-runner.js +14 -14
- package/build/testing/test.js +19 -17
- package/build/testing/wait-for-event.js +5 -5
- package/build/tsconfig.tsbuildinfo +1 -1
- package/build/utils/event-emitter.js +1 -1
- package/build/utils/format-value.js +6 -6
- package/build/utils/is-date.js +1 -1
- package/build/utils/model-scope.js +10 -10
- package/build/utils/plain-object.js +2 -2
- package/build/utils/ransack.js +35 -35
- package/build/utils/with-tracked-stack-async-hooks.js +8 -8
- package/build/utils/with-tracked-stack.js +6 -6
- package/build/velocious-error.js +9 -3
- package/package.json +3 -3
- package/src/application.js +3 -3
- package/src/authorization/ability.js +6 -6
- package/src/authorization/base-resource.js +1 -1
- package/src/background-jobs/client.js +2 -2
- package/src/background-jobs/forked-runner-child.js +4 -4
- package/src/background-jobs/job-runner.js +2 -2
- package/src/background-jobs/job.js +6 -6
- package/src/background-jobs/json-socket.js +1 -1
- package/src/background-jobs/main.js +13 -13
- package/src/background-jobs/normalize-error.js +2 -2
- package/src/background-jobs/pooled-runner-child.js +3 -3
- package/src/background-jobs/scheduler.js +1 -1
- package/src/background-jobs/status-reporter.js +2 -2
- package/src/background-jobs/store.js +23 -23
- package/src/background-jobs/types.js +6 -6
- package/src/background-jobs/web/controller.js +6 -6
- package/src/background-jobs/web/counts-channel.js +1 -1
- package/src/background-jobs/worker.js +8 -8
- package/src/beacon/client.js +3 -3
- package/src/beacon/in-process-client.js +3 -3
- package/src/beacon/types.js +1 -1
- package/src/cli/base-command.js +1 -1
- package/src/cli/commands/console.js +1 -1
- package/src/cli/commands/db/schema/dump.js +1 -1
- package/src/cli/commands/db/schema/load.js +1 -1
- package/src/cli/commands/db/seed.js +1 -1
- package/src/cli/commands/generate/frontend-models.js +1 -1
- package/src/cli/commands/lint/relationships.js +1 -1
- package/src/cli/commands/run-script.js +1 -1
- package/src/cli/commands/runner.js +1 -1
- package/src/cli/index.js +2 -2
- package/src/cli/tenant-database-command-helper.js +2 -2
- package/src/configuration-types.js +48 -47
- package/src/configuration.js +150 -65
- package/src/controller.js +11 -8
- package/src/current.js +2 -2
- package/src/database/annotations-async-hooks.js +3 -3
- package/src/database/annotations.js +1 -1
- package/src/database/drivers/base-column.js +1 -1
- package/src/database/drivers/base-foreign-key.js +1 -1
- package/src/database/drivers/base-table.js +1 -1
- package/src/database/drivers/base.js +18 -18
- package/src/database/drivers/mssql/column.js +1 -1
- package/src/database/drivers/mssql/index.js +2 -2
- package/src/database/drivers/mssql/options.js +1 -1
- package/src/database/drivers/mssql/structure-sql.js +1 -1
- package/src/database/drivers/mssql/table.js +1 -1
- package/src/database/drivers/mysql/column.js +1 -1
- package/src/database/drivers/mysql/index.js +4 -4
- package/src/database/drivers/mysql/options.js +1 -1
- package/src/database/drivers/mysql/query.js +7 -7
- package/src/database/drivers/mysql/structure-sql.js +71 -10
- package/src/database/drivers/pgsql/column.js +1 -1
- package/src/database/drivers/pgsql/index.js +6 -6
- package/src/database/drivers/pgsql/structure-sql.js +1 -1
- package/src/database/drivers/sqlite/base.js +7 -7
- package/src/database/drivers/sqlite/column.js +1 -1
- package/src/database/drivers/sqlite/connection-sql-js.js +1 -1
- package/src/database/drivers/sqlite/foreign-key.js +1 -1
- package/src/database/drivers/sqlite/index.js +1 -1
- package/src/database/drivers/sqlite/index.native.js +2 -2
- package/src/database/drivers/sqlite/index.web.js +2 -2
- package/src/database/drivers/sqlite/query.js +2 -2
- package/src/database/drivers/sqlite/query.native.js +2 -2
- package/src/database/drivers/sqlite/query.web.js +2 -2
- package/src/database/drivers/sqlite/table-rebuilder.js +1 -1
- package/src/database/migration/index.js +2 -2
- package/src/database/migrator/types.js +2 -2
- package/src/database/operation.js +59 -6
- package/src/database/pool/async-tracked-multi-connection.js +75 -24
- package/src/database/pool/base-methods-forward.js +2 -2
- package/src/database/pool/base.js +48 -17
- package/src/database/pool/single-multi-use.js +501 -103
- package/src/database/query/delete-base.js +1 -1
- package/src/database/query/index.js +3 -3
- package/src/database/query/insert-base.js +4 -4
- package/src/database/query/model-class-query.js +39 -39
- package/src/database/query/preloader/belongs-to.js +2 -2
- package/src/database/query/preloader/ensure-model-class-initialized.js +3 -2
- package/src/database/query/preloader/has-many.js +3 -3
- package/src/database/query/preloader/has-one.js +1 -1
- package/src/database/query/preloader.js +9 -2
- package/src/database/query/query-data.js +7 -7
- package/src/database/query/update-base.js +3 -3
- package/src/database/query/upsert-base.js +2 -2
- package/src/database/query/where-model-class-hash.js +13 -13
- package/src/database/query/with-count.js +12 -12
- package/src/database/query-parser/options.js +2 -2
- package/src/database/query-parser/select-parser.js +1 -1
- package/src/database/record/acts-as-list.js +2 -2
- package/src/database/record/attachments/handle.js +6 -6
- package/src/database/record/attachments/normalize-input.js +11 -11
- package/src/database/record/attachments/storage-drivers/filesystem.js +1 -1
- package/src/database/record/attachments/storage-drivers/native.js +5 -5
- package/src/database/record/attachments/storage-drivers/s3.js +10 -10
- package/src/database/record/attachments/store.js +24 -20
- package/src/database/record/auditing.js +123 -29
- package/src/database/record/counter-cache-magnitude.js +11 -11
- package/src/database/record/index.js +227 -174
- package/src/database/record/instance-relationships/base.js +4 -4
- package/src/database/record/instance-relationships/belongs-to.js +1 -1
- package/src/database/record/instance-relationships/has-many.js +3 -3
- package/src/database/record/instance-relationships/has-one.js +1 -1
- package/src/database/record/record-not-found-error.js +1 -0
- package/src/database/record/relationships/base.js +22 -0
- package/src/database/record/state-machine.js +6 -6
- package/src/database/record/validators/base.js +1 -1
- package/src/database/structure-sql-loader.js +3 -3
- package/src/database/table-data/table-column.js +3 -3
- package/src/database/use-live-query.js +3 -3
- package/src/environment-handlers/base.js +56 -37
- package/src/environment-handlers/browser.js +1 -1
- package/src/environment-handlers/node/cli/commands/console.js +4 -4
- package/src/environment-handlers/node/cli/commands/db/seed.js +2 -2
- package/src/environment-handlers/node/cli/commands/generate/base-models.js +1 -1
- package/src/environment-handlers/node/cli/commands/run-script.js +2 -2
- package/src/environment-handlers/node/cli/commands/runner.js +2 -2
- package/src/environment-handlers/node/cli/commands/server.js +1 -1
- package/src/environment-handlers/node.js +36 -36
- package/src/error-logger.js +2 -2
- package/src/error-reporting/request-details.js +32 -32
- package/src/frontend-model-controller.js +215 -213
- package/src/frontend-model-resource/base-resource.js +44 -44
- package/src/frontend-model-resource/velocious-attachment-resource.js +1 -1
- package/src/frontend-models/base.js +146 -142
- package/src/frontend-models/clear-pending-debounced-callback.js +2 -2
- package/src/frontend-models/model-registry.js +4 -4
- package/src/frontend-models/outgoing-event-buffer.js +1 -1
- package/src/frontend-models/preloader.js +1 -1
- package/src/frontend-models/query.js +60 -60
- package/src/frontend-models/resource-definition.js +9 -9
- package/src/frontend-models/transport-serialization.js +27 -27
- package/src/frontend-models/websocket-channel.js +4 -4
- package/src/frontend-models/websocket-publishers.js +1 -1
- package/src/http-client/request.js +1 -1
- package/src/http-client/response.js +1 -1
- package/src/http-server/client/index.js +4 -4
- package/src/http-server/client/params-to-object.js +16 -16
- package/src/http-server/client/request-buffer/index.js +5 -2
- package/src/http-server/client/request-parser.js +2 -2
- package/src/http-server/client/request-runner.js +2 -2
- package/src/http-server/client/request.js +2 -2
- package/src/http-server/client/websocket-request.js +6 -6
- package/src/http-server/client/websocket-session.js +28 -28
- package/src/http-server/cookie.js +2 -2
- package/src/http-server/development-reloader.js +1 -1
- package/src/http-server/index.js +5 -5
- package/src/http-server/remote-address.js +1 -1
- package/src/http-server/server-lock.js +4 -4
- package/src/http-server/websocket-channel-subscribers.js +4 -4
- package/src/http-server/websocket-channel.js +1 -1
- package/src/http-server/websocket-connection.js +3 -3
- package/src/http-server/websocket-event-log-store.js +9 -9
- package/src/http-server/websocket-events-host.js +7 -7
- package/src/http-server/websocket-events.js +4 -4
- package/src/http-server/worker-handler/channel-subscriber-dispatch.js +1 -1
- package/src/http-server/worker-handler/in-process.js +5 -5
- package/src/http-server/worker-handler/index.js +10 -10
- package/src/http-server/worker-handler/worker-thread.js +8 -8
- package/src/logger/base-logger.js +1 -1
- package/src/logger.js +12 -12
- package/src/mailer/backends/smtp.js +3 -3
- package/src/mailer/base.js +14 -14
- package/src/mailer/delivery.js +3 -3
- package/src/mailer/index.js +1 -1
- package/src/mailer.js +1 -1
- package/src/plugins/sqljs-wasm-route-controller.js +1 -1
- package/src/record-payload-values.js +3 -3
- package/src/routes/base-route.js +5 -5
- package/src/routes/basic-route.js +4 -4
- package/src/routes/get-route.js +2 -2
- package/src/routes/hooks/frontend-model-command-route-hook.js +1 -1
- package/src/routes/index.js +3 -3
- package/src/routes/namespace-route.js +1 -1
- package/src/routes/plugin-routes.js +1 -1
- package/src/routes/post-route.js +2 -2
- package/src/routes/resolver.js +5 -5
- package/src/routes/resource-route.js +1 -1
- package/src/sync/conflict-strategy.js +1 -1
- package/src/sync/query-scope.js +7 -7
- package/src/sync/server-change-feed.js +13 -13
- package/src/sync/server-sequence-allocator.js +5 -5
- package/src/sync/signed-sync-envelope-replay-service.js +20 -20
- package/src/sync/stable-json.js +4 -4
- package/src/sync/sync-api-client-types.js +7 -7
- package/src/sync/sync-api-client.js +26 -26
- package/src/sync/sync-change-fanout.js +6 -6
- package/src/sync/sync-client-registry.js +3 -3
- package/src/sync/sync-client-types.js +10 -10
- package/src/sync/sync-client.js +18 -18
- package/src/sync/sync-envelope-replay-service.js +76 -76
- package/src/sync/sync-model-change-feed-service.js +7 -7
- package/src/sync/sync-publish-suppression.js +2 -2
- package/src/sync/sync-publisher-types.js +11 -11
- package/src/sync/sync-publisher.js +19 -19
- package/src/sync/sync-realtime-bridge.js +8 -8
- package/src/sync/sync-replay-upsert-applier.js +16 -16
- package/src/sync/sync-resource-base.js +14 -14
- package/src/sync/sync-scope-attributes.js +1 -1
- package/src/sync/sync-scope-store.js +5 -5
- package/src/sync/sync-websocket-channel.js +5 -5
- package/src/tenants/default-tenant-database-provisioning.js +1 -1
- package/src/tenants/tenant-aggregator.js +13 -13
- package/src/tenants/tenant-handle.js +252 -0
- package/src/tenants/tenant-iterator.js +6 -6
- package/src/tenants/tenant-model-scope.js +132 -0
- package/src/tenants/tenant.js +15 -2
- package/src/testing/browser-test-app.js +2 -2
- package/src/testing/expect-to-change.js +1 -1
- package/src/testing/expect-utils.js +29 -29
- package/src/testing/expect.js +18 -18
- package/src/testing/factory/association-declaration.js +2 -2
- package/src/testing/factory/declarations.js +5 -5
- package/src/testing/factory/definition-builder.js +39 -39
- package/src/testing/factory/evaluation-context.js +16 -16
- package/src/testing/factory/factory-definition.js +2 -2
- package/src/testing/factory/factory-registry.js +34 -34
- package/src/testing/factory/factory-runner.js +8 -8
- package/src/testing/factory/linter.js +2 -2
- package/src/testing/factory/model-contract.js +3 -3
- package/src/testing/factory/sequence.js +2 -2
- package/src/testing/factory/strategies/attributes-for.js +1 -1
- package/src/testing/factory/strategies/base.js +24 -24
- package/src/testing/factory/strategies/build.js +2 -2
- package/src/testing/factory/strategies/create.js +4 -4
- package/src/testing/test-files-finder.js +1 -1
- package/src/testing/test-runner.js +14 -14
- package/src/testing/test.js +19 -17
- package/src/testing/wait-for-event.js +5 -5
- package/src/utils/event-emitter.js +1 -1
- package/src/utils/format-value.js +6 -6
- package/src/utils/is-date.js +1 -1
- package/src/utils/model-scope.js +10 -10
- package/src/utils/plain-object.js +2 -2
- package/src/utils/ransack.js +35 -35
- package/src/utils/with-tracked-stack-async-hooks.js +8 -8
- package/src/utils/with-tracked-stack.js +6 -6
- package/src/velocious-error.js +9 -3
|
@@ -5,7 +5,7 @@ import { FactoryCycleError, UndefinedFactoryError, UndefinedTraitError } from ".
|
|
|
5
5
|
* A resolved attribute/transient/association slot in a compiled plan.
|
|
6
6
|
* @typedef {object} Slot
|
|
7
7
|
* @property {"attribute" | "transient" | "association"} slotKind - Slot nature.
|
|
8
|
-
* @property {
|
|
8
|
+
* @property {ReturnType<typeof JSON.parse>} value - Literal/lazy value, override value, or AssociationDeclaration.
|
|
9
9
|
* @property {boolean} isOverride - Whether the value came from a call-site override.
|
|
10
10
|
*/
|
|
11
11
|
/**
|
|
@@ -13,7 +13,7 @@ import { FactoryCycleError, UndefinedFactoryError, UndefinedTraitError } from ".
|
|
|
13
13
|
* @typedef {object} CompiledPlan
|
|
14
14
|
* @property {string} factoryName - Target factory name.
|
|
15
15
|
* @property {import("./factory-definition.js").default} factoryDefinition - Target definition.
|
|
16
|
-
* @property {(new (attributes?: Record<string,
|
|
16
|
+
* @property {(new (attributes?: Record<string, ReturnType<typeof JSON.parse>>) => ReturnType<typeof JSON.parse>) | null} modelClass - Resolved model class.
|
|
17
17
|
* @property {string[]} chainNames - Inheritance chain names (child last) for sequence scope.
|
|
18
18
|
* @property {Map<string, Slot>} resolved - Name→slot map (last declaration wins).
|
|
19
19
|
* @property {Map<string, import("./declarations.js").CallbackDeclaration[]>} callbacks - Deduped callbacks by event.
|
|
@@ -39,7 +39,7 @@ export default class FactoryRunner {
|
|
|
39
39
|
* Compiles a factory invocation into a plan.
|
|
40
40
|
* @param {string} factoryName - Factory to run.
|
|
41
41
|
* @param {string[]} requestedTraits - Traits requested at the call site, in order.
|
|
42
|
-
* @param {Record<string,
|
|
42
|
+
* @param {Record<string, ReturnType<typeof JSON.parse>>} overrides - Call-site overrides (highest precedence).
|
|
43
43
|
* @returns {CompiledPlan} - The compiled plan.
|
|
44
44
|
*/
|
|
45
45
|
compile(factoryName, requestedTraits, overrides) {
|
|
@@ -71,7 +71,7 @@ export default class FactoryRunner {
|
|
|
71
71
|
/**
|
|
72
72
|
* Applies the current call-site overrides without mutating the reusable template.
|
|
73
73
|
* @param {CompiledPlan} planTemplate - Reusable declaration plan.
|
|
74
|
-
* @param {Record<string,
|
|
74
|
+
* @param {Record<string, ReturnType<typeof JSON.parse>>} overrides - Current call-site overrides.
|
|
75
75
|
* @returns {CompiledPlan} - Per-invocation plan.
|
|
76
76
|
*/
|
|
77
77
|
applyOverrides(planTemplate, overrides) {
|
|
@@ -123,7 +123,7 @@ export default class FactoryRunner {
|
|
|
123
123
|
/**
|
|
124
124
|
* Picks the nearest declared model class in the chain (child overrides parent).
|
|
125
125
|
* @param {import("./factory-definition.js").default[]} chain - Inheritance chain.
|
|
126
|
-
* @returns {(new (attributes?: Record<string,
|
|
126
|
+
* @returns {(new (attributes?: Record<string, ReturnType<typeof JSON.parse>>) => ReturnType<typeof JSON.parse>) | null} - The model class, or null.
|
|
127
127
|
*/
|
|
128
128
|
_resolveModelClass(chain) {
|
|
129
129
|
for (let index = chain.length - 1; index >= 0; index--) {
|
|
@@ -197,7 +197,7 @@ export default class FactoryRunner {
|
|
|
197
197
|
* Folds flattened declarations into a reusable compiled plan.
|
|
198
198
|
* @param {object} args - Options.
|
|
199
199
|
* @param {Array<{decl: import("./declarations.js").Declaration}>} args.flattened - Flattened declarations.
|
|
200
|
-
* @param {(new (attributes?: Record<string,
|
|
200
|
+
* @param {(new (attributes?: Record<string, ReturnType<typeof JSON.parse>>) => ReturnType<typeof JSON.parse>) | null} args.modelClass - Resolved model class.
|
|
201
201
|
* @param {import("./factory-definition.js").default} args.target - Target factory definition.
|
|
202
202
|
* @param {string[]} args.chainNames - Inheritance chain names.
|
|
203
203
|
* @returns {CompiledPlan} - The compiled plan.
|
|
@@ -256,8 +256,8 @@ export default class FactoryRunner {
|
|
|
256
256
|
* real foreign-key metadata. An explicit association object wins over its key;
|
|
257
257
|
* otherwise an explicit key suppresses the factory-declared association.
|
|
258
258
|
* @param {Map<string, Slot>} resolved - Folded slots.
|
|
259
|
-
* @param {Record<string,
|
|
260
|
-
* @param {(new (attributes?: Record<string,
|
|
259
|
+
* @param {Record<string, ReturnType<typeof JSON.parse>>} overrides - Call-site overrides.
|
|
260
|
+
* @param {(new (attributes?: Record<string, ReturnType<typeof JSON.parse>>) => ReturnType<typeof JSON.parse>) | null} modelClass - Resolved model class.
|
|
261
261
|
* @returns {void}
|
|
262
262
|
*/
|
|
263
263
|
_arbitrateAssociationOverrides(resolved, overrides, modelClass) {
|
|
@@ -286,4 +286,4 @@ export default class FactoryRunner {
|
|
|
286
286
|
}
|
|
287
287
|
}
|
|
288
288
|
}
|
|
289
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS1ydW5uZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdGVzdGluZy9mYWN0b3J5L2ZhY3RvcnktcnVubmVyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFFWixPQUFPLGNBQWMsTUFBTSxnQ0FBZ0MsQ0FBQTtBQUMzRCxPQUFPLEVBQUMsaUJBQWlCLEVBQUUscUJBQXFCLEVBQUUsbUJBQW1CLEVBQUMsTUFBTSxhQUFhLENBQUE7QUFFekY7Ozs7OztHQU1HO0FBRUg7Ozs7Ozs7Ozs7OztHQVlHO0FBRUg7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxPQUFPLE9BQU8sYUFBYTtJQUNoQzs7O09BR0c7SUFDSCxZQUFZLFFBQVE7UUFDbEIseUVBQXlFO1FBQ3pFLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFBO0lBQzFCLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxPQUFPLENBQUMsV0FBVyxFQUFFLGVBQWUsRUFBRSxTQUFTO1FBQzdDLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxlQUFlLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQTtJQUMzRixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxlQUFlLENBQUMsV0FBVyxFQUFFLGVBQWU7UUFDMUMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQTtRQUM3QyxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQTtRQUN0QyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUE7UUFFakQscUVBQXFFO1FBQ3JFLE1BQU0sU0FBUyxHQUFHLEVBQUUsQ0FBQTtRQUVwQixLQUFLLE1BQU0sV0FBVyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsbUJBQW1CLEVB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QUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsbUJBQW1CLENBQUM7Z0JBQUUsU0FBUTtZQUU1RCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDcEIsUUFBUSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFBO1lBQ3RDLENBQUM7aUJBQU0sQ0FBQztnQkFDTixRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFBO1lBQ3ZCLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbmltcG9ydCBEYXRhYmFzZVJlY29yZCBmcm9tIFwiLi4vLi4vZGF0YWJhc2UvcmVjb3JkL2luZGV4LmpzXCJcbmltcG9ydCB7RmFjdG9yeUN5Y2xlRXJyb3IsIFVuZGVmaW5lZEZhY3RvcnlFcnJvciwgVW5kZWZpbmVkVHJhaXRFcnJvcn0gZnJvbSBcIi4vZXJyb3JzLmpzXCJcblxuLyoqXG4gKiBBIHJlc29sdmVkIGF0dHJpYnV0ZS90cmFuc2llbnQvYXNzb2NpYXRpb24gc2xvdCBpbiBhIGNvbXBpbGVkIHBsYW4uXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBTbG90XG4gKiBAcHJvcGVydHkge1wiYXR0cmlidXRlXCIgfCBcInRyYW5zaWVudFwiIHwgXCJhc3NvY2lhdGlvblwifSBzbG90S2luZCAtIFNsb3QgbmF0dXJlLlxuICogQHByb3BlcnR5IHs/fSB2YWx1ZSAtIExpdGVyYWwvbGF6eSB2YWx1ZSwgb3ZlcnJpZGUgdmFsdWUsIG9yIEFzc29jaWF0aW9uRGVjbGFyYXRpb24uXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IGlzT3ZlcnJpZGUgLSBXaGV0aGVyIHRoZSB2YWx1ZSBjYW1lIGZyb20gYSBjYWxsLXNpdGUgb3ZlcnJpZGUuXG4gKi9cblxuLyoqXG4gKiBUaGUgaW1tdXRhYmxlIHJlc3VsdCBvZiBjb21waWxpbmcgYSBmYWN0b3J5IGludm9jYXRpb24uXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBDb21waWxlZFBsYW5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBmYWN0b3J5TmFtZSAtIFRhcmdldCBmYWN0b3J5IG5hbWUuXG4gKiBAcHJvcGVydHkge2ltcG9ydChcIi4vZmFjdG9yeS1kZWZpbml0aW9uLmpzXCIpLmRlZmF1bHR9IGZhY3RvcnlEZWZpbml0aW9uIC0gVGFyZ2V0IGRlZmluaXRpb24uXG4gKiBAcHJvcGVydHkgeyhuZXcgKGF0dHJpYnV0ZXM/OiBSZWNvcmQ8c3RyaW5nLCA/PikgPT4gPykgfCBudWxsfSBtb2RlbENsYXNzIC0gUmVzb2x2ZWQgbW9kZWwgY2xhc3MuXG4gKiBAcHJvcGVydHkge3N0cmluZ1tdfSBjaGFpbk5hbWVzIC0gSW5oZXJpdGFuY2UgY2hhaW4gbmFtZXMgKGNoaWxkIGxhc3QpIGZvciBzZXF1ZW5jZSBzY29wZS5cbiAqIEBwcm9wZXJ0eSB7TWFwPHN0cmluZywgU2xvdD59IHJlc29sdmVkIC0gTmFtZeKGknNsb3QgbWFwIChsYXN0IGRlY2xhcmF0aW9uIHdpbnMpLlxuICogQHByb3BlcnR5IHtNYXA8c3RyaW5nLCBpbXBvcnQoXCIuL2RlY2xhcmF0aW9ucy5qc1wiKS5DYWxsYmFja0RlY2xhcmF0aW9uW10+fSBjYWxsYmFja3MgLSBEZWR1cGVkIGNhbGxiYWNrcyBieSBldmVudC5cbiAqIEBwcm9wZXJ0eSB7aW1wb3J0KFwiLi9kZWNsYXJhdGlvbnMuanNcIikuSW5pdGlhbGl6ZVdpdGhEZWNsYXJhdGlvbltcImZuXCJdIHwgbnVsbH0gaW5pdGlhbGl6ZVdpdGggLSBDdXN0b20gY29uc3RydWN0b3IsIG9yIG51bGwuXG4gKiBAcHJvcGVydHkge2ltcG9ydChcIi4vZGVjbGFyYXRpb25zLmpzXCIpLlRvQ3JlYXRlRGVjbGFyYXRpb25bXCJmblwiXSB8IG51bGx9IHRvQ3JlYXRlIC0gQ3VzdG9tIHBlcnNpc3RlbmNlLCBvciBudWxsLlxuICogQHByb3BlcnR5IHtib29sZWFufSBza2lwQ3JlYXRlIC0gV2hldGhlciBwZXJzaXN0ZW5jZSBpcyBza2lwcGVkLlxuICovXG5cbi8qKlxuICogQ29tcGlsZXMgZmFjdG9yeSBpbnZvY2F0aW9ucyBpbnRvIGltbXV0YWJsZSBwbGFucyBieSByZXNvbHZpbmcgdGhlIGluaGVyaXRhbmNlXG4gKiBjaGFpbiwgZXhwYW5kaW5nIGJhc2UgYW5kIHJlcXVlc3RlZCB0cmFpdHMsIGFuZCBmb2xkaW5nIGRlY2xhcmF0aW9ucyBpbnRvIGFcbiAqIG5hbWXihpJzbG90IG1hcCBwbHVzIGEgZGVkdXBlZCwgb3JkZXJlZCBjYWxsYmFjayBzZXQuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZhY3RvcnlSdW5uZXIge1xuICAvKipcbiAgICogQnVpbGRzIGEgcnVubmVyLlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4vZmFjdG9yeS1yZWdpc3RyeS5qc1wiKS5kZWZhdWx0fSByZWdpc3RyeSAtIE93bmluZyByZWdpc3RyeS5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHJlZ2lzdHJ5KSB7XG4gICAgLyoqIEB0eXBlIHtpbXBvcnQoXCIuL2ZhY3RvcnktcmVnaXN0cnkuanNcIikuZGVmYXVsdH0gLSBPd25pbmcgcmVnaXN0cnkuICovXG4gICAgdGhpcy5yZWdpc3RyeSA9IHJlZ2lzdHJ5XG4gIH1cblxuICAvKipcbiAgICogQ29tcGlsZXMgYSBmYWN0b3J5IGludm9jYXRpb24gaW50byBhIHBsYW4uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmYWN0b3J5TmFtZSAtIEZhY3RvcnkgdG8gcnVuLlxuICAgKiBAcGFyYW0ge3N0cmluZ1tdfSByZXF1ZXN0ZWRUcmFpdHMgLSBUcmFpdHMgcmVxdWVzdGVkIGF0IHRoZSBjYWxsIHNpdGUsIGluIG9yZGVyLlxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsID8+fSBvdmVycmlkZXMgLSBDYWxsLXNpdGUgb3ZlcnJpZGVzIChoaWdoZXN0IHByZWNlZGVuY2UpLlxuICAgKiBAcmV0dXJucyB7Q29tcGlsZWRQbGFufSAtIFRoZSBjb21waWxlZCBwbGFuLlxuICAgKi9cbiAgY29tcGlsZShmYWN0b3J5TmFtZSwgcmVxdWVzdGVkVHJhaXRzLCBvdmVycmlkZXMpIHtcbiAgICByZXR1cm4gdGhpcy5hcHBseU92ZXJyaWRlcyh0aGlzLmNvbXBpbGVUZW1wbGF0ZShmYWN0b3J5TmFtZSwgcmVxdWVzdGVkVHJhaXRzKSwgb3ZlcnJpZGVzKVxuICB9XG5cbiAgLyoqXG4gICAqIENvbXBpbGVzIGluaGVyaXRhbmNlLCB0cmFpdHMgYW5kIGRlY2xhcmF0aW9ucyB3aXRob3V0IGNhbGwtc2l0ZSBvdmVycmlkZXMuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmYWN0b3J5TmFtZSAtIEZhY3RvcnkgdG8gcnVuLlxuICAgKiBAcGFyYW0ge3N0cmluZ1tdfSByZXF1ZXN0ZWRUcmFpdHMgLSBUcmFpdHMgcmVxdWVzdGVkIGF0IHRoZSBjYWxsIHNpdGUsIGluIG9yZGVyLlxuICAgKiBAcmV0dXJucyB7Q29tcGlsZWRQbGFufSAtIFJldXNhYmxlIGRlY2xhcmF0aW9uIHBsYW4uXG4gICAqL1xuICBjb21waWxlVGVtcGxhdGUoZmFjdG9yeU5hbWUsIHJlcXVlc3RlZFRyYWl0cykge1xuICAgIGNvbnN0IGNoYWluID0gdGhpcy5fcmVzb2x2ZUNoYWluKGZhY3RvcnlOYW1lKVxuICAgIGNvbnN0IHRhcmdldCA9IGNoYWluW2NoYWluLmxlbmd0aCAtIDFdXG4gICAgY29uc3QgbW9kZWxDbGFzcyA9IHRoaXMuX3Jlc29sdmVNb2RlbENsYXNzKGNoYWluKVxuXG4gICAgLyoqIEB0eXBlIHtBcnJheTx7ZGVjbDogaW1wb3J0KFwiLi9kZWNsYXJhdGlvbnMuanNcIikuRGVjbGFyYXRpb259Pn0gKi9cbiAgICBjb25zdCBmbGF0dGVuZWQgPSBbXVxuXG4gICAgZm9yIChjb25zdCBkZWNsYXJhdGlvbiBvZiB0aGlzLnJlZ2lzdHJ5Ll9nbG9iYWxEZWNsYXJhdGlvbnMpIHtcbiAgICAgIGZsYXR0ZW5lZC5wdXNoKHtkZWNsOiBkZWNsYXJhdGlvbn0pXG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBmYWN0b3J5RGVmaW5pdGlvbiBvZiBjaGFpbikge1xuICAgICAgdGhpcy5fZXhwYW5kRmFjdG9yeURlY2xhcmF0aW9ucyhmYWN0b3J5RGVmaW5pdGlvbiwgZmFjdG9yeURlZmluaXRpb24sIGZsYXR0ZW5lZClcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IHRyYWl0TmFtZSBvZiByZXF1ZXN0ZWRUcmFpdHMpIHtcbiAgICAgIHRoaXMuX2V4cGFuZFRyYWl0KHRyYWl0TmFtZSwgdGFyZ2V0LCBmbGF0dGVuZWQsIFtdKVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9idWlsZFBsYW4oe2ZsYXR0ZW5lZCwgbW9kZWxDbGFzcywgdGFyZ2V0LCBjaGFpbk5hbWVzOiBjaGFpbi5tYXAoKGRlZmluaXRpb24pID0+IGRlZmluaXRpb24ubmFtZSl9KVxuICB9XG5cbiAgLyoqXG4gICAqIEFwcGxpZXMgdGhlIGN1cnJlbnQgY2FsbC1zaXRlIG92ZXJyaWRlcyB3aXRob3V0IG11dGF0aW5nIHRoZSByZXVzYWJsZSB0ZW1wbGF0ZS5cbiAgICogQHBhcmFtIHtDb21waWxlZFBsYW59IHBsYW5UZW1wbGF0ZSAtIFJldXNhYmxlIGRlY2xhcmF0aW9uIHBsYW4uXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgPz59IG92ZXJyaWRlcyAtIEN1cnJlbnQgY2FsbC1zaXRlIG92ZXJyaWRlcy5cbiAgICogQHJldHVybnMge0NvbXBpbGVkUGxhbn0gLSBQZXItaW52b2NhdGlvbiBwbGFuLlxuICAgKi9cbiAgYXBwbHlPdmVycmlkZXMocGxhblRlbXBsYXRlLCBvdmVycmlkZXMpIHtcbiAgICBjb25zdCBvdmVycmlkZUtleXMgPSBPYmplY3Qua2V5cyhvdmVycmlkZXMpXG5cbiAgICBpZiAob3ZlcnJpZGVLZXlzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIHBsYW5UZW1wbGF0ZVxuXG4gICAgY29uc3QgcmVzb2x2ZWQgPSBuZXcgTWFwKHBsYW5UZW1wbGF0ZS5yZXNvbHZlZClcblxuICAgIGZvciAoY29uc3Qga2V5IG9mIG92ZXJyaWRlS2V5cykge1xuICAgICAgY29uc3QgcHJpb3IgPSByZXNvbHZlZC5nZXQoa2V5KVxuXG4gICAgICByZXNvbHZlZC5zZXQoa2V5LCB7c2xvdEtpbmQ6IHByaW9yID8gcHJpb3Iuc2xvdEtpbmQgOiBcImF0dHJpYnV0ZVwiLCB2YWx1ZTogb3ZlcnJpZGVzW2tleV0sIGlzT3ZlcnJpZGU6IHRydWV9KVxuICAgIH1cblxuICAgIHRoaXMuX2FyYml0cmF0ZUFzc29jaWF0aW9uT3ZlcnJpZGVzKHJlc29sdmVkLCBvdmVycmlkZXMsIHBsYW5UZW1wbGF0ZS5tb2RlbENsYXNzKVxuXG4gICAgcmV0dXJuIHsuLi5wbGFuVGVtcGxhdGUsIHJlc29sdmVkfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlc29sdmVzIHRoZSBpbmhlcml0YW5jZSBjaGFpbiBmcm9tIHRoZSByb290IHBhcmVudCBkb3duIHRvIHRoZSB0YXJnZXQuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmYWN0b3J5TmFtZSAtIFRhcmdldCBmYWN0b3J5IG5hbWUuXG4gICAqIEByZXR1cm5zIHtpbXBvcnQoXCIuL2ZhY3RvcnktZGVmaW5pdGlvbi5qc1wiKS5kZWZhdWx0W119IC0gQ2hhaW4gKHJvb3QgZmlyc3QsIHRhcmdldCBsYXN0KS5cbiAgICovXG4gIF9yZXNvbHZlQ2hhaW4oZmFjdG9yeU5hbWUpIHtcbiAgICAvKiogQHR5cGUge2ltcG9ydChcIi4vZmFjdG9yeS1kZWZpbml0aW9uLmpzXCIpLmRlZmF1bHRbXX0gKi9cbiAgICBjb25zdCBjaGFpbiA9IFtdXG4gICAgLyoqIEB0eXBlIHtTZXQ8c3RyaW5nPn0gKi9cbiAgICBjb25zdCBzZWVuID0gbmV3IFNldCgpXG4gICAgLyoqIEB0eXBlIHtpbXBvcnQoXCIuL2ZhY3RvcnktZGVmaW5pdGlvbi5qc1wiKS5kZWZhdWx0IHwgbnVsbH0gKi9cbiAgICBsZXQgY3VycmVudCA9IHRoaXMuX3Jlc29sdmVGYWN0b3J5KGZhY3RvcnlOYW1lKVxuXG4gICAgd2hpbGUgKGN1cnJlbnQpIHtcbiAgICAgIGlmIChzZWVuLmhhcyhjdXJyZW50Lm5hbWUpKSB7XG4gICAgICAgIHRocm93IG5ldyBGYWN0b3J5Q3ljbGVFcnJvcihgRmFjdG9yeSBpbmhlcml0YW5jZSBjeWNsZSBkZXRlY3RlZDogJHtbLi4uc2VlbiwgY3VycmVudC5uYW1lXS5qb2luKFwiIC0+IFwiKX1gKVxuICAgICAgfVxuXG4gICAgICBzZWVuLmFkZChjdXJyZW50Lm5hbWUpXG4gICAgICBjaGFpbi51bnNoaWZ0KGN1cnJlbnQpXG4gICAgICBjdXJyZW50ID0gY3VycmVudC5wYXJlbnROYW1lID8gdGhpcy5fcmVzb2x2ZUZhY3RvcnkoY3VycmVudC5wYXJlbnROYW1lKSA6IG51bGxcbiAgICB9XG5cbiAgICByZXR1cm4gY2hhaW5cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNvbHZlcyBhIGZhY3RvcnkgZGVmaW5pdGlvbiBieSBuYW1lIChvciBhbGlhcykuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmYWN0b3J5TmFtZSAtIEZhY3RvcnkgbmFtZS5cbiAgICogQHJldHVybnMge2ltcG9ydChcIi4vZmFjdG9yeS1kZWZpbml0aW9uLmpzXCIpLmRlZmF1bHR9IC0gVGhlIGRlZmluaXRpb24uXG4gICAqL1xuICBfcmVzb2x2ZUZhY3RvcnkoZmFjdG9yeU5hbWUpIHtcbiAgICBjb25zdCBkZWZpbml0aW9uID0gdGhpcy5yZWdpc3RyeS5fZmFjdG9yaWVzLmdldChmYWN0b3J5TmFtZSlcblxuICAgIGlmICghZGVmaW5pdGlvbikge1xuICAgICAgdGhyb3cgbmV3IFVuZGVmaW5lZEZhY3RvcnlFcnJvcihgTm8gZmFjdG9yeSByZWdpc3RlcmVkIGNhbGxlZCBcIiR7ZmFjdG9yeU5hbWV9XCIuIFJlZ2lzdGVyZWQ6ICR7Wy4uLnRoaXMucmVnaXN0cnkuX2ZhY3Rvcmllcy5rZXlzKCldLmpvaW4oXCIsIFwiKSB8fCBcIihub25lKVwifWApXG4gICAgfVxuXG4gICAgcmV0dXJuIGRlZmluaXRpb25cbiAgfVxuXG4gIC8qKlxuICAgKiBQaWNrcyB0aGUgbmVhcmVzdCBkZWNsYXJlZCBtb2RlbCBjbGFzcyBpbiB0aGUgY2hhaW4gKGNoaWxkIG92ZXJyaWRlcyBwYXJlbnQpLlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4vZmFjdG9yeS1kZWZpbml0aW9uLmpzXCIpLmRlZmF1bHRbXX0gY2hhaW4gLSBJbmhlcml0YW5jZSBjaGFpbi5cbiAgICogQHJldHVybnMgeyhuZXcgKGF0dHJpYnV0ZXM/OiBSZWNvcmQ8c3RyaW5nLCA/PikgPT4gPykgfCBudWxsfSAtIFRoZSBtb2RlbCBjbGFzcywgb3IgbnVsbC5cbiAgICovXG4gIF9yZXNvbHZlTW9kZWxDbGFzcyhjaGFpbikge1xuICAgIGZvciAobGV0IGluZGV4ID0gY2hhaW4ubGVuZ3RoIC0gMTsgaW5kZXggPj0gMDsgaW5kZXgtLSkge1xuICAgICAgaWYgKGNoYWluW2luZGV4XS5tb2RlbENsYXNzKSByZXR1cm4gY2hhaW5baW5kZXhdLm1vZGVsQ2xhc3NcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgLyoqXG4gICAqIEV4cGFuZHMgb25lIGZhY3RvcnkncyBvd24gZGVjbGFyYXRpb25zLCBpbmxpbmluZyBiYXNlLXRyYWl0IGluY2x1c2lvbnMuXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi9mYWN0b3J5LWRlZmluaXRpb24uanNcIikuZGVmYXVsdH0gZmFjdG9yeURlZmluaXRpb24gLSBGYWN0b3J5IHdob3NlIGRlY2xhcmF0aW9ucyBhcmUgZXhwYW5kZWQuXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi9mYWN0b3J5LWRlZmluaXRpb24uanNcIikuZGVmYXVsdH0gc2NvcGUgLSBUYXJnZXQgZmFjdG9yeSAoZm9yIGxvY2FsLXRyYWl0IHJlc29sdXRpb24pLlxuICAgKiBAcGFyYW0ge0FycmF5PHtkZWNsOiBpbXBvcnQoXCIuL2RlY2xhcmF0aW9ucy5qc1wiKS5EZWNsYXJhdGlvbn0+fSBvdXQgLSBGbGF0dGVuZWQgb3V0cHV0IHNpbmsuXG4gICAqIEByZXR1cm5zIHt2b2lkfVxuICAgKi9cbiAgX2V4cGFuZEZhY3RvcnlEZWNsYXJhdGlvbnMoZmFjdG9yeURlZmluaXRpb24sIHNjb3BlLCBvdXQpIHtcbiAgICBmb3IgKGNvbnN0IGRlY2xhcmF0aW9uIG9mIGZhY3RvcnlEZWZpbml0aW9uLmRlY2xhcmF0aW9ucykge1xuICAgICAgaWYgKGRlY2xhcmF0aW9uLmtpbmQgPT09IFwidHJhaXRJbmNsdWRlXCIpIHtcbiAgICAgICAgdGhpcy5fZXhwYW5kVHJhaXQoZGVjbGFyYXRpb24ubmFtZSwgc2NvcGUsIG91dCwgW10pXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvdXQucHVzaCh7ZGVjbDogZGVjbGFyYXRpb259KVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBFeHBhbmRzIGEgdHJhaXQgKHJlc29sdmluZyBmYWN0b3J5LWxvY2FsIGJlZm9yZSBnbG9iYWwpIGFuZCBpdHMgaW5jbHVzaW9ucy5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHRyYWl0TmFtZSAtIFRyYWl0IHRvIGV4cGFuZC5cbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuL2ZhY3RvcnktZGVmaW5pdGlvbi5qc1wiKS5kZWZhdWx0fSBzY29wZSAtIFRhcmdldCBmYWN0b3J5IChmb3IgbG9jYWwtdHJhaXQgcmVzb2x1dGlvbikuXG4gICAqIEBwYXJhbSB7QXJyYXk8e2RlY2w6IGltcG9ydChcIi4vZGVjbGFyYXRpb25zLmpzXCIpLkRlY2xhcmF0aW9ufT59IG91dCAtIEZsYXR0ZW5lZCBvdXRwdXQgc2luay5cbiAgICogQHBhcmFtIHtzdHJpbmdbXX0gYWN0aXZlUGF0aCAtIFRyYWl0IGluY2x1c2lvbiBwYXRoIChmb3IgY3ljbGUgZGV0ZWN0aW9uKS5cbiAgICogQHJldHVybnMge3ZvaWR9XG4gICAqL1xuICBfZXhwYW5kVHJhaXQodHJhaXROYW1lLCBzY29wZSwgb3V0LCBhY3RpdmVQYXRoKSB7XG4gICAgaWYgKGFjdGl2ZVBhdGguaW5jbHVkZXModHJhaXROYW1lKSkge1xuICAgICAgdGhyb3cgbmV3IEZhY3RvcnlDeWNsZUVycm9yKGBUcmFpdCBpbmNsdXNpb24gY3ljbGUgZGV0ZWN0ZWQ6ICR7Wy4uLmFjdGl2ZVBhdGgsIHRyYWl0TmFtZV0uam9pbihcIiAtPiBcIil9YClcbiAgICB9XG5cbiAgICBjb25zdCBsb2NhbFRyYWl0ID0gdGhpcy5fcmVzb2x2ZUxvY2FsVHJhaXQodHJhaXROYW1lLCBzY29wZSlcbiAgICBjb25zdCB0cmFpdCA9IGxvY2FsVHJhaXQ/LnRyYWl0IHx8IHRoaXMucmVnaXN0cnkuX2dsb2JhbFRyYWl0cy5nZXQodHJhaXROYW1lKVxuICAgIGNvbnN0IGluY2x1c2lvblNjb3BlID0gbG9jYWxUcmFpdD8uc2NvcGUgfHwgc2NvcGVcblxuICAgIGlmICghdHJhaXQpIHtcbiAgICAgIHRocm93IG5ldyBVbmRlZmluZWRUcmFpdEVycm9yKGBObyB0cmFpdCByZWdpc3RlcmVkIGNhbGxlZCBcIiR7dHJhaXROYW1lfVwiIGZvciBmYWN0b3J5IFwiJHtzY29wZS5uYW1lfVwiYClcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGRlY2xhcmF0aW9uIG9mIHRyYWl0LmRlY2xhcmF0aW9ucykge1xuICAgICAgaWYgKGRlY2xhcmF0aW9uLmtpbmQgPT09IFwidHJhaXRJbmNsdWRlXCIpIHtcbiAgICAgICAgdGhpcy5fZXhwYW5kVHJhaXQoZGVjbGFyYXRpb24ubmFtZSwgaW5jbHVzaW9uU2NvcGUsIG91dCwgWy4uLmFjdGl2ZVBhdGgsIHRyYWl0TmFtZV0pXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvdXQucHVzaCh7ZGVjbDogZGVjbGFyYXRpb259KVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNvbHZlcyBhIGxvY2FsIHRyYWl0IGZyb20gdGhlIGN1cnJlbnQgZmFjdG9yeSB1cHdhcmQgdGhyb3VnaCBpdHMgcGFyZW50cy5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHRyYWl0TmFtZSAtIFRyYWl0IG5hbWUgdG8gcmVzb2x2ZS5cbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuL2ZhY3RvcnktZGVmaW5pdGlvbi5qc1wiKS5kZWZhdWx0fSBzY29wZSAtIERlY2xhcmluZy9yZXF1ZXN0aW5nIGZhY3Rvcnkgc2NvcGUuXG4gICAqIEByZXR1cm5zIHt7dHJhaXQ6IGltcG9ydChcIi4vdHJhaXQtZGVmaW5pdGlvbi5qc1wiKS5kZWZhdWx0LCBzY29wZTogaW1wb3J0KFwiLi9mYWN0b3J5LWRlZmluaXRpb24uanNcIikuZGVmYXVsdH0gfCB1bmRlZmluZWR9IC0gTmVhcmVzdCBsb2NhbCB0cmFpdCBhbmQgaXRzIGRlY2xhcmluZyBzY29wZSwgaWYgYW55LlxuICAgKi9cbiAgX3Jlc29sdmVMb2NhbFRyYWl0KHRyYWl0TmFtZSwgc2NvcGUpIHtcbiAgICAvKiogQHR5cGUge2ltcG9ydChcIi4vZmFjdG9yeS1kZWZpbml0aW9uLmpzXCIpLmRlZmF1bHQgfCB1bmRlZmluZWR9ICovXG4gICAgbGV0IGN1cnJlbnQgPSBzY29wZVxuXG4gICAgd2hpbGUgKGN1cnJlbnQpIHtcbiAgICAgIGNvbnN0IHRyYWl0ID0gY3VycmVudC5sb2NhbFRyYWl0cy5nZXQodHJhaXROYW1lKVxuXG4gICAgICBpZiAodHJhaXQpIHJldHVybiB7dHJhaXQsIHNjb3BlOiBjdXJyZW50fVxuXG4gICAgICBjdXJyZW50ID0gY3VycmVudC5wYXJlbnROYW1lID8gdGhpcy5fcmVzb2x2ZUZhY3RvcnkoY3VycmVudC5wYXJlbnROYW1lKSA6IHVuZGVmaW5lZFxuICAgIH1cblxuICAgIHJldHVybiB1bmRlZmluZWRcbiAgfVxuXG4gIC8qKlxuICAgKiBGb2xkcyBmbGF0dGVuZWQgZGVjbGFyYXRpb25zIGludG8gYSByZXVzYWJsZSBjb21waWxlZCBwbGFuLlxuICAgKiBAcGFyYW0ge29iamVjdH0gYXJncyAtIE9wdGlvbnMuXG4gICAqIEBwYXJhbSB7QXJyYXk8e2RlY2w6IGltcG9ydChcIi4vZGVjbGFyYXRpb25zLmpzXCIpLkRlY2xhcmF0aW9ufT59IGFyZ3MuZmxhdHRlbmVkIC0gRmxhdHRlbmVkIGRlY2xhcmF0aW9ucy5cbiAgICogQHBhcmFtIHsobmV3IChhdHRyaWJ1dGVzPzogUmVjb3JkPHN0cmluZywgPz4pID0+ID8pIHwgbnVsbH0gYXJncy5tb2RlbENsYXNzIC0gUmVzb2x2ZWQgbW9kZWwgY2xhc3MuXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi9mYWN0b3J5LWRlZmluaXRpb24uanNcIikuZGVmYXVsdH0gYXJncy50YXJnZXQgLSBUYXJnZXQgZmFjdG9yeSBkZWZpbml0aW9uLlxuICAgKiBAcGFyYW0ge3N0cmluZ1tdfSBhcmdzLmNoYWluTmFtZXMgLSBJbmhlcml0YW5jZSBjaGFpbiBuYW1lcy5cbiAgICogQHJldHVybnMge0NvbXBpbGVkUGxhbn0gLSBUaGUgY29tcGlsZWQgcGxhbi5cbiAgICovXG4gIF9idWlsZFBsYW4oe2ZsYXR0ZW5lZCwgbW9kZWxDbGFzcywgdGFyZ2V0LCBjaGFpbk5hbWVzfSkge1xuICAgIC8qKiBAdHlwZSB7TWFwPHN0cmluZywgU2xvdD59ICovXG4gICAgY29uc3QgcmVzb2x2ZWQgPSBuZXcgTWFwKClcbiAgICAvKiogQHR5cGUge01hcDxzdHJpbmcsIGltcG9ydChcIi4vZGVjbGFyYXRpb25zLmpzXCIpLkNhbGxiYWNrRGVjbGFyYXRpb25bXT59ICovXG4gICAgY29uc3QgY2FsbGJhY2tzID0gbmV3IE1hcCgpXG4gICAgLyoqIEB0eXBlIHtTZXQ8aW1wb3J0KFwiLi9kZWNsYXJhdGlvbnMuanNcIikuQ2FsbGJhY2tEZWNsYXJhdGlvbj59ICovXG4gICAgY29uc3Qgc2VlbkNhbGxiYWNrcyA9IG5ldyBTZXQoKVxuICAgIC8qKiBAdHlwZSB7aW1wb3J0KFwiLi9kZWNsYXJhdGlvbnMuanNcIikuSW5pdGlhbGl6ZVdpdGhEZWNsYXJhdGlvbltcImZuXCJdIHwgbnVsbH0gKi9cbiAgICBsZXQgaW5pdGlhbGl6ZVdpdGggPSBudWxsXG4gICAgLyoqIEB0eXBlIHtpbXBvcnQoXCIuL2RlY2xhcmF0aW9ucy5qc1wiKS5Ub0NyZWF0ZURlY2xhcmF0aW9uW1wiZm5cIl0gfCBudWxsfSAqL1xuICAgIGxldCB0b0NyZWF0ZSA9IG51bGxcbiAgICBsZXQgc2tpcENyZWF0ZSA9IGZhbHNlXG5cbiAgICBmb3IgKGNvbnN0IHtkZWNsfSBvZiBmbGF0dGVuZWQpIHtcbiAgICAgIGlmIChkZWNsLmtpbmQgPT09IFwiYXR0cmlidXRlXCIpIHtcbiAgICAgICAgcmVzb2x2ZWQuc2V0KGRlY2wubmFtZSwge3Nsb3RLaW5kOiBkZWNsLmlzVHJhbnNpZW50ID8gXCJ0cmFuc2llbnRcIiA6IFwiYXR0cmlidXRlXCIsIHZhbHVlOiBkZWNsLnZhbHVlLCBpc092ZXJyaWRlOiBmYWxzZX0pXG4gICAgICB9IGVsc2UgaWYgKGRlY2wua2luZCA9PT0gXCJhc3NvY2lhdGlvblwiKSB7XG4gICAgICAgIHJlc29sdmVkLnNldChkZWNsLm5hbWUsIHtzbG90S2luZDogXCJhc3NvY2lhdGlvblwiLCB2YWx1ZTogZGVjbCwgaXNPdmVycmlkZTogZmFsc2V9KVxuICAgICAgfSBlbHNlIGlmIChkZWNsLmtpbmQgPT09IFwiY2FsbGJhY2tcIikge1xuICAgICAgICBpZiAoIXNlZW5DYWxsYmFja3MuaGFzKGRlY2wpKSB7XG4gICAgICAgICAgc2VlbkNhbGxiYWNrcy5hZGQoZGVjbClcblxuICAgICAgICAgIGNvbnN0IGV2ZW50Q2FsbGJhY2tzID0gY2FsbGJhY2tzLmdldChkZWNsLmV2ZW50KSB8fCBbXVxuXG4gICAgICAgICAgZXZlbnRDYWxsYmFja3MucHVzaChkZWNsKVxuICAgICAgICAgIGNhbGxiYWNrcy5zZXQoZGVjbC5ldmVudCwgZXZlbnRDYWxsYmFja3MpXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoZGVjbC5raW5kID09PSBcImluaXRpYWxpemVXaXRoXCIpIHtcbiAgICAgICAgaW5pdGlhbGl6ZVdpdGggPSBkZWNsLmZuXG4gICAgICB9IGVsc2UgaWYgKGRlY2wua2luZCA9PT0gXCJ0b0NyZWF0ZVwiKSB7XG4gICAgICAgIHRvQ3JlYXRlID0gZGVjbC5mblxuICAgICAgfSBlbHNlIGlmIChkZWNsLmtpbmQgPT09IFwic2tpcENyZWF0ZVwiKSB7XG4gICAgICAgIHNraXBDcmVhdGUgPSB0cnVlXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGZhY3RvcnlOYW1lOiB0YXJnZXQubmFtZSxcbiAgICAgIGZhY3RvcnlEZWZpbml0aW9uOiB0YXJnZXQsXG4gICAgICBtb2RlbENsYXNzLFxuICAgICAgY2hhaW5OYW1lcyxcbiAgICAgIHJlc29sdmVkLFxuICAgICAgY2FsbGJhY2tzLFxuICAgICAgaW5pdGlhbGl6ZVdpdGgsXG4gICAgICB0b0NyZWF0ZSxcbiAgICAgIHNraXBDcmVhdGVcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQXBwbGllcyBiZWxvbmdzLXRvIG92ZXJyaWRlIHByZWNlZGVuY2UgdXNpbmcgdGhlIGRlY2xhcmVkIG1vZGVsIHJlbGF0aW9uc2hpcCdzXG4gICAqIHJlYWwgZm9yZWlnbi1rZXkgbWV0YWRhdGEuIEFuIGV4cGxpY2l0IGFzc29jaWF0aW9uIG9iamVjdCB3aW5zIG92ZXIgaXRzIGtleTtcbiAgICogb3RoZXJ3aXNlIGFuIGV4cGxpY2l0IGtleSBzdXBwcmVzc2VzIHRoZSBmYWN0b3J5LWRlY2xhcmVkIGFzc29jaWF0aW9uLlxuICAgKiBAcGFyYW0ge01hcDxzdHJpbmcsIFNsb3Q+fSByZXNvbHZlZCAtIEZvbGRlZCBzbG90cy5cbiAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCA/Pn0gb3ZlcnJpZGVzIC0gQ2FsbC1zaXRlIG92ZXJyaWRlcy5cbiAgICogQHBhcmFtIHsobmV3IChhdHRyaWJ1dGVzPzogUmVjb3JkPHN0cmluZywgPz4pID0+ID8pIHwgbnVsbH0gbW9kZWxDbGFzcyAtIFJlc29sdmVkIG1vZGVsIGNsYXNzLlxuICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICovXG4gIF9hcmJpdHJhdGVBc3NvY2lhdGlvbk92ZXJyaWRlcyhyZXNvbHZlZCwgb3ZlcnJpZGVzLCBtb2RlbENsYXNzKSB7XG4gICAgaWYgKE9iamVjdC5rZXlzKG92ZXJyaWRlcykubGVuZ3RoID09PSAwKSByZXR1cm5cbiAgICBpZiAodHlwZW9mIG1vZGVsQ2xhc3MgIT09IFwiZnVuY3Rpb25cIiB8fCAhKG1vZGVsQ2xhc3MucHJvdG90eXBlIGluc3RhbmNlb2YgRGF0YWJhc2VSZWNvcmQpKSByZXR1cm5cblxuICAgIGNvbnN0IGJhY2tlbmRNb2RlbENsYXNzID0gLyoqIEB0eXBlIHt0eXBlb2YgRGF0YWJhc2VSZWNvcmR9ICovIChtb2RlbENsYXNzKVxuICAgIGNvbnN0IGNvbHVtblRvQXR0cmlidXRlID0gYmFja2VuZE1vZGVsQ2xhc3MuZ2V0Q29sdW1uTmFtZVRvQXR0cmlidXRlTmFtZU1hcCgpXG5cbiAgICBmb3IgKGNvbnN0IFtuYW1lLCBzbG90XSBvZiBbLi4ucmVzb2x2ZWRdKSB7XG4gICAgICBpZiAoc2xvdC5zbG90S2luZCAhPT0gXCJhc3NvY2lhdGlvblwiKSBjb250aW51ZVxuXG4gICAgICBjb25zdCByZWxhdGlvbnNoaXAgPSBiYWNrZW5kTW9kZWxDbGFzcy5nZXRSZWxhdGlvbnNoaXBCeU5hbWUobmFtZSlcblxuICAgICAgaWYgKHJlbGF0aW9uc2hpcC5nZXRUeXBlKCkgIT09IFwiYmVsb25nc1RvXCIpIGNvbnRpbnVlXG5cbiAgICAgIGNvbnN0IGZvcmVpZ25LZXlDb2x1bW4gPSByZWxhdGlvbnNoaXAuZ2V0Rm9yZWlnbktleSgpXG4gICAgICBjb25zdCBmb3JlaWduS2V5QXR0cmlidXRlID0gY29sdW1uVG9BdHRyaWJ1dGVbZm9yZWlnbktleUNvbHVtbl0gfHwgZm9yZWlnbktleUNvbHVtblxuXG4gICAgICBpZiAoIU9iamVjdC5oYXNPd24ob3ZlcnJpZGVzLCBmb3JlaWduS2V5QXR0cmlidXRlKSkgY29udGludWVcblxuICAgICAgaWYgKHNsb3QuaXNPdmVycmlkZSkge1xuICAgICAgICByZXNvbHZlZC5kZWxldGUoZm9yZWlnbktleUF0dHJpYnV0ZSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc29sdmVkLmRlbGV0ZShuYW1lKVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
|
|
289
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS1ydW5uZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdGVzdGluZy9mYWN0b3J5L2ZhY3RvcnktcnVubmVyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFFWixPQUFPLGNBQWMsTUFBTSxnQ0FBZ0MsQ0FBQTtBQUMzRCxPQUFPLEVBQUMsaUJBQWlCLEVBQUUscUJBQXFCLEVBQUUsbUJBQW1CLEVBQUMsTUFBTSxhQUFhLENBQUE7QUFFekY7Ozs7OztHQU1HO0FBRUg7Ozs7Ozs7Ozs7OztHQVlHO0FBRUg7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxPQUFPLE9BQU8sYUFBYTtJQUNoQzs7O09BR0c7SUFDSCxZQUFZLFFBQVE7UUFDbEIseUVBQXlFO1FBQ3pFLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFBO0lBQzFCLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxPQUFPLENBQUMsV0FBVyxFQUFFLGVBQWUsRUFBRSxTQUFTO1FBQzdDLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxlQUFlLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQTtJQUMzRixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxlQUFlLENBQUMsV0FBVyxFQUFFLGVBQWU7UUFDMUMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQTtRQUM3QyxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQTtRQUN0QyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUE7UUFFakQscUVBQXFFO1FBQ3JFLE1BQU0sU0FBUyxHQUFHLEVBQUUsQ0FBQTtRQUVwQixLQUFLLE1BQU0sV0FBVyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsbUJBQW1CLEVB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QUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsbUJBQW1CLENBQUM7Z0JBQUUsU0FBUTtZQUU1RCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDcEIsUUFBUSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFBO1lBQ3RDLENBQUM7aUJBQU0sQ0FBQztnQkFDTixRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFBO1lBQ3ZCLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbmltcG9ydCBEYXRhYmFzZVJlY29yZCBmcm9tIFwiLi4vLi4vZGF0YWJhc2UvcmVjb3JkL2luZGV4LmpzXCJcbmltcG9ydCB7RmFjdG9yeUN5Y2xlRXJyb3IsIFVuZGVmaW5lZEZhY3RvcnlFcnJvciwgVW5kZWZpbmVkVHJhaXRFcnJvcn0gZnJvbSBcIi4vZXJyb3JzLmpzXCJcblxuLyoqXG4gKiBBIHJlc29sdmVkIGF0dHJpYnV0ZS90cmFuc2llbnQvYXNzb2NpYXRpb24gc2xvdCBpbiBhIGNvbXBpbGVkIHBsYW4uXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBTbG90XG4gKiBAcHJvcGVydHkge1wiYXR0cmlidXRlXCIgfCBcInRyYW5zaWVudFwiIHwgXCJhc3NvY2lhdGlvblwifSBzbG90S2luZCAtIFNsb3QgbmF0dXJlLlxuICogQHByb3BlcnR5IHtSZXR1cm5UeXBlPHR5cGVvZiBKU09OLnBhcnNlPn0gdmFsdWUgLSBMaXRlcmFsL2xhenkgdmFsdWUsIG92ZXJyaWRlIHZhbHVlLCBvciBBc3NvY2lhdGlvbkRlY2xhcmF0aW9uLlxuICogQHByb3BlcnR5IHtib29sZWFufSBpc092ZXJyaWRlIC0gV2hldGhlciB0aGUgdmFsdWUgY2FtZSBmcm9tIGEgY2FsbC1zaXRlIG92ZXJyaWRlLlxuICovXG5cbi8qKlxuICogVGhlIGltbXV0YWJsZSByZXN1bHQgb2YgY29tcGlsaW5nIGEgZmFjdG9yeSBpbnZvY2F0aW9uLlxuICogQHR5cGVkZWYge29iamVjdH0gQ29tcGlsZWRQbGFuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gZmFjdG9yeU5hbWUgLSBUYXJnZXQgZmFjdG9yeSBuYW1lLlxuICogQHByb3BlcnR5IHtpbXBvcnQoXCIuL2ZhY3RvcnktZGVmaW5pdGlvbi5qc1wiKS5kZWZhdWx0fSBmYWN0b3J5RGVmaW5pdGlvbiAtIFRhcmdldCBkZWZpbml0aW9uLlxuICogQHByb3BlcnR5IHsobmV3IChhdHRyaWJ1dGVzPzogUmVjb3JkPHN0cmluZywgUmV0dXJuVHlwZTx0eXBlb2YgSlNPTi5wYXJzZT4+KSA9PiBSZXR1cm5UeXBlPHR5cGVvZiBKU09OLnBhcnNlPikgfCBudWxsfSBtb2RlbENsYXNzIC0gUmVzb2x2ZWQgbW9kZWwgY2xhc3MuXG4gKiBAcHJvcGVydHkge3N0cmluZ1tdfSBjaGFpbk5hbWVzIC0gSW5oZXJpdGFuY2UgY2hhaW4gbmFtZXMgKGNoaWxkIGxhc3QpIGZvciBzZXF1ZW5jZSBzY29wZS5cbiAqIEBwcm9wZXJ0eSB7TWFwPHN0cmluZywgU2xvdD59IHJlc29sdmVkIC0gTmFtZeKGknNsb3QgbWFwIChsYXN0IGRlY2xhcmF0aW9uIHdpbnMpLlxuICogQHByb3BlcnR5IHtNYXA8c3RyaW5nLCBpbXBvcnQoXCIuL2RlY2xhcmF0aW9ucy5qc1wiKS5DYWxsYmFja0RlY2xhcmF0aW9uW10+fSBjYWxsYmFja3MgLSBEZWR1cGVkIGNhbGxiYWNrcyBieSBldmVudC5cbiAqIEBwcm9wZXJ0eSB7aW1wb3J0KFwiLi9kZWNsYXJhdGlvbnMuanNcIikuSW5pdGlhbGl6ZVdpdGhEZWNsYXJhdGlvbltcImZuXCJdIHwgbnVsbH0gaW5pdGlhbGl6ZVdpdGggLSBDdXN0b20gY29uc3RydWN0b3IsIG9yIG51bGwuXG4gKiBAcHJvcGVydHkge2ltcG9ydChcIi4vZGVjbGFyYXRpb25zLmpzXCIpLlRvQ3JlYXRlRGVjbGFyYXRpb25bXCJmblwiXSB8IG51bGx9IHRvQ3JlYXRlIC0gQ3VzdG9tIHBlcnNpc3RlbmNlLCBvciBudWxsLlxuICogQHByb3BlcnR5IHtib29sZWFufSBza2lwQ3JlYXRlIC0gV2hldGhlciBwZXJzaXN0ZW5jZSBpcyBza2lwcGVkLlxuICovXG5cbi8qKlxuICogQ29tcGlsZXMgZmFjdG9yeSBpbnZvY2F0aW9ucyBpbnRvIGltbXV0YWJsZSBwbGFucyBieSByZXNvbHZpbmcgdGhlIGluaGVyaXRhbmNlXG4gKiBjaGFpbiwgZXhwYW5kaW5nIGJhc2UgYW5kIHJlcXVlc3RlZCB0cmFpdHMsIGFuZCBmb2xkaW5nIGRlY2xhcmF0aW9ucyBpbnRvIGFcbiAqIG5hbWXihpJzbG90IG1hcCBwbHVzIGEgZGVkdXBlZCwgb3JkZXJlZCBjYWxsYmFjayBzZXQuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZhY3RvcnlSdW5uZXIge1xuICAvKipcbiAgICogQnVpbGRzIGEgcnVubmVyLlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4vZmFjdG9yeS1yZWdpc3RyeS5qc1wiKS5kZWZhdWx0fSByZWdpc3RyeSAtIE93bmluZyByZWdpc3RyeS5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHJlZ2lzdHJ5KSB7XG4gICAgLyoqIEB0eXBlIHtpbXBvcnQoXCIuL2ZhY3RvcnktcmVnaXN0cnkuanNcIikuZGVmYXVsdH0gLSBPd25pbmcgcmVnaXN0cnkuICovXG4gICAgdGhpcy5yZWdpc3RyeSA9IHJlZ2lzdHJ5XG4gIH1cblxuICAvKipcbiAgICogQ29tcGlsZXMgYSBmYWN0b3J5IGludm9jYXRpb24gaW50byBhIHBsYW4uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmYWN0b3J5TmFtZSAtIEZhY3RvcnkgdG8gcnVuLlxuICAgKiBAcGFyYW0ge3N0cmluZ1tdfSByZXF1ZXN0ZWRUcmFpdHMgLSBUcmFpdHMgcmVxdWVzdGVkIGF0IHRoZSBjYWxsIHNpdGUsIGluIG9yZGVyLlxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIFJldHVyblR5cGU8dHlwZW9mIEpTT04ucGFyc2U+Pn0gb3ZlcnJpZGVzIC0gQ2FsbC1zaXRlIG92ZXJyaWRlcyAoaGlnaGVzdCBwcmVjZWRlbmNlKS5cbiAgICogQHJldHVybnMge0NvbXBpbGVkUGxhbn0gLSBUaGUgY29tcGlsZWQgcGxhbi5cbiAgICovXG4gIGNvbXBpbGUoZmFjdG9yeU5hbWUsIHJlcXVlc3RlZFRyYWl0cywgb3ZlcnJpZGVzKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBwbHlPdmVycmlkZXModGhpcy5jb21waWxlVGVtcGxhdGUoZmFjdG9yeU5hbWUsIHJlcXVlc3RlZFRyYWl0cyksIG92ZXJyaWRlcylcbiAgfVxuXG4gIC8qKlxuICAgKiBDb21waWxlcyBpbmhlcml0YW5jZSwgdHJhaXRzIGFuZCBkZWNsYXJhdGlvbnMgd2l0aG91dCBjYWxsLXNpdGUgb3ZlcnJpZGVzLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZmFjdG9yeU5hbWUgLSBGYWN0b3J5IHRvIHJ1bi5cbiAgICogQHBhcmFtIHtzdHJpbmdbXX0gcmVxdWVzdGVkVHJhaXRzIC0gVHJhaXRzIHJlcXVlc3RlZCBhdCB0aGUgY2FsbCBzaXRlLCBpbiBvcmRlci5cbiAgICogQHJldHVybnMge0NvbXBpbGVkUGxhbn0gLSBSZXVzYWJsZSBkZWNsYXJhdGlvbiBwbGFuLlxuICAgKi9cbiAgY29tcGlsZVRlbXBsYXRlKGZhY3RvcnlOYW1lLCByZXF1ZXN0ZWRUcmFpdHMpIHtcbiAgICBjb25zdCBjaGFpbiA9IHRoaXMuX3Jlc29sdmVDaGFpbihmYWN0b3J5TmFtZSlcbiAgICBjb25zdCB0YXJnZXQgPSBjaGFpbltjaGFpbi5sZW5ndGggLSAxXVxuICAgIGNvbnN0IG1vZGVsQ2xhc3MgPSB0aGlzLl9yZXNvbHZlTW9kZWxDbGFzcyhjaGFpbilcblxuICAgIC8qKiBAdHlwZSB7QXJyYXk8e2RlY2w6IGltcG9ydChcIi4vZGVjbGFyYXRpb25zLmpzXCIpLkRlY2xhcmF0aW9ufT59ICovXG4gICAgY29uc3QgZmxhdHRlbmVkID0gW11cblxuICAgIGZvciAoY29uc3QgZGVjbGFyYXRpb24gb2YgdGhpcy5yZWdpc3RyeS5fZ2xvYmFsRGVjbGFyYXRpb25zKSB7XG4gICAgICBmbGF0dGVuZWQucHVzaCh7ZGVjbDogZGVjbGFyYXRpb259KVxuICAgIH1cblxuICAgIGZvciAoY29uc3QgZmFjdG9yeURlZmluaXRpb24gb2YgY2hhaW4pIHtcbiAgICAgIHRoaXMuX2V4cGFuZEZhY3RvcnlEZWNsYXJhdGlvbnMoZmFjdG9yeURlZmluaXRpb24sIGZhY3RvcnlEZWZpbml0aW9uLCBmbGF0dGVuZWQpXG4gICAgfVxuXG4gICAgZm9yIChjb25zdCB0cmFpdE5hbWUgb2YgcmVxdWVzdGVkVHJhaXRzKSB7XG4gICAgICB0aGlzLl9leHBhbmRUcmFpdCh0cmFpdE5hbWUsIHRhcmdldCwgZmxhdHRlbmVkLCBbXSlcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fYnVpbGRQbGFuKHtmbGF0dGVuZWQsIG1vZGVsQ2xhc3MsIHRhcmdldCwgY2hhaW5OYW1lczogY2hhaW4ubWFwKChkZWZpbml0aW9uKSA9PiBkZWZpbml0aW9uLm5hbWUpfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBBcHBsaWVzIHRoZSBjdXJyZW50IGNhbGwtc2l0ZSBvdmVycmlkZXMgd2l0aG91dCBtdXRhdGluZyB0aGUgcmV1c2FibGUgdGVtcGxhdGUuXG4gICAqIEBwYXJhbSB7Q29tcGlsZWRQbGFufSBwbGFuVGVtcGxhdGUgLSBSZXVzYWJsZSBkZWNsYXJhdGlvbiBwbGFuLlxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIFJldHVyblR5cGU8dHlwZW9mIEpTT04ucGFyc2U+Pn0gb3ZlcnJpZGVzIC0gQ3VycmVudCBjYWxsLXNpdGUgb3ZlcnJpZGVzLlxuICAgKiBAcmV0dXJucyB7Q29tcGlsZWRQbGFufSAtIFBlci1pbnZvY2F0aW9uIHBsYW4uXG4gICAqL1xuICBhcHBseU92ZXJyaWRlcyhwbGFuVGVtcGxhdGUsIG92ZXJyaWRlcykge1xuICAgIGNvbnN0IG92ZXJyaWRlS2V5cyA9IE9iamVjdC5rZXlzKG92ZXJyaWRlcylcblxuICAgIGlmIChvdmVycmlkZUtleXMubGVuZ3RoID09PSAwKSByZXR1cm4gcGxhblRlbXBsYXRlXG5cbiAgICBjb25zdCByZXNvbHZlZCA9IG5ldyBNYXAocGxhblRlbXBsYXRlLnJlc29sdmVkKVxuXG4gICAgZm9yIChjb25zdCBrZXkgb2Ygb3ZlcnJpZGVLZXlzKSB7XG4gICAgICBjb25zdCBwcmlvciA9IHJlc29sdmVkLmdldChrZXkpXG5cbiAgICAgIHJlc29sdmVkLnNldChrZXksIHtzbG90S2luZDogcHJpb3IgPyBwcmlvci5zbG90S2luZCA6IFwiYXR0cmlidXRlXCIsIHZhbHVlOiBvdmVycmlkZXNba2V5XSwgaXNPdmVycmlkZTogdHJ1ZX0pXG4gICAgfVxuXG4gICAgdGhpcy5fYXJiaXRyYXRlQXNzb2NpYXRpb25PdmVycmlkZXMocmVzb2x2ZWQsIG92ZXJyaWRlcywgcGxhblRlbXBsYXRlLm1vZGVsQ2xhc3MpXG5cbiAgICByZXR1cm4gey4uLnBsYW5UZW1wbGF0ZSwgcmVzb2x2ZWR9XG4gIH1cblxuICAvKipcbiAgICogUmVzb2x2ZXMgdGhlIGluaGVyaXRhbmNlIGNoYWluIGZyb20gdGhlIHJvb3QgcGFyZW50IGRvd24gdG8gdGhlIHRhcmdldC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGZhY3RvcnlOYW1lIC0gVGFyZ2V0IGZhY3RvcnkgbmFtZS5cbiAgICogQHJldHVybnMge2ltcG9ydChcIi4vZmFjdG9yeS1kZWZpbml0aW9uLmpzXCIpLmRlZmF1bHRbXX0gLSBDaGFpbiAocm9vdCBmaXJzdCwgdGFyZ2V0IGxhc3QpLlxuICAgKi9cbiAgX3Jlc29sdmVDaGFpbihmYWN0b3J5TmFtZSkge1xuICAgIC8qKiBAdHlwZSB7aW1wb3J0KFwiLi9mYWN0b3J5LWRlZmluaXRpb24uanNcIikuZGVmYXVsdFtdfSAqL1xuICAgIGNvbnN0IGNoYWluID0gW11cbiAgICAvKiogQHR5cGUge1NldDxzdHJpbmc+fSAqL1xuICAgIGNvbnN0IHNlZW4gPSBuZXcgU2V0KClcbiAgICAvKiogQHR5cGUge2ltcG9ydChcIi4vZmFjdG9yeS1kZWZpbml0aW9uLmpzXCIpLmRlZmF1bHQgfCBudWxsfSAqL1xuICAgIGxldCBjdXJyZW50ID0gdGhpcy5fcmVzb2x2ZUZhY3RvcnkoZmFjdG9yeU5hbWUpXG5cbiAgICB3aGlsZSAoY3VycmVudCkge1xuICAgICAgaWYgKHNlZW4uaGFzKGN1cnJlbnQubmFtZSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEZhY3RvcnlDeWNsZUVycm9yKGBGYWN0b3J5IGluaGVyaXRhbmNlIGN5Y2xlIGRldGVjdGVkOiAke1suLi5zZWVuLCBjdXJyZW50Lm5hbWVdLmpvaW4oXCIgLT4gXCIpfWApXG4gICAgICB9XG5cbiAgICAgIHNlZW4uYWRkKGN1cnJlbnQubmFtZSlcbiAgICAgIGNoYWluLnVuc2hpZnQoY3VycmVudClcbiAgICAgIGN1cnJlbnQgPSBjdXJyZW50LnBhcmVudE5hbWUgPyB0aGlzLl9yZXNvbHZlRmFjdG9yeShjdXJyZW50LnBhcmVudE5hbWUpIDogbnVsbFxuICAgIH1cblxuICAgIHJldHVybiBjaGFpblxuICB9XG5cbiAgLyoqXG4gICAqIFJlc29sdmVzIGEgZmFjdG9yeSBkZWZpbml0aW9uIGJ5IG5hbWUgKG9yIGFsaWFzKS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGZhY3RvcnlOYW1lIC0gRmFjdG9yeSBuYW1lLlxuICAgKiBAcmV0dXJucyB7aW1wb3J0KFwiLi9mYWN0b3J5LWRlZmluaXRpb24uanNcIikuZGVmYXVsdH0gLSBUaGUgZGVmaW5pdGlvbi5cbiAgICovXG4gIF9yZXNvbHZlRmFjdG9yeShmYWN0b3J5TmFtZSkge1xuICAgIGNvbnN0IGRlZmluaXRpb24gPSB0aGlzLnJlZ2lzdHJ5Ll9mYWN0b3JpZXMuZ2V0KGZhY3RvcnlOYW1lKVxuXG4gICAgaWYgKCFkZWZpbml0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgVW5kZWZpbmVkRmFjdG9yeUVycm9yKGBObyBmYWN0b3J5IHJlZ2lzdGVyZWQgY2FsbGVkIFwiJHtmYWN0b3J5TmFtZX1cIi4gUmVnaXN0ZXJlZDogJHtbLi4udGhpcy5yZWdpc3RyeS5fZmFjdG9yaWVzLmtleXMoKV0uam9pbihcIiwgXCIpIHx8IFwiKG5vbmUpXCJ9YClcbiAgICB9XG5cbiAgICByZXR1cm4gZGVmaW5pdGlvblxuICB9XG5cbiAgLyoqXG4gICAqIFBpY2tzIHRoZSBuZWFyZXN0IGRlY2xhcmVkIG1vZGVsIGNsYXNzIGluIHRoZSBjaGFpbiAoY2hpbGQgb3ZlcnJpZGVzIHBhcmVudCkuXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi9mYWN0b3J5LWRlZmluaXRpb24uanNcIikuZGVmYXVsdFtdfSBjaGFpbiAtIEluaGVyaXRhbmNlIGNoYWluLlxuICAgKiBAcmV0dXJucyB7KG5ldyAoYXR0cmlidXRlcz86IFJlY29yZDxzdHJpbmcsIFJldHVyblR5cGU8dHlwZW9mIEpTT04ucGFyc2U+PikgPT4gUmV0dXJuVHlwZTx0eXBlb2YgSlNPTi5wYXJzZT4pIHwgbnVsbH0gLSBUaGUgbW9kZWwgY2xhc3MsIG9yIG51bGwuXG4gICAqL1xuICBfcmVzb2x2ZU1vZGVsQ2xhc3MoY2hhaW4pIHtcbiAgICBmb3IgKGxldCBpbmRleCA9IGNoYWluLmxlbmd0aCAtIDE7IGluZGV4ID49IDA7IGluZGV4LS0pIHtcbiAgICAgIGlmIChjaGFpbltpbmRleF0ubW9kZWxDbGFzcykgcmV0dXJuIGNoYWluW2luZGV4XS5tb2RlbENsYXNzXG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIC8qKlxuICAgKiBFeHBhbmRzIG9uZSBmYWN0b3J5J3Mgb3duIGRlY2xhcmF0aW9ucywgaW5saW5pbmcgYmFzZS10cmFpdCBpbmNsdXNpb25zLlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4vZmFjdG9yeS1kZWZpbml0aW9uLmpzXCIpLmRlZmF1bHR9IGZhY3RvcnlEZWZpbml0aW9uIC0gRmFjdG9yeSB3aG9zZSBkZWNsYXJhdGlvbnMgYXJlIGV4cGFuZGVkLlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4vZmFjdG9yeS1kZWZpbml0aW9uLmpzXCIpLmRlZmF1bHR9IHNjb3BlIC0gVGFyZ2V0IGZhY3RvcnkgKGZvciBsb2NhbC10cmFpdCByZXNvbHV0aW9uKS5cbiAgICogQHBhcmFtIHtBcnJheTx7ZGVjbDogaW1wb3J0KFwiLi9kZWNsYXJhdGlvbnMuanNcIikuRGVjbGFyYXRpb259Pn0gb3V0IC0gRmxhdHRlbmVkIG91dHB1dCBzaW5rLlxuICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICovXG4gIF9leHBhbmRGYWN0b3J5RGVjbGFyYXRpb25zKGZhY3RvcnlEZWZpbml0aW9uLCBzY29wZSwgb3V0KSB7XG4gICAgZm9yIChjb25zdCBkZWNsYXJhdGlvbiBvZiBmYWN0b3J5RGVmaW5pdGlvbi5kZWNsYXJhdGlvbnMpIHtcbiAgICAgIGlmIChkZWNsYXJhdGlvbi5raW5kID09PSBcInRyYWl0SW5jbHVkZVwiKSB7XG4gICAgICAgIHRoaXMuX2V4cGFuZFRyYWl0KGRlY2xhcmF0aW9uLm5hbWUsIHNjb3BlLCBvdXQsIFtdKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb3V0LnB1c2goe2RlY2w6IGRlY2xhcmF0aW9ufSlcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRXhwYW5kcyBhIHRyYWl0IChyZXNvbHZpbmcgZmFjdG9yeS1sb2NhbCBiZWZvcmUgZ2xvYmFsKSBhbmQgaXRzIGluY2x1c2lvbnMuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0cmFpdE5hbWUgLSBUcmFpdCB0byBleHBhbmQuXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi9mYWN0b3J5LWRlZmluaXRpb24uanNcIikuZGVmYXVsdH0gc2NvcGUgLSBUYXJnZXQgZmFjdG9yeSAoZm9yIGxvY2FsLXRyYWl0IHJlc29sdXRpb24pLlxuICAgKiBAcGFyYW0ge0FycmF5PHtkZWNsOiBpbXBvcnQoXCIuL2RlY2xhcmF0aW9ucy5qc1wiKS5EZWNsYXJhdGlvbn0+fSBvdXQgLSBGbGF0dGVuZWQgb3V0cHV0IHNpbmsuXG4gICAqIEBwYXJhbSB7c3RyaW5nW119IGFjdGl2ZVBhdGggLSBUcmFpdCBpbmNsdXNpb24gcGF0aCAoZm9yIGN5Y2xlIGRldGVjdGlvbikuXG4gICAqIEByZXR1cm5zIHt2b2lkfVxuICAgKi9cbiAgX2V4cGFuZFRyYWl0KHRyYWl0TmFtZSwgc2NvcGUsIG91dCwgYWN0aXZlUGF0aCkge1xuICAgIGlmIChhY3RpdmVQYXRoLmluY2x1ZGVzKHRyYWl0TmFtZSkpIHtcbiAgICAgIHRocm93IG5ldyBGYWN0b3J5Q3ljbGVFcnJvcihgVHJhaXQgaW5jbHVzaW9uIGN5Y2xlIGRldGVjdGVkOiAke1suLi5hY3RpdmVQYXRoLCB0cmFpdE5hbWVdLmpvaW4oXCIgLT4gXCIpfWApXG4gICAgfVxuXG4gICAgY29uc3QgbG9jYWxUcmFpdCA9IHRoaXMuX3Jlc29sdmVMb2NhbFRyYWl0KHRyYWl0TmFtZSwgc2NvcGUpXG4gICAgY29uc3QgdHJhaXQgPSBsb2NhbFRyYWl0Py50cmFpdCB8fCB0aGlzLnJlZ2lzdHJ5Ll9nbG9iYWxUcmFpdHMuZ2V0KHRyYWl0TmFtZSlcbiAgICBjb25zdCBpbmNsdXNpb25TY29wZSA9IGxvY2FsVHJhaXQ/LnNjb3BlIHx8IHNjb3BlXG5cbiAgICBpZiAoIXRyYWl0KSB7XG4gICAgICB0aHJvdyBuZXcgVW5kZWZpbmVkVHJhaXRFcnJvcihgTm8gdHJhaXQgcmVnaXN0ZXJlZCBjYWxsZWQgXCIke3RyYWl0TmFtZX1cIiBmb3IgZmFjdG9yeSBcIiR7c2NvcGUubmFtZX1cImApXG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBkZWNsYXJhdGlvbiBvZiB0cmFpdC5kZWNsYXJhdGlvbnMpIHtcbiAgICAgIGlmIChkZWNsYXJhdGlvbi5raW5kID09PSBcInRyYWl0SW5jbHVkZVwiKSB7XG4gICAgICAgIHRoaXMuX2V4cGFuZFRyYWl0KGRlY2xhcmF0aW9uLm5hbWUsIGluY2x1c2lvblNjb3BlLCBvdXQsIFsuLi5hY3RpdmVQYXRoLCB0cmFpdE5hbWVdKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb3V0LnB1c2goe2RlY2w6IGRlY2xhcmF0aW9ufSlcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVzb2x2ZXMgYSBsb2NhbCB0cmFpdCBmcm9tIHRoZSBjdXJyZW50IGZhY3RvcnkgdXB3YXJkIHRocm91Z2ggaXRzIHBhcmVudHMuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0cmFpdE5hbWUgLSBUcmFpdCBuYW1lIHRvIHJlc29sdmUuXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi9mYWN0b3J5LWRlZmluaXRpb24uanNcIikuZGVmYXVsdH0gc2NvcGUgLSBEZWNsYXJpbmcvcmVxdWVzdGluZyBmYWN0b3J5IHNjb3BlLlxuICAgKiBAcmV0dXJucyB7e3RyYWl0OiBpbXBvcnQoXCIuL3RyYWl0LWRlZmluaXRpb24uanNcIikuZGVmYXVsdCwgc2NvcGU6IGltcG9ydChcIi4vZmFjdG9yeS1kZWZpbml0aW9uLmpzXCIpLmRlZmF1bHR9IHwgdW5kZWZpbmVkfSAtIE5lYXJlc3QgbG9jYWwgdHJhaXQgYW5kIGl0cyBkZWNsYXJpbmcgc2NvcGUsIGlmIGFueS5cbiAgICovXG4gIF9yZXNvbHZlTG9jYWxUcmFpdCh0cmFpdE5hbWUsIHNjb3BlKSB7XG4gICAgLyoqIEB0eXBlIHtpbXBvcnQoXCIuL2ZhY3RvcnktZGVmaW5pdGlvbi5qc1wiKS5kZWZhdWx0IHwgdW5kZWZpbmVkfSAqL1xuICAgIGxldCBjdXJyZW50ID0gc2NvcGVcblxuICAgIHdoaWxlIChjdXJyZW50KSB7XG4gICAgICBjb25zdCB0cmFpdCA9IGN1cnJlbnQubG9jYWxUcmFpdHMuZ2V0KHRyYWl0TmFtZSlcblxuICAgICAgaWYgKHRyYWl0KSByZXR1cm4ge3RyYWl0LCBzY29wZTogY3VycmVudH1cblxuICAgICAgY3VycmVudCA9IGN1cnJlbnQucGFyZW50TmFtZSA/IHRoaXMuX3Jlc29sdmVGYWN0b3J5KGN1cnJlbnQucGFyZW50TmFtZSkgOiB1bmRlZmluZWRcbiAgICB9XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkXG4gIH1cblxuICAvKipcbiAgICogRm9sZHMgZmxhdHRlbmVkIGRlY2xhcmF0aW9ucyBpbnRvIGEgcmV1c2FibGUgY29tcGlsZWQgcGxhbi5cbiAgICogQHBhcmFtIHtvYmplY3R9IGFyZ3MgLSBPcHRpb25zLlxuICAgKiBAcGFyYW0ge0FycmF5PHtkZWNsOiBpbXBvcnQoXCIuL2RlY2xhcmF0aW9ucy5qc1wiKS5EZWNsYXJhdGlvbn0+fSBhcmdzLmZsYXR0ZW5lZCAtIEZsYXR0ZW5lZCBkZWNsYXJhdGlvbnMuXG4gICAqIEBwYXJhbSB7KG5ldyAoYXR0cmlidXRlcz86IFJlY29yZDxzdHJpbmcsIFJldHVyblR5cGU8dHlwZW9mIEpTT04ucGFyc2U+PikgPT4gUmV0dXJuVHlwZTx0eXBlb2YgSlNPTi5wYXJzZT4pIHwgbnVsbH0gYXJncy5tb2RlbENsYXNzIC0gUmVzb2x2ZWQgbW9kZWwgY2xhc3MuXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi9mYWN0b3J5LWRlZmluaXRpb24uanNcIikuZGVmYXVsdH0gYXJncy50YXJnZXQgLSBUYXJnZXQgZmFjdG9yeSBkZWZpbml0aW9uLlxuICAgKiBAcGFyYW0ge3N0cmluZ1tdfSBhcmdzLmNoYWluTmFtZXMgLSBJbmhlcml0YW5jZSBjaGFpbiBuYW1lcy5cbiAgICogQHJldHVybnMge0NvbXBpbGVkUGxhbn0gLSBUaGUgY29tcGlsZWQgcGxhbi5cbiAgICovXG4gIF9idWlsZFBsYW4oe2ZsYXR0ZW5lZCwgbW9kZWxDbGFzcywgdGFyZ2V0LCBjaGFpbk5hbWVzfSkge1xuICAgIC8qKiBAdHlwZSB7TWFwPHN0cmluZywgU2xvdD59ICovXG4gICAgY29uc3QgcmVzb2x2ZWQgPSBuZXcgTWFwKClcbiAgICAvKiogQHR5cGUge01hcDxzdHJpbmcsIGltcG9ydChcIi4vZGVjbGFyYXRpb25zLmpzXCIpLkNhbGxiYWNrRGVjbGFyYXRpb25bXT59ICovXG4gICAgY29uc3QgY2FsbGJhY2tzID0gbmV3IE1hcCgpXG4gICAgLyoqIEB0eXBlIHtTZXQ8aW1wb3J0KFwiLi9kZWNsYXJhdGlvbnMuanNcIikuQ2FsbGJhY2tEZWNsYXJhdGlvbj59ICovXG4gICAgY29uc3Qgc2VlbkNhbGxiYWNrcyA9IG5ldyBTZXQoKVxuICAgIC8qKiBAdHlwZSB7aW1wb3J0KFwiLi9kZWNsYXJhdGlvbnMuanNcIikuSW5pdGlhbGl6ZVdpdGhEZWNsYXJhdGlvbltcImZuXCJdIHwgbnVsbH0gKi9cbiAgICBsZXQgaW5pdGlhbGl6ZVdpdGggPSBudWxsXG4gICAgLyoqIEB0eXBlIHtpbXBvcnQoXCIuL2RlY2xhcmF0aW9ucy5qc1wiKS5Ub0NyZWF0ZURlY2xhcmF0aW9uW1wiZm5cIl0gfCBudWxsfSAqL1xuICAgIGxldCB0b0NyZWF0ZSA9IG51bGxcbiAgICBsZXQgc2tpcENyZWF0ZSA9IGZhbHNlXG5cbiAgICBmb3IgKGNvbnN0IHtkZWNsfSBvZiBmbGF0dGVuZWQpIHtcbiAgICAgIGlmIChkZWNsLmtpbmQgPT09IFwiYXR0cmlidXRlXCIpIHtcbiAgICAgICAgcmVzb2x2ZWQuc2V0KGRlY2wubmFtZSwge3Nsb3RLaW5kOiBkZWNsLmlzVHJhbnNpZW50ID8gXCJ0cmFuc2llbnRcIiA6IFwiYXR0cmlidXRlXCIsIHZhbHVlOiBkZWNsLnZhbHVlLCBpc092ZXJyaWRlOiBmYWxzZX0pXG4gICAgICB9IGVsc2UgaWYgKGRlY2wua2luZCA9PT0gXCJhc3NvY2lhdGlvblwiKSB7XG4gICAgICAgIHJlc29sdmVkLnNldChkZWNsLm5hbWUsIHtzbG90S2luZDogXCJhc3NvY2lhdGlvblwiLCB2YWx1ZTogZGVjbCwgaXNPdmVycmlkZTogZmFsc2V9KVxuICAgICAgfSBlbHNlIGlmIChkZWNsLmtpbmQgPT09IFwiY2FsbGJhY2tcIikge1xuICAgICAgICBpZiAoIXNlZW5DYWxsYmFja3MuaGFzKGRlY2wpKSB7XG4gICAgICAgICAgc2VlbkNhbGxiYWNrcy5hZGQoZGVjbClcblxuICAgICAgICAgIGNvbnN0IGV2ZW50Q2FsbGJhY2tzID0gY2FsbGJhY2tzLmdldChkZWNsLmV2ZW50KSB8fCBbXVxuXG4gICAgICAgICAgZXZlbnRDYWxsYmFja3MucHVzaChkZWNsKVxuICAgICAgICAgIGNhbGxiYWNrcy5zZXQoZGVjbC5ldmVudCwgZXZlbnRDYWxsYmFja3MpXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoZGVjbC5raW5kID09PSBcImluaXRpYWxpemVXaXRoXCIpIHtcbiAgICAgICAgaW5pdGlhbGl6ZVdpdGggPSBkZWNsLmZuXG4gICAgICB9IGVsc2UgaWYgKGRlY2wua2luZCA9PT0gXCJ0b0NyZWF0ZVwiKSB7XG4gICAgICAgIHRvQ3JlYXRlID0gZGVjbC5mblxuICAgICAgfSBlbHNlIGlmIChkZWNsLmtpbmQgPT09IFwic2tpcENyZWF0ZVwiKSB7XG4gICAgICAgIHNraXBDcmVhdGUgPSB0cnVlXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGZhY3RvcnlOYW1lOiB0YXJnZXQubmFtZSxcbiAgICAgIGZhY3RvcnlEZWZpbml0aW9uOiB0YXJnZXQsXG4gICAgICBtb2RlbENsYXNzLFxuICAgICAgY2hhaW5OYW1lcyxcbiAgICAgIHJlc29sdmVkLFxuICAgICAgY2FsbGJhY2tzLFxuICAgICAgaW5pdGlhbGl6ZVdpdGgsXG4gICAgICB0b0NyZWF0ZSxcbiAgICAgIHNraXBDcmVhdGVcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQXBwbGllcyBiZWxvbmdzLXRvIG92ZXJyaWRlIHByZWNlZGVuY2UgdXNpbmcgdGhlIGRlY2xhcmVkIG1vZGVsIHJlbGF0aW9uc2hpcCdzXG4gICAqIHJlYWwgZm9yZWlnbi1rZXkgbWV0YWRhdGEuIEFuIGV4cGxpY2l0IGFzc29jaWF0aW9uIG9iamVjdCB3aW5zIG92ZXIgaXRzIGtleTtcbiAgICogb3RoZXJ3aXNlIGFuIGV4cGxpY2l0IGtleSBzdXBwcmVzc2VzIHRoZSBmYWN0b3J5LWRlY2xhcmVkIGFzc29jaWF0aW9uLlxuICAgKiBAcGFyYW0ge01hcDxzdHJpbmcsIFNsb3Q+fSByZXNvbHZlZCAtIEZvbGRlZCBzbG90cy5cbiAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBSZXR1cm5UeXBlPHR5cGVvZiBKU09OLnBhcnNlPj59IG92ZXJyaWRlcyAtIENhbGwtc2l0ZSBvdmVycmlkZXMuXG4gICAqIEBwYXJhbSB7KG5ldyAoYXR0cmlidXRlcz86IFJlY29yZDxzdHJpbmcsIFJldHVyblR5cGU8dHlwZW9mIEpTT04ucGFyc2U+PikgPT4gUmV0dXJuVHlwZTx0eXBlb2YgSlNPTi5wYXJzZT4pIHwgbnVsbH0gbW9kZWxDbGFzcyAtIFJlc29sdmVkIG1vZGVsIGNsYXNzLlxuICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICovXG4gIF9hcmJpdHJhdGVBc3NvY2lhdGlvbk92ZXJyaWRlcyhyZXNvbHZlZCwgb3ZlcnJpZGVzLCBtb2RlbENsYXNzKSB7XG4gICAgaWYgKE9iamVjdC5rZXlzKG92ZXJyaWRlcykubGVuZ3RoID09PSAwKSByZXR1cm5cbiAgICBpZiAodHlwZW9mIG1vZGVsQ2xhc3MgIT09IFwiZnVuY3Rpb25cIiB8fCAhKG1vZGVsQ2xhc3MucHJvdG90eXBlIGluc3RhbmNlb2YgRGF0YWJhc2VSZWNvcmQpKSByZXR1cm5cblxuICAgIGNvbnN0IGJhY2tlbmRNb2RlbENsYXNzID0gLyoqIEB0eXBlIHt0eXBlb2YgRGF0YWJhc2VSZWNvcmR9ICovIChtb2RlbENsYXNzKVxuICAgIGNvbnN0IGNvbHVtblRvQXR0cmlidXRlID0gYmFja2VuZE1vZGVsQ2xhc3MuZ2V0Q29sdW1uTmFtZVRvQXR0cmlidXRlTmFtZU1hcCgpXG5cbiAgICBmb3IgKGNvbnN0IFtuYW1lLCBzbG90XSBvZiBbLi4ucmVzb2x2ZWRdKSB7XG4gICAgICBpZiAoc2xvdC5zbG90S2luZCAhPT0gXCJhc3NvY2lhdGlvblwiKSBjb250aW51ZVxuXG4gICAgICBjb25zdCByZWxhdGlvbnNoaXAgPSBiYWNrZW5kTW9kZWxDbGFzcy5nZXRSZWxhdGlvbnNoaXBCeU5hbWUobmFtZSlcblxuICAgICAgaWYgKHJlbGF0aW9uc2hpcC5nZXRUeXBlKCkgIT09IFwiYmVsb25nc1RvXCIpIGNvbnRpbnVlXG5cbiAgICAgIGNvbnN0IGZvcmVpZ25LZXlDb2x1bW4gPSByZWxhdGlvbnNoaXAuZ2V0Rm9yZWlnbktleSgpXG4gICAgICBjb25zdCBmb3JlaWduS2V5QXR0cmlidXRlID0gY29sdW1uVG9BdHRyaWJ1dGVbZm9yZWlnbktleUNvbHVtbl0gfHwgZm9yZWlnbktleUNvbHVtblxuXG4gICAgICBpZiAoIU9iamVjdC5oYXNPd24ob3ZlcnJpZGVzLCBmb3JlaWduS2V5QXR0cmlidXRlKSkgY29udGludWVcblxuICAgICAgaWYgKHNsb3QuaXNPdmVycmlkZSkge1xuICAgICAgICByZXNvbHZlZC5kZWxldGUoZm9yZWlnbktleUF0dHJpYnV0ZSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc29sdmVkLmRlbGV0ZShuYW1lKVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -1,10 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Creates a fresh, isolated factory registry independent of the default singleton
|
|
3
|
-
* (for libraries or spec groups that must not share global factory state).
|
|
4
|
-
* @returns {FactoryRegistry} - A new registry.
|
|
5
|
-
*/
|
|
6
|
-
export function createFactoryRegistry(): FactoryRegistry;
|
|
7
|
-
export default Factory;
|
|
8
1
|
import FactoryRegistry from "./factory-registry.js";
|
|
9
2
|
/**
|
|
10
3
|
* The default, convenient factory registry singleton. Import it as `Factory` and
|
|
@@ -15,4 +8,11 @@ import FactoryRegistry from "./factory-registry.js";
|
|
|
15
8
|
* @type {FactoryRegistry}
|
|
16
9
|
*/
|
|
17
10
|
declare const Factory: FactoryRegistry;
|
|
11
|
+
/**
|
|
12
|
+
* Creates a fresh, isolated factory registry independent of the default singleton
|
|
13
|
+
* (for libraries or spec groups that must not share global factory state).
|
|
14
|
+
* @returns {FactoryRegistry} - A new registry.
|
|
15
|
+
*/
|
|
16
|
+
export declare function createFactoryRegistry(): FactoryRegistry;
|
|
17
|
+
export default Factory;
|
|
18
18
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/testing/factory/index.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/testing/factory/index.js"],"names":[],"mappings":"AAEA,OAAO,eAAe,MAAM,uBAAuB,CAAA;AAEnD;;;;;;;GAOG;AACH,QAAA,MAAM,OAAO,EAFH,eAE2B,CAAA;AAErC;;;;GAIG;AACH,wBAAgB,qBAAqB,IAFxB,eAAe,CAI3B;eAEc,OAAO"}
|
|
@@ -6,13 +6,13 @@
|
|
|
6
6
|
* are not reversible and cross-database writes are not globally atomic.
|
|
7
7
|
*/
|
|
8
8
|
export default class FactoryLinter {
|
|
9
|
+
/** @type {import("./factory-registry.js").default} - Registry to lint. */
|
|
10
|
+
registry: import("./factory-registry.js").default;
|
|
9
11
|
/**
|
|
10
12
|
* Builds a linter.
|
|
11
13
|
* @param {import("./factory-registry.js").default} registry - Registry to lint.
|
|
12
14
|
*/
|
|
13
15
|
constructor(registry: import("./factory-registry.js").default);
|
|
14
|
-
/** @type {import("./factory-registry.js").default} - Registry to lint. */
|
|
15
|
-
registry: import("./factory-registry.js").default;
|
|
16
16
|
/**
|
|
17
17
|
* Lints selected factories and reports every failure together.
|
|
18
18
|
* @param {object} [options] - Options.
|
|
@@ -22,9 +22,9 @@ export default class FactoryLinter {
|
|
|
22
22
|
* @returns {Promise<void>} - Resolves when every case passed; rejects with an aggregate otherwise.
|
|
23
23
|
*/
|
|
24
24
|
lint({ factories, traits, strategy }?: {
|
|
25
|
-
factories?: string[]
|
|
26
|
-
traits?: boolean
|
|
27
|
-
strategy?: "
|
|
25
|
+
factories?: string[];
|
|
26
|
+
traits?: boolean;
|
|
27
|
+
strategy?: "attributesFor" | "build" | "create";
|
|
28
28
|
}): Promise<void>;
|
|
29
29
|
/**
|
|
30
30
|
* Resolves the unique set of factory definitions to lint.
|
|
@@ -37,12 +37,12 @@ export default class FactoryLinter {
|
|
|
37
37
|
* @param {import("./factory-definition.js").default} definition - Factory definition.
|
|
38
38
|
* @param {string[]} traits - Traits to apply for this case.
|
|
39
39
|
* @param {"attributesFor" | "build" | "create"} strategy - Strategy to run.
|
|
40
|
-
* @param {Array<{label: string, error:
|
|
40
|
+
* @param {Array<{label: string, error: ReturnType<typeof JSON.parse>}>} failures - Failure sink.
|
|
41
41
|
* @returns {Promise<void>} - Resolves when the case has been evaluated.
|
|
42
42
|
*/
|
|
43
43
|
_lintCase(definition: import("./factory-definition.js").default, traits: string[], strategy: "attributesFor" | "build" | "create", failures: Array<{
|
|
44
44
|
label: string;
|
|
45
|
-
error:
|
|
45
|
+
error: ReturnType<typeof JSON.parse>;
|
|
46
46
|
}>): Promise<void>;
|
|
47
47
|
/**
|
|
48
48
|
* Runs a create-strategy case inside a transaction and forces a rollback.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"linter.d.ts","sourceRoot":"","sources":["../../../../src/testing/factory/linter.js"],"names":[],"mappings":"AAYA;;;;;;GAMG;AACH;
|
|
1
|
+
{"version":3,"file":"linter.d.ts","sourceRoot":"","sources":["../../../../src/testing/factory/linter.js"],"names":[],"mappings":"AAYA;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,OAAO,aAAa;IAM9B,0EAA0E;IACrE,QAAQ,EADF,OAAO,uBAAuB,EAAE,OAAO;IALpD;;;OAGG;IACH,YAAY,QAAQ,EAFT,OAAO,uBAAuB,EAAE,OAEvB,EAGnB;IAED;;;;;;;OAOG;IACG,IAAI,CAAC,EAAC,SAAS,EAAE,MAAc,EAAE,QAAmB,EAAC,AANxD,CAIA,EAHA;QAA2B,SAAS,AAApC,CACA,EADQ,MAAM,EAAE,CAChB;QAA0B,MAAM,AAAhC,CACA,EADQ,OAAO,CACf;QAAuD,QAAQ,AAA/D,CACA,EADQ,eAAe,GAAG,OAAO,GAAG,QAAQ,CAC5C;KAE6D,GAFnD,OAAO,CAAC,IAAI,CAAC,CAsBzB;IAED;;;;OAIG;IACH,kBAAkB,CAAC,SAAS,EAHjB,MAAM,EAAE,GAAG,SAGM,GAFf,OAAO,yBAAyB,EAAE,OAAO,EAAE,CAQvD;IAED;;;;;;;OAOG;IACG,SAAS,CAAC,UAAU,EANf,OAAO,yBAAyB,EAAE,OAMnB,EAAE,MAAM,EALvB,MAAM,EAKiB,EAAE,QAAQ,EAJjC,eAAe,GAAG,OAAO,GAAG,QAIK,EAAE,QAAQ,EAH3C,KAAK,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAA;KAAC,CAGhB,GAFzC,OAAO,CAAC,IAAI,CAAC,CAgBzB;IAED;;;;;OAKG;IACG,eAAe,CAAC,UAAU,EAJrB,OAAO,yBAAyB,EAAE,OAIb,EAAE,MAAM,EAH7B,MAAM,EAGuB,GAF3B,OAAO,CAAC,IAAI,CAAC,CAiBzB;CACF"}
|
|
@@ -34,7 +34,7 @@ export default class FactoryLinter {
|
|
|
34
34
|
*/
|
|
35
35
|
async lint({ factories, traits = false, strategy = "create" } = {}) {
|
|
36
36
|
const definitions = this._selectDefinitions(factories);
|
|
37
|
-
/** @type {Array<{label: string, error:
|
|
37
|
+
/** @type {Array<{label: string, error: ReturnType<typeof JSON.parse>}>} */
|
|
38
38
|
const failures = [];
|
|
39
39
|
for (const definition of definitions) {
|
|
40
40
|
await this._lintCase(definition, [], strategy, failures);
|
|
@@ -65,7 +65,7 @@ export default class FactoryLinter {
|
|
|
65
65
|
* @param {import("./factory-definition.js").default} definition - Factory definition.
|
|
66
66
|
* @param {string[]} traits - Traits to apply for this case.
|
|
67
67
|
* @param {"attributesFor" | "build" | "create"} strategy - Strategy to run.
|
|
68
|
-
* @param {Array<{label: string, error:
|
|
68
|
+
* @param {Array<{label: string, error: ReturnType<typeof JSON.parse>}>} failures - Failure sink.
|
|
69
69
|
* @returns {Promise<void>} - Resolves when the case has been evaluated.
|
|
70
70
|
*/
|
|
71
71
|
async _lintCase(definition, traits, strategy, failures) {
|
|
@@ -103,4 +103,4 @@ export default class FactoryLinter {
|
|
|
103
103
|
});
|
|
104
104
|
}
|
|
105
105
|
}
|
|
106
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGludGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Rlc3RpbmcvZmFjdG9yeS9saW50ZXIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxhQUFhLENBQUE7QUFFeEMseUVBQXlFO0FBQ3pFLE1BQU0sa0JBQW1CLFNBQVEsS0FBSztDQUFHO0FBRXpDOztHQUVHO0FBQ0gsTUFBTSxnQkFBaUIsU0FBUSxZQUFZO0NBQUc7QUFFOUM7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFDLE9BQU8sT0FBTyxhQUFhO0lBQ2hDOzs7T0FHRztJQUNILFlBQVksUUFBUTtRQUNsQiwwRUFBMEU7UUFDMUUsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUE7SUFDMUIsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUMsU0FBUyxFQUFFLE1BQU0sR0FBRyxLQUFLLEVBQUUsUUFBUSxHQUFHLFFBQVEsRUFBQyxHQUFHLEVBQUU7UUFDOUQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQ3RELCtDQUErQztRQUMvQyxNQUFNLFFBQVEsR0FBRyxFQUFFLENBQUE7UUFFbkIsS0FBSyxNQUFNLFVBQVUsSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUNyQyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUE7WUFFeEQsSUFBSSxNQUFNLEVBQUUsQ0FBQztnQkFDWCxLQUFLLE1BQU0sU0FBUyxJQUFJLFVBQVUsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztvQkFDdEQsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMs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QUFDLENBQUE7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuaW1wb3J0IHtGYWN0b3J5RXJyb3J9IGZyb20gXCIuL2Vycm9ycy5qc1wiXG5cbi8qKiBJbnRlcm5hbCBzZW50aW5lbCB0aHJvd24gdG8gZm9yY2UgYSBwZXItY2FzZSB0cmFuc2FjdGlvbiByb2xsYmFjay4gKi9cbmNsYXNzIExpbnRSb2xsYmFja1NpZ25hbCBleHRlbmRzIEVycm9yIHt9XG5cbi8qKlxuICogQWdncmVnYXRlZCBsaW50IGZhaWx1cmUgcmFpc2VkIHdoZW4gb25lIG9yIG1vcmUgbGludGVkIGZhY3Rvcmllcy90cmFpdHMgZXJyb3IuXG4gKi9cbmNsYXNzIEZhY3RvcnlMaW50RXJyb3IgZXh0ZW5kcyBGYWN0b3J5RXJyb3Ige31cblxuLyoqXG4gKiBFeGVjdXRlcyByZWdpc3RlcmVkIGZhY3RvcmllcyAoYW5kIG9wdGlvbmFsbHkgdGhlaXIgdHJhaXRzKSB0byBwcm92ZSB0aGV5IGJ1aWxkXG4gKiBhbmQgcGVyc2lzdCwgYWdncmVnYXRpbmcgZXZlcnkgZmFpbHVyZSBieSBjYXNlLiBGb3IgdGhlIGNyZWF0ZSBzdHJhdGVneSBlYWNoXG4gKiBjYXNlIHJ1bnMgaW5zaWRlIHRoZSBtb2RlbCdzIGFtYmllbnQgdHJhbnNhY3Rpb24gYW5kIGlzIHJvbGxlZCBiYWNrLCBzbyBubyByb3dzXG4gKiByZW1haW4gaW4gdGhlIHN1cHBvcnRlZCBzaW5nbGUtY29ubmVjdGlvbiBjYXNlLiBFeHRlcm5hbCBjYWxsYmFjayBzaWRlIGVmZmVjdHNcbiAqIGFyZSBub3QgcmV2ZXJzaWJsZSBhbmQgY3Jvc3MtZGF0YWJhc2Ugd3JpdGVzIGFyZSBub3QgZ2xvYmFsbHkgYXRvbWljLlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBGYWN0b3J5TGludGVyIHtcbiAgLyoqXG4gICAqIEJ1aWxkcyBhIGxpbnRlci5cbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuL2ZhY3RvcnktcmVnaXN0cnkuanNcIikuZGVmYXVsdH0gcmVnaXN0cnkgLSBSZWdpc3RyeSB0byBsaW50LlxuICAgKi9cbiAgY29uc3RydWN0b3IocmVnaXN0cnkpIHtcbiAgICAvKiogQHR5cGUge2ltcG9ydChcIi4vZmFjdG9yeS1yZWdpc3RyeS5qc1wiKS5kZWZhdWx0fSAtIFJlZ2lzdHJ5IHRvIGxpbnQuICovXG4gICAgdGhpcy5yZWdpc3RyeSA9IHJlZ2lzdHJ5XG4gIH1cblxuICAvKipcbiAgICogTGludHMgc2VsZWN0ZWQgZmFjdG9yaWVzIGFuZCByZXBvcnRzIGV2ZXJ5IGZhaWx1cmUgdG9nZXRoZXIuXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBbb3B0aW9uc10gLSBPcHRpb25zLlxuICAgKiBAcGFyYW0ge3N0cmluZ1tdfSBbb3B0aW9ucy5mYWN0b3JpZXNdIC0gRmFjdG9yeSBuYW1lcyB0byBsaW50LiBEZWZhdWx0cyB0byBhbGwuXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMudHJhaXRzXSAtIFdoZXRoZXIgdG8gYWxzbyBsaW50IGVhY2ggZmFjdG9yeSdzIGxvY2FsIHRyYWl0cy5cbiAgICogQHBhcmFtIHtcImF0dHJpYnV0ZXNGb3JcIiB8IFwiYnVpbGRcIiB8IFwiY3JlYXRlXCJ9IFtvcHRpb25zLnN0cmF0ZWd5XSAtIFN0cmF0ZWd5IHRvIGxpbnQgd2l0aC4gRGVmYXVsdHMgdG8gY3JlYXRlLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gLSBSZXNvbHZlcyB3aGVuIGV2ZXJ5IGNhc2UgcGFzc2VkOyByZWplY3RzIHdpdGggYW4gYWdncmVnYXRlIG90aGVyd2lzZS5cbiAgICovXG4gIGFzeW5jIGxpbnQoe2ZhY3RvcmllcywgdHJhaXRzID0gZmFsc2UsIHN0cmF0ZWd5ID0gXCJjcmVhdGVcIn0gPSB7fSkge1xuICAgIGNvbnN0IGRlZmluaXRpb25zID0gdGhpcy5fc2VsZWN0RGVmaW5pdGlvbnMoZmFjdG9yaWVzKVxuICAgIC8qKiBAdHlwZSB7QXJyYXk8e2xhYmVsOiBzdHJpbmcsIGVycm9yOiA/fT59ICovXG4gICAgY29uc3QgZmFpbHVyZXMgPSBbXVxuXG4gICAgZm9yIChjb25zdCBkZWZpbml0aW9uIG9mIGRlZmluaXRpb25zKSB7XG4gICAgICBhd2FpdCB0aGlzLl9saW50Q2FzZShkZWZpbml0aW9uLCBbXSwgc3RyYXRlZ3ksIGZhaWx1cmVzKVxuXG4gICAgICBpZiAodHJhaXRzKSB7XG4gICAgICAgIGZvciAoY29uc3QgdHJhaXROYW1lIG9mIGRlZmluaXRpb24ubG9jYWxUcmFpdHMua2V5cygpKSB7XG4gICAgICAgICAgYXdhaXQgdGhpcy5fbGludENhc2UoZGVmaW5pdGlvbiwgW3RyYWl0TmFtZV0sIHN0cmF0ZWd5LCBmYWlsdXJlcylcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChmYWlsdXJlcy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBkZXRhaWxzID0gZmFpbHVyZXMubWFwKChmYWlsdXJlKSA9PiBgICAke2ZhaWx1cmUubGFiZWx9OiAke2ZhaWx1cmUuZXJyb3IgJiYgZmFpbHVyZS5lcnJvci5tZXNzYWdlfWApLmpvaW4oXCJcXG5cIilcblxuICAgICAgdGhyb3cgbmV3IEZhY3RvcnlMaW50RXJyb3IoYEZhY3RvcnkgbGludCBmb3VuZCAke2ZhaWx1cmVzLmxlbmd0aH0gZXJyb3Iocyk6XFxuJHtkZXRhaWxzfWApXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlc29sdmVzIHRoZSB1bmlxdWUgc2V0IG9mIGZhY3RvcnkgZGVmaW5pdGlvbnMgdG8gbGludC5cbiAgICogQHBhcmFtIHtzdHJpbmdbXSB8IHVuZGVmaW5lZH0gZmFjdG9yaWVzIC0gRXhwbGljaXQgbmFtZXMsIG9yIHVuZGVmaW5lZCBmb3IgYWxsLlxuICAgKiBAcmV0dXJucyB7aW1wb3J0KFwiLi9mYWN0b3J5LWRlZmluaXRpb24uanNcIikuZGVmYXVsdFtdfSAtIFVuaXF1ZSBkZWZpbml0aW9ucy5cbiAgICovXG4gIF9zZWxlY3REZWZpbml0aW9ucyhmYWN0b3JpZXMpIHtcbiAgICBpZiAoZmFjdG9yaWVzKSB7XG4gICAgICByZXR1cm4gZmFjdG9yaWVzLm1hcCgobmFtZSkgPT4gdGhpcy5yZWdpc3RyeS5fcnVubmVyLl9yZXNvbHZlRmFjdG9yeShuYW1lKSlcbiAgICB9XG5cbiAgICByZXR1cm4gWy4uLm5ldyBTZXQodGhpcy5yZWdpc3RyeS5fZmFjdG9yaWVzLnZhbHVlcygpKV1cbiAgfVxuXG4gIC8qKlxuICAgKiBMaW50cyBvbmUgZmFjdG9yeS90cmFpdCBjYXNlLCByb2xsaW5nIGJhY2sgY3JlYXRlLXN0cmF0ZWd5IHBlcnNpc3RlbmNlLlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4vZmFjdG9yeS1kZWZpbml0aW9uLmpzXCIpLmRlZmF1bHR9IGRlZmluaXRpb24gLSBGYWN0b3J5IGRlZmluaXRpb24uXG4gICAqIEBwYXJhbSB7c3RyaW5nW119IHRyYWl0cyAtIFRyYWl0cyB0byBhcHBseSBmb3IgdGhpcyBjYXNlLlxuICAgKiBAcGFyYW0ge1wiYXR0cmlidXRlc0ZvclwiIHwgXCJidWlsZFwiIHwgXCJjcmVhdGVcIn0gc3RyYXRlZ3kgLSBTdHJhdGVneSB0byBydW4uXG4gICAqIEBwYXJhbSB7QXJyYXk8e2xhYmVsOiBzdHJpbmcsIGVycm9yOiA/fT59IGZhaWx1cmVzIC0gRmFpbHVyZSBzaW5rLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gLSBSZXNvbHZlcyB3aGVuIHRoZSBjYXNlIGhhcyBiZWVuIGV2YWx1YXRlZC5cbiAgICovXG4gIGFzeW5jIF9saW50Q2FzZShkZWZpbml0aW9uLCB0cmFpdHMsIHN0cmF0ZWd5LCBmYWlsdXJlcykge1xuICAgIGNvbnN0IGxhYmVsID0gdHJhaXRzLmxlbmd0aCA+IDAgPyBgJHtkZWZpbml0aW9uLm5hbWV9ICsgJHt0cmFpdHMuam9pbihcIiwgXCIpfWAgOiBkZWZpbml0aW9uLm5hbWVcblxuICAgIHRyeSB7XG4gICAgICBpZiAoc3RyYXRlZ3kgPT09IFwiY3JlYXRlXCIpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5fbGludENyZWF0ZUNhc2UoZGVmaW5pdGlvbiwgdHJhaXRzKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYXdhaXQgdGhpcy5yZWdpc3RyeVtzdHJhdGVneV0oZGVmaW5pdGlvbi5uYW1lLCAuLi50cmFpdHMpXG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIExpbnRSb2xsYmFja1NpZ25hbCkgcmV0dXJuXG5cbiAgICAgIGZhaWx1cmVzLnB1c2goe2xhYmVsLCBlcnJvcn0pXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgYSBjcmVhdGUtc3RyYXRlZ3kgY2FzZSBpbnNpZGUgYSB0cmFuc2FjdGlvbiBhbmQgZm9yY2VzIGEgcm9sbGJhY2suXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi9mYWN0b3J5LWRlZmluaXRpb24uanNcIikuZGVmYXVsdH0gZGVmaW5pdGlvbiAtIEZhY3RvcnkgZGVmaW5pdGlvbi5cbiAgICogQHBhcmFtIHtzdHJpbmdbXX0gdHJhaXRzIC0gVHJhaXRzIHRvIGFwcGx5LlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gLSBSZXNvbHZlcyAob3IgcmVqZWN0cykgb25jZSB0aGUgcm9sbGJhY2sgY29tcGxldGVzLlxuICAgKi9cbiAgYXN5bmMgX2xpbnRDcmVhdGVDYXNlKGRlZmluaXRpb24sIHRyYWl0cykge1xuICAgIGNvbnN0IGNoYWluID0gdGhpcy5yZWdpc3RyeS5fcnVubmVyLl9yZXNvbHZlQ2hhaW4oZGVmaW5pdGlvbi5uYW1lKVxuICAgIGNvbnN0IG1vZGVsQ2xhc3MgPSB0aGlzLnJlZ2lzdHJ5Ll9ydW5uZXIuX3Jlc29sdmVNb2RlbENsYXNzKGNoYWluKVxuXG4gICAgaWYgKCFtb2RlbENsYXNzKSB7XG4gICAgICBhd2FpdCB0aGlzLnJlZ2lzdHJ5LmNyZWF0ZShkZWZpbml0aW9uLm5hbWUsIC4uLnRyYWl0cylcblxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgYXdhaXQgLyoqIEB0eXBlIHt0eXBlb2YgaW1wb3J0KFwiLi4vLi4vZGF0YWJhc2UvcmVjb3JkL2luZGV4LmpzXCIpLmRlZmF1bHR9ICovIChtb2RlbENsYXNzKS50cmFuc2FjdGlvbihhc3luYyAoKSA9PiB7XG4gICAgICBhd2FpdCB0aGlzLnJlZ2lzdHJ5LmNyZWF0ZShkZWZpbml0aW9uLm5hbWUsIC4uLnRyYWl0cylcblxuICAgICAgdGhyb3cgbmV3IExpbnRSb2xsYmFja1NpZ25hbCgpXG4gICAgfSlcbiAgfVxufVxuIl19
|
|
106
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGludGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Rlc3RpbmcvZmFjdG9yeS9saW50ZXIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxhQUFhLENBQUE7QUFFeEMseUVBQXlFO0FBQ3pFLE1BQU0sa0JBQW1CLFNBQVEsS0FBSztDQUFHO0FBRXpDOztHQUVHO0FBQ0gsTUFBTSxnQkFBaUIsU0FBUSxZQUFZO0NBQUc7QUFFOUM7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFDLE9BQU8sT0FBTyxhQUFhO0lBQ2hDOzs7T0FHRztJQUNILFlBQVksUUFBUTtRQUNsQiwwRUFBMEU7UUFDMUUsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUE7SUFDMUIsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUMsU0FBUyxFQUFFLE1BQU0sR0FBRyxLQUFLLEVBQUUsUUFBUSxHQUFHLFFBQVEsRUFBQyxHQUFHLEVBQUU7UUFDOUQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQ3RELDJFQUEyRTtRQUMzRSxNQUFNLFFBQVEsR0FBRyxFQUFFLENBQUE7UUFFbkIsS0FBSyxNQUFNLFVBQVUsSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUNyQyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUE7WUFFeEQsSUFBSSxNQUFNLEVBQUUsQ0FBQztnQkFDWCxLQUFLLE1BQU0sU0FBUyxJQUFJLFVBQVUsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztvQkFDdEQsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMs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QUFDLENBQUE7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuaW1wb3J0IHtGYWN0b3J5RXJyb3J9IGZyb20gXCIuL2Vycm9ycy5qc1wiXG5cbi8qKiBJbnRlcm5hbCBzZW50aW5lbCB0aHJvd24gdG8gZm9yY2UgYSBwZXItY2FzZSB0cmFuc2FjdGlvbiByb2xsYmFjay4gKi9cbmNsYXNzIExpbnRSb2xsYmFja1NpZ25hbCBleHRlbmRzIEVycm9yIHt9XG5cbi8qKlxuICogQWdncmVnYXRlZCBsaW50IGZhaWx1cmUgcmFpc2VkIHdoZW4gb25lIG9yIG1vcmUgbGludGVkIGZhY3Rvcmllcy90cmFpdHMgZXJyb3IuXG4gKi9cbmNsYXNzIEZhY3RvcnlMaW50RXJyb3IgZXh0ZW5kcyBGYWN0b3J5RXJyb3Ige31cblxuLyoqXG4gKiBFeGVjdXRlcyByZWdpc3RlcmVkIGZhY3RvcmllcyAoYW5kIG9wdGlvbmFsbHkgdGhlaXIgdHJhaXRzKSB0byBwcm92ZSB0aGV5IGJ1aWxkXG4gKiBhbmQgcGVyc2lzdCwgYWdncmVnYXRpbmcgZXZlcnkgZmFpbHVyZSBieSBjYXNlLiBGb3IgdGhlIGNyZWF0ZSBzdHJhdGVneSBlYWNoXG4gKiBjYXNlIHJ1bnMgaW5zaWRlIHRoZSBtb2RlbCdzIGFtYmllbnQgdHJhbnNhY3Rpb24gYW5kIGlzIHJvbGxlZCBiYWNrLCBzbyBubyByb3dzXG4gKiByZW1haW4gaW4gdGhlIHN1cHBvcnRlZCBzaW5nbGUtY29ubmVjdGlvbiBjYXNlLiBFeHRlcm5hbCBjYWxsYmFjayBzaWRlIGVmZmVjdHNcbiAqIGFyZSBub3QgcmV2ZXJzaWJsZSBhbmQgY3Jvc3MtZGF0YWJhc2Ugd3JpdGVzIGFyZSBub3QgZ2xvYmFsbHkgYXRvbWljLlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBGYWN0b3J5TGludGVyIHtcbiAgLyoqXG4gICAqIEJ1aWxkcyBhIGxpbnRlci5cbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuL2ZhY3RvcnktcmVnaXN0cnkuanNcIikuZGVmYXVsdH0gcmVnaXN0cnkgLSBSZWdpc3RyeSB0byBsaW50LlxuICAgKi9cbiAgY29uc3RydWN0b3IocmVnaXN0cnkpIHtcbiAgICAvKiogQHR5cGUge2ltcG9ydChcIi4vZmFjdG9yeS1yZWdpc3RyeS5qc1wiKS5kZWZhdWx0fSAtIFJlZ2lzdHJ5IHRvIGxpbnQuICovXG4gICAgdGhpcy5yZWdpc3RyeSA9IHJlZ2lzdHJ5XG4gIH1cblxuICAvKipcbiAgICogTGludHMgc2VsZWN0ZWQgZmFjdG9yaWVzIGFuZCByZXBvcnRzIGV2ZXJ5IGZhaWx1cmUgdG9nZXRoZXIuXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBbb3B0aW9uc10gLSBPcHRpb25zLlxuICAgKiBAcGFyYW0ge3N0cmluZ1tdfSBbb3B0aW9ucy5mYWN0b3JpZXNdIC0gRmFjdG9yeSBuYW1lcyB0byBsaW50LiBEZWZhdWx0cyB0byBhbGwuXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMudHJhaXRzXSAtIFdoZXRoZXIgdG8gYWxzbyBsaW50IGVhY2ggZmFjdG9yeSdzIGxvY2FsIHRyYWl0cy5cbiAgICogQHBhcmFtIHtcImF0dHJpYnV0ZXNGb3JcIiB8IFwiYnVpbGRcIiB8IFwiY3JlYXRlXCJ9IFtvcHRpb25zLnN0cmF0ZWd5XSAtIFN0cmF0ZWd5IHRvIGxpbnQgd2l0aC4gRGVmYXVsdHMgdG8gY3JlYXRlLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gLSBSZXNvbHZlcyB3aGVuIGV2ZXJ5IGNhc2UgcGFzc2VkOyByZWplY3RzIHdpdGggYW4gYWdncmVnYXRlIG90aGVyd2lzZS5cbiAgICovXG4gIGFzeW5jIGxpbnQoe2ZhY3RvcmllcywgdHJhaXRzID0gZmFsc2UsIHN0cmF0ZWd5ID0gXCJjcmVhdGVcIn0gPSB7fSkge1xuICAgIGNvbnN0IGRlZmluaXRpb25zID0gdGhpcy5fc2VsZWN0RGVmaW5pdGlvbnMoZmFjdG9yaWVzKVxuICAgIC8qKiBAdHlwZSB7QXJyYXk8e2xhYmVsOiBzdHJpbmcsIGVycm9yOiBSZXR1cm5UeXBlPHR5cGVvZiBKU09OLnBhcnNlPn0+fSAqL1xuICAgIGNvbnN0IGZhaWx1cmVzID0gW11cblxuICAgIGZvciAoY29uc3QgZGVmaW5pdGlvbiBvZiBkZWZpbml0aW9ucykge1xuICAgICAgYXdhaXQgdGhpcy5fbGludENhc2UoZGVmaW5pdGlvbiwgW10sIHN0cmF0ZWd5LCBmYWlsdXJlcylcblxuICAgICAgaWYgKHRyYWl0cykge1xuICAgICAgICBmb3IgKGNvbnN0IHRyYWl0TmFtZSBvZiBkZWZpbml0aW9uLmxvY2FsVHJhaXRzLmtleXMoKSkge1xuICAgICAgICAgIGF3YWl0IHRoaXMuX2xpbnRDYXNlKGRlZmluaXRpb24sIFt0cmFpdE5hbWVdLCBzdHJhdGVneSwgZmFpbHVyZXMpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZmFpbHVyZXMubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgZGV0YWlscyA9IGZhaWx1cmVzLm1hcCgoZmFpbHVyZSkgPT4gYCAgJHtmYWlsdXJlLmxhYmVsfTogJHtmYWlsdXJlLmVycm9yICYmIGZhaWx1cmUuZXJyb3IubWVzc2FnZX1gKS5qb2luKFwiXFxuXCIpXG5cbiAgICAgIHRocm93IG5ldyBGYWN0b3J5TGludEVycm9yKGBGYWN0b3J5IGxpbnQgZm91bmQgJHtmYWlsdXJlcy5sZW5ndGh9IGVycm9yKHMpOlxcbiR7ZGV0YWlsc31gKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNvbHZlcyB0aGUgdW5pcXVlIHNldCBvZiBmYWN0b3J5IGRlZmluaXRpb25zIHRvIGxpbnQuXG4gICAqIEBwYXJhbSB7c3RyaW5nW10gfCB1bmRlZmluZWR9IGZhY3RvcmllcyAtIEV4cGxpY2l0IG5hbWVzLCBvciB1bmRlZmluZWQgZm9yIGFsbC5cbiAgICogQHJldHVybnMge2ltcG9ydChcIi4vZmFjdG9yeS1kZWZpbml0aW9uLmpzXCIpLmRlZmF1bHRbXX0gLSBVbmlxdWUgZGVmaW5pdGlvbnMuXG4gICAqL1xuICBfc2VsZWN0RGVmaW5pdGlvbnMoZmFjdG9yaWVzKSB7XG4gICAgaWYgKGZhY3Rvcmllcykge1xuICAgICAgcmV0dXJuIGZhY3Rvcmllcy5tYXAoKG5hbWUpID0+IHRoaXMucmVnaXN0cnkuX3J1bm5lci5fcmVzb2x2ZUZhY3RvcnkobmFtZSkpXG4gICAgfVxuXG4gICAgcmV0dXJuIFsuLi5uZXcgU2V0KHRoaXMucmVnaXN0cnkuX2ZhY3Rvcmllcy52YWx1ZXMoKSldXG4gIH1cblxuICAvKipcbiAgICogTGludHMgb25lIGZhY3RvcnkvdHJhaXQgY2FzZSwgcm9sbGluZyBiYWNrIGNyZWF0ZS1zdHJhdGVneSBwZXJzaXN0ZW5jZS5cbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuL2ZhY3RvcnktZGVmaW5pdGlvbi5qc1wiKS5kZWZhdWx0fSBkZWZpbml0aW9uIC0gRmFjdG9yeSBkZWZpbml0aW9uLlxuICAgKiBAcGFyYW0ge3N0cmluZ1tdfSB0cmFpdHMgLSBUcmFpdHMgdG8gYXBwbHkgZm9yIHRoaXMgY2FzZS5cbiAgICogQHBhcmFtIHtcImF0dHJpYnV0ZXNGb3JcIiB8IFwiYnVpbGRcIiB8IFwiY3JlYXRlXCJ9IHN0cmF0ZWd5IC0gU3RyYXRlZ3kgdG8gcnVuLlxuICAgKiBAcGFyYW0ge0FycmF5PHtsYWJlbDogc3RyaW5nLCBlcnJvcjogUmV0dXJuVHlwZTx0eXBlb2YgSlNPTi5wYXJzZT59Pn0gZmFpbHVyZXMgLSBGYWlsdXJlIHNpbmsuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc29sdmVzIHdoZW4gdGhlIGNhc2UgaGFzIGJlZW4gZXZhbHVhdGVkLlxuICAgKi9cbiAgYXN5bmMgX2xpbnRDYXNlKGRlZmluaXRpb24sIHRyYWl0cywgc3RyYXRlZ3ksIGZhaWx1cmVzKSB7XG4gICAgY29uc3QgbGFiZWwgPSB0cmFpdHMubGVuZ3RoID4gMCA/IGAke2RlZmluaXRpb24ubmFtZX0gKyAke3RyYWl0cy5qb2luKFwiLCBcIil9YCA6IGRlZmluaXRpb24ubmFtZVxuXG4gICAgdHJ5IHtcbiAgICAgIGlmIChzdHJhdGVneSA9PT0gXCJjcmVhdGVcIikge1xuICAgICAgICBhd2FpdCB0aGlzLl9saW50Q3JlYXRlQ2FzZShkZWZpbml0aW9uLCB0cmFpdHMpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhd2FpdCB0aGlzLnJlZ2lzdHJ5W3N0cmF0ZWd5XShkZWZpbml0aW9uLm5hbWUsIC4uLnRyYWl0cylcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgTGludFJvbGxiYWNrU2lnbmFsKSByZXR1cm5cblxuICAgICAgZmFpbHVyZXMucHVzaCh7bGFiZWwsIGVycm9yfSlcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUnVucyBhIGNyZWF0ZS1zdHJhdGVneSBjYXNlIGluc2lkZSBhIHRyYW5zYWN0aW9uIGFuZCBmb3JjZXMgYSByb2xsYmFjay5cbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuL2ZhY3RvcnktZGVmaW5pdGlvbi5qc1wiKS5kZWZhdWx0fSBkZWZpbml0aW9uIC0gRmFjdG9yeSBkZWZpbml0aW9uLlxuICAgKiBAcGFyYW0ge3N0cmluZ1tdfSB0cmFpdHMgLSBUcmFpdHMgdG8gYXBwbHkuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc29sdmVzIChvciByZWplY3RzKSBvbmNlIHRoZSByb2xsYmFjayBjb21wbGV0ZXMuXG4gICAqL1xuICBhc3luYyBfbGludENyZWF0ZUNhc2UoZGVmaW5pdGlvbiwgdHJhaXRzKSB7XG4gICAgY29uc3QgY2hhaW4gPSB0aGlzLnJlZ2lzdHJ5Ll9ydW5uZXIuX3Jlc29sdmVDaGFpbihkZWZpbml0aW9uLm5hbWUpXG4gICAgY29uc3QgbW9kZWxDbGFzcyA9IHRoaXMucmVnaXN0cnkuX3J1bm5lci5fcmVzb2x2ZU1vZGVsQ2xhc3MoY2hhaW4pXG5cbiAgICBpZiAoIW1vZGVsQ2xhc3MpIHtcbiAgICAgIGF3YWl0IHRoaXMucmVnaXN0cnkuY3JlYXRlKGRlZmluaXRpb24ubmFtZSwgLi4udHJhaXRzKVxuXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBhd2FpdCAvKiogQHR5cGUge3R5cGVvZiBpbXBvcnQoXCIuLi8uLi9kYXRhYmFzZS9yZWNvcmQvaW5kZXguanNcIikuZGVmYXVsdH0gKi8gKG1vZGVsQ2xhc3MpLnRyYW5zYWN0aW9uKGFzeW5jICgpID0+IHtcbiAgICAgIGF3YWl0IHRoaXMucmVnaXN0cnkuY3JlYXRlKGRlZmluaXRpb24ubmFtZSwgLi4udHJhaXRzKVxuXG4gICAgICB0aHJvdyBuZXcgTGludFJvbGxiYWNrU2lnbmFsKClcbiAgICB9KVxuICB9XG59XG4iXX0=
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
* initialized backend Velocious `DatabaseRecord` subclass. Uninitialized backend
|
|
4
4
|
* classes and non-backend classes (e.g. generated frontend models) are rejected
|
|
5
5
|
* with a named, actionable error rather than failing deep inside construction.
|
|
6
|
-
* @param {
|
|
6
|
+
* @param {ReturnType<typeof JSON.parse>} modelClass - The candidate model class.
|
|
7
7
|
* @param {string} factoryName - Factory name, for the error message.
|
|
8
|
-
* @returns {new (attributes?: Record<string,
|
|
8
|
+
* @returns {new (attributes?: Record<string, ReturnType<typeof JSON.parse>>) => import("../../database/record/index.js").default} - The validated model class.
|
|
9
9
|
*/
|
|
10
|
-
export function assertModelClass(modelClass:
|
|
10
|
+
export declare function assertModelClass(modelClass: ReturnType<typeof JSON.parse>, factoryName: string): new (attributes?: Record<string, ReturnType<typeof JSON.parse>>) => import("../../database/record/index.js").default;
|
|
11
11
|
//# sourceMappingURL=model-contract.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-contract.d.ts","sourceRoot":"","sources":["../../../../src/testing/factory/model-contract.js"],"names":[],"mappings":"AAKA;;;;;;;;GAQG;AACH,
|
|
1
|
+
{"version":3,"file":"model-contract.d.ts","sourceRoot":"","sources":["../../../../src/testing/factory/model-contract.js"],"names":[],"mappings":"AAKA;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAJhC,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAII,EAAE,WAAW,EAH7C,MAG6C,GAF3C,KAAK,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,OAAO,gCAAgC,EAAE,OAAO,CAkBhI"}
|
|
@@ -6,9 +6,9 @@ import { ModelContractError } from "./errors.js";
|
|
|
6
6
|
* initialized backend Velocious `DatabaseRecord` subclass. Uninitialized backend
|
|
7
7
|
* classes and non-backend classes (e.g. generated frontend models) are rejected
|
|
8
8
|
* with a named, actionable error rather than failing deep inside construction.
|
|
9
|
-
* @param {
|
|
9
|
+
* @param {ReturnType<typeof JSON.parse>} modelClass - The candidate model class.
|
|
10
10
|
* @param {string} factoryName - Factory name, for the error message.
|
|
11
|
-
* @returns {new (attributes?: Record<string,
|
|
11
|
+
* @returns {new (attributes?: Record<string, ReturnType<typeof JSON.parse>>) => import("../../database/record/index.js").default} - The validated model class.
|
|
12
12
|
*/
|
|
13
13
|
export function assertModelClass(modelClass, factoryName) {
|
|
14
14
|
if (typeof modelClass !== "function") {
|
|
@@ -21,6 +21,6 @@ export function assertModelClass(modelClass, factoryName) {
|
|
|
21
21
|
if (!backendModelClass.isInitialized()) {
|
|
22
22
|
throw new ModelContractError(`Factory "${factoryName}" model ${backendModelClass.name} has not been initialized. Ensure the model class is initialized (e.g. via configuration.initialize()/ensureInitialized) before build/create.`);
|
|
23
23
|
}
|
|
24
|
-
return /** @type {new (attributes?: Record<string,
|
|
24
|
+
return /** @type {new (attributes?: Record<string, ReturnType<typeof JSON.parse>>) => import("../../database/record/index.js").default} */ (modelClass);
|
|
25
25
|
}
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtY29udHJhY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdGVzdGluZy9mYWN0b3J5L21vZGVsLWNvbnRyYWN0LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFFWixPQUFPLGNBQWMsTUFBTSxnQ0FBZ0MsQ0FBQTtBQUMzRCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxhQUFhLENBQUE7QUFFOUM7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsVUFBVSxFQUFFLFdBQVc7SUFDdEQsSUFBSSxPQUFPLFVBQVUsS0FBSyxVQUFVLEVBQUUsQ0FBQztRQUNyQyxNQUFNLElBQUksa0JBQWtCLENBQUMsWUFBWSxXQUFXLGdFQUFnRSxXQUFXLHNCQUFzQixDQUFDLENBQUE7SUFDeEosQ0FBQztJQUVELElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxTQUFTLFlBQVksY0FBYyxDQUFDLEVBQUUsQ0FBQztRQUN0RCxNQUFNLElBQUksa0JBQWtCLENBQUMsWUFBWSxXQUFXLFdBQVcsVUFBVSxDQUFDLElBQUksSUFBSSxPQUFPLCtKQUErSixDQUFDLENBQUE7SUFDM1AsQ0FBQztJQUVELE1BQU0saUJBQWlCLEdBQUcsc0VBQXNFLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQTtJQUU3RyxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQztRQUN2QyxNQUFNLElBQUksa0JBQWtCLENBQUMsWUFBWSxXQUFXLFdBQVcsaUJBQWlCLENBQUMsSUFBSSwrSUFBK0ksQ0FBQyxDQUFBO0lBQ3ZPLENBQUM7SUFFRCxPQUFPLG1JQUFtSSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUE7QUFDekosQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG5pbXBvcnQgRGF0YWJhc2VSZWNvcmQgZnJvbSBcIi4uLy4uL2RhdGFiYXNlL3JlY29yZC9pbmRleC5qc1wiXG5pbXBvcnQge01vZGVsQ29udHJhY3RFcnJvcn0gZnJvbSBcIi4vZXJyb3JzLmpzXCJcblxuLyoqXG4gKiBBc3NlcnRzIGEgY2xhc3Mgc2F0aXNmaWVzIHRoZSBWMSBmYWN0b3J5IG1vZGVsIGNvbnRyYWN0OiBpdCBtdXN0IGJlIGFuXG4gKiBpbml0aWFsaXplZCBiYWNrZW5kIFZlbG9jaW91cyBgRGF0YWJhc2VSZWNvcmRgIHN1YmNsYXNzLiBVbmluaXRpYWxpemVkIGJhY2tlbmRcbiAqIGNsYXNzZXMgYW5kIG5vbi1iYWNrZW5kIGNsYXNzZXMgKGUuZy4gZ2VuZXJhdGVkIGZyb250ZW5kIG1vZGVscykgYXJlIHJlamVjdGVkXG4gKiB3aXRoIGEgbmFtZWQsIGFjdGlvbmFibGUgZXJyb3IgcmF0aGVyIHRoYW4gZmFpbGluZyBkZWVwIGluc2lkZSBjb25zdHJ1Y3Rpb24uXG4gKiBAcGFyYW0ge1JldHVyblR5cGU8dHlwZW9mIEpTT04ucGFyc2U+fSBtb2RlbENsYXNzIC0gVGhlIGNhbmRpZGF0ZSBtb2RlbCBjbGFzcy5cbiAqIEBwYXJhbSB7c3RyaW5nfSBmYWN0b3J5TmFtZSAtIEZhY3RvcnkgbmFtZSwgZm9yIHRoZSBlcnJvciBtZXNzYWdlLlxuICogQHJldHVybnMge25ldyAoYXR0cmlidXRlcz86IFJlY29yZDxzdHJpbmcsIFJldHVyblR5cGU8dHlwZW9mIEpTT04ucGFyc2U+PikgPT4gaW1wb3J0KFwiLi4vLi4vZGF0YWJhc2UvcmVjb3JkL2luZGV4LmpzXCIpLmRlZmF1bHR9IC0gVGhlIHZhbGlkYXRlZCBtb2RlbCBjbGFzcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFzc2VydE1vZGVsQ2xhc3MobW9kZWxDbGFzcywgZmFjdG9yeU5hbWUpIHtcbiAgaWYgKHR5cGVvZiBtb2RlbENsYXNzICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICB0aHJvdyBuZXcgTW9kZWxDb250cmFjdEVycm9yKGBGYWN0b3J5IFwiJHtmYWN0b3J5TmFtZX1cIiBoYXMgbm8gbW9kZWwgY2xhc3MgdG8gY29uc3RydWN0LiBEZWNsYXJlIG9uZSB3aXRoIGZhY3RvcnkoXCIke2ZhY3RvcnlOYW1lfVwiLCBNb2RlbENsYXNzLCAuLi4pLmApXG4gIH1cblxuICBpZiAoIShtb2RlbENsYXNzLnByb3RvdHlwZSBpbnN0YW5jZW9mIERhdGFiYXNlUmVjb3JkKSkge1xuICAgIHRocm93IG5ldyBNb2RlbENvbnRyYWN0RXJyb3IoYEZhY3RvcnkgXCIke2ZhY3RvcnlOYW1lfVwiIG1vZGVsICR7bW9kZWxDbGFzcy5uYW1lIHx8IFwiY2xhc3NcIn0gaXMgbm90IGEgc3VwcG9ydGVkIFZlbG9jaW91cyBiYWNrZW5kIHJlY29yZC4gYnVpbGQvY3JlYXRlIHJlcXVpcmUgYW4gaW5pdGlhbGl6ZWQgRGF0YWJhc2VSZWNvcmQgc3ViY2xhc3M7IGdlbmVyYXRlZCBmcm9udGVuZCBtb2RlbHMgYXJlIG5vdCBzdXBwb3J0ZWQgaW4gVjEuYClcbiAgfVxuXG4gIGNvbnN0IGJhY2tlbmRNb2RlbENsYXNzID0gLyoqIEB0eXBlIHt0eXBlb2YgaW1wb3J0KFwiLi4vLi4vZGF0YWJhc2UvcmVjb3JkL2luZGV4LmpzXCIpLmRlZmF1bHR9ICovIChtb2RlbENsYXNzKVxuXG4gIGlmICghYmFja2VuZE1vZGVsQ2xhc3MuaXNJbml0aWFsaXplZCgpKSB7XG4gICAgdGhyb3cgbmV3IE1vZGVsQ29udHJhY3RFcnJvcihgRmFjdG9yeSBcIiR7ZmFjdG9yeU5hbWV9XCIgbW9kZWwgJHtiYWNrZW5kTW9kZWxDbGFzcy5uYW1lfSBoYXMgbm90IGJlZW4gaW5pdGlhbGl6ZWQuIEVuc3VyZSB0aGUgbW9kZWwgY2xhc3MgaXMgaW5pdGlhbGl6ZWQgKGUuZy4gdmlhIGNvbmZpZ3VyYXRpb24uaW5pdGlhbGl6ZSgpL2Vuc3VyZUluaXRpYWxpemVkKSBiZWZvcmUgYnVpbGQvY3JlYXRlLmApXG4gIH1cblxuICByZXR1cm4gLyoqIEB0eXBlIHtuZXcgKGF0dHJpYnV0ZXM/OiBSZWNvcmQ8c3RyaW5nLCBSZXR1cm5UeXBlPHR5cGVvZiBKU09OLnBhcnNlPj4pID0+IGltcG9ydChcIi4uLy4uL2RhdGFiYXNlL3JlY29yZC9pbmRleC5qc1wiKS5kZWZhdWx0fSAqLyAobW9kZWxDbGFzcylcbn1cbiJdfQ==
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* @param {{reload?: boolean}} [options] - Options.
|
|
10
10
|
* @returns {Promise<string[]>} - The loaded file paths, in load order.
|
|
11
11
|
*/
|
|
12
|
-
export function loadDefinitions(registry: import("../factory-registry.js").default, target: string | string[], { reload }?: {
|
|
12
|
+
export declare function loadDefinitions(registry: import("../factory-registry.js").default, target: string | string[], { reload }?: {
|
|
13
13
|
reload?: boolean;
|
|
14
14
|
}): Promise<string[]>;
|
|
15
15
|
/**
|
|
@@ -20,5 +20,5 @@ export function loadDefinitions(registry: import("../factory-registry.js").defau
|
|
|
20
20
|
* @param {string | string[]} target - File path, directory, or list of paths.
|
|
21
21
|
* @returns {Promise<string[]>} - The reloaded file paths, in load order.
|
|
22
22
|
*/
|
|
23
|
-
export function reloadDefinitions(registry: import("../factory-registry.js").default, target: string | string[]): Promise<string[]>;
|
|
23
|
+
export declare function reloadDefinitions(registry: import("../factory-registry.js").default, target: string | string[]): Promise<string[]>;
|
|
24
24
|
//# sourceMappingURL=load-definitions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load-definitions.d.ts","sourceRoot":"","sources":["../../../../../src/testing/factory/node/load-definitions.js"],"names":[],"mappings":"AAwDA;;;;;;;;;;GAUG;AACH,
|
|
1
|
+
{"version":3,"file":"load-definitions.d.ts","sourceRoot":"","sources":["../../../../../src/testing/factory/node/load-definitions.js"],"names":[],"mappings":"AAwDA;;;;;;;;;;GAUG;AACH,wBAAsB,eAAe,CAAC,QAAQ,EALnC,OAAO,wBAAwB,EAAE,OAKE,EAAE,MAAM,EAJ3C,MAAM,GAAG,MAAM,EAI4B,EAAE,EAAC,MAAc,EAAC,AAHrE,CACA,EADQ;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAGiD,GAFhE,OAAO,CAAC,MAAM,EAAE,CAAC,CAuB7B;AAED;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CAAC,QAAQ,EAJrC,OAAO,wBAAwB,EAAE,OAII,EAAE,MAAM,EAH7C,MAAM,GAAG,MAAM,EAG8B,GAF3C,OAAO,CAAC,MAAM,EAAE,CAAC,CAM7B"}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
+
export type SequenceFormatter = (args: {
|
|
2
|
+
value: number;
|
|
3
|
+
}) => (ReturnType<typeof JSON.parse> | Promise<ReturnType<typeof JSON.parse>>);
|
|
1
4
|
/**
|
|
2
5
|
* SequenceFormatter type. Receives the synchronously-allocated numeric value and
|
|
3
6
|
* returns the formatted value (optionally asynchronously).
|
|
4
|
-
* @typedef {(args: {value: number}) => (
|
|
7
|
+
* @typedef {(args: {value: number}) => (ReturnType<typeof JSON.parse> | Promise<ReturnType<typeof JSON.parse>>)} SequenceFormatter
|
|
5
8
|
*/
|
|
6
9
|
/**
|
|
7
10
|
* A numeric counter sequence. Values are allocated and consumed synchronously
|
|
@@ -10,6 +13,16 @@
|
|
|
10
13
|
* matching FactoryBot's failed-value-consumption behaviour.
|
|
11
14
|
*/
|
|
12
15
|
export default class Sequence {
|
|
16
|
+
/** @type {string} - Primary sequence name. */
|
|
17
|
+
name: string;
|
|
18
|
+
/** @type {number} - First value the sequence yields. */
|
|
19
|
+
initial: number;
|
|
20
|
+
/** @type {SequenceFormatter | undefined} - Optional value formatter. */
|
|
21
|
+
formatter: SequenceFormatter | undefined;
|
|
22
|
+
/** @type {string[]} - Names that share this sequence's counter. */
|
|
23
|
+
aliases: string[];
|
|
24
|
+
/** @type {number} - Next value to allocate. */
|
|
25
|
+
_next: number;
|
|
13
26
|
/**
|
|
14
27
|
* Builds a sequence.
|
|
15
28
|
* @param {object} args - Options.
|
|
@@ -20,20 +33,10 @@ export default class Sequence {
|
|
|
20
33
|
*/
|
|
21
34
|
constructor({ name, initial, formatter, aliases }: {
|
|
22
35
|
name: string;
|
|
23
|
-
initial?: number
|
|
24
|
-
formatter?: SequenceFormatter
|
|
25
|
-
aliases?: string[]
|
|
36
|
+
initial?: number;
|
|
37
|
+
formatter?: SequenceFormatter;
|
|
38
|
+
aliases?: string[];
|
|
26
39
|
});
|
|
27
|
-
/** @type {string} - Primary sequence name. */
|
|
28
|
-
name: string;
|
|
29
|
-
/** @type {number} - First value the sequence yields. */
|
|
30
|
-
initial: number;
|
|
31
|
-
/** @type {SequenceFormatter | undefined} - Optional value formatter. */
|
|
32
|
-
formatter: SequenceFormatter | undefined;
|
|
33
|
-
/** @type {string[]} - Names that share this sequence's counter. */
|
|
34
|
-
aliases: string[];
|
|
35
|
-
/** @type {number} - Next value to allocate. */
|
|
36
|
-
_next: number;
|
|
37
40
|
/**
|
|
38
41
|
* Allocates and consumes the next numeric value synchronously.
|
|
39
42
|
* @returns {number} - The allocated raw value.
|
|
@@ -43,9 +46,9 @@ export default class Sequence {
|
|
|
43
46
|
* Advances the sequence and returns the formatted value. The numeric value is
|
|
44
47
|
* consumed synchronously before awaiting the formatter, so a rejected formatter
|
|
45
48
|
* still advances the counter.
|
|
46
|
-
* @returns {Promise
|
|
49
|
+
* @returns {Promise<ReturnType<typeof JSON.parse>>} - The formatted value.
|
|
47
50
|
*/
|
|
48
|
-
next(): Promise<
|
|
51
|
+
next(): Promise<ReturnType<typeof JSON.parse>>;
|
|
49
52
|
/**
|
|
50
53
|
* Returns the value the next `next()` call will allocate without consuming it.
|
|
51
54
|
* @returns {number} - The upcoming raw value.
|
|
@@ -63,11 +66,4 @@ export default class Sequence {
|
|
|
63
66
|
*/
|
|
64
67
|
rewind(): void;
|
|
65
68
|
}
|
|
66
|
-
/**
|
|
67
|
-
* SequenceFormatter type. Receives the synchronously-allocated numeric value and
|
|
68
|
-
* returns the formatted value (optionally asynchronously).
|
|
69
|
-
*/
|
|
70
|
-
export type SequenceFormatter = (args: {
|
|
71
|
-
value: number;
|
|
72
|
-
}) => (unknown | Promise<unknown>);
|
|
73
69
|
//# sourceMappingURL=sequence.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sequence.d.ts","sourceRoot":"","sources":["../../../../src/testing/factory/sequence.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sequence.d.ts","sourceRoot":"","sources":["../../../../src/testing/factory/sequence.js"],"names":[],"mappings":"AAKG,YAA+G,iBAAiB,GAAtH,CAAC,IAAI,EAAE;IAAC,KAAK,EAAE,MAAM,CAAA;CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAmB;AAHnI;;;;GAIG;AAEH;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,QAAQ;IAUzB,8CAA8C;IACzC,IAAI,EADE,MAAM;IAGjB,wDAAwD;IACnD,OAAO,EADD,MAAM;IAGjB,wEAAwE;IACnE,SAAS,EADH,iBAAiB,GAAG,SAAS;IAGxC,mEAAmE;IAC9D,OAAO,EADD,MAAM,EAAE;IAGnB,+CAA+C;IAC1C,KAAK,EADC,MAAM;IArBnB;;;;;;;OAOG;IACH,YAAY,EAAC,IAAI,EAAE,OAAW,EAAE,SAAS,EAAE,OAAY,EAAC,EALrD;QAAqB,IAAI,EAAjB,MAAM,CACd;QAAsB,OAAO,AAA7B,CACA,EADQ,MAAM,CACd;QAAiC,SAAS,AAA1C,CACA,EADQ,iBAAiB,CACzB;QAAwB,OAAO,AAA/B,CACF,EADU,MAAM,EAAE,CAClB;KACuD,EAevD;IAED;;;OAGG;IACH,SAAS,IAFI,MAAM,CAQlB;IAED;;;;;OAKG;IACG,IAAI,IAFG,OAAO,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAQlD;IAED;;;OAGG;IACH,IAAI,IAFS,MAAM,CAIlB;IAED;;;;OAIG;IACH,GAAG,CAAC,KAAK,EAHE,MAGF,GAFI,IAAI,CAIhB;IAED;;;OAGG;IACH,MAAM,IAFO,IAAI,CAIhB;CACF"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* SequenceFormatter type. Receives the synchronously-allocated numeric value and
|
|
4
4
|
* returns the formatted value (optionally asynchronously).
|
|
5
|
-
* @typedef {(args: {value: number}) => (
|
|
5
|
+
* @typedef {(args: {value: number}) => (ReturnType<typeof JSON.parse> | Promise<ReturnType<typeof JSON.parse>>)} SequenceFormatter
|
|
6
6
|
*/
|
|
7
7
|
/**
|
|
8
8
|
* A numeric counter sequence. Values are allocated and consumed synchronously
|
|
@@ -44,7 +44,7 @@ export default class Sequence {
|
|
|
44
44
|
* Advances the sequence and returns the formatted value. The numeric value is
|
|
45
45
|
* consumed synchronously before awaiting the formatter, so a rejected formatter
|
|
46
46
|
* still advances the counter.
|
|
47
|
-
* @returns {Promise
|
|
47
|
+
* @returns {Promise<ReturnType<typeof JSON.parse>>} - The formatted value.
|
|
48
48
|
*/
|
|
49
49
|
async next() {
|
|
50
50
|
const value = this._allocate();
|
|
@@ -75,4 +75,4 @@ export default class Sequence {
|
|
|
75
75
|
this._next = this.initial;
|
|
76
76
|
}
|
|
77
77
|
}
|
|
78
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VxdWVuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdGVzdGluZy9mYWN0b3J5L3NlcXVlbmNlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFFWjs7OztHQUlHO0FBRUg7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsT0FBTyxPQUFPLFFBQVE7SUFDM0I7Ozs7Ozs7T0FPRztJQUNILFlBQVksRUFBQyxJQUFJLEVBQUUsT0FBTyxHQUFHLENBQUMsRUFBRSxTQUFTLEVBQUUsT0FBTyxHQUFHLEVBQUUsRUFBQztRQUN0RCw4Q0FBOEM7UUFDOUMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUE7UUFFaEIsd0RBQXdEO1FBQ3hELElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFBO1FBRXRCLHdFQUF3RTtRQUN4RSxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQTtRQUUxQixtRUFBbUU7UUFDbkUsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUE7UUFFdEIsK0NBQStDO1FBQy9DLElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFBO0lBQ3RCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxTQUFTO1FBQ1AsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQTtRQUV4QixJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQTtRQUVmLE9BQU8sS0FBSyxDQUFBO0lBQ2QsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsS0FBSyxDQUFDLElBQUk7UUFDUixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUE7UUFFOUIsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTO1lBQUUsT0FBTyxLQUFLLENBQUE7UUFFakMsT0FBTyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBQyxLQUFLLEVBQUMsQ0FBQyxDQUFBO0lBQ3RDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFJO1FBQ0YsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFBO0lBQ25CLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsR0FBRyxDQUFDLEtBQUs7UUFDUCxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQTtJQUNwQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsTUFBTTtRQUNKLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQTtJQUMzQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuLyoqXG4gKiBTZXF1ZW5jZUZvcm1hdHRlciB0eXBlLiBSZWNlaXZlcyB0aGUgc3luY2hyb25vdXNseS1hbGxvY2F0ZWQgbnVtZXJpYyB2YWx1ZSBhbmRcbiAqIHJldHVybnMgdGhlIGZvcm1hdHRlZCB2YWx1ZSAob3B0aW9uYWxseSBhc3luY2hyb25vdXNseSkuXG4gKiBAdHlwZWRlZiB7KGFyZ3M6IHt2YWx1ZTogbnVtYmVyfSkgPT4gKFJldHVyblR5cGU8dHlwZW9mIEpTT04ucGFyc2U+IHwgUHJvbWlzZTxSZXR1cm5UeXBlPHR5cGVvZiBKU09OLnBhcnNlPj4pfSBTZXF1ZW5jZUZvcm1hdHRlclxuICovXG5cbi8qKlxuICogQSBudW1lcmljIGNvdW50ZXIgc2VxdWVuY2UuIFZhbHVlcyBhcmUgYWxsb2NhdGVkIGFuZCBjb25zdW1lZCBzeW5jaHJvbm91c2x5XG4gKiBiZWZvcmUgdGhlIChwb3NzaWJseSBhc3luYykgZm9ybWF0dGVyIHJ1bnMsIHNvIGEgcmVqZWN0ZWQgZm9ybWF0dGVyIHN0aWxsXG4gKiBhZHZhbmNlcyB0aGUgY291bnRlciBhbmQgY29uY3VycmVudCBgUHJvbWlzZS5hbGxgIGFsbG9jYXRpb24gbmV2ZXIgY29sbGlkZXMg4oCUXG4gKiBtYXRjaGluZyBGYWN0b3J5Qm90J3MgZmFpbGVkLXZhbHVlLWNvbnN1bXB0aW9uIGJlaGF2aW91ci5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU2VxdWVuY2Uge1xuICAvKipcbiAgICogQnVpbGRzIGEgc2VxdWVuY2UuXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzIC0gT3B0aW9ucy5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGFyZ3MubmFtZSAtIFByaW1hcnkgc2VxdWVuY2UgbmFtZS5cbiAgICogQHBhcmFtIHtudW1iZXJ9IFthcmdzLmluaXRpYWxdIC0gRmlyc3QgdmFsdWUgdGhlIHNlcXVlbmNlIHlpZWxkcy4gRGVmYXVsdHMgdG8gMS5cbiAgICogQHBhcmFtIHtTZXF1ZW5jZUZvcm1hdHRlcn0gW2FyZ3MuZm9ybWF0dGVyXSAtIE9wdGlvbmFsIGZvcm1hdHRlciBmb3IgdGhlIHZhbHVlLlxuICAgKiBAcGFyYW0ge3N0cmluZ1tdfSBbYXJncy5hbGlhc2VzXSAtIEFkZGl0aW9uYWwgbmFtZXMgdGhhdCBzaGFyZSB0aGlzIHNlcXVlbmNlJ3Mgc3RhdGUuXG4gICAqL1xuICBjb25zdHJ1Y3Rvcih7bmFtZSwgaW5pdGlhbCA9IDEsIGZvcm1hdHRlciwgYWxpYXNlcyA9IFtdfSkge1xuICAgIC8qKiBAdHlwZSB7c3RyaW5nfSAtIFByaW1hcnkgc2VxdWVuY2UgbmFtZS4gKi9cbiAgICB0aGlzLm5hbWUgPSBuYW1lXG5cbiAgICAvKiogQHR5cGUge251bWJlcn0gLSBGaXJzdCB2YWx1ZSB0aGUgc2VxdWVuY2UgeWllbGRzLiAqL1xuICAgIHRoaXMuaW5pdGlhbCA9IGluaXRpYWxcblxuICAgIC8qKiBAdHlwZSB7U2VxdWVuY2VGb3JtYXR0ZXIgfCB1bmRlZmluZWR9IC0gT3B0aW9uYWwgdmFsdWUgZm9ybWF0dGVyLiAqL1xuICAgIHRoaXMuZm9ybWF0dGVyID0gZm9ybWF0dGVyXG5cbiAgICAvKiogQHR5cGUge3N0cmluZ1tdfSAtIE5hbWVzIHRoYXQgc2hhcmUgdGhpcyBzZXF1ZW5jZSdzIGNvdW50ZXIuICovXG4gICAgdGhpcy5hbGlhc2VzID0gYWxpYXNlc1xuXG4gICAgLyoqIEB0eXBlIHtudW1iZXJ9IC0gTmV4dCB2YWx1ZSB0byBhbGxvY2F0ZS4gKi9cbiAgICB0aGlzLl9uZXh0ID0gaW5pdGlhbFxuICB9XG5cbiAgLyoqXG4gICAqIEFsbG9jYXRlcyBhbmQgY29uc3VtZXMgdGhlIG5leHQgbnVtZXJpYyB2YWx1ZSBzeW5jaHJvbm91c2x5LlxuICAgKiBAcmV0dXJucyB7bnVtYmVyfSAtIFRoZSBhbGxvY2F0ZWQgcmF3IHZhbHVlLlxuICAgKi9cbiAgX2FsbG9jYXRlKCkge1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5fbmV4dFxuXG4gICAgdGhpcy5fbmV4dCArPSAxXG5cbiAgICByZXR1cm4gdmFsdWVcbiAgfVxuXG4gIC8qKlxuICAgKiBBZHZhbmNlcyB0aGUgc2VxdWVuY2UgYW5kIHJldHVybnMgdGhlIGZvcm1hdHRlZCB2YWx1ZS4gVGhlIG51bWVyaWMgdmFsdWUgaXNcbiAgICogY29uc3VtZWQgc3luY2hyb25vdXNseSBiZWZvcmUgYXdhaXRpbmcgdGhlIGZvcm1hdHRlciwgc28gYSByZWplY3RlZCBmb3JtYXR0ZXJcbiAgICogc3RpbGwgYWR2YW5jZXMgdGhlIGNvdW50ZXIuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPFJldHVyblR5cGU8dHlwZW9mIEpTT04ucGFyc2U+Pn0gLSBUaGUgZm9ybWF0dGVkIHZhbHVlLlxuICAgKi9cbiAgYXN5bmMgbmV4dCgpIHtcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMuX2FsbG9jYXRlKClcblxuICAgIGlmICghdGhpcy5mb3JtYXR0ZXIpIHJldHVybiB2YWx1ZVxuXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuZm9ybWF0dGVyKHt2YWx1ZX0pXG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgdmFsdWUgdGhlIG5leHQgYG5leHQoKWAgY2FsbCB3aWxsIGFsbG9jYXRlIHdpdGhvdXQgY29uc3VtaW5nIGl0LlxuICAgKiBAcmV0dXJucyB7bnVtYmVyfSAtIFRoZSB1cGNvbWluZyByYXcgdmFsdWUuXG4gICAqL1xuICBwZWVrKCkge1xuICAgIHJldHVybiB0aGlzLl9uZXh0XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgbmV4dCB2YWx1ZSB0aGUgc2VxdWVuY2Ugd2lsbCBhbGxvY2F0ZS5cbiAgICogQHBhcmFtIHtudW1iZXJ9IHZhbHVlIC0gTmV4dCByYXcgdmFsdWUuXG4gICAqIEByZXR1cm5zIHt2b2lkfVxuICAgKi9cbiAgc2V0KHZhbHVlKSB7XG4gICAgdGhpcy5fbmV4dCA9IHZhbHVlXG4gIH1cblxuICAvKipcbiAgICogUmVzZXRzIHRoZSBjb3VudGVyIGJhY2sgdG8gaXRzIGluaXRpYWwgdmFsdWUuXG4gICAqIEByZXR1cm5zIHt2b2lkfVxuICAgKi9cbiAgcmV3aW5kKCkge1xuICAgIHRoaXMuX25leHQgPSB0aGlzLmluaXRpYWxcbiAgfVxufVxuIl19
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import BaseStrategy from "./base.js";
|
|
1
2
|
/**
|
|
2
3
|
* The `attributesFor` strategy. It resolves scalar/lazy attributes (and any
|
|
3
4
|
* transients they depend on) but never initializes the model, runs lifecycle
|
|
@@ -10,12 +11,11 @@ export default class AttributesForStrategy extends BaseStrategy {
|
|
|
10
11
|
* @param {object} args - Options.
|
|
11
12
|
* @param {import("../factory-registry.js").default} args.registry - Owning registry.
|
|
12
13
|
* @param {import("../factory-runner.js").CompiledPlan} args.plan - Compiled plan.
|
|
13
|
-
* @returns {Promise<Record<string,
|
|
14
|
+
* @returns {Promise<Record<string, ReturnType<typeof JSON.parse>>>} - The resolved attributes.
|
|
14
15
|
*/
|
|
15
16
|
run({ registry, plan }: {
|
|
16
17
|
registry: import("../factory-registry.js").default;
|
|
17
18
|
plan: import("../factory-runner.js").CompiledPlan;
|
|
18
|
-
}): Promise<Record<string,
|
|
19
|
+
}): Promise<Record<string, ReturnType<typeof JSON.parse>>>;
|
|
19
20
|
}
|
|
20
|
-
import BaseStrategy from "./base.js";
|
|
21
21
|
//# sourceMappingURL=attributes-for.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attributes-for.d.ts","sourceRoot":"","sources":["../../../../../src/testing/factory/strategies/attributes-for.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"attributes-for.d.ts","sourceRoot":"","sources":["../../../../../src/testing/factory/strategies/attributes-for.js"],"names":[],"mappings":"AAEA,OAAO,YAAY,MAAM,WAAW,CAAA;AAEpC;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,qBAAsB,SAAQ,YAAY;IAC7D;;;;;;OAMG;IACG,GAAG,CAAC,EAAC,QAAQ,EAAE,IAAI,EAAC,EAJvB;QAAuD,QAAQ,EAAvD,OAAO,wBAAwB,EAAE,OAAO,CAChD;QAA0D,IAAI,EAAtD,OAAO,sBAAsB,EAAE,YAAY,CACnD;KAEuB,GAFb,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAMlE;CACF"}
|