@porulle/core 0.64.0 → 0.65.1
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/dist/adapters/email-render.d.ts +18 -0
- package/dist/adapters/email-render.d.ts.map +1 -0
- package/dist/adapters/email-render.js +37 -0
- package/dist/auth/actor.d.ts.map +1 -1
- package/dist/auth/actor.js +11 -0
- package/dist/auth/auth-failure.d.ts +0 -2
- package/dist/auth/auth-failure.d.ts.map +1 -1
- package/dist/auth/auth-failure.js +0 -4
- package/dist/auth/middleware.d.ts +0 -1
- package/dist/auth/middleware.d.ts.map +1 -1
- package/dist/auth/middleware.js +7 -6
- package/dist/auth/permissions.d.ts +2 -0
- package/dist/auth/permissions.d.ts.map +1 -1
- package/dist/auth/permissions.js +8 -6
- package/dist/auth/role-authority.d.ts +0 -1
- package/dist/auth/role-authority.d.ts.map +1 -1
- package/dist/auth/role-authority.js +1 -8
- package/dist/auth/setup.d.ts.map +1 -1
- package/dist/auth/setup.js +5 -0
- package/dist/auth/strict-org-resolution.d.ts +8 -1
- package/dist/auth/strict-org-resolution.d.ts.map +1 -1
- package/dist/auth/strict-org-resolution.js +9 -19
- package/dist/auth/system-actor.d.ts +3 -2
- package/dist/auth/system-actor.d.ts.map +1 -1
- package/dist/auth/system-actor.js +3 -3
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +3 -20
- package/dist/config/define-config.d.ts +2 -2
- package/dist/config/define-config.d.ts.map +1 -1
- package/dist/config/define-config.js +3 -2
- package/dist/config/types.d.ts +2 -3
- package/dist/config/types.d.ts.map +1 -1
- package/dist/hooks/checkout.d.ts +2 -15
- package/dist/hooks/checkout.d.ts.map +1 -1
- package/dist/hooks/checkout.js +2 -51
- package/dist/index.d.ts +11 -19
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -12
- package/dist/interfaces/rest/router.js +3 -3
- package/dist/interfaces/rest/routes/admin/compensation-failures.d.ts.map +1 -1
- package/dist/interfaces/rest/routes/admin/compensation-failures.js +5 -5
- package/dist/interfaces/rest/routes/admin/entity-field-definitions.js +5 -5
- package/dist/interfaces/rest/routes/admin/staff.d.ts.map +1 -1
- package/dist/interfaces/rest/routes/admin/staff.js +2 -3
- package/dist/interfaces/rest/routes/analytics.d.ts.map +1 -1
- package/dist/interfaces/rest/routes/analytics.js +2 -2
- package/dist/interfaces/rest/routes/carts.d.ts.map +1 -1
- package/dist/interfaces/rest/routes/carts.js +12 -12
- package/dist/interfaces/rest/routes/catalog.js +37 -37
- package/dist/interfaces/rest/routes/checkout.d.ts.map +1 -1
- package/dist/interfaces/rest/routes/checkout.js +9 -10
- package/dist/interfaces/rest/routes/customers.d.ts.map +1 -1
- package/dist/interfaces/rest/routes/customers.js +12 -12
- package/dist/interfaces/rest/routes/documents.d.ts.map +1 -1
- package/dist/interfaces/rest/routes/documents.js +9 -9
- package/dist/interfaces/rest/routes/inventory.d.ts.map +1 -1
- package/dist/interfaces/rest/routes/inventory.js +8 -8
- package/dist/interfaces/rest/routes/media.d.ts.map +1 -1
- package/dist/interfaces/rest/routes/media.js +5 -5
- package/dist/interfaces/rest/routes/orders.d.ts.map +1 -1
- package/dist/interfaces/rest/routes/orders.js +32 -32
- package/dist/interfaces/rest/routes/payments.d.ts.map +1 -1
- package/dist/interfaces/rest/routes/payments.js +2 -2
- package/dist/interfaces/rest/routes/pricing.d.ts.map +1 -1
- package/dist/interfaces/rest/routes/pricing.js +8 -8
- package/dist/interfaces/rest/routes/promotions.d.ts.map +1 -1
- package/dist/interfaces/rest/routes/promotions.js +7 -7
- package/dist/interfaces/rest/routes/search.d.ts.map +1 -1
- package/dist/interfaces/rest/routes/search.js +3 -3
- package/dist/interfaces/rest/routes/settings.d.ts.map +1 -1
- package/dist/interfaces/rest/routes/settings.js +4 -4
- package/dist/interfaces/rest/routes/shipping.d.ts.map +1 -1
- package/dist/interfaces/rest/routes/shipping.js +9 -9
- package/dist/interfaces/rest/routes/tax.d.ts.map +1 -1
- package/dist/interfaces/rest/routes/tax.js +9 -9
- package/dist/interfaces/rest/routes/webhooks.d.ts.map +1 -1
- package/dist/interfaces/rest/routes/webhooks.js +4 -4
- package/dist/interfaces/rest/utils.d.ts +1 -1
- package/dist/interfaces/rest/utils.d.ts.map +1 -1
- package/dist/interfaces/rest/utils.js +4 -13
- package/dist/jobs.d.ts +1 -0
- package/dist/jobs.d.ts.map +1 -1
- package/dist/jobs.js +1 -0
- package/dist/kernel/database/adapter.d.ts +9 -0
- package/dist/kernel/database/adapter.d.ts.map +1 -1
- package/dist/kernel/database/adapter.js +1 -1
- package/dist/kernel/database/migrate.d.ts +0 -4
- package/dist/kernel/database/migrate.d.ts.map +1 -1
- package/dist/kernel/database/migrate.js +2 -14
- package/dist/kernel/database/pglite-transaction.d.ts +28 -0
- package/dist/kernel/database/pglite-transaction.d.ts.map +1 -0
- package/dist/kernel/database/pglite-transaction.js +52 -0
- package/dist/kernel/database/tx-context.d.ts +0 -1
- package/dist/kernel/database/tx-context.d.ts.map +1 -1
- package/dist/kernel/database/tx-context.js +2 -14
- package/dist/kernel/database/unique-violation.d.ts +3 -0
- package/dist/kernel/database/unique-violation.d.ts.map +1 -0
- package/dist/kernel/database/unique-violation.js +9 -0
- package/dist/kernel/error-mapper.d.ts.map +1 -1
- package/dist/kernel/error-mapper.js +1 -0
- package/dist/kernel/errors.d.ts +12 -0
- package/dist/kernel/errors.d.ts.map +1 -1
- package/dist/kernel/errors.js +16 -0
- package/dist/kernel/hooks/create-context.d.ts +18 -9
- package/dist/kernel/hooks/create-context.d.ts.map +1 -1
- package/dist/kernel/hooks/create-context.js +24 -3
- package/dist/kernel/hooks/registry.d.ts +0 -19
- package/dist/kernel/hooks/registry.d.ts.map +1 -1
- package/dist/kernel/hooks/registry.js +0 -32
- package/dist/kernel/jobs/drizzle-adapter.d.ts.map +1 -1
- package/dist/kernel/jobs/drizzle-adapter.js +3 -10
- package/dist/kernel/jobs/prepare-enqueue.d.ts +20 -0
- package/dist/kernel/jobs/prepare-enqueue.d.ts.map +1 -0
- package/dist/kernel/jobs/prepare-enqueue.js +24 -0
- package/dist/kernel/jobs/types.d.ts +0 -4
- package/dist/kernel/jobs/types.d.ts.map +1 -1
- package/dist/kernel/jobs/types.js +0 -4
- package/dist/kernel/local-api.d.ts +0 -33
- package/dist/kernel/local-api.d.ts.map +1 -1
- package/dist/kernel/local-api.js +0 -36
- package/dist/kernel/plugin/manifest.d.ts +3 -5
- package/dist/kernel/plugin/manifest.d.ts.map +1 -1
- package/dist/modules/analytics/service.d.ts +0 -6
- package/dist/modules/analytics/service.d.ts.map +1 -1
- package/dist/modules/analytics/service.js +0 -32
- package/dist/modules/cart/service.d.ts.map +1 -1
- package/dist/modules/cart/service.js +5 -17
- package/dist/modules/catalog/entity-service.d.ts.map +1 -1
- package/dist/modules/catalog/entity-service.js +9 -17
- package/dist/modules/catalog/import-service.d.ts.map +1 -1
- package/dist/modules/catalog/import-service.js +4 -13
- package/dist/modules/catalog/service.d.ts +1 -81
- package/dist/modules/catalog/service.d.ts.map +1 -1
- package/dist/modules/catalog/service.js +1 -8
- package/dist/modules/customers/service.d.ts.map +1 -1
- package/dist/modules/customers/service.js +5 -17
- package/dist/modules/documents/render.d.ts +0 -3
- package/dist/modules/documents/render.d.ts.map +1 -1
- package/dist/modules/documents/render.js +2 -17
- package/dist/modules/fulfillment/service.d.ts.map +1 -1
- package/dist/modules/fulfillment/service.js +8 -26
- package/dist/modules/inventory/service.d.ts.map +1 -1
- package/dist/modules/inventory/service.js +3 -20
- package/dist/modules/media/service.d.ts.map +1 -1
- package/dist/modules/media/service.js +2 -10
- package/dist/modules/orders/quote.d.ts.map +1 -1
- package/dist/modules/orders/quote.js +1 -2
- package/dist/modules/orders/service.d.ts.map +1 -1
- package/dist/modules/orders/service.js +4 -17
- package/dist/modules/pricing/service.d.ts.map +1 -1
- package/dist/modules/pricing/service.js +7 -18
- package/dist/modules/promotions/service.d.ts.map +1 -1
- package/dist/modules/promotions/service.js +4 -16
- package/dist/modules/tax/service.d.ts +1 -3
- package/dist/modules/tax/service.d.ts.map +1 -1
- package/dist/modules/tax/service.js +16 -52
- package/dist/modules/webhooks/hook.d.ts.map +1 -1
- package/dist/modules/webhooks/hook.js +3 -2
- package/dist/modules/webhooks/service.d.ts.map +1 -1
- package/dist/modules/webhooks/service.js +1 -50
- package/dist/runtime/commerce.d.ts.map +1 -1
- package/dist/runtime/commerce.js +4 -11
- package/dist/runtime/kernel-modules.d.ts +38 -1799
- package/dist/runtime/kernel-modules.d.ts.map +1 -1
- package/dist/runtime/kernel-modules.js +160 -66
- package/dist/runtime/kernel-types.d.ts +3 -15
- package/dist/runtime/kernel-types.d.ts.map +1 -1
- package/dist/runtime/kernel-types.js +0 -10
- package/dist/runtime/kernel.d.ts +2 -3
- package/dist/runtime/kernel.d.ts.map +1 -1
- package/dist/runtime/kernel.js +10 -51
- package/dist/runtime/server.d.ts +1 -1
- package/dist/runtime/server.d.ts.map +1 -1
- package/dist/test-utils/create-pglite-adapter.d.ts.map +1 -1
- package/dist/test-utils/create-pglite-adapter.js +5 -62
- package/dist/test-utils/create-plugin-test-app.d.ts.map +1 -1
- package/dist/test-utils/create-plugin-test-app.js +13 -32
- package/dist/test-utils/rest-api-test-utils.d.ts +0 -12
- package/dist/test-utils/rest-api-test-utils.d.ts.map +1 -1
- package/dist/test-utils/rest-api-test-utils.js +3 -70
- package/dist/test-utils/test-actors.d.ts +9 -0
- package/dist/test-utils/test-actors.d.ts.map +1 -1
- package/dist/test-utils/test-actors.js +62 -0
- package/dist/testing.d.ts +1 -4
- package/dist/testing.d.ts.map +1 -1
- package/dist/testing.js +1 -4
- package/dist/utils/escape-html.d.ts +3 -0
- package/dist/utils/escape-html.d.ts.map +1 -0
- package/dist/utils/escape-html.js +9 -0
- package/dist/utils/id.d.ts +0 -1
- package/dist/utils/id.d.ts.map +1 -1
- package/dist/utils/id.js +0 -3
- package/dist/utils/logger.d.ts +1 -1
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +1 -1
- package/dist/utils/money.d.ts +13 -0
- package/dist/utils/money.d.ts.map +1 -0
- package/dist/utils/money.js +58 -0
- package/package.json +26 -29
- package/src/adapters/email-render.ts +63 -0
- package/src/auth/actor.ts +14 -0
- package/src/auth/auth-failure.ts +0 -5
- package/src/auth/middleware.ts +7 -6
- package/src/auth/permissions.ts +12 -6
- package/src/auth/role-authority.ts +1 -10
- package/src/auth/setup.ts +8 -0
- package/src/auth/strict-org-resolution.ts +9 -16
- package/src/auth/system-actor.ts +3 -3
- package/src/config/defaults.ts +3 -20
- package/src/config/define-config.ts +5 -4
- package/src/config/types.ts +2 -2
- package/src/hooks/checkout.ts +2 -86
- package/src/index.ts +9 -36
- package/src/interfaces/rest/router.ts +3 -3
- package/src/interfaces/rest/routes/admin/compensation-failures.ts +5 -5
- package/src/interfaces/rest/routes/admin/entity-field-definitions.ts +5 -5
- package/src/interfaces/rest/routes/admin/staff.ts +2 -3
- package/src/interfaces/rest/routes/analytics.ts +2 -2
- package/src/interfaces/rest/routes/carts.ts +12 -12
- package/src/interfaces/rest/routes/catalog.ts +37 -37
- package/src/interfaces/rest/routes/checkout.ts +8 -10
- package/src/interfaces/rest/routes/customers.ts +12 -12
- package/src/interfaces/rest/routes/documents.ts +9 -9
- package/src/interfaces/rest/routes/inventory.ts +8 -8
- package/src/interfaces/rest/routes/media.ts +5 -5
- package/src/interfaces/rest/routes/orders.ts +32 -32
- package/src/interfaces/rest/routes/payments.ts +2 -2
- package/src/interfaces/rest/routes/pricing.ts +8 -8
- package/src/interfaces/rest/routes/promotions.ts +7 -7
- package/src/interfaces/rest/routes/search.ts +3 -3
- package/src/interfaces/rest/routes/settings.ts +4 -4
- package/src/interfaces/rest/routes/shipping.ts +9 -9
- package/src/interfaces/rest/routes/tax.ts +9 -9
- package/src/interfaces/rest/routes/webhooks.ts +4 -4
- package/src/interfaces/rest/utils.ts +4 -14
- package/src/jobs.ts +2 -1
- package/src/kernel/database/adapter.ts +1 -1
- package/src/kernel/database/migrate.ts +2 -17
- package/src/kernel/database/pglite-transaction.ts +61 -0
- package/src/kernel/database/tx-context.ts +2 -20
- package/src/kernel/database/unique-violation.ts +7 -0
- package/src/kernel/error-mapper.ts +1 -0
- package/src/kernel/errors.ts +18 -0
- package/src/kernel/hooks/create-context.ts +38 -8
- package/src/kernel/hooks/registry.ts +0 -37
- package/src/kernel/jobs/drizzle-adapter.ts +4 -15
- package/src/kernel/jobs/prepare-enqueue.ts +42 -0
- package/src/kernel/jobs/types.ts +0 -5
- package/src/kernel/local-api.ts +0 -44
- package/src/kernel/plugin/manifest.ts +3 -5
- package/src/modules/analytics/service.ts +0 -36
- package/src/modules/cart/service.ts +6 -29
- package/src/modules/catalog/entity-service.ts +9 -19
- package/src/modules/catalog/import-service.ts +4 -11
- package/src/modules/catalog/service.ts +2 -286
- package/src/modules/customers/service.ts +6 -27
- package/src/modules/documents/render.ts +2 -19
- package/src/modules/fulfillment/service.ts +8 -27
- package/src/modules/inventory/service.ts +3 -21
- package/src/modules/media/service.ts +2 -8
- package/src/modules/orders/quote.ts +1 -2
- package/src/modules/orders/service.ts +5 -30
- package/src/modules/pricing/service.ts +12 -30
- package/src/modules/promotions/service.ts +5 -28
- package/src/modules/tax/service.ts +20 -48
- package/src/modules/webhooks/hook.ts +3 -2
- package/src/modules/webhooks/service.ts +1 -42
- package/src/runtime/commerce.ts +4 -11
- package/src/runtime/kernel-modules.ts +191 -67
- package/src/runtime/kernel-types.ts +3 -26
- package/src/runtime/kernel.ts +11 -66
- package/src/runtime/server.ts +1 -3
- package/src/test-utils/create-pglite-adapter.ts +5 -67
- package/src/test-utils/create-plugin-test-app.ts +13 -52
- package/src/test-utils/rest-api-test-utils.ts +3 -70
- package/src/test-utils/test-actors.ts +66 -0
- package/src/testing.ts +1 -3
- package/src/utils/escape-html.ts +9 -0
- package/src/utils/id.ts +0 -4
- package/src/utils/logger.ts +1 -1
- package/src/utils/money.ts +62 -0
- package/dist/auth/access.d.ts +0 -101
- package/dist/auth/access.d.ts.map +0 -1
- package/dist/auth/access.js +0 -128
- package/dist/generated/plugin-manifest.d.ts +0 -51
- package/dist/generated/plugin-manifest.d.ts.map +0 -1
- package/dist/generated/plugin-manifest.js +0 -21
- package/dist/kernel/factory/repository-factory.d.ts +0 -71
- package/dist/kernel/factory/repository-factory.d.ts.map +0 -1
- package/dist/kernel/factory/repository-factory.js +0 -138
- package/dist/kernel/http-error.d.ts +0 -30
- package/dist/kernel/http-error.d.ts.map +0 -1
- package/dist/kernel/http-error.js +0 -35
- package/dist/kernel/jobs/builtin-job-tasks.d.ts +0 -3
- package/dist/kernel/jobs/builtin-job-tasks.d.ts.map +0 -1
- package/dist/kernel/jobs/builtin-job-tasks.js +0 -6
- package/dist/kernel/module/define.d.ts +0 -21
- package/dist/kernel/module/define.d.ts.map +0 -1
- package/dist/kernel/module/define.js +0 -3
- package/dist/kernel/module/index.d.ts +0 -4
- package/dist/kernel/module/index.d.ts.map +0 -1
- package/dist/kernel/module/index.js +0 -2
- package/dist/kernel/module/topo-sort.d.ts +0 -7
- package/dist/kernel/module/topo-sort.d.ts.map +0 -1
- package/dist/kernel/module/topo-sort.js +0 -89
- package/dist/kernel/query/executor.d.ts +0 -21
- package/dist/kernel/query/executor.d.ts.map +0 -1
- package/dist/kernel/query/executor.js +0 -128
- package/dist/kernel/query/registry.d.ts +0 -33
- package/dist/kernel/query/registry.d.ts.map +0 -1
- package/dist/kernel/query/registry.js +0 -20
- package/dist/kernel/service-registry.d.ts +0 -109
- package/dist/kernel/service-registry.d.ts.map +0 -1
- package/dist/kernel/service-registry.js +0 -26
- package/dist/modules/analytics/hooks.d.ts +0 -13
- package/dist/modules/analytics/hooks.d.ts.map +0 -1
- package/dist/modules/analytics/hooks.js +0 -12
- package/dist/modules/analytics/module.d.ts +0 -3
- package/dist/modules/analytics/module.d.ts.map +0 -1
- package/dist/modules/analytics/module.js +0 -24
- package/dist/modules/analytics/repository/index.d.ts +0 -5
- package/dist/modules/analytics/repository/index.d.ts.map +0 -1
- package/dist/modules/analytics/repository/index.js +0 -1
- package/dist/modules/audit/index.d.ts +0 -2
- package/dist/modules/audit/index.d.ts.map +0 -1
- package/dist/modules/audit/index.js +0 -1
- package/dist/modules/audit/module.d.ts +0 -180
- package/dist/modules/audit/module.d.ts.map +0 -1
- package/dist/modules/audit/module.js +0 -8
- package/dist/modules/cart/access.d.ts +0 -11
- package/dist/modules/cart/access.d.ts.map +0 -1
- package/dist/modules/cart/access.js +0 -18
- package/dist/modules/cart/module.d.ts +0 -14
- package/dist/modules/cart/module.d.ts.map +0 -1
- package/dist/modules/cart/module.js +0 -17
- package/dist/modules/catalog/module.d.ts +0 -26
- package/dist/modules/catalog/module.d.ts.map +0 -1
- package/dist/modules/catalog/module.js +0 -33
- package/dist/modules/customers/index.d.ts +0 -2
- package/dist/modules/customers/index.d.ts.map +0 -1
- package/dist/modules/customers/index.js +0 -1
- package/dist/modules/customers/module.d.ts +0 -563
- package/dist/modules/customers/module.d.ts.map +0 -1
- package/dist/modules/customers/module.js +0 -20
- package/dist/modules/documents/module.d.ts +0 -7
- package/dist/modules/documents/module.d.ts.map +0 -1
- package/dist/modules/documents/module.js +0 -13
- package/dist/modules/fulfillment/module.d.ts +0 -13
- package/dist/modules/fulfillment/module.d.ts.map +0 -1
- package/dist/modules/fulfillment/module.js +0 -23
- package/dist/modules/inventory/module.d.ts +0 -13
- package/dist/modules/inventory/module.d.ts.map +0 -1
- package/dist/modules/inventory/module.js +0 -20
- package/dist/modules/media/index.d.ts +0 -2
- package/dist/modules/media/index.d.ts.map +0 -1
- package/dist/modules/media/index.js +0 -1
- package/dist/modules/media/module.d.ts +0 -360
- package/dist/modules/media/module.d.ts.map +0 -1
- package/dist/modules/media/module.js +0 -24
- package/dist/modules/orders/module.d.ts +0 -25
- package/dist/modules/orders/module.d.ts.map +0 -1
- package/dist/modules/orders/module.js +0 -33
- package/dist/modules/organization/index.d.ts +0 -2
- package/dist/modules/organization/index.d.ts.map +0 -1
- package/dist/modules/organization/index.js +0 -1
- package/dist/modules/organization/module.d.ts +0 -205
- package/dist/modules/organization/module.d.ts.map +0 -1
- package/dist/modules/organization/module.js +0 -8
- package/dist/modules/payments/module.d.ts +0 -3
- package/dist/modules/payments/module.d.ts.map +0 -1
- package/dist/modules/payments/module.js +0 -7
- package/dist/modules/payments/repository/index.d.ts +0 -5
- package/dist/modules/payments/repository/index.d.ts.map +0 -1
- package/dist/modules/payments/repository/index.js +0 -1
- package/dist/modules/pricing/index.d.ts +0 -2
- package/dist/modules/pricing/index.d.ts.map +0 -1
- package/dist/modules/pricing/index.js +0 -1
- package/dist/modules/pricing/module.d.ts +0 -14
- package/dist/modules/pricing/module.d.ts.map +0 -1
- package/dist/modules/pricing/module.js +0 -17
- package/dist/modules/promotions/module.d.ts +0 -14
- package/dist/modules/promotions/module.d.ts.map +0 -1
- package/dist/modules/promotions/module.js +0 -19
- package/dist/modules/search/module.d.ts +0 -8
- package/dist/modules/search/module.d.ts.map +0 -1
- package/dist/modules/search/module.js +0 -22
- package/dist/modules/search/repository/index.d.ts +0 -5
- package/dist/modules/search/repository/index.d.ts.map +0 -1
- package/dist/modules/search/repository/index.js +0 -1
- package/dist/modules/settings/module.d.ts +0 -6
- package/dist/modules/settings/module.d.ts.map +0 -1
- package/dist/modules/settings/module.js +0 -12
- package/dist/modules/shipping/module.d.ts +0 -12
- package/dist/modules/shipping/module.d.ts.map +0 -1
- package/dist/modules/shipping/module.js +0 -14
- package/dist/modules/tax/module.d.ts +0 -7
- package/dist/modules/tax/module.d.ts.map +0 -1
- package/dist/modules/tax/module.js +0 -13
- package/dist/modules/webhooks/index.d.ts +0 -2
- package/dist/modules/webhooks/index.d.ts.map +0 -1
- package/dist/modules/webhooks/index.js +0 -1
- package/dist/modules/webhooks/module.d.ts +0 -403
- package/dist/modules/webhooks/module.d.ts.map +0 -1
- package/dist/modules/webhooks/module.js +0 -16
- package/dist/test-utils/create-repository-test-harness.d.ts +0 -8
- package/dist/test-utils/create-repository-test-harness.d.ts.map +0 -1
- package/dist/test-utils/create-repository-test-harness.js +0 -7
- package/dist/test-utils/create-test-plugin-context.d.ts +0 -38
- package/dist/test-utils/create-test-plugin-context.d.ts.map +0 -1
- package/dist/test-utils/create-test-plugin-context.js +0 -39
- package/dist/test-utils/typed-hooks.d.ts +0 -44
- package/dist/test-utils/typed-hooks.d.ts.map +0 -1
- package/dist/test-utils/typed-hooks.js +0 -36
- package/dist/types/commerce-types.d.ts +0 -34
- package/dist/types/commerce-types.d.ts.map +0 -1
- package/dist/types/commerce-types.js +0 -1
- package/src/auth/access.ts +0 -187
- package/src/generated/plugin-capabilities.d.ts +0 -21
- package/src/generated/plugin-manifest.ts +0 -24
- package/src/generated/plugin-repositories.d.ts +0 -21
- package/src/kernel/factory/repository-factory.ts +0 -244
- package/src/kernel/http-error.ts +0 -44
- package/src/kernel/jobs/builtin-job-tasks.ts +0 -17
- package/src/kernel/module/define.ts +0 -36
- package/src/kernel/module/index.ts +0 -3
- package/src/kernel/module/topo-sort.ts +0 -99
- package/src/kernel/query/executor.ts +0 -184
- package/src/kernel/query/registry.ts +0 -46
- package/src/kernel/service-registry.ts +0 -76
- package/src/modules/analytics/hooks.ts +0 -11
- package/src/modules/analytics/module.ts +0 -35
- package/src/modules/analytics/repository/index.ts +0 -5
- package/src/modules/audit/index.ts +0 -1
- package/src/modules/audit/module.ts +0 -11
- package/src/modules/cart/access.ts +0 -27
- package/src/modules/cart/module.ts +0 -32
- package/src/modules/catalog/module.ts +0 -80
- package/src/modules/customers/index.ts +0 -1
- package/src/modules/customers/module.ts +0 -29
- package/src/modules/documents/module.ts +0 -21
- package/src/modules/fulfillment/module.ts +0 -44
- package/src/modules/inventory/module.ts +0 -37
- package/src/modules/media/index.ts +0 -1
- package/src/modules/media/module.ts +0 -27
- package/src/modules/orders/module.ts +0 -67
- package/src/modules/organization/index.ts +0 -1
- package/src/modules/organization/module.ts +0 -11
- package/src/modules/payments/module.ts +0 -14
- package/src/modules/payments/repository/index.ts +0 -5
- package/src/modules/pricing/index.ts +0 -1
- package/src/modules/pricing/module.ts +0 -32
- package/src/modules/promotions/module.ts +0 -34
- package/src/modules/search/module.ts +0 -32
- package/src/modules/search/repository/index.ts +0 -5
- package/src/modules/settings/module.ts +0 -20
- package/src/modules/shipping/module.ts +0 -27
- package/src/modules/tax/module.ts +0 -21
- package/src/modules/webhooks/index.ts +0 -1
- package/src/modules/webhooks/module.ts +0 -24
- package/src/test-utils/create-repository-test-harness.ts +0 -16
- package/src/test-utils/create-test-plugin-context.ts +0 -66
- package/src/test-utils/typed-hooks.ts +0 -55
- package/src/types/commerce-types.ts +0 -34
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { OpenAPIHono } from "@hono/zod-openapi";
|
|
2
2
|
import { listEntitiesRoute, getEntityRoute, getEntityAttributesRoute, listFieldOwnershipRoute, setFieldOwnershipRoute, listCategoriesRoute, listBrandsRoute, deleteEntityRoute, deleteCategoryRoute, deleteBrandRoute, removeEntityFromCategoryRoute, removeEntityFromBrandRoute, publishEntityRoute, archiveEntityRoute, discontinueEntityRoute, addEntityToCategoryRoute, addEntityToBrandRoute, createEntityRoute, updateEntityRoute, setEntityAttributesRoute, approveCustomFieldRoute, rejectCustomFieldRoute, createCategoryRoute, archiveCategoryRoute, restoreCategoryRoute, updateCategoryRoute, createBrandRoute, updateBrandRoute, createOptionTypeRoute, createOptionValueRoute, createVariantRoute, generateVariantsRoute, quickVariantRoute, bulkVariantsRoute, } from "../schemas/catalog.js";
|
|
3
|
-
import {
|
|
3
|
+
import { errorBody, mapErrorToStatus, parseInclude, parsePagination, parseSort, requirePerm, } from "../utils.js";
|
|
4
4
|
export function catalogRoutes(kernel) {
|
|
5
5
|
const router = new OpenAPIHono();
|
|
6
6
|
router.use("/entities/*", requirePerm("catalog:read"));
|
|
@@ -17,7 +17,7 @@ export function catalogRoutes(kernel) {
|
|
|
17
17
|
router.openapi(listFieldOwnershipRoute, async (c) => {
|
|
18
18
|
const result = await kernel.services.catalog.listFieldOwnership(c.req.param("id"), c.get("actor"), undefined, c.req.query("storeId"));
|
|
19
19
|
if (!result.ok) {
|
|
20
|
-
return c.json(
|
|
20
|
+
return c.json(errorBody(result.error), mapErrorToStatus(result.error));
|
|
21
21
|
}
|
|
22
22
|
return c.json({ data: result.value });
|
|
23
23
|
});
|
|
@@ -26,7 +26,7 @@ export function catalogRoutes(kernel) {
|
|
|
26
26
|
const body = c.req.valid("json");
|
|
27
27
|
const result = await kernel.services.catalog.setFieldOwner(c.req.param("id"), body.fieldPath, body.storeId ?? null, body.owner, c.get("actor"), undefined, body.variantId ?? null);
|
|
28
28
|
if (!result.ok) {
|
|
29
|
-
return c.json(
|
|
29
|
+
return c.json(errorBody(result.error), mapErrorToStatus(result.error));
|
|
30
30
|
}
|
|
31
31
|
return c.json({ data: { updated: true } });
|
|
32
32
|
});
|
|
@@ -57,7 +57,7 @@ export function catalogRoutes(kernel) {
|
|
|
57
57
|
payload.sort = sort;
|
|
58
58
|
const result = await kernel.services.catalog.list(payload, c.get("actor"));
|
|
59
59
|
if (!result.ok) {
|
|
60
|
-
return c.json(
|
|
60
|
+
return c.json(errorBody(result.error), mapErrorToStatus(result.error));
|
|
61
61
|
}
|
|
62
62
|
let withIncludes = result.value.items;
|
|
63
63
|
if (include.size > 0) {
|
|
@@ -87,7 +87,7 @@ export function catalogRoutes(kernel) {
|
|
|
87
87
|
}
|
|
88
88
|
catch (error) {
|
|
89
89
|
console.error("[catalog] List failed:", error instanceof Error ? error.message : error);
|
|
90
|
-
return c.json(
|
|
90
|
+
return c.json(errorBody(error), mapErrorToStatus(error));
|
|
91
91
|
}
|
|
92
92
|
});
|
|
93
93
|
// @ts-expect-error -- openapi handler union return type
|
|
@@ -112,20 +112,20 @@ export function catalogRoutes(kernel) {
|
|
|
112
112
|
? await kernel.services.catalog.getById(idOrSlug, includeOptions, actor)
|
|
113
113
|
: await kernel.services.catalog.getBySlug(idOrSlug, includeOptions, actor);
|
|
114
114
|
if (!result.ok) {
|
|
115
|
-
return c.json(
|
|
115
|
+
return c.json(errorBody(result.error), mapErrorToStatus(result.error));
|
|
116
116
|
}
|
|
117
117
|
return c.json({ data: result.value });
|
|
118
118
|
}
|
|
119
119
|
catch (error) {
|
|
120
120
|
console.error("[catalog] Get entity failed:", error instanceof Error ? error.message : error);
|
|
121
|
-
return c.json(
|
|
121
|
+
return c.json(errorBody(error), mapErrorToStatus(error));
|
|
122
122
|
}
|
|
123
123
|
});
|
|
124
124
|
// @ts-expect-error -- openapi handler union return type
|
|
125
125
|
router.openapi(createEntityRoute, async (c) => {
|
|
126
126
|
const result = await kernel.services.catalog.create(c.req.valid("json"), c.get("actor"));
|
|
127
127
|
if (!result.ok) {
|
|
128
|
-
return c.json(
|
|
128
|
+
return c.json(errorBody(result.error), mapErrorToStatus(result.error));
|
|
129
129
|
}
|
|
130
130
|
return c.json({ data: result.value }, 201);
|
|
131
131
|
});
|
|
@@ -133,7 +133,7 @@ export function catalogRoutes(kernel) {
|
|
|
133
133
|
router.openapi(updateEntityRoute, async (c) => {
|
|
134
134
|
const result = await kernel.services.catalog.update(c.req.param("id"), c.req.valid("json"), c.get("actor"));
|
|
135
135
|
if (!result.ok) {
|
|
136
|
-
return c.json(
|
|
136
|
+
return c.json(errorBody(result.error), mapErrorToStatus(result.error));
|
|
137
137
|
}
|
|
138
138
|
return c.json({ data: result.value });
|
|
139
139
|
});
|
|
@@ -141,7 +141,7 @@ export function catalogRoutes(kernel) {
|
|
|
141
141
|
router.openapi(deleteEntityRoute, async (c) => {
|
|
142
142
|
const result = await kernel.services.catalog.delete(c.req.param("id"), c.get("actor"));
|
|
143
143
|
if (!result.ok) {
|
|
144
|
-
return c.json(
|
|
144
|
+
return c.json(errorBody(result.error), mapErrorToStatus(result.error));
|
|
145
145
|
}
|
|
146
146
|
return c.json({ data: { deleted: true } });
|
|
147
147
|
});
|
|
@@ -149,21 +149,21 @@ export function catalogRoutes(kernel) {
|
|
|
149
149
|
router.openapi(publishEntityRoute, async (c) => {
|
|
150
150
|
const result = await kernel.services.catalog.publish(c.req.param("id"), c.get("actor"));
|
|
151
151
|
if (!result.ok)
|
|
152
|
-
return c.json(
|
|
152
|
+
return c.json(errorBody(result.error), mapErrorToStatus(result.error));
|
|
153
153
|
return c.json({ data: result.value });
|
|
154
154
|
});
|
|
155
155
|
// @ts-expect-error -- openapi handler union return type
|
|
156
156
|
router.openapi(archiveEntityRoute, async (c) => {
|
|
157
157
|
const result = await kernel.services.catalog.archive(c.req.param("id"), c.get("actor"));
|
|
158
158
|
if (!result.ok)
|
|
159
|
-
return c.json(
|
|
159
|
+
return c.json(errorBody(result.error), mapErrorToStatus(result.error));
|
|
160
160
|
return c.json({ data: result.value });
|
|
161
161
|
});
|
|
162
162
|
// @ts-expect-error -- openapi handler union return type
|
|
163
163
|
router.openapi(discontinueEntityRoute, async (c) => {
|
|
164
164
|
const result = await kernel.services.catalog.discontinue(c.req.param("id"), c.get("actor"));
|
|
165
165
|
if (!result.ok)
|
|
166
|
-
return c.json(
|
|
166
|
+
return c.json(errorBody(result.error), mapErrorToStatus(result.error));
|
|
167
167
|
return c.json({ data: result.value });
|
|
168
168
|
});
|
|
169
169
|
// @ts-expect-error -- openapi handler union return type
|
|
@@ -171,28 +171,28 @@ export function catalogRoutes(kernel) {
|
|
|
171
171
|
const result = await kernel.services.catalog.setAttributes(c.req.param("id"), c.req.param("locale"), c.req.valid("json"), // Zod-validated; Hono returns Record<string, unknown>
|
|
172
172
|
c.get("actor"));
|
|
173
173
|
if (!result.ok)
|
|
174
|
-
return c.json(
|
|
174
|
+
return c.json(errorBody(result.error), mapErrorToStatus(result.error));
|
|
175
175
|
return c.json({ data: { updated: true } });
|
|
176
176
|
});
|
|
177
177
|
// @ts-expect-error -- openapi handler union return type
|
|
178
178
|
router.openapi(approveCustomFieldRoute, async (c) => {
|
|
179
179
|
const result = await kernel.services.catalog.approveCustomField(c.req.param("id"), c.req.param("fieldName"), c.req.query("locale") ?? "en", c.get("actor"));
|
|
180
180
|
if (!result.ok)
|
|
181
|
-
return c.json(
|
|
181
|
+
return c.json(errorBody(result.error), mapErrorToStatus(result.error));
|
|
182
182
|
return c.json({ data: result.value });
|
|
183
183
|
});
|
|
184
184
|
// @ts-expect-error -- openapi handler union return type
|
|
185
185
|
router.openapi(rejectCustomFieldRoute, async (c) => {
|
|
186
186
|
const result = await kernel.services.catalog.rejectCustomField(c.req.param("id"), c.req.param("fieldName"), c.req.query("locale") ?? "en", c.get("actor"));
|
|
187
187
|
if (!result.ok)
|
|
188
|
-
return c.json(
|
|
188
|
+
return c.json(errorBody(result.error), mapErrorToStatus(result.error));
|
|
189
189
|
return c.json({ data: result.value });
|
|
190
190
|
});
|
|
191
191
|
// @ts-expect-error -- openapi handler union return type
|
|
192
192
|
router.openapi(getEntityAttributesRoute, async (c) => {
|
|
193
193
|
const result = await kernel.services.catalog.getAttributes(c.req.param("id"), c.req.param("locale"), c.get("actor"));
|
|
194
194
|
if (!result.ok)
|
|
195
|
-
return c.json(
|
|
195
|
+
return c.json(errorBody(result.error), mapErrorToStatus(result.error));
|
|
196
196
|
return c.json({ data: result.value });
|
|
197
197
|
});
|
|
198
198
|
// @ts-expect-error -- openapi handler union return type
|
|
@@ -200,119 +200,119 @@ export function catalogRoutes(kernel) {
|
|
|
200
200
|
const includeArchived = c.req.query("includeArchived") === "true";
|
|
201
201
|
const result = await kernel.services.catalog.listCategories({ actor: c.get("actor"), tx: null, requestId: "" }, { includeArchived });
|
|
202
202
|
if (!result.ok)
|
|
203
|
-
return c.json(
|
|
203
|
+
return c.json(errorBody(result.error), mapErrorToStatus(result.error));
|
|
204
204
|
return c.json({ data: result.value });
|
|
205
205
|
});
|
|
206
206
|
// @ts-expect-error -- openapi handler union return type
|
|
207
207
|
router.openapi(archiveCategoryRoute, async (c) => {
|
|
208
208
|
const result = await kernel.services.catalog.archiveCategory(c.req.param("categoryId"), c.get("actor"));
|
|
209
209
|
if (!result.ok)
|
|
210
|
-
return c.json(
|
|
210
|
+
return c.json(errorBody(result.error), mapErrorToStatus(result.error));
|
|
211
211
|
return c.json({ data: result.value });
|
|
212
212
|
});
|
|
213
213
|
// @ts-expect-error -- openapi handler union return type
|
|
214
214
|
router.openapi(restoreCategoryRoute, async (c) => {
|
|
215
215
|
const result = await kernel.services.catalog.restoreCategory(c.req.param("categoryId"), c.get("actor"));
|
|
216
216
|
if (!result.ok)
|
|
217
|
-
return c.json(
|
|
217
|
+
return c.json(errorBody(result.error), mapErrorToStatus(result.error));
|
|
218
218
|
return c.json({ data: result.value });
|
|
219
219
|
});
|
|
220
220
|
// @ts-expect-error -- openapi handler union return type
|
|
221
221
|
router.openapi(createCategoryRoute, async (c) => {
|
|
222
222
|
const result = await kernel.services.catalog.createCategory(c.req.valid("json"), c.get("actor"));
|
|
223
223
|
if (!result.ok)
|
|
224
|
-
return c.json(
|
|
224
|
+
return c.json(errorBody(result.error), mapErrorToStatus(result.error));
|
|
225
225
|
return c.json({ data: result.value }, 201);
|
|
226
226
|
});
|
|
227
227
|
// @ts-expect-error -- openapi handler union return type
|
|
228
228
|
router.openapi(updateCategoryRoute, async (c) => {
|
|
229
229
|
const result = await kernel.services.catalog.updateCategory(c.req.param("categoryId"), c.req.valid("json"), c.get("actor"));
|
|
230
230
|
if (!result.ok)
|
|
231
|
-
return c.json(
|
|
231
|
+
return c.json(errorBody(result.error), mapErrorToStatus(result.error));
|
|
232
232
|
return c.json({ data: result.value });
|
|
233
233
|
});
|
|
234
234
|
// @ts-expect-error -- openapi handler union return type
|
|
235
235
|
router.openapi(deleteCategoryRoute, async (c) => {
|
|
236
236
|
const result = await kernel.services.catalog.deleteCategory(c.req.param("categoryId"), c.get("actor"));
|
|
237
237
|
if (!result.ok)
|
|
238
|
-
return c.json(
|
|
238
|
+
return c.json(errorBody(result.error), mapErrorToStatus(result.error));
|
|
239
239
|
return c.json({ data: { deleted: true } });
|
|
240
240
|
});
|
|
241
241
|
// @ts-expect-error -- openapi handler union return type
|
|
242
242
|
router.openapi(addEntityToCategoryRoute, async (c) => {
|
|
243
243
|
const result = await kernel.services.catalog.addToCategory(c.req.param("id"), c.req.param("categoryId"), c.get("actor"));
|
|
244
244
|
if (!result.ok)
|
|
245
|
-
return c.json(
|
|
245
|
+
return c.json(errorBody(result.error), mapErrorToStatus(result.error));
|
|
246
246
|
return c.json({ data: { linked: true } });
|
|
247
247
|
});
|
|
248
248
|
// @ts-expect-error -- openapi handler union return type
|
|
249
249
|
router.openapi(removeEntityFromCategoryRoute, async (c) => {
|
|
250
250
|
const result = await kernel.services.catalog.removeFromCategory(c.req.param("id"), c.req.param("categoryId"), c.get("actor"));
|
|
251
251
|
if (!result.ok)
|
|
252
|
-
return c.json(
|
|
252
|
+
return c.json(errorBody(result.error), mapErrorToStatus(result.error));
|
|
253
253
|
return c.json({ data: { unlinked: true } });
|
|
254
254
|
});
|
|
255
255
|
// @ts-expect-error -- openapi handler union return type
|
|
256
256
|
router.openapi(listBrandsRoute, async (c) => {
|
|
257
257
|
const result = await kernel.services.catalog.listBrands({ actor: c.get("actor"), tx: null, requestId: "" });
|
|
258
258
|
if (!result.ok)
|
|
259
|
-
return c.json(
|
|
259
|
+
return c.json(errorBody(result.error), mapErrorToStatus(result.error));
|
|
260
260
|
return c.json({ data: result.value });
|
|
261
261
|
});
|
|
262
262
|
// @ts-expect-error -- openapi handler union return type
|
|
263
263
|
router.openapi(createBrandRoute, async (c) => {
|
|
264
264
|
const result = await kernel.services.catalog.createBrand(c.req.valid("json"), c.get("actor"));
|
|
265
265
|
if (!result.ok)
|
|
266
|
-
return c.json(
|
|
266
|
+
return c.json(errorBody(result.error), mapErrorToStatus(result.error));
|
|
267
267
|
return c.json({ data: result.value }, 201);
|
|
268
268
|
});
|
|
269
269
|
// @ts-expect-error -- openapi handler union return type
|
|
270
270
|
router.openapi(updateBrandRoute, async (c) => {
|
|
271
271
|
const result = await kernel.services.catalog.updateBrand(c.req.param("brandId"), c.req.valid("json"), c.get("actor"));
|
|
272
272
|
if (!result.ok)
|
|
273
|
-
return c.json(
|
|
273
|
+
return c.json(errorBody(result.error), mapErrorToStatus(result.error));
|
|
274
274
|
return c.json({ data: result.value });
|
|
275
275
|
});
|
|
276
276
|
// @ts-expect-error -- openapi handler union return type
|
|
277
277
|
router.openapi(deleteBrandRoute, async (c) => {
|
|
278
278
|
const result = await kernel.services.catalog.deleteBrand(c.req.param("brandId"), c.get("actor"));
|
|
279
279
|
if (!result.ok)
|
|
280
|
-
return c.json(
|
|
280
|
+
return c.json(errorBody(result.error), mapErrorToStatus(result.error));
|
|
281
281
|
return c.json({ data: { deleted: true } });
|
|
282
282
|
});
|
|
283
283
|
// @ts-expect-error -- openapi handler union return type
|
|
284
284
|
router.openapi(addEntityToBrandRoute, async (c) => {
|
|
285
285
|
const result = await kernel.services.catalog.addToBrand(c.req.param("id"), c.req.param("brandId"), c.get("actor"));
|
|
286
286
|
if (!result.ok)
|
|
287
|
-
return c.json(
|
|
287
|
+
return c.json(errorBody(result.error), mapErrorToStatus(result.error));
|
|
288
288
|
return c.json({ data: { linked: true } });
|
|
289
289
|
});
|
|
290
290
|
// @ts-expect-error -- openapi handler union return type
|
|
291
291
|
router.openapi(removeEntityFromBrandRoute, async (c) => {
|
|
292
292
|
const result = await kernel.services.catalog.removeFromBrand(c.req.param("id"), c.req.param("brandId"), c.get("actor"));
|
|
293
293
|
if (!result.ok)
|
|
294
|
-
return c.json(
|
|
294
|
+
return c.json(errorBody(result.error), mapErrorToStatus(result.error));
|
|
295
295
|
return c.json({ data: { unlinked: true } });
|
|
296
296
|
});
|
|
297
297
|
// @ts-expect-error -- openapi handler union return type
|
|
298
298
|
router.openapi(createOptionTypeRoute, async (c) => {
|
|
299
299
|
const result = await kernel.services.catalog.createOptionType({ ...c.req.valid("json"), entityId: c.req.param("id") }, c.get("actor"));
|
|
300
300
|
if (!result.ok)
|
|
301
|
-
return c.json(
|
|
301
|
+
return c.json(errorBody(result.error), mapErrorToStatus(result.error));
|
|
302
302
|
return c.json({ data: result.value }, 201);
|
|
303
303
|
});
|
|
304
304
|
// @ts-expect-error -- openapi handler union return type
|
|
305
305
|
router.openapi(createOptionValueRoute, async (c) => {
|
|
306
306
|
const result = await kernel.services.catalog.createOptionValue({ ...c.req.valid("json"), optionTypeId: c.req.param("optionTypeId") }, c.get("actor"));
|
|
307
307
|
if (!result.ok)
|
|
308
|
-
return c.json(
|
|
308
|
+
return c.json(errorBody(result.error), mapErrorToStatus(result.error));
|
|
309
309
|
return c.json({ data: result.value }, 201);
|
|
310
310
|
});
|
|
311
311
|
// @ts-expect-error -- openapi handler union return type
|
|
312
312
|
router.openapi(createVariantRoute, async (c) => {
|
|
313
313
|
const result = await kernel.services.catalog.createVariant({ ...c.req.valid("json"), entityId: c.req.param("id") }, c.get("actor"));
|
|
314
314
|
if (!result.ok)
|
|
315
|
-
return c.json(
|
|
315
|
+
return c.json(errorBody(result.error), mapErrorToStatus(result.error));
|
|
316
316
|
return c.json({ data: result.value }, 201);
|
|
317
317
|
});
|
|
318
318
|
// @ts-expect-error -- openapi handler union return type
|
|
@@ -320,7 +320,7 @@ export function catalogRoutes(kernel) {
|
|
|
320
320
|
const body = c.req.valid("json");
|
|
321
321
|
const result = await kernel.services.catalog.quickCreateVariant(c.req.param("id"), body, c.get("actor"));
|
|
322
322
|
if (!result.ok)
|
|
323
|
-
return c.json(
|
|
323
|
+
return c.json(errorBody(result.error), mapErrorToStatus(result.error));
|
|
324
324
|
return c.json({ data: result.value }, result.value.created ? 201 : 200);
|
|
325
325
|
});
|
|
326
326
|
// @ts-expect-error -- openapi handler union return type
|
|
@@ -328,7 +328,7 @@ export function catalogRoutes(kernel) {
|
|
|
328
328
|
const body = c.req.valid("json");
|
|
329
329
|
const result = await kernel.services.catalog.bulkCreateVariants(c.req.param("id"), body, c.get("actor"));
|
|
330
330
|
if (!result.ok)
|
|
331
|
-
return c.json(
|
|
331
|
+
return c.json(errorBody(result.error), mapErrorToStatus(result.error));
|
|
332
332
|
return c.json({ data: result.value }, 201);
|
|
333
333
|
});
|
|
334
334
|
// @ts-expect-error -- openapi handler union return type
|
|
@@ -336,7 +336,7 @@ export function catalogRoutes(kernel) {
|
|
|
336
336
|
const body = c.req.valid("json");
|
|
337
337
|
const result = await kernel.services.catalog.generateVariants(c.req.param("id"), body, c.get("actor"));
|
|
338
338
|
if (!result.ok)
|
|
339
|
-
return c.json(
|
|
339
|
+
return c.json(errorBody(result.error), mapErrorToStatus(result.error));
|
|
340
340
|
return c.json({ data: result.value }, 201);
|
|
341
341
|
});
|
|
342
342
|
return router;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkout.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/rest/routes/checkout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"checkout.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/rest/routes/checkout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAmBzD,OAAO,EAAE,KAAK,MAAM,EAA+B,MAAM,aAAa,CAAC;AAMvE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAEpD;;;;;;GAMG;AACH,wBAAsB,2BAA2B,CAC/C,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,EAC1C,KAAK,EAAE,KAAK,GAAG,IAAI,EACnB,UAAU,EAAE,MAAM,GAAG,SAAS,GAC7B,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAmC7B;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,gCAuV5C"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { OpenAPIHono } from "@hono/zod-openapi";
|
|
2
2
|
import { checkoutRoute } from "../schemas/checkout.js";
|
|
3
|
-
import { applyPromotionCodes, authorizePayment, calculateShipping, calculateTax, checkInventoryAvailability, completeCheckout,
|
|
3
|
+
import { applyPromotionCodes, authorizePayment, calculateShipping, calculateTax, checkInventoryAvailability, completeCheckout, resolveCurrentPrices, validateCartNotEmpty, validatePaymentMethod, } from "../../../hooks/checkout.js";
|
|
4
4
|
import { runAfterHooks, runBeforeHooks } from "../../../kernel/hooks/executor.js";
|
|
5
5
|
import { createHookContext } from "../../../kernel/hooks/create-context.js";
|
|
6
|
-
import {
|
|
6
|
+
import { errorBody, mapErrorToStatus } from "../utils.js";
|
|
7
7
|
import { isCommerceError } from "../../../kernel/errors.js";
|
|
8
8
|
import { assertPermission } from "../../../auth/permissions.js";
|
|
9
9
|
import { resolveOrgIdForCommerce } from "../../../auth/org.js";
|
|
10
|
-
import { makeDeterministicId,
|
|
10
|
+
import { makeDeterministicId, makeIdempotencyScope } from "../../../utils/id.js";
|
|
11
11
|
/**
|
|
12
12
|
* SEC-07 — resolve the customer profile a checkout order is attributed to.
|
|
13
13
|
* A self-service actor may ONLY attribute the order to its own customer
|
|
@@ -60,7 +60,7 @@ export function checkoutRoutes(kernel) {
|
|
|
60
60
|
router.openapi(checkoutRoute, async (c) => {
|
|
61
61
|
const body = c.req.valid("json");
|
|
62
62
|
const actor = c.get("actor");
|
|
63
|
-
const cartSecret = c.req.header("x-cart-secret") ??
|
|
63
|
+
const cartSecret = c.req.header("x-cart-secret") ?? undefined;
|
|
64
64
|
// Idempotent replay is authorized by the order service before payment runs.
|
|
65
65
|
// This preflight only preserves the no-double-payment fast path; the create
|
|
66
66
|
// primitive repeats the same binding for direct callers and race losers.
|
|
@@ -68,7 +68,7 @@ export function checkoutRoutes(kernel) {
|
|
|
68
68
|
if (body.idempotencyKey) {
|
|
69
69
|
replay = await kernel.services.orders.getByIdempotencyKey(body.idempotencyKey, actor, undefined, cartSecret);
|
|
70
70
|
if (!replay.ok) {
|
|
71
|
-
return c.json(
|
|
71
|
+
return c.json(errorBody(replay.error), mapErrorToStatus(replay.error));
|
|
72
72
|
}
|
|
73
73
|
if (replay.value)
|
|
74
74
|
return c.json({ data: replay.value }, 201);
|
|
@@ -79,16 +79,16 @@ export function checkoutRoutes(kernel) {
|
|
|
79
79
|
// internal cart-read path instead of carrying this credential inward.
|
|
80
80
|
const cartAccess = await kernel.services.cart.getById(body.cartId, actor, undefined, cartSecret);
|
|
81
81
|
if (!cartAccess.ok) {
|
|
82
|
-
return c.json(
|
|
82
|
+
return c.json(errorBody(cartAccess.error), mapErrorToStatus(cartAccess.error));
|
|
83
83
|
}
|
|
84
84
|
const idempotencyScope = body.idempotencyKey
|
|
85
85
|
? await makeIdempotencyScope(actor, cartSecret, body.cartId)
|
|
86
86
|
: undefined;
|
|
87
87
|
const orderId = body.idempotencyKey
|
|
88
88
|
? await makeDeterministicId(`checkout:${resolveOrgIdForCommerce(actor, kernel.config)}:${idempotencyScope}:${body.idempotencyKey}`)
|
|
89
|
-
:
|
|
89
|
+
: crypto.randomUUID();
|
|
90
90
|
const checkoutData = {
|
|
91
|
-
checkoutId:
|
|
91
|
+
checkoutId: crypto.randomUUID(),
|
|
92
92
|
orderId,
|
|
93
93
|
cartId: body.cartId,
|
|
94
94
|
currency: body.currency ?? "USD",
|
|
@@ -148,7 +148,6 @@ export function checkoutRoutes(kernel) {
|
|
|
148
148
|
];
|
|
149
149
|
const afterHooks = [
|
|
150
150
|
completeCheckout,
|
|
151
|
-
recordAnalyticsEvent,
|
|
152
151
|
...kernel.hooks.resolve("checkout.afterCreate"),
|
|
153
152
|
];
|
|
154
153
|
const context = createHookContext({
|
|
@@ -233,7 +232,7 @@ export function checkoutRoutes(kernel) {
|
|
|
233
232
|
...(cartSecret !== undefined ? { guestCredential: cartSecret } : {}),
|
|
234
233
|
});
|
|
235
234
|
if (!order.ok) {
|
|
236
|
-
return c.json(
|
|
235
|
+
return c.json(errorBody(order.error), mapErrorToStatus(order.error));
|
|
237
236
|
}
|
|
238
237
|
if (order.ok && (processed.appliedPromotions?.length ?? 0) > 0) {
|
|
239
238
|
pipelineStage = "record-promotion-usage";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"customers.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/rest/routes/customers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAazD,OAAO,EAAE,KAAK,MAAM,
|
|
1
|
+
{"version":3,"file":"customers.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/rest/routes/customers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAazD,OAAO,EAAE,KAAK,MAAM,EAA2E,MAAM,aAAa,CAAC;AAEnH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,gCAgJ5C"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { OpenAPIHono } from "@hono/zod-openapi";
|
|
2
2
|
import { listCustomersRoute, createCustomerRoute, getCustomerRoute, updateCustomerRoute, getCustomerOrdersRoute, getCustomerAddressesRoute, listInteractionsRoute, createInteractionRoute, updateInteractionRoute, deleteInteractionRoute, } from "../schemas/customers.js";
|
|
3
|
-
import {
|
|
3
|
+
import { errorBody, mapErrorToStatus, parsePagination, parseInclude, requirePerm } from "../utils.js";
|
|
4
4
|
export function customerRoutes(kernel) {
|
|
5
5
|
const router = new OpenAPIHono();
|
|
6
6
|
// All customer admin routes require authentication + customers:read
|
|
@@ -12,7 +12,7 @@ export function customerRoutes(kernel) {
|
|
|
12
12
|
const { page, limit } = parsePagination(c.req.query());
|
|
13
13
|
const result = await kernel.services.customers.list(actor);
|
|
14
14
|
if (!result.ok)
|
|
15
|
-
return c.json(
|
|
15
|
+
return c.json(errorBody(result.error), mapErrorToStatus(result.error));
|
|
16
16
|
const all = result.value;
|
|
17
17
|
const total = all.length;
|
|
18
18
|
const start = (page - 1) * limit;
|
|
@@ -29,7 +29,7 @@ export function customerRoutes(kernel) {
|
|
|
29
29
|
const body = c.req.valid("json");
|
|
30
30
|
const result = await kernel.services.customers.createWalkIn(body, c.get("actor"));
|
|
31
31
|
if (!result.ok)
|
|
32
|
-
return c.json(
|
|
32
|
+
return c.json(errorBody(result.error), mapErrorToStatus(result.error));
|
|
33
33
|
return c.json({ data: result.value }, 201);
|
|
34
34
|
});
|
|
35
35
|
// @ts-expect-error -- openapi handler union return type
|
|
@@ -38,7 +38,7 @@ export function customerRoutes(kernel) {
|
|
|
38
38
|
const actor = c.get("actor");
|
|
39
39
|
const result = await kernel.services.customers.getById(id, actor);
|
|
40
40
|
if (!result.ok)
|
|
41
|
-
return c.json(
|
|
41
|
+
return c.json(errorBody(result.error), mapErrorToStatus(result.error));
|
|
42
42
|
return c.json({ data: result.value });
|
|
43
43
|
});
|
|
44
44
|
// PATCH requires customers:update (checked in handler since middleware can't distinguish methods)
|
|
@@ -58,7 +58,7 @@ export function customerRoutes(kernel) {
|
|
|
58
58
|
replaceMetadata,
|
|
59
59
|
});
|
|
60
60
|
if (!result.ok)
|
|
61
|
-
return c.json(
|
|
61
|
+
return c.json(errorBody(result.error), mapErrorToStatus(result.error));
|
|
62
62
|
return c.json({ data: result.value });
|
|
63
63
|
});
|
|
64
64
|
// @ts-expect-error -- openapi handler union return type
|
|
@@ -70,7 +70,7 @@ export function customerRoutes(kernel) {
|
|
|
70
70
|
const includeTotals = parseInclude(c.req.query("include")).has("totals");
|
|
71
71
|
const result = await kernel.services.orders.listByCustomer(id, { page, limit, ...(status ? { status } : {}), ...(includeTotals ? { includeTotals: true } : {}) }, actor);
|
|
72
72
|
if (!result.ok)
|
|
73
|
-
return c.json(
|
|
73
|
+
return c.json(errorBody(result.error), mapErrorToStatus(result.error));
|
|
74
74
|
if (includeTotals) {
|
|
75
75
|
// Wrapped shape: { data: { items, totals } } (+ pagination meta).
|
|
76
76
|
return c.json({
|
|
@@ -88,10 +88,10 @@ export function customerRoutes(kernel) {
|
|
|
88
88
|
// Get customer first, then use their userId for address lookup
|
|
89
89
|
const customerResult = await kernel.services.customers.getById(id, actor);
|
|
90
90
|
if (!customerResult.ok)
|
|
91
|
-
return c.json(
|
|
91
|
+
return c.json(errorBody(customerResult.error), mapErrorToStatus(customerResult.error));
|
|
92
92
|
const addressResult = await kernel.services.customers.getAddresses(customerResult.value.userId, actor);
|
|
93
93
|
if (!addressResult.ok)
|
|
94
|
-
return c.json(
|
|
94
|
+
return c.json(errorBody(addressResult.error), mapErrorToStatus(addressResult.error));
|
|
95
95
|
return c.json({ data: addressResult.value });
|
|
96
96
|
});
|
|
97
97
|
// ─── Customer interactions (#3) ──────────────────────────────────────────
|
|
@@ -100,7 +100,7 @@ export function customerRoutes(kernel) {
|
|
|
100
100
|
const { id } = c.req.valid("param");
|
|
101
101
|
const result = await kernel.services.customers.listInteractions(id, c.get("actor"));
|
|
102
102
|
if (!result.ok)
|
|
103
|
-
return c.json(
|
|
103
|
+
return c.json(errorBody(result.error), mapErrorToStatus(result.error));
|
|
104
104
|
return c.json({ data: result.value });
|
|
105
105
|
});
|
|
106
106
|
// @ts-expect-error -- openapi handler union return type
|
|
@@ -109,7 +109,7 @@ export function customerRoutes(kernel) {
|
|
|
109
109
|
const body = c.req.valid("json");
|
|
110
110
|
const result = await kernel.services.customers.createInteraction(id, body, c.get("actor"));
|
|
111
111
|
if (!result.ok)
|
|
112
|
-
return c.json(
|
|
112
|
+
return c.json(errorBody(result.error), mapErrorToStatus(result.error));
|
|
113
113
|
return c.json({ data: result.value }, 201);
|
|
114
114
|
});
|
|
115
115
|
// @ts-expect-error -- openapi handler union return type
|
|
@@ -118,7 +118,7 @@ export function customerRoutes(kernel) {
|
|
|
118
118
|
const body = c.req.valid("json");
|
|
119
119
|
const result = await kernel.services.customers.updateInteraction(id, iid, body, c.get("actor"));
|
|
120
120
|
if (!result.ok)
|
|
121
|
-
return c.json(
|
|
121
|
+
return c.json(errorBody(result.error), mapErrorToStatus(result.error));
|
|
122
122
|
return c.json({ data: result.value });
|
|
123
123
|
});
|
|
124
124
|
// @ts-expect-error -- openapi handler union return type
|
|
@@ -126,7 +126,7 @@ export function customerRoutes(kernel) {
|
|
|
126
126
|
const { id, iid } = c.req.valid("param");
|
|
127
127
|
const result = await kernel.services.customers.deleteInteraction(id, iid, c.get("actor"));
|
|
128
128
|
if (!result.ok)
|
|
129
|
-
return c.json(
|
|
129
|
+
return c.json(errorBody(result.error), mapErrorToStatus(result.error));
|
|
130
130
|
return c.json({ data: { deleted: true } });
|
|
131
131
|
});
|
|
132
132
|
return router;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"documents.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/rest/routes/documents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAOzD,OAAO,EAAE,KAAK,MAAM,
|
|
1
|
+
{"version":3,"file":"documents.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/rest/routes/documents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAOzD,OAAO,EAAE,KAAK,MAAM,EAA+C,MAAM,aAAa,CAAC;AAEvF;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,gCA2D5C"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { OpenAPIHono } from "@hono/zod-openapi";
|
|
2
2
|
import { emailInvoiceRoute, invoiceHtmlRoute, invoicePdfRoute, receiptHtmlRoute, } from "../schemas/documents.js";
|
|
3
|
-
import {
|
|
3
|
+
import { errorBody, mapErrorToStatus, requireAnyPerm } from "../utils.js";
|
|
4
4
|
/**
|
|
5
5
|
* Order document rendering (issue #47). Mounted under /orders. Access
|
|
6
6
|
* control rides on OrderService.getById (orders:read, or orders:read:own
|
|
@@ -10,35 +10,35 @@ export function documentRoutes(kernel) {
|
|
|
10
10
|
const router = new OpenAPIHono();
|
|
11
11
|
router.use("/*", requireAnyPerm(["orders:read", "orders:read:own"]));
|
|
12
12
|
router.openapi(invoicePdfRoute, async (c) => {
|
|
13
|
-
const guestCredential = c.req.header("x-cart-secret") ??
|
|
13
|
+
const guestCredential = c.req.header("x-cart-secret") ?? undefined;
|
|
14
14
|
const result = await kernel.services.documents.renderInvoicePdf(c.req.param("id"), c.get("actor"), undefined, guestCredential);
|
|
15
15
|
if (!result.ok)
|
|
16
|
-
return c.json(
|
|
16
|
+
return c.json(errorBody(result.error), mapErrorToStatus(result.error));
|
|
17
17
|
return c.body(result.value.pdf.slice().buffer, 200, {
|
|
18
18
|
"content-type": "application/pdf",
|
|
19
19
|
"content-disposition": `inline; filename="invoice-${result.value.invoiceNumber}.pdf"`,
|
|
20
20
|
});
|
|
21
21
|
});
|
|
22
22
|
router.openapi(invoiceHtmlRoute, async (c) => {
|
|
23
|
-
const guestCredential = c.req.header("x-cart-secret") ??
|
|
23
|
+
const guestCredential = c.req.header("x-cart-secret") ?? undefined;
|
|
24
24
|
const result = await kernel.services.documents.renderInvoiceHtml(c.req.param("id"), c.get("actor"), undefined, guestCredential);
|
|
25
25
|
if (!result.ok)
|
|
26
|
-
return c.json(
|
|
26
|
+
return c.json(errorBody(result.error), mapErrorToStatus(result.error));
|
|
27
27
|
return c.html(result.value.html);
|
|
28
28
|
});
|
|
29
29
|
router.openapi(receiptHtmlRoute, async (c) => {
|
|
30
|
-
const guestCredential = c.req.header("x-cart-secret") ??
|
|
30
|
+
const guestCredential = c.req.header("x-cart-secret") ?? undefined;
|
|
31
31
|
const result = await kernel.services.documents.renderReceiptHtml(c.req.param("id"), c.get("actor"), undefined, guestCredential);
|
|
32
32
|
if (!result.ok)
|
|
33
|
-
return c.json(
|
|
33
|
+
return c.json(errorBody(result.error), mapErrorToStatus(result.error));
|
|
34
34
|
return c.html(result.value.html);
|
|
35
35
|
});
|
|
36
36
|
// @ts-expect-error -- openapi handler union return type
|
|
37
37
|
router.openapi(emailInvoiceRoute, async (c) => {
|
|
38
|
-
const guestCredential = c.req.header("x-cart-secret") ??
|
|
38
|
+
const guestCredential = c.req.header("x-cart-secret") ?? undefined;
|
|
39
39
|
const result = await kernel.services.documents.emailInvoice(c.req.param("id"), c.req.valid("json").to, c.get("actor"), undefined, guestCredential);
|
|
40
40
|
if (!result.ok)
|
|
41
|
-
return c.json(
|
|
41
|
+
return c.json(errorBody(result.error), mapErrorToStatus(result.error));
|
|
42
42
|
return c.json({ data: result.value });
|
|
43
43
|
});
|
|
44
44
|
return router;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inventory.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/rest/routes/inventory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAUzD,OAAO,EAAE,KAAK,MAAM,
|
|
1
|
+
{"version":3,"file":"inventory.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/rest/routes/inventory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAUzD,OAAO,EAAE,KAAK,MAAM,EAA4C,MAAM,aAAa,CAAC;AAEpF,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,gCAiG7C"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { OpenAPIHono } from "@hono/zod-openapi";
|
|
2
2
|
import { inventoryAdjustRoute, inventoryReserveRoute, inventoryReleaseRoute, createWarehouseRoute, inventoryCheckRoute, listWarehousesRoute, listInventoryLevelsRoute, } from "../schemas/inventory.js";
|
|
3
|
-
import {
|
|
3
|
+
import { errorBody, mapErrorToStatus, requirePerm } from "../utils.js";
|
|
4
4
|
export function inventoryRoutes(kernel) {
|
|
5
5
|
const router = new OpenAPIHono();
|
|
6
6
|
// Inventory levels listing requires inventory:read
|
|
@@ -24,7 +24,7 @@ export function inventoryRoutes(kernel) {
|
|
|
24
24
|
...(entityId ? { entityId } : {}),
|
|
25
25
|
}, actor);
|
|
26
26
|
if (!result.ok)
|
|
27
|
-
return c.json(
|
|
27
|
+
return c.json(errorBody(result.error), mapErrorToStatus(result.error));
|
|
28
28
|
return c.json({ data: result.value });
|
|
29
29
|
});
|
|
30
30
|
// @ts-expect-error -- openapi handler union return type
|
|
@@ -35,7 +35,7 @@ export function inventoryRoutes(kernel) {
|
|
|
35
35
|
.filter(Boolean);
|
|
36
36
|
const result = await kernel.services.inventory.checkMultiple(entityIds, c.get("actor"));
|
|
37
37
|
if (!result.ok)
|
|
38
|
-
return c.json(
|
|
38
|
+
return c.json(errorBody(result.error), mapErrorToStatus(result.error));
|
|
39
39
|
return c.json({ data: result.value });
|
|
40
40
|
});
|
|
41
41
|
// @ts-expect-error -- openapi handler union return type
|
|
@@ -43,7 +43,7 @@ export function inventoryRoutes(kernel) {
|
|
|
43
43
|
const body = c.req.valid("json");
|
|
44
44
|
const result = await kernel.services.inventory.adjustDetailed(body, c.get("actor"));
|
|
45
45
|
if (!result.ok)
|
|
46
|
-
return c.json(
|
|
46
|
+
return c.json(errorBody(result.error), mapErrorToStatus(result.error));
|
|
47
47
|
const { level, before, after, delta, movementId } = result.value;
|
|
48
48
|
// Additive: level fields (back-compat) plus before/after/delta/movementId.
|
|
49
49
|
return c.json({ data: { ...level, before, after, delta, movementId } });
|
|
@@ -53,7 +53,7 @@ export function inventoryRoutes(kernel) {
|
|
|
53
53
|
const body = c.req.valid("json");
|
|
54
54
|
const result = await kernel.services.inventory.reserve(body, c.get("actor"));
|
|
55
55
|
if (!result.ok)
|
|
56
|
-
return c.json(
|
|
56
|
+
return c.json(errorBody(result.error), mapErrorToStatus(result.error));
|
|
57
57
|
return c.json({ data: { reserved: true } });
|
|
58
58
|
});
|
|
59
59
|
// @ts-expect-error -- openapi handler union return type
|
|
@@ -61,7 +61,7 @@ export function inventoryRoutes(kernel) {
|
|
|
61
61
|
const body = c.req.valid("json");
|
|
62
62
|
const result = await kernel.services.inventory.release(body, c.get("actor"));
|
|
63
63
|
if (!result.ok)
|
|
64
|
-
return c.json(
|
|
64
|
+
return c.json(errorBody(result.error), mapErrorToStatus(result.error));
|
|
65
65
|
return c.json({ data: { released: true } });
|
|
66
66
|
});
|
|
67
67
|
// @ts-expect-error -- openapi handler union return type
|
|
@@ -76,7 +76,7 @@ export function inventoryRoutes(kernel) {
|
|
|
76
76
|
}
|
|
77
77
|
const result = await kernel.services.inventory.createWarehouse(body, actor);
|
|
78
78
|
if (!result.ok)
|
|
79
|
-
return c.json(
|
|
79
|
+
return c.json(errorBody(result.error), mapErrorToStatus(result.error));
|
|
80
80
|
return c.json({ data: result.value }, 201);
|
|
81
81
|
});
|
|
82
82
|
// @ts-expect-error -- openapi handler union return type
|
|
@@ -84,7 +84,7 @@ export function inventoryRoutes(kernel) {
|
|
|
84
84
|
const actor = c.get("actor");
|
|
85
85
|
const result = await kernel.services.inventory.listWarehouses(actor);
|
|
86
86
|
if (!result.ok)
|
|
87
|
-
return c.json(
|
|
87
|
+
return c.json(errorBody(result.error), mapErrorToStatus(result.error));
|
|
88
88
|
return c.json({ data: result.value });
|
|
89
89
|
});
|
|
90
90
|
return router;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/rest/routes/media.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAGzD,OAAO,EAAE,KAAK,MAAM,
|
|
1
|
+
{"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/rest/routes/media.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAGzD,OAAO,EAAE,KAAK,MAAM,EAA+D,MAAM,aAAa,CAAC;AAEvG,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,gCA4FzC"}
|