velocious 1.0.461 → 1.0.462
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/build/application.js +1 -3
- package/build/background-jobs/cron-expression.js +1 -3
- package/build/background-jobs/forked-runner-child.js +1 -3
- package/build/background-jobs/job.js +1 -3
- package/build/background-jobs/scheduler.js +2 -6
- package/build/background-jobs/store.js +2 -6
- package/build/background-jobs/web/controller.js +1 -3
- package/build/background-jobs/worker.js +1 -3
- package/build/beacon/client.js +2 -6
- package/build/cli/tenant-database-command-helper.js +1 -3
- package/build/configuration.js +29 -32
- package/build/controller.js +4 -14
- package/build/database/drivers/mssql/index.js +1 -3
- package/build/database/drivers/mysql/index.js +2 -6
- package/build/database/drivers/pgsql/index.js +1 -3
- package/build/database/drivers/sqlite/base.js +3 -9
- package/build/database/drivers/sqlite/index.js +3 -9
- package/build/database/drivers/sqlite/table.js +1 -3
- package/build/database/migrator.js +1 -3
- package/build/database/pool/async-tracked-multi-connection.js +20 -45
- package/build/database/pool/base-methods-forward.js +2 -10
- package/build/database/pool/base.js +5 -15
- package/build/database/query/index.js +4 -12
- package/build/database/query/join-object.js +3 -9
- package/build/database/query/model-class-query.js +21 -63
- package/build/database/query/preloader/belongs-to.js +9 -27
- package/build/database/query/preloader/has-many.js +7 -21
- package/build/database/query/preloader/has-one.js +3 -9
- package/build/database/query/preloader.js +6 -18
- package/build/database/query/query-data.js +5 -15
- package/build/database/query/where-model-class-hash.js +5 -15
- package/build/database/query/with-count.js +5 -15
- package/build/database/record/acts-as-list.js +10 -38
- package/build/database/record/attachments/normalize-input.js +7 -25
- package/build/database/record/attachments/storage-drivers/s3.js +4 -12
- package/build/database/record/attachments/store.js +2 -6
- package/build/database/record/index.js +55 -171
- package/build/database/record/instance-relationships/base.js +6 -20
- package/build/database/record/instance-relationships/belongs-to.js +2 -6
- package/build/database/record/instance-relationships/has-many.js +4 -12
- package/build/database/record/instance-relationships/has-one.js +4 -12
- package/build/database/record/relationships/base.js +1 -5
- package/build/database/record/validators/presence.js +1 -3
- package/build/database/record/validators/uniqueness.js +4 -12
- package/build/environment-handlers/browser.js +1 -3
- package/build/environment-handlers/node/cli/commands/console.js +2 -6
- package/build/environment-handlers/node/cli/commands/db/schema/load.js +1 -3
- package/build/environment-handlers/node/cli/commands/generate/frontend-models.js +67 -11
- package/build/environment-handlers/node.js +15 -6
- package/build/frontend-model-controller.js +34 -110
- package/build/frontend-models/base.js +45 -151
- package/build/frontend-models/clear-pending-debounced-callback.js +1 -3
- package/build/frontend-models/preloader.js +3 -9
- package/build/frontend-models/query.js +11 -33
- package/build/frontend-models/resource-definition.js +2 -6
- package/build/frontend-models/transport-serialization.js +7 -21
- package/build/frontend-models/use-destroyed-event.js +2 -6
- package/build/frontend-models/use-model-class-event.js +2 -6
- package/build/frontend-models/use-updated-event.js +3 -9
- package/build/frontend-models/websocket-channel.js +9 -27
- package/build/frontend-models/websocket-publishers.js +12 -23
- package/build/http-server/client/index.js +6 -18
- package/build/http-server/client/params-to-object.js +6 -18
- package/build/http-server/client/request-buffer/index.js +1 -3
- package/build/http-server/client/request-parser.js +1 -3
- package/build/http-server/client/request-runner.js +4 -12
- package/build/http-server/client/websocket-session.js +6 -18
- package/build/http-server/development-reloader.js +2 -6
- package/build/http-server/remote-address.js +1 -5
- package/build/http-server/server-client.js +3 -9
- package/build/http-server/server-lock.js +2 -6
- package/build/http-server/websocket-channel-subscribers.js +2 -6
- package/build/http-server/websocket-event-log-store.js +5 -15
- package/build/http-server/websocket-events-host.js +1 -3
- package/build/http-server/worker-handler/in-process.js +3 -11
- package/build/http-server/worker-handler/worker-thread.js +1 -3
- package/build/logger.js +2 -6
- package/build/mailer/backends/smtp.js +1 -5
- package/build/mailer/base.js +4 -16
- package/build/plugins/sqljs-wasm-route-controller.js +1 -3
- package/build/routes/basic-route.js +1 -3
- package/build/routes/resolver.js +4 -14
- package/build/src/application.d.ts.map +1 -1
- package/build/src/application.js +2 -4
- package/build/src/background-jobs/cron-expression.d.ts.map +1 -1
- package/build/src/background-jobs/cron-expression.js +2 -4
- package/build/src/background-jobs/forked-runner-child.js +2 -4
- package/build/src/background-jobs/job.d.ts.map +1 -1
- package/build/src/background-jobs/job.js +2 -4
- package/build/src/background-jobs/scheduler.d.ts.map +1 -1
- package/build/src/background-jobs/scheduler.js +3 -7
- package/build/src/background-jobs/store.d.ts.map +1 -1
- package/build/src/background-jobs/store.js +3 -7
- package/build/src/background-jobs/web/controller.d.ts.map +1 -1
- package/build/src/background-jobs/web/controller.js +2 -5
- package/build/src/background-jobs/worker.d.ts.map +1 -1
- package/build/src/background-jobs/worker.js +2 -4
- package/build/src/beacon/client.d.ts.map +1 -1
- package/build/src/beacon/client.js +3 -7
- package/build/src/cli/tenant-database-command-helper.d.ts.map +1 -1
- package/build/src/cli/tenant-database-command-helper.js +2 -4
- package/build/src/configuration.d.ts.map +1 -1
- package/build/src/configuration.js +27 -35
- package/build/src/controller.d.ts.map +1 -1
- package/build/src/controller.js +5 -15
- package/build/src/database/drivers/mssql/index.d.ts.map +1 -1
- package/build/src/database/drivers/mssql/index.js +2 -4
- package/build/src/database/drivers/mysql/index.d.ts.map +1 -1
- package/build/src/database/drivers/mysql/index.js +3 -7
- package/build/src/database/drivers/pgsql/index.d.ts.map +1 -1
- package/build/src/database/drivers/pgsql/index.js +2 -4
- package/build/src/database/drivers/sqlite/base.d.ts.map +1 -1
- package/build/src/database/drivers/sqlite/base.js +4 -10
- package/build/src/database/drivers/sqlite/index.d.ts.map +1 -1
- package/build/src/database/drivers/sqlite/index.js +4 -10
- package/build/src/database/drivers/sqlite/table.d.ts.map +1 -1
- package/build/src/database/drivers/sqlite/table.js +2 -4
- package/build/src/database/migrator.d.ts.map +1 -1
- package/build/src/database/migrator.js +2 -4
- package/build/src/database/pool/async-tracked-multi-connection.d.ts.map +1 -1
- package/build/src/database/pool/async-tracked-multi-connection.js +21 -47
- package/build/src/database/pool/base-methods-forward.d.ts.map +1 -1
- package/build/src/database/pool/base-methods-forward.js +3 -11
- package/build/src/database/pool/base.d.ts.map +1 -1
- package/build/src/database/pool/base.js +6 -16
- package/build/src/database/query/index.d.ts.map +1 -1
- package/build/src/database/query/index.js +5 -13
- package/build/src/database/query/join-object.d.ts.map +1 -1
- package/build/src/database/query/join-object.js +4 -10
- package/build/src/database/query/model-class-query.d.ts.map +1 -1
- package/build/src/database/query/model-class-query.js +22 -64
- package/build/src/database/query/preloader/belongs-to.d.ts.map +1 -1
- package/build/src/database/query/preloader/belongs-to.js +10 -28
- package/build/src/database/query/preloader/has-many.d.ts.map +1 -1
- package/build/src/database/query/preloader/has-many.js +8 -22
- package/build/src/database/query/preloader/has-one.d.ts.map +1 -1
- package/build/src/database/query/preloader/has-one.js +4 -10
- package/build/src/database/query/preloader.d.ts.map +1 -1
- package/build/src/database/query/preloader.js +7 -20
- package/build/src/database/query/query-data.d.ts.map +1 -1
- package/build/src/database/query/query-data.js +6 -16
- package/build/src/database/query/where-model-class-hash.d.ts.map +1 -1
- package/build/src/database/query/where-model-class-hash.js +6 -16
- package/build/src/database/query/with-count.d.ts.map +1 -1
- package/build/src/database/query/with-count.js +6 -17
- package/build/src/database/record/acts-as-list.d.ts.map +1 -1
- package/build/src/database/record/acts-as-list.js +11 -47
- package/build/src/database/record/attachments/normalize-input.d.ts.map +1 -1
- package/build/src/database/record/attachments/normalize-input.js +8 -30
- package/build/src/database/record/attachments/storage-drivers/s3.d.ts.map +1 -1
- package/build/src/database/record/attachments/storage-drivers/s3.js +5 -13
- package/build/src/database/record/attachments/store.d.ts.map +1 -1
- package/build/src/database/record/attachments/store.js +3 -7
- package/build/src/database/record/index.d.ts +4 -9
- package/build/src/database/record/index.d.ts.map +1 -1
- package/build/src/database/record/index.js +53 -173
- package/build/src/database/record/instance-relationships/base.d.ts.map +1 -1
- package/build/src/database/record/instance-relationships/base.js +7 -21
- package/build/src/database/record/instance-relationships/belongs-to.d.ts.map +1 -1
- package/build/src/database/record/instance-relationships/belongs-to.js +3 -7
- package/build/src/database/record/instance-relationships/has-many.d.ts.map +1 -1
- package/build/src/database/record/instance-relationships/has-many.js +5 -13
- package/build/src/database/record/instance-relationships/has-one.d.ts.map +1 -1
- package/build/src/database/record/instance-relationships/has-one.js +5 -13
- package/build/src/database/record/relationships/base.d.ts.map +1 -1
- package/build/src/database/record/relationships/base.js +2 -6
- package/build/src/database/record/validators/presence.d.ts.map +1 -1
- package/build/src/database/record/validators/presence.js +2 -4
- package/build/src/database/record/validators/uniqueness.d.ts.map +1 -1
- package/build/src/database/record/validators/uniqueness.js +5 -14
- package/build/src/environment-handlers/browser.d.ts.map +1 -1
- package/build/src/environment-handlers/browser.js +2 -4
- package/build/src/environment-handlers/node/cli/commands/console.d.ts.map +1 -1
- package/build/src/environment-handlers/node/cli/commands/console.js +3 -7
- 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/schema/load.js +2 -4
- package/build/src/environment-handlers/node/cli/commands/generate/frontend-models.d.ts +38 -0
- package/build/src/environment-handlers/node/cli/commands/generate/frontend-models.d.ts.map +1 -1
- package/build/src/environment-handlers/node/cli/commands/generate/frontend-models.js +58 -12
- package/build/src/environment-handlers/node.d.ts.map +1 -1
- package/build/src/environment-handlers/node.js +16 -7
- package/build/src/frontend-model-controller.d.ts.map +1 -1
- package/build/src/frontend-model-controller.js +35 -114
- package/build/src/frontend-models/base.d.ts.map +1 -1
- package/build/src/frontend-models/base.js +46 -158
- package/build/src/frontend-models/clear-pending-debounced-callback.d.ts.map +1 -1
- package/build/src/frontend-models/clear-pending-debounced-callback.js +2 -4
- package/build/src/frontend-models/preloader.d.ts.map +1 -1
- package/build/src/frontend-models/preloader.js +4 -11
- package/build/src/frontend-models/query.d.ts.map +1 -1
- package/build/src/frontend-models/query.js +12 -34
- package/build/src/frontend-models/resource-definition.d.ts.map +1 -1
- package/build/src/frontend-models/resource-definition.js +3 -7
- package/build/src/frontend-models/transport-serialization.d.ts.map +1 -1
- package/build/src/frontend-models/transport-serialization.js +8 -23
- package/build/src/frontend-models/use-destroyed-event.js +3 -7
- package/build/src/frontend-models/use-model-class-event.d.ts.map +1 -1
- package/build/src/frontend-models/use-model-class-event.js +3 -7
- package/build/src/frontend-models/use-updated-event.d.ts.map +1 -1
- package/build/src/frontend-models/use-updated-event.js +4 -10
- package/build/src/frontend-models/websocket-channel.d.ts.map +1 -1
- package/build/src/frontend-models/websocket-channel.js +10 -32
- package/build/src/frontend-models/websocket-publishers.d.ts.map +1 -1
- package/build/src/frontend-models/websocket-publishers.js +14 -25
- package/build/src/http-server/client/index.d.ts.map +1 -1
- package/build/src/http-server/client/index.js +7 -21
- package/build/src/http-server/client/params-to-object.d.ts.map +1 -1
- package/build/src/http-server/client/params-to-object.js +7 -21
- package/build/src/http-server/client/request-buffer/index.d.ts.map +1 -1
- package/build/src/http-server/client/request-buffer/index.js +2 -4
- package/build/src/http-server/client/request-parser.d.ts.map +1 -1
- package/build/src/http-server/client/request-parser.js +2 -4
- package/build/src/http-server/client/request-runner.d.ts.map +1 -1
- package/build/src/http-server/client/request-runner.js +5 -14
- package/build/src/http-server/client/websocket-session.d.ts.map +1 -1
- package/build/src/http-server/client/websocket-session.js +7 -20
- package/build/src/http-server/development-reloader.d.ts.map +1 -1
- package/build/src/http-server/development-reloader.js +3 -7
- package/build/src/http-server/remote-address.d.ts.map +1 -1
- package/build/src/http-server/remote-address.js +2 -6
- package/build/src/http-server/server-client.d.ts.map +1 -1
- package/build/src/http-server/server-client.js +4 -10
- package/build/src/http-server/server-lock.d.ts.map +1 -1
- package/build/src/http-server/server-lock.js +3 -7
- package/build/src/http-server/websocket-channel-subscribers.d.ts.map +1 -1
- package/build/src/http-server/websocket-channel-subscribers.js +3 -7
- package/build/src/http-server/websocket-event-log-store.d.ts.map +1 -1
- package/build/src/http-server/websocket-event-log-store.js +6 -16
- package/build/src/http-server/websocket-events-host.d.ts.map +1 -1
- package/build/src/http-server/websocket-events-host.js +2 -5
- package/build/src/http-server/worker-handler/in-process.d.ts.map +1 -1
- package/build/src/http-server/worker-handler/in-process.js +4 -12
- package/build/src/http-server/worker-handler/worker-thread.d.ts.map +1 -1
- package/build/src/http-server/worker-handler/worker-thread.js +2 -4
- package/build/src/logger.d.ts.map +1 -1
- package/build/src/logger.js +3 -7
- package/build/src/mailer/backends/smtp.d.ts.map +1 -1
- package/build/src/mailer/backends/smtp.js +2 -6
- package/build/src/mailer/base.d.ts.map +1 -1
- package/build/src/mailer/base.js +5 -17
- package/build/src/plugins/sqljs-wasm-route-controller.d.ts.map +1 -1
- package/build/src/plugins/sqljs-wasm-route-controller.js +2 -4
- package/build/src/routes/basic-route.d.ts.map +1 -1
- package/build/src/routes/basic-route.js +2 -4
- package/build/src/routes/resolver.d.ts.map +1 -1
- package/build/src/routes/resolver.js +5 -15
- package/build/src/testing/expect-utils.d.ts.map +1 -1
- package/build/src/testing/expect-utils.js +9 -27
- package/build/src/testing/expect.d.ts.map +1 -1
- package/build/src/testing/expect.js +5 -15
- package/build/src/testing/test-runner.d.ts.map +1 -1
- package/build/src/testing/test-runner.js +4 -10
- package/build/src/testing/test.d.ts.map +1 -1
- package/build/src/testing/test.js +5 -17
- package/build/src/utils/model-scope.d.ts.map +1 -1
- package/build/src/utils/model-scope.js +2 -5
- package/build/src/utils/ransack.d.ts.map +1 -1
- package/build/src/utils/ransack.js +15 -42
- package/build/src/utils/with-tracked-stack-async-hooks.d.ts.map +1 -1
- package/build/src/utils/with-tracked-stack-async-hooks.js +4 -12
- package/build/src/utils/with-tracked-stack.d.ts.map +1 -1
- package/build/src/utils/with-tracked-stack.js +3 -8
- package/build/testing/expect-utils.js +8 -26
- package/build/testing/expect.js +4 -14
- package/build/testing/test-runner.js +3 -9
- package/build/testing/test.js +4 -12
- package/build/utils/model-scope.js +1 -3
- package/build/utils/ransack.js +15 -41
- package/build/utils/with-tracked-stack-async-hooks.js +3 -9
- package/build/utils/with-tracked-stack.js +2 -6
- package/package.json +3 -2
- package/src/application.js +1 -3
- package/src/background-jobs/cron-expression.js +1 -3
- package/src/background-jobs/forked-runner-child.js +1 -3
- package/src/background-jobs/job.js +1 -3
- package/src/background-jobs/scheduler.js +2 -6
- package/src/background-jobs/store.js +2 -6
- package/src/background-jobs/web/controller.js +1 -3
- package/src/background-jobs/worker.js +1 -3
- package/src/beacon/client.js +2 -6
- package/src/cli/tenant-database-command-helper.js +1 -3
- package/src/configuration.js +29 -32
- package/src/controller.js +4 -14
- package/src/database/drivers/mssql/index.js +1 -3
- package/src/database/drivers/mysql/index.js +2 -6
- package/src/database/drivers/pgsql/index.js +1 -3
- package/src/database/drivers/sqlite/base.js +3 -9
- package/src/database/drivers/sqlite/index.js +3 -9
- package/src/database/drivers/sqlite/table.js +1 -3
- package/src/database/migrator.js +1 -3
- package/src/database/pool/async-tracked-multi-connection.js +20 -45
- package/src/database/pool/base-methods-forward.js +2 -10
- package/src/database/pool/base.js +5 -15
- package/src/database/query/index.js +4 -12
- package/src/database/query/join-object.js +3 -9
- package/src/database/query/model-class-query.js +21 -63
- package/src/database/query/preloader/belongs-to.js +9 -27
- package/src/database/query/preloader/has-many.js +7 -21
- package/src/database/query/preloader/has-one.js +3 -9
- package/src/database/query/preloader.js +6 -18
- package/src/database/query/query-data.js +5 -15
- package/src/database/query/where-model-class-hash.js +5 -15
- package/src/database/query/with-count.js +5 -15
- package/src/database/record/acts-as-list.js +10 -38
- package/src/database/record/attachments/normalize-input.js +7 -25
- package/src/database/record/attachments/storage-drivers/s3.js +4 -12
- package/src/database/record/attachments/store.js +2 -6
- package/src/database/record/index.js +55 -171
- package/src/database/record/instance-relationships/base.js +6 -20
- package/src/database/record/instance-relationships/belongs-to.js +2 -6
- package/src/database/record/instance-relationships/has-many.js +4 -12
- package/src/database/record/instance-relationships/has-one.js +4 -12
- package/src/database/record/relationships/base.js +1 -5
- package/src/database/record/validators/presence.js +1 -3
- package/src/database/record/validators/uniqueness.js +4 -12
- package/src/environment-handlers/browser.js +1 -3
- package/src/environment-handlers/node/cli/commands/console.js +2 -6
- package/src/environment-handlers/node/cli/commands/db/schema/load.js +1 -3
- package/src/environment-handlers/node/cli/commands/generate/frontend-models.js +67 -11
- package/src/environment-handlers/node.js +15 -6
- package/src/frontend-model-controller.js +34 -110
- package/src/frontend-models/base.js +45 -151
- package/src/frontend-models/clear-pending-debounced-callback.js +1 -3
- package/src/frontend-models/preloader.js +3 -9
- package/src/frontend-models/query.js +11 -33
- package/src/frontend-models/resource-definition.js +2 -6
- package/src/frontend-models/transport-serialization.js +7 -21
- package/src/frontend-models/use-destroyed-event.js +2 -6
- package/src/frontend-models/use-model-class-event.js +2 -6
- package/src/frontend-models/use-updated-event.js +3 -9
- package/src/frontend-models/websocket-channel.js +9 -27
- package/src/frontend-models/websocket-publishers.js +12 -23
- package/src/http-server/client/index.js +6 -18
- package/src/http-server/client/params-to-object.js +6 -18
- package/src/http-server/client/request-buffer/index.js +1 -3
- package/src/http-server/client/request-parser.js +1 -3
- package/src/http-server/client/request-runner.js +4 -12
- package/src/http-server/client/websocket-session.js +6 -18
- package/src/http-server/development-reloader.js +2 -6
- package/src/http-server/remote-address.js +1 -5
- package/src/http-server/server-client.js +3 -9
- package/src/http-server/server-lock.js +2 -6
- package/src/http-server/websocket-channel-subscribers.js +2 -6
- package/src/http-server/websocket-event-log-store.js +5 -15
- package/src/http-server/websocket-events-host.js +1 -3
- package/src/http-server/worker-handler/in-process.js +3 -11
- package/src/http-server/worker-handler/worker-thread.js +1 -3
- package/src/logger.js +2 -6
- package/src/mailer/backends/smtp.js +1 -5
- package/src/mailer/base.js +4 -16
- package/src/plugins/sqljs-wasm-route-controller.js +1 -3
- package/src/routes/basic-route.js +1 -3
- package/src/routes/resolver.js +4 -14
- package/src/testing/expect-utils.js +8 -26
- package/src/testing/expect.js +4 -14
- package/src/testing/test-runner.js +3 -9
- package/src/testing/test.js +4 -12
- package/src/utils/model-scope.js +1 -3
- package/src/utils/ransack.js +15 -41
- package/src/utils/with-tracked-stack-async-hooks.js +3 -9
- package/src/utils/with-tracked-stack.js +2 -6
|
@@ -587,9 +587,7 @@ export default class FrontendModelController extends Controller {
|
|
|
587
587
|
return this._frontendModelParamsOverride
|
|
588
588
|
}
|
|
589
589
|
|
|
590
|
-
this._frontendModelParams ||= /**
|
|
591
|
-
* Types the following value.
|
|
592
|
-
* @type {Record<string, ?>} */ (deserializeFrontendModelTransportValue(this.params()))
|
|
590
|
+
this._frontendModelParams ||= /** @type {Record<string, ?>} */ (deserializeFrontendModelTransportValue(this.params()))
|
|
593
591
|
|
|
594
592
|
return this._frontendModelParams
|
|
595
593
|
}
|
|
@@ -858,9 +856,7 @@ export default class FrontendModelController extends Controller {
|
|
|
858
856
|
await this.ensureFrontendModelPreloadClassesInitialized({
|
|
859
857
|
backendProject,
|
|
860
858
|
modelClass: targetModelClass,
|
|
861
|
-
preload: /**
|
|
862
|
-
* Types the following value.
|
|
863
|
-
* @type {import("./database/query/index.js").NestedPreloadRecord} */ (relationshipPreload)
|
|
859
|
+
preload: /** @type {import("./database/query/index.js").NestedPreloadRecord} */ (relationshipPreload)
|
|
864
860
|
})
|
|
865
861
|
}
|
|
866
862
|
}
|
|
@@ -1453,9 +1449,7 @@ export default class FrontendModelController extends Controller {
|
|
|
1453
1449
|
if (!Array.isArray(entry.actions)) continue
|
|
1454
1450
|
|
|
1455
1451
|
const actions = entry.actions.filter(
|
|
1456
|
-
(/**
|
|
1457
|
-
* Types the following value.
|
|
1458
|
-
* @type {?} */ action) => typeof action === "string" && action.length > 0
|
|
1452
|
+
(/** @type {?} */ action) => typeof action === "string" && action.length > 0
|
|
1459
1453
|
)
|
|
1460
1454
|
|
|
1461
1455
|
if (actions.length === 0) continue
|
|
@@ -1665,15 +1659,11 @@ export default class FrontendModelController extends Controller {
|
|
|
1665
1659
|
if (aliases.length === 1) {
|
|
1666
1660
|
const [alias] = aliases
|
|
1667
1661
|
|
|
1668
|
-
return rows.map((row) => /**
|
|
1669
|
-
* Types the following value.
|
|
1670
|
-
* @type {Record<string, ?>} */ (row)[alias])
|
|
1662
|
+
return rows.map((row) => /** @type {Record<string, ?>} */ (row)[alias])
|
|
1671
1663
|
}
|
|
1672
1664
|
|
|
1673
1665
|
return rows.map((row) => {
|
|
1674
|
-
const rowHash = /**
|
|
1675
|
-
* Types the following value.
|
|
1676
|
-
* @type {Record<string, ?>} */ (row)
|
|
1666
|
+
const rowHash = /** @type {Record<string, ?>} */ (row)
|
|
1677
1667
|
|
|
1678
1668
|
return aliases.map((alias) => rowHash[alias])
|
|
1679
1669
|
})
|
|
@@ -2009,9 +1999,7 @@ export default class FrontendModelController extends Controller {
|
|
|
2009
1999
|
if (typeof entry === "string") return entry
|
|
2010
2000
|
if (!entry || typeof entry !== "object") return null
|
|
2011
2001
|
|
|
2012
|
-
const name = /**
|
|
2013
|
-
* Types the following value.
|
|
2014
|
-
* @type {Record<string, ?>} */ (entry).name
|
|
2002
|
+
const name = /** @type {Record<string, ?>} */ (entry).name
|
|
2015
2003
|
|
|
2016
2004
|
return typeof name === "string" && name.length > 0 ? name : null
|
|
2017
2005
|
})
|
|
@@ -2324,19 +2312,13 @@ export default class FrontendModelController extends Controller {
|
|
|
2324
2312
|
if (!selectedAttributes) return query
|
|
2325
2313
|
|
|
2326
2314
|
const resource = this.frontendModelResourceInstance()
|
|
2327
|
-
const resourceClass = /**
|
|
2328
|
-
* Types the following value.
|
|
2329
|
-
* @type {typeof import("./frontend-model-resource/base-resource.js").default} */ (resource.constructor)
|
|
2315
|
+
const resourceClass = /** @type {typeof import("./frontend-model-resource/base-resource.js").default} */ (resource.constructor)
|
|
2330
2316
|
const translatedSet = new Set(resourceClass.translatedAttributes || [])
|
|
2331
2317
|
let needsTranslations = false
|
|
2332
2318
|
|
|
2333
2319
|
for (const attributeName of selectedAttributes) {
|
|
2334
2320
|
const hookName = `${attributeName}AttributeSelected`
|
|
2335
|
-
const dynamicResource = /**
|
|
2336
|
-
* Types the following value.
|
|
2337
|
-
* @type {Record<string, ?>} */ (/**
|
|
2338
|
-
* Types the following value.
|
|
2339
|
-
* @type {?} */ (resource))
|
|
2321
|
+
const dynamicResource = /** @type {Record<string, ?>} */ (/** @type {?} */ (resource))
|
|
2340
2322
|
|
|
2341
2323
|
if (typeof dynamicResource[hookName] === "function") {
|
|
2342
2324
|
const result = dynamicResource[hookName]({query})
|
|
@@ -2524,17 +2506,13 @@ export default class FrontendModelController extends Controller {
|
|
|
2524
2506
|
.filter((entry) => {
|
|
2525
2507
|
if (typeof entry === "string") return true
|
|
2526
2508
|
|
|
2527
|
-
const config = /**
|
|
2528
|
-
* Types the following value.
|
|
2529
|
-
* @type {Record<string, ?>} */ (entry)
|
|
2509
|
+
const config = /** @type {Record<string, ?>} */ (entry)
|
|
2530
2510
|
|
|
2531
2511
|
if (config && config.selectedByDefault === false) return false
|
|
2532
2512
|
|
|
2533
2513
|
return true
|
|
2534
2514
|
})
|
|
2535
|
-
.map((entry) => typeof entry === "string" ? entry : /**
|
|
2536
|
-
* Types the following value.
|
|
2537
|
-
* @type {Record<string, ?>} */ (entry).name)
|
|
2515
|
+
.map((entry) => typeof entry === "string" ? entry : /** @type {Record<string, ?>} */ (entry).name)
|
|
2538
2516
|
}
|
|
2539
2517
|
|
|
2540
2518
|
if (typeof attributes === "object") {
|
|
@@ -2556,9 +2534,7 @@ export default class FrontendModelController extends Controller {
|
|
|
2556
2534
|
* @returns {Promise<Record<string, ?>>} - Serialized attributes filtered by select map.
|
|
2557
2535
|
*/
|
|
2558
2536
|
async serializeFrontendModelAttributes(model) {
|
|
2559
|
-
const modelClass = /**
|
|
2560
|
-
* Types the following value.
|
|
2561
|
-
* @type {typeof import("./database/record/index.js").default} */ (model.constructor)
|
|
2537
|
+
const modelClass = /** @type {typeof import("./database/record/index.js").default} */ (model.constructor)
|
|
2562
2538
|
const modelAttributes = model.attributes()
|
|
2563
2539
|
const selectedAttributes = this.frontendModelEffectiveSelectedAttributesForModelClass(modelClass, Object.keys(modelAttributes))
|
|
2564
2540
|
const defaultAttributes = this.frontendModelDefaultAttributesForModelClass(modelClass)
|
|
@@ -2577,11 +2553,7 @@ export default class FrontendModelController extends Controller {
|
|
|
2577
2553
|
const resourceHasAttribute = (attributeName) => {
|
|
2578
2554
|
const methodName = resourceAttributeMethodName(attributeName)
|
|
2579
2555
|
|
|
2580
|
-
return resourceInstance && typeof /**
|
|
2581
|
-
* Types the following value.
|
|
2582
|
-
* @type {Record<string, ?>} */ (/**
|
|
2583
|
-
* Types the following value.
|
|
2584
|
-
* @type {?} */ (resourceInstance))[methodName] === "function"
|
|
2556
|
+
return resourceInstance && typeof /** @type {Record<string, ?>} */ (/** @type {?} */ (resourceInstance))[methodName] === "function"
|
|
2585
2557
|
}
|
|
2586
2558
|
|
|
2587
2559
|
/**
|
|
@@ -2614,11 +2586,7 @@ export default class FrontendModelController extends Controller {
|
|
|
2614
2586
|
if (resourceHasAttribute(attributeName)) {
|
|
2615
2587
|
const methodName = resourceAttributeMethodName(attributeName)
|
|
2616
2588
|
|
|
2617
|
-
return await /**
|
|
2618
|
-
* Types the following value.
|
|
2619
|
-
* @type {Record<string, Function>} */ (/**
|
|
2620
|
-
* Types the following value.
|
|
2621
|
-
* @type {?} */ (resourceInstance))[methodName](model)
|
|
2589
|
+
return await /** @type {Record<string, Function>} */ (/** @type {?} */ (resourceInstance))[methodName](model)
|
|
2622
2590
|
}
|
|
2623
2591
|
|
|
2624
2592
|
// Fall back to model method
|
|
@@ -2637,9 +2605,7 @@ export default class FrontendModelController extends Controller {
|
|
|
2637
2605
|
* @param {string} attributeName - Attribute name.
|
|
2638
2606
|
*/
|
|
2639
2607
|
const attributeExists = (attributeName) => {
|
|
2640
|
-
return (attributeName in modelAttributes) || (attributeName in /**
|
|
2641
|
-
* Types the following value.
|
|
2642
|
-
* @type {Record<string, ?>} */ (model)) || resourceHasAttribute(attributeName)
|
|
2608
|
+
return (attributeName in modelAttributes) || (attributeName in /** @type {Record<string, ?>} */ (model)) || resourceHasAttribute(attributeName)
|
|
2643
2609
|
}
|
|
2644
2610
|
|
|
2645
2611
|
if (!selectedAttributes) {
|
|
@@ -2687,9 +2653,7 @@ export default class FrontendModelController extends Controller {
|
|
|
2687
2653
|
|
|
2688
2654
|
const configuration = this.getConfiguration()
|
|
2689
2655
|
const backendProjects = configuration.getBackendProjects()
|
|
2690
|
-
const modelClassName = /**
|
|
2691
|
-
* Types the following value.
|
|
2692
|
-
* @type {typeof import("./database/record/index.js").default} */ (model.constructor).getModelName()
|
|
2656
|
+
const modelClassName = /** @type {typeof import("./database/record/index.js").default} */ (model.constructor).getModelName()
|
|
2693
2657
|
|
|
2694
2658
|
for (const backendProject of backendProjects) {
|
|
2695
2659
|
const resources = frontendModelResourcesWithBuiltInsForBackendProject(backendProject)
|
|
@@ -2701,9 +2665,7 @@ export default class FrontendModelController extends Controller {
|
|
|
2701
2665
|
ability: this.currentAbility(),
|
|
2702
2666
|
context: this.currentAbility()?.getContext() || {},
|
|
2703
2667
|
locals: this.currentAbility()?.getLocals() || {},
|
|
2704
|
-
modelClass: /**
|
|
2705
|
-
* Types the following value.
|
|
2706
|
-
* @type {typeof import("./database/record/index.js").default} */ (model.constructor),
|
|
2668
|
+
modelClass: /** @type {typeof import("./database/record/index.js").default} */ (model.constructor),
|
|
2707
2669
|
modelName: modelClassName,
|
|
2708
2670
|
params: {},
|
|
2709
2671
|
resourceConfiguration: resourceClass.resourceConfig()
|
|
@@ -2731,9 +2693,7 @@ export default class FrontendModelController extends Controller {
|
|
|
2731
2693
|
const modelsByClass = new Map()
|
|
2732
2694
|
|
|
2733
2695
|
for (const model of models) {
|
|
2734
|
-
const relatedModelClass = /**
|
|
2735
|
-
* Types the following value.
|
|
2736
|
-
* @type {typeof import("./database/record/index.js").default} */ (model.constructor)
|
|
2696
|
+
const relatedModelClass = /** @type {typeof import("./database/record/index.js").default} */ (model.constructor)
|
|
2737
2697
|
const existingModelsForClass = modelsByClass.get(relatedModelClass) || []
|
|
2738
2698
|
|
|
2739
2699
|
existingModelsForClass.push(model)
|
|
@@ -2786,9 +2746,7 @@ export default class FrontendModelController extends Controller {
|
|
|
2786
2746
|
}
|
|
2787
2747
|
|
|
2788
2748
|
return models.filter((model) => {
|
|
2789
|
-
const relatedModelClass = /**
|
|
2790
|
-
* Types the following value.
|
|
2791
|
-
* @type {typeof import("./database/record/index.js").default} */ (model.constructor)
|
|
2749
|
+
const relatedModelClass = /** @type {typeof import("./database/record/index.js").default} */ (model.constructor)
|
|
2792
2750
|
const authorizedIds = authorizedIdsByClass.get(relatedModelClass)
|
|
2793
2751
|
const primaryKey = primaryKeysByClass.get(relatedModelClass)
|
|
2794
2752
|
|
|
@@ -2808,9 +2766,7 @@ export default class FrontendModelController extends Controller {
|
|
|
2808
2766
|
* @returns {value is import("./database/record/index.js").default} - Whether value behaves like a model.
|
|
2809
2767
|
*/
|
|
2810
2768
|
isSerializableFrontendModel(value) {
|
|
2811
|
-
return Boolean(value && typeof value === "object" && typeof /**
|
|
2812
|
-
* Types the following value.
|
|
2813
|
-
* @type {?} */ (value).attributes === "function")
|
|
2769
|
+
return Boolean(value && typeof value === "object" && typeof /** @type {?} */ (value).attributes === "function")
|
|
2814
2770
|
}
|
|
2815
2771
|
|
|
2816
2772
|
/**
|
|
@@ -2836,9 +2792,7 @@ export default class FrontendModelController extends Controller {
|
|
|
2836
2792
|
const singularRelationshipEntries = []
|
|
2837
2793
|
|
|
2838
2794
|
models.forEach((model, modelIndex) => {
|
|
2839
|
-
const modelClass = /**
|
|
2840
|
-
* Types the following value.
|
|
2841
|
-
* @type {typeof import("./database/record/index.js").default} */ (model.constructor)
|
|
2795
|
+
const modelClass = /** @type {typeof import("./database/record/index.js").default} */ (model.constructor)
|
|
2842
2796
|
const relationshipsMap = modelClass.getRelationshipsMap()
|
|
2843
2797
|
const resource = this._serializationResourceInstanceForModel(model)
|
|
2844
2798
|
const resourceConfiguration = resource ? resource.resourceConfiguration() : null
|
|
@@ -2962,12 +2916,8 @@ export default class FrontendModelController extends Controller {
|
|
|
2962
2916
|
async frontendModelRenderError(errorMessage) {
|
|
2963
2917
|
await this.logger.error(`Frontend model request failed: ${errorMessage}`)
|
|
2964
2918
|
|
|
2965
|
-
const renderError = /**
|
|
2966
|
-
|
|
2967
|
-
* @type {((errorMessage: string) => Promise<void>) | undefined} */ (
|
|
2968
|
-
/**
|
|
2969
|
-
* Types the following value.
|
|
2970
|
-
* @type {?} */ (this).renderError
|
|
2919
|
+
const renderError = /** @type {((errorMessage: string) => Promise<void>) | undefined} */ (
|
|
2920
|
+
/** @type {?} */ (this).renderError
|
|
2971
2921
|
)
|
|
2972
2922
|
|
|
2973
2923
|
if (typeof renderError === "function") {
|
|
@@ -2976,9 +2926,7 @@ export default class FrontendModelController extends Controller {
|
|
|
2976
2926
|
}
|
|
2977
2927
|
|
|
2978
2928
|
await this.render({
|
|
2979
|
-
json: /**
|
|
2980
|
-
* Types the following value.
|
|
2981
|
-
* @type {Record<string, ?>} */ (serializeFrontendModelTransportValue({
|
|
2929
|
+
json: /** @type {Record<string, ?>} */ (serializeFrontendModelTransportValue({
|
|
2982
2930
|
errorMessage: frontendModelClientSafeErrorMessage,
|
|
2983
2931
|
status: "error"
|
|
2984
2932
|
}))
|
|
@@ -3141,9 +3089,7 @@ export default class FrontendModelController extends Controller {
|
|
|
3141
3089
|
if (!responsePayload) return
|
|
3142
3090
|
|
|
3143
3091
|
await this.render({
|
|
3144
|
-
json: /**
|
|
3145
|
-
* Types the following value.
|
|
3146
|
-
* @type {Record<string, ?>} */ (serializeFrontendModelTransportValue(responsePayload))
|
|
3092
|
+
json: /** @type {Record<string, ?>} */ (serializeFrontendModelTransportValue(responsePayload))
|
|
3147
3093
|
})
|
|
3148
3094
|
} catch (error) {
|
|
3149
3095
|
const errorContext = this.frontendModelEndpointErrorContext({action, commandType: action, error})
|
|
@@ -3151,9 +3097,7 @@ export default class FrontendModelController extends Controller {
|
|
|
3151
3097
|
await this.frontendModelLogEndpointError({action, commandType: action, error, model: errorContext.model})
|
|
3152
3098
|
|
|
3153
3099
|
await this.render({
|
|
3154
|
-
json: /**
|
|
3155
|
-
* Types the following value.
|
|
3156
|
-
* @type {Record<string, ?>} */ (serializeFrontendModelTransportValue(await this.frontendModelClientErrorPayloadForError(error, errorContext)))
|
|
3100
|
+
json: /** @type {Record<string, ?>} */ (serializeFrontendModelTransportValue(await this.frontendModelClientErrorPayloadForError(error, errorContext)))
|
|
3157
3101
|
})
|
|
3158
3102
|
}
|
|
3159
3103
|
}
|
|
@@ -3386,9 +3330,7 @@ export default class FrontendModelController extends Controller {
|
|
|
3386
3330
|
return
|
|
3387
3331
|
}
|
|
3388
3332
|
|
|
3389
|
-
const params = /**
|
|
3390
|
-
* Types the following value.
|
|
3391
|
-
* @type {Record<string, ?>} */ (deserializeFrontendModelTransportValue(this.params()))
|
|
3333
|
+
const params = /** @type {Record<string, ?>} */ (deserializeFrontendModelTransportValue(this.params()))
|
|
3392
3334
|
const requests = Array.isArray(params.requests) ? params.requests : [params]
|
|
3393
3335
|
/**
|
|
3394
3336
|
* Responses.
|
|
@@ -3470,9 +3412,7 @@ export default class FrontendModelController extends Controller {
|
|
|
3470
3412
|
}
|
|
3471
3413
|
|
|
3472
3414
|
await this.render({
|
|
3473
|
-
json: /**
|
|
3474
|
-
* Types the following value.
|
|
3475
|
-
* @type {Record<string, ?>} */ (serializeFrontendModelTransportValue({
|
|
3415
|
+
json: /** @type {Record<string, ?>} */ (serializeFrontendModelTransportValue({
|
|
3476
3416
|
responses,
|
|
3477
3417
|
status: "success"
|
|
3478
3418
|
}))
|
|
@@ -3527,20 +3467,14 @@ export default class FrontendModelController extends Controller {
|
|
|
3527
3467
|
configuration,
|
|
3528
3468
|
controller,
|
|
3529
3469
|
params: controllerParams,
|
|
3530
|
-
request: /**
|
|
3531
|
-
* Types the following value.
|
|
3532
|
-
* @type {import("./http-server/client/request.js").default} */ (this.getRequest()),
|
|
3470
|
+
request: /** @type {import("./http-server/client/request.js").default} */ (this.getRequest()),
|
|
3533
3471
|
response,
|
|
3534
3472
|
viewPath
|
|
3535
3473
|
})
|
|
3536
3474
|
|
|
3537
3475
|
await this.withFrontendModelRequestContext(controllerParams, response, async () => {
|
|
3538
3476
|
await controllerInstance._runBeforeCallbacks()
|
|
3539
|
-
const controllerMethods = /**
|
|
3540
|
-
* Types the following value.
|
|
3541
|
-
* @type {Record<string, () => Promise<void> | void>} */ (/**
|
|
3542
|
-
* Types the following value.
|
|
3543
|
-
* @type {?} */ (controllerInstance))
|
|
3477
|
+
const controllerMethods = /** @type {Record<string, () => Promise<void> | void>} */ (/** @type {?} */ (controllerInstance))
|
|
3544
3478
|
|
|
3545
3479
|
await controllerMethods[action]()
|
|
3546
3480
|
})
|
|
@@ -3680,9 +3614,7 @@ export default class FrontendModelController extends Controller {
|
|
|
3680
3614
|
const responsePayload = await this.frontendModelCustomCommandPayload()
|
|
3681
3615
|
|
|
3682
3616
|
await this.render({
|
|
3683
|
-
json: /**
|
|
3684
|
-
* Types the following value.
|
|
3685
|
-
* @type {Record<string, ?>} */ (serializeFrontendModelTransportValue(responsePayload))
|
|
3617
|
+
json: /** @type {Record<string, ?>} */ (serializeFrontendModelTransportValue(responsePayload))
|
|
3686
3618
|
})
|
|
3687
3619
|
} catch (error) {
|
|
3688
3620
|
const errorContext = this.frontendModelEndpointErrorContext({action: "frontendCustomCommand", commandType: "custom-command", error})
|
|
@@ -3690,9 +3622,7 @@ export default class FrontendModelController extends Controller {
|
|
|
3690
3622
|
await this.frontendModelLogEndpointError({action: errorContext.action, commandType: errorContext.commandType, error, model: errorContext.model})
|
|
3691
3623
|
|
|
3692
3624
|
await this.render({
|
|
3693
|
-
json: /**
|
|
3694
|
-
* Types the following value.
|
|
3695
|
-
* @type {Record<string, ?>} */ (serializeFrontendModelTransportValue(await this.frontendModelClientErrorPayloadForError(error, errorContext)))
|
|
3625
|
+
json: /** @type {Record<string, ?>} */ (serializeFrontendModelTransportValue(await this.frontendModelClientErrorPayloadForError(error, errorContext)))
|
|
3696
3626
|
})
|
|
3697
3627
|
}
|
|
3698
3628
|
}
|
|
@@ -3714,9 +3644,7 @@ export default class FrontendModelController extends Controller {
|
|
|
3714
3644
|
return this.frontendModelErrorPayload("Expected frontend-model custom command scope.")
|
|
3715
3645
|
}
|
|
3716
3646
|
|
|
3717
|
-
const resource = /**
|
|
3718
|
-
* Types the following value.
|
|
3719
|
-
* @type {Record<string, ?>} */ (this.frontendModelResourceInstance())
|
|
3647
|
+
const resource = /** @type {Record<string, ?>} */ (this.frontendModelResourceInstance())
|
|
3720
3648
|
const commandMethod = resource[methodName]
|
|
3721
3649
|
|
|
3722
3650
|
if (typeof commandMethod !== "function") {
|
|
@@ -3732,9 +3660,7 @@ export default class FrontendModelController extends Controller {
|
|
|
3732
3660
|
return /** @type {Record<string, ?>} */ (
|
|
3733
3661
|
await this.autoSerializeFrontendModelsInPayload(
|
|
3734
3662
|
responsePayload,
|
|
3735
|
-
/**
|
|
3736
|
-
* Types the following value.
|
|
3737
|
-
* @type {{serialize: (model: ?, action: string) => Promise<Record<string, ?>>}} */ (resource),
|
|
3663
|
+
/** @type {{serialize: (model: ?, action: string) => Promise<Record<string, ?>>}} */ (resource),
|
|
3738
3664
|
methodName
|
|
3739
3665
|
)
|
|
3740
3666
|
)
|
|
@@ -3788,9 +3714,7 @@ export default class FrontendModelController extends Controller {
|
|
|
3788
3714
|
}
|
|
3789
3715
|
|
|
3790
3716
|
if (typeof value === "object" && Object.getPrototypeOf(value) === Object.prototype) {
|
|
3791
|
-
const container = /**
|
|
3792
|
-
* Types the following value.
|
|
3793
|
-
* @type {Record<string, ?>} */ (value)
|
|
3717
|
+
const container = /** @type {Record<string, ?>} */ (value)
|
|
3794
3718
|
|
|
3795
3719
|
if (seen.has(container)) {
|
|
3796
3720
|
// Cyclic back-reference along the current recursion path; the
|