@porulle/core 0.64.0 → 0.65.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/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 +5 -6
- 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,44 +0,0 @@
|
|
|
1
|
-
import type { CommerceConfig } from "../../config/types.js";
|
|
2
|
-
import type { DrizzleDatabase } from "../../kernel/database/drizzle-db.js";
|
|
3
|
-
import { defineModule } from "../../kernel/module/index.js";
|
|
4
|
-
import type { InventoryService } from "../inventory/service.js";
|
|
5
|
-
import { OrdersRepository } from "../orders/repository/index.js";
|
|
6
|
-
import { FulfillmentRepository } from "./repository/index.js";
|
|
7
|
-
import {
|
|
8
|
-
fulfillmentEvents,
|
|
9
|
-
fulfillmentLineItems,
|
|
10
|
-
fulfillmentRecords,
|
|
11
|
-
} from "./schema.js";
|
|
12
|
-
import { FulfillmentService } from "./service.js";
|
|
13
|
-
|
|
14
|
-
type FulfillmentModuleDeps = {
|
|
15
|
-
inventory: InventoryService;
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
export const fulfillmentModule = defineModule<
|
|
19
|
-
{
|
|
20
|
-
fulfillmentRecords: typeof fulfillmentRecords;
|
|
21
|
-
fulfillmentLineItems: typeof fulfillmentLineItems;
|
|
22
|
-
fulfillmentEvents: typeof fulfillmentEvents;
|
|
23
|
-
},
|
|
24
|
-
FulfillmentService,
|
|
25
|
-
FulfillmentModuleDeps
|
|
26
|
-
>({
|
|
27
|
-
id: "fulfillment",
|
|
28
|
-
dependencies: ["inventory"],
|
|
29
|
-
schema: () => ({
|
|
30
|
-
fulfillmentRecords,
|
|
31
|
-
fulfillmentLineItems,
|
|
32
|
-
fulfillmentEvents,
|
|
33
|
-
}),
|
|
34
|
-
service: (deps) =>
|
|
35
|
-
new FulfillmentService({
|
|
36
|
-
repository: new FulfillmentRepository(deps.db.db as DrizzleDatabase),
|
|
37
|
-
ordersRepository: new OrdersRepository(deps.db.db as DrizzleDatabase),
|
|
38
|
-
inventoryService: deps.services.inventory,
|
|
39
|
-
hooks: deps.hooks,
|
|
40
|
-
config: deps.config as CommerceConfig,
|
|
41
|
-
services: deps.services,
|
|
42
|
-
database: deps.db,
|
|
43
|
-
}),
|
|
44
|
-
});
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import type { CommerceConfig } from "../../config/types.js";
|
|
2
|
-
import type { DrizzleDatabase } from "../../kernel/database/drizzle-db.js";
|
|
3
|
-
import { defineModule } from "../../kernel/module/index.js";
|
|
4
|
-
import type { CatalogServiceImpl } from "../catalog/service.js";
|
|
5
|
-
import { InventoryRepository } from "./repository/index.js";
|
|
6
|
-
import { inventoryLevels, inventoryMovements, warehouses } from "./schema.js";
|
|
7
|
-
import { InventoryService } from "./service.js";
|
|
8
|
-
|
|
9
|
-
type InventoryModuleDeps = {
|
|
10
|
-
catalog: CatalogServiceImpl;
|
|
11
|
-
};
|
|
12
|
-
|
|
13
|
-
export const inventoryModule = defineModule<
|
|
14
|
-
{
|
|
15
|
-
inventoryLevels: typeof inventoryLevels;
|
|
16
|
-
inventoryMovements: typeof inventoryMovements;
|
|
17
|
-
warehouses: typeof warehouses;
|
|
18
|
-
},
|
|
19
|
-
InventoryService,
|
|
20
|
-
InventoryModuleDeps
|
|
21
|
-
>({
|
|
22
|
-
id: "inventory",
|
|
23
|
-
dependencies: ["catalog"],
|
|
24
|
-
schema: () => ({
|
|
25
|
-
inventoryLevels,
|
|
26
|
-
inventoryMovements,
|
|
27
|
-
warehouses,
|
|
28
|
-
}),
|
|
29
|
-
service: (deps) =>
|
|
30
|
-
new InventoryService({
|
|
31
|
-
repository: new InventoryRepository(deps.db.db as DrizzleDatabase),
|
|
32
|
-
hooks: deps.hooks,
|
|
33
|
-
config: deps.config as CommerceConfig,
|
|
34
|
-
services: deps.services,
|
|
35
|
-
database: deps.db,
|
|
36
|
-
}),
|
|
37
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { mediaModule } from "./module.js";
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import type { CommerceConfig } from "../../config/types.js";
|
|
2
|
-
import type { DrizzleDatabase } from "../../kernel/database/drizzle-db.js";
|
|
3
|
-
import { defineModule } from "../../kernel/module/index.js";
|
|
4
|
-
import { CatalogRepository } from "../catalog/repository/index.js";
|
|
5
|
-
import { MediaRepository } from "./repository/index.js";
|
|
6
|
-
import { MediaService } from "./service.js";
|
|
7
|
-
import { entityMedia, mediaAssets } from "./schema.js";
|
|
8
|
-
|
|
9
|
-
export const mediaModule = defineModule({
|
|
10
|
-
id: "media",
|
|
11
|
-
schema: () => ({ mediaAssets, entityMedia }),
|
|
12
|
-
service: (deps) => {
|
|
13
|
-
const db = deps.db.db as DrizzleDatabase;
|
|
14
|
-
const storage = (deps.config as CommerceConfig).storage;
|
|
15
|
-
if (storage == null) {
|
|
16
|
-
throw new Error("Media module requires config.storage");
|
|
17
|
-
}
|
|
18
|
-
return new MediaService({
|
|
19
|
-
repository: new MediaRepository(db),
|
|
20
|
-
catalogRepository: new CatalogRepository(db),
|
|
21
|
-
storage,
|
|
22
|
-
config: deps.config as CommerceConfig,
|
|
23
|
-
database: deps.db,
|
|
24
|
-
services: deps.services,
|
|
25
|
-
});
|
|
26
|
-
},
|
|
27
|
-
});
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import type { CommerceConfig } from "../../config/types.js";
|
|
2
|
-
import type { DrizzleDatabase } from "../../kernel/database/drizzle-db.js";
|
|
3
|
-
import { defineModule } from "../../kernel/module/index.js";
|
|
4
|
-
import { extendOrderStateMachine } from "../../kernel/state-machine/machine.js";
|
|
5
|
-
import type { CartService } from "../cart/service.js";
|
|
6
|
-
import type { FulfillmentService } from "../fulfillment/service.js";
|
|
7
|
-
import type { InventoryService } from "../inventory/service.js";
|
|
8
|
-
import type { PaymentsService } from "../payments/service.js";
|
|
9
|
-
import type { PricingService } from "../pricing/service.js";
|
|
10
|
-
import type { PromotionService } from "../promotions/service.js";
|
|
11
|
-
import type { TaxService } from "../tax/service.js";
|
|
12
|
-
import { OrdersRepository } from "./repository/index.js";
|
|
13
|
-
import {
|
|
14
|
-
orderLineItems,
|
|
15
|
-
orders,
|
|
16
|
-
orderStatusHistory,
|
|
17
|
-
} from "./schema.js";
|
|
18
|
-
import { OrderService } from "./service.js";
|
|
19
|
-
|
|
20
|
-
type OrdersModuleDeps = {
|
|
21
|
-
cart: CartService;
|
|
22
|
-
inventory: InventoryService;
|
|
23
|
-
payments: PaymentsService;
|
|
24
|
-
pricing: PricingService;
|
|
25
|
-
promotions: PromotionService;
|
|
26
|
-
fulfillment: FulfillmentService;
|
|
27
|
-
tax: TaxService;
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
export const ordersModule = defineModule<
|
|
31
|
-
{
|
|
32
|
-
orders: typeof orders;
|
|
33
|
-
orderLineItems: typeof orderLineItems;
|
|
34
|
-
orderStatusHistory: typeof orderStatusHistory;
|
|
35
|
-
},
|
|
36
|
-
OrderService,
|
|
37
|
-
OrdersModuleDeps
|
|
38
|
-
>({
|
|
39
|
-
id: "orders",
|
|
40
|
-
dependencies: [
|
|
41
|
-
"cart",
|
|
42
|
-
"inventory",
|
|
43
|
-
"payments",
|
|
44
|
-
"pricing",
|
|
45
|
-
"promotions",
|
|
46
|
-
"fulfillment",
|
|
47
|
-
"tax",
|
|
48
|
-
],
|
|
49
|
-
schema: () => ({ orders, orderLineItems, orderStatusHistory }),
|
|
50
|
-
service: (deps) => {
|
|
51
|
-
const config = deps.config as CommerceConfig;
|
|
52
|
-
return new OrderService({
|
|
53
|
-
repository: new OrdersRepository(deps.db.db as DrizzleDatabase),
|
|
54
|
-
hooks: deps.hooks,
|
|
55
|
-
config,
|
|
56
|
-
services: deps.services,
|
|
57
|
-
database: deps.db,
|
|
58
|
-
...(config.orders?.customTransitions
|
|
59
|
-
? {
|
|
60
|
-
stateMachine: extendOrderStateMachine(
|
|
61
|
-
config.orders.customTransitions,
|
|
62
|
-
),
|
|
63
|
-
}
|
|
64
|
-
: {}),
|
|
65
|
-
});
|
|
66
|
-
},
|
|
67
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { organizationModule } from "./module.js";
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { member, organization } from "../../auth/auth-schema.js";
|
|
2
|
-
import type { DrizzleDatabase } from "../../kernel/database/drizzle-db.js";
|
|
3
|
-
import { defineModule } from "../../kernel/module/index.js";
|
|
4
|
-
import { OrganizationService } from "./service.js";
|
|
5
|
-
|
|
6
|
-
export const organizationModule = defineModule({
|
|
7
|
-
id: "organization",
|
|
8
|
-
schema: () => ({ organization, member }),
|
|
9
|
-
service: (deps) =>
|
|
10
|
-
new OrganizationService(deps.db.db as DrizzleDatabase),
|
|
11
|
-
});
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import type { CommerceConfig } from "../../config/types.js";
|
|
2
|
-
import { defineModule } from "../../kernel/module/index.js";
|
|
3
|
-
import { PaymentsService } from "./service.js";
|
|
4
|
-
|
|
5
|
-
export const paymentsModule = defineModule<
|
|
6
|
-
Record<string, never>,
|
|
7
|
-
PaymentsService,
|
|
8
|
-
Record<string, never>
|
|
9
|
-
>({
|
|
10
|
-
id: "payments",
|
|
11
|
-
schema: () => ({}),
|
|
12
|
-
service: (deps) =>
|
|
13
|
-
new PaymentsService((deps.config as CommerceConfig).payments),
|
|
14
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { pricingModule } from "./module.js";
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import type { CommerceConfig } from "../../config/types.js";
|
|
2
|
-
import type { DrizzleDatabase } from "../../kernel/database/drizzle-db.js";
|
|
3
|
-
import { defineModule } from "../../kernel/module/index.js";
|
|
4
|
-
import type { CatalogRepository } from "../catalog/repository/index.js";
|
|
5
|
-
import { PricingRepository } from "./repository/index.js";
|
|
6
|
-
import { PricingService } from "./service.js";
|
|
7
|
-
import { priceModifiers, prices } from "./schema.js";
|
|
8
|
-
|
|
9
|
-
type PricingModuleDeps = {
|
|
10
|
-
catalog: {
|
|
11
|
-
repository: CatalogRepository;
|
|
12
|
-
};
|
|
13
|
-
};
|
|
14
|
-
|
|
15
|
-
export const pricingModule = defineModule<
|
|
16
|
-
{ prices: typeof prices; priceModifiers: typeof priceModifiers },
|
|
17
|
-
PricingService,
|
|
18
|
-
PricingModuleDeps
|
|
19
|
-
>({
|
|
20
|
-
id: "pricing",
|
|
21
|
-
dependencies: ["catalog"],
|
|
22
|
-
schema: () => ({ prices, priceModifiers }),
|
|
23
|
-
service: (deps) =>
|
|
24
|
-
new PricingService({
|
|
25
|
-
repository: new PricingRepository(deps.db.db as DrizzleDatabase),
|
|
26
|
-
catalogRepository: deps.services.catalog.repository,
|
|
27
|
-
hooks: deps.hooks,
|
|
28
|
-
config: deps.config as CommerceConfig,
|
|
29
|
-
services: deps.services,
|
|
30
|
-
database: deps.db,
|
|
31
|
-
}),
|
|
32
|
-
});
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import type { CommerceConfig } from "../../config/types.js";
|
|
2
|
-
import type { DrizzleDatabase } from "../../kernel/database/drizzle-db.js";
|
|
3
|
-
import { defineModule } from "../../kernel/module/index.js";
|
|
4
|
-
import type { CatalogServiceImpl } from "../catalog/service.js";
|
|
5
|
-
import type { OrderService } from "../orders/service.js";
|
|
6
|
-
import { OrdersRepository } from "../orders/repository/index.js";
|
|
7
|
-
import { PromotionsRepository } from "./repository/index.js";
|
|
8
|
-
import { promotionUsages, promotions } from "./schema.js";
|
|
9
|
-
import { PromotionService } from "./service.js";
|
|
10
|
-
|
|
11
|
-
type PromotionsModuleDeps = {
|
|
12
|
-
catalog: CatalogServiceImpl;
|
|
13
|
-
orders: OrderService;
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
export const promotionsModule = defineModule<
|
|
17
|
-
{ promotions: typeof promotions; promotionUsages: typeof promotionUsages },
|
|
18
|
-
PromotionService,
|
|
19
|
-
PromotionsModuleDeps
|
|
20
|
-
>({
|
|
21
|
-
id: "promotions",
|
|
22
|
-
dependencies: ["catalog", "orders"],
|
|
23
|
-
schema: () => ({ promotions, promotionUsages }),
|
|
24
|
-
service: (deps) =>
|
|
25
|
-
new PromotionService({
|
|
26
|
-
repository: new PromotionsRepository(deps.db.db as DrizzleDatabase),
|
|
27
|
-
catalogRepository: deps.services.catalog.repository,
|
|
28
|
-
ordersRepository: new OrdersRepository(deps.db.db as DrizzleDatabase),
|
|
29
|
-
hooks: deps.hooks,
|
|
30
|
-
config: deps.config as CommerceConfig,
|
|
31
|
-
services: deps.services,
|
|
32
|
-
database: deps.db,
|
|
33
|
-
}),
|
|
34
|
-
});
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import type { CommerceConfig } from "../../config/types.js";
|
|
2
|
-
import type { PluginDb } from "../../kernel/database/plugin-types.js";
|
|
3
|
-
import { defineModule } from "../../kernel/module/index.js";
|
|
4
|
-
import type { CatalogServiceImpl } from "../catalog/service.js";
|
|
5
|
-
import { SearchService } from "./service.js";
|
|
6
|
-
|
|
7
|
-
type SearchModuleDeps = {
|
|
8
|
-
catalog: CatalogServiceImpl;
|
|
9
|
-
};
|
|
10
|
-
|
|
11
|
-
export const searchModule = defineModule<Record<string, never>, SearchService, SearchModuleDeps>(
|
|
12
|
-
{
|
|
13
|
-
id: "search",
|
|
14
|
-
dependencies: ["catalog"],
|
|
15
|
-
schema: () => ({}),
|
|
16
|
-
service: (deps) => {
|
|
17
|
-
const config = deps.config as CommerceConfig;
|
|
18
|
-
const adapter = config.search?.adapter;
|
|
19
|
-
adapter?.init?.({ db: deps.db.db as PluginDb });
|
|
20
|
-
return new SearchService({
|
|
21
|
-
catalogRepository: deps.services.catalog.repository,
|
|
22
|
-
resolveEntityFieldDefinitions: deps.services.catalog.resolveEntityFieldDefinitions.bind(deps.services.catalog),
|
|
23
|
-
config,
|
|
24
|
-
...(config.entities ? { entities: config.entities } : {}),
|
|
25
|
-
...(adapter ? { adapter } : {}),
|
|
26
|
-
...(config.search?.defaultFacets
|
|
27
|
-
? { defaultFacets: config.search.defaultFacets }
|
|
28
|
-
: {}),
|
|
29
|
-
});
|
|
30
|
-
},
|
|
31
|
-
},
|
|
32
|
-
);
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import type { CommerceConfig } from "../../config/types.js";
|
|
2
|
-
import type { DrizzleDatabase } from "../../kernel/database/drizzle-db.js";
|
|
3
|
-
import { defineModule } from "../../kernel/module/index.js";
|
|
4
|
-
import { SettingsRepository } from "./repository/index.js";
|
|
5
|
-
import { storeSettings } from "./schema.js";
|
|
6
|
-
import { SettingsService } from "./service.js";
|
|
7
|
-
|
|
8
|
-
export const settingsModule = defineModule<
|
|
9
|
-
{ storeSettings: typeof storeSettings },
|
|
10
|
-
SettingsService,
|
|
11
|
-
Record<string, never>
|
|
12
|
-
>({
|
|
13
|
-
id: "settings",
|
|
14
|
-
schema: () => ({ storeSettings }),
|
|
15
|
-
service: (deps) =>
|
|
16
|
-
new SettingsService({
|
|
17
|
-
repository: new SettingsRepository(deps.db.db as DrizzleDatabase),
|
|
18
|
-
config: deps.config as CommerceConfig,
|
|
19
|
-
}),
|
|
20
|
-
});
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import type { CommerceConfig } from "../../config/types.js";
|
|
2
|
-
import type { DrizzleDatabase } from "../../kernel/database/drizzle-db.js";
|
|
3
|
-
import { defineModule } from "../../kernel/module/index.js";
|
|
4
|
-
import type { CatalogServiceImpl } from "../catalog/service.js";
|
|
5
|
-
import { ShippingConfigRepository } from "./repository/index.js";
|
|
6
|
-
import { shippingZones, shippingRates } from "./schema.js";
|
|
7
|
-
import { ShippingService } from "./service.js";
|
|
8
|
-
|
|
9
|
-
type ShippingModuleDeps = {
|
|
10
|
-
catalog: CatalogServiceImpl;
|
|
11
|
-
};
|
|
12
|
-
|
|
13
|
-
export const shippingModule = defineModule<
|
|
14
|
-
{ shippingZones: typeof shippingZones; shippingRates: typeof shippingRates },
|
|
15
|
-
ShippingService,
|
|
16
|
-
ShippingModuleDeps
|
|
17
|
-
>({
|
|
18
|
-
id: "shipping",
|
|
19
|
-
dependencies: ["catalog"],
|
|
20
|
-
schema: () => ({ shippingZones, shippingRates }),
|
|
21
|
-
service: (deps) =>
|
|
22
|
-
new ShippingService({
|
|
23
|
-
config: deps.config as CommerceConfig,
|
|
24
|
-
catalogRepository: deps.services.catalog.repository,
|
|
25
|
-
repository: new ShippingConfigRepository(deps.db.db as DrizzleDatabase),
|
|
26
|
-
}),
|
|
27
|
-
});
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import type { CommerceConfig } from "../../config/types.js";
|
|
2
|
-
import type { DrizzleDatabase } from "../../kernel/database/drizzle-db.js";
|
|
3
|
-
import { defineModule } from "../../kernel/module/index.js";
|
|
4
|
-
import { TaxRatesRepository } from "./repository/index.js";
|
|
5
|
-
import { taxClasses, taxRates } from "./schema.js";
|
|
6
|
-
import { TaxService } from "./service.js";
|
|
7
|
-
|
|
8
|
-
export const taxModule = defineModule<
|
|
9
|
-
{ taxRates: typeof taxRates; taxClasses: typeof taxClasses },
|
|
10
|
-
TaxService,
|
|
11
|
-
Record<string, never>
|
|
12
|
-
>({
|
|
13
|
-
id: "tax",
|
|
14
|
-
schema: () => ({ taxRates, taxClasses }),
|
|
15
|
-
service: (deps) =>
|
|
16
|
-
new TaxService({
|
|
17
|
-
adapter: (deps.config as CommerceConfig).tax?.adapter,
|
|
18
|
-
repository: new TaxRatesRepository(deps.db.db as DrizzleDatabase),
|
|
19
|
-
config: deps.config as CommerceConfig,
|
|
20
|
-
}),
|
|
21
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { webhooksModule } from "./module.js";
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import type { CommerceConfig } from "../../config/types.js";
|
|
2
|
-
import { defineModule } from "../../kernel/module/index.js";
|
|
3
|
-
import type { DrizzleDatabase } from "../../kernel/database/drizzle-db.js";
|
|
4
|
-
import { WebhooksRepository } from "./repository/index.js";
|
|
5
|
-
import { WebhookService } from "./service.js";
|
|
6
|
-
import {
|
|
7
|
-
processedWebhookEvents,
|
|
8
|
-
webhookDeliveries,
|
|
9
|
-
webhookEndpoints,
|
|
10
|
-
} from "./schema.js";
|
|
11
|
-
|
|
12
|
-
export const webhooksModule = defineModule({
|
|
13
|
-
id: "webhooks",
|
|
14
|
-
schema: () => ({
|
|
15
|
-
webhookEndpoints,
|
|
16
|
-
processedWebhookEvents,
|
|
17
|
-
webhookDeliveries,
|
|
18
|
-
}),
|
|
19
|
-
service: (deps) =>
|
|
20
|
-
new WebhookService({
|
|
21
|
-
repository: new WebhooksRepository(deps.db.db as DrizzleDatabase),
|
|
22
|
-
config: deps.config as CommerceConfig,
|
|
23
|
-
}),
|
|
24
|
-
});
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import type { CommerceConfig } from "../config/types.js";
|
|
2
|
-
import { createTestConfig } from "./create-test-config.js";
|
|
3
|
-
import { createKernel } from "../runtime/kernel.js";
|
|
4
|
-
|
|
5
|
-
export interface RepositoryTestHarness {
|
|
6
|
-
config: CommerceConfig;
|
|
7
|
-
kernel: ReturnType<typeof createKernel>;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
export async function createRepositoryTestHarness(
|
|
11
|
-
overrides: Partial<CommerceConfig> = {},
|
|
12
|
-
): Promise<RepositoryTestHarness> {
|
|
13
|
-
const config = await createTestConfig(overrides);
|
|
14
|
-
const kernel = createKernel(config);
|
|
15
|
-
return { config, kernel };
|
|
16
|
-
}
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
import { HookRegistry } from "../kernel/hooks/registry.js";
|
|
2
|
-
import { createLogger } from "../utils/logger.js";
|
|
3
|
-
import { createTestConfig } from "./create-test-config.js";
|
|
4
|
-
import type { CommerceConfig } from "../config/types.js";
|
|
5
|
-
|
|
6
|
-
interface PluginContextShape {
|
|
7
|
-
hooks: HookRegistry;
|
|
8
|
-
config: CommerceConfig;
|
|
9
|
-
services: Record<string, unknown>;
|
|
10
|
-
routes: { add(method: string, path: string, handler: (...args: unknown[]) => unknown): void };
|
|
11
|
-
analytics: { registerModel(model: unknown): void };
|
|
12
|
-
database: {
|
|
13
|
-
registerSchema(schema: Record<string, unknown>): void;
|
|
14
|
-
query: unknown;
|
|
15
|
-
transaction<T>(fn: (tx: unknown) => Promise<T>): Promise<T>;
|
|
16
|
-
};
|
|
17
|
-
logger: { info(message: string, data?: unknown): void; warn(message: string, data?: unknown): void; error(message: string, data?: unknown): void };
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
export interface TestPluginContext extends PluginContextShape {
|
|
21
|
-
registeredRoutes: Array<{ method: string; path: string; handler: (...args: unknown[]) => unknown }>;
|
|
22
|
-
registeredAnalyticsModels: unknown[];
|
|
23
|
-
registeredSchemas: Array<Record<string, unknown>>;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
export async function createTestPluginContext(options?: {
|
|
27
|
-
config?: Partial<CommerceConfig>;
|
|
28
|
-
services?: Record<string, unknown>;
|
|
29
|
-
}): Promise<TestPluginContext> {
|
|
30
|
-
const hooks = new HookRegistry();
|
|
31
|
-
const config = await createTestConfig(options?.config ?? {});
|
|
32
|
-
const services = options?.services ?? {};
|
|
33
|
-
|
|
34
|
-
const registeredRoutes: TestPluginContext["registeredRoutes"] = [];
|
|
35
|
-
const registeredAnalyticsModels: unknown[] = [];
|
|
36
|
-
const registeredSchemas: Array<Record<string, unknown>> = [];
|
|
37
|
-
|
|
38
|
-
return {
|
|
39
|
-
hooks,
|
|
40
|
-
config,
|
|
41
|
-
services,
|
|
42
|
-
routes: {
|
|
43
|
-
add(method, path, handler) {
|
|
44
|
-
registeredRoutes.push({ method: method.toUpperCase(), path, handler });
|
|
45
|
-
},
|
|
46
|
-
},
|
|
47
|
-
analytics: {
|
|
48
|
-
registerModel(model) {
|
|
49
|
-
registeredAnalyticsModels.push(model);
|
|
50
|
-
},
|
|
51
|
-
},
|
|
52
|
-
database: {
|
|
53
|
-
registerSchema(schema) {
|
|
54
|
-
registeredSchemas.push(schema);
|
|
55
|
-
},
|
|
56
|
-
query: {},
|
|
57
|
-
async transaction<T>(fn: (tx: unknown) => Promise<T>): Promise<T> {
|
|
58
|
-
return fn({});
|
|
59
|
-
},
|
|
60
|
-
},
|
|
61
|
-
logger: createLogger("test-plugin-context"),
|
|
62
|
-
registeredRoutes,
|
|
63
|
-
registeredAnalyticsModels,
|
|
64
|
-
registeredSchemas,
|
|
65
|
-
};
|
|
66
|
-
}
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import type { PluginHookRegistration } from "../kernel/plugin/manifest.js";
|
|
2
|
-
import type { HookContext, HookOperation } from "../kernel/hooks/types.js";
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Creates a typed before-hook registration for plugins.
|
|
6
|
-
*
|
|
7
|
-
* Narrows the handler signature from the loose `(...args: unknown[]) => unknown`
|
|
8
|
-
* on PluginHookRegistration to the actual `{ data, operation, context }` shape,
|
|
9
|
-
* providing autocomplete on context.jobs.enqueue(), context.logger.info(), etc.
|
|
10
|
-
*
|
|
11
|
-
* @example
|
|
12
|
-
* ```typescript
|
|
13
|
-
* hooks: () => [
|
|
14
|
-
* beforeHook<{ customerId: string }>("orders.beforeCreate", async ({ data, context }) => {
|
|
15
|
-
* context.logger.info("order_creating", { customerId: data.customerId });
|
|
16
|
-
* return data;
|
|
17
|
-
* }),
|
|
18
|
-
* ],
|
|
19
|
-
* ```
|
|
20
|
-
*/
|
|
21
|
-
export function beforeHook<TData>(
|
|
22
|
-
key: string,
|
|
23
|
-
handler: (args: {
|
|
24
|
-
data: TData;
|
|
25
|
-
operation: HookOperation;
|
|
26
|
-
context: HookContext;
|
|
27
|
-
}) => Promise<TData> | TData,
|
|
28
|
-
): PluginHookRegistration {
|
|
29
|
-
return { key, handler: handler as PluginHookRegistration["handler"] };
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* Creates a typed after-hook registration for plugins.
|
|
34
|
-
*
|
|
35
|
-
* @example
|
|
36
|
-
* ```typescript
|
|
37
|
-
* import { resolveOrgId } from "@porulle/core";
|
|
38
|
-
* hooks: () => [
|
|
39
|
-
* afterHook<{ id: string; grandTotal: number }>("orders.afterCreate", async ({ result, context }) => {
|
|
40
|
-
* await context.jobs.enqueue("loyalty:award-points", { orderId: result.id }, { organizationId: resolveOrgId(context.actor) });
|
|
41
|
-
* }),
|
|
42
|
-
* ],
|
|
43
|
-
* ```
|
|
44
|
-
*/
|
|
45
|
-
export function afterHook<TData>(
|
|
46
|
-
key: string,
|
|
47
|
-
handler: (args: {
|
|
48
|
-
data: TData | null;
|
|
49
|
-
result: TData;
|
|
50
|
-
operation: HookOperation;
|
|
51
|
-
context: HookContext;
|
|
52
|
-
}) => Promise<void> | void,
|
|
53
|
-
): PluginHookRegistration {
|
|
54
|
-
return { key, handler: handler as PluginHookRegistration["handler"] };
|
|
55
|
-
}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import type { sellableEntities } from "../modules/catalog/schema.js";
|
|
2
|
-
import type { orders } from "../modules/orders/schema.js";
|
|
3
|
-
import type { carts } from "../modules/cart/schema.js";
|
|
4
|
-
import type { customers } from "../modules/customers/schema.js";
|
|
5
|
-
import type { inventoryLevels } from "../modules/inventory/schema.js";
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Central type map for all commerce entities.
|
|
9
|
-
*
|
|
10
|
-
* Plugins can augment this interface via TypeScript module augmentation:
|
|
11
|
-
*
|
|
12
|
-
* ```typescript
|
|
13
|
-
* declare module "@porulle/core" {
|
|
14
|
-
* interface CommerceModuleTypes {
|
|
15
|
-
* LoyaltyPoints: {
|
|
16
|
-
* id: string;
|
|
17
|
-
* customerId: string;
|
|
18
|
-
* points: number;
|
|
19
|
-
* tier: "bronze" | "silver" | "gold";
|
|
20
|
-
* };
|
|
21
|
-
* }
|
|
22
|
-
* }
|
|
23
|
-
* ```
|
|
24
|
-
*
|
|
25
|
-
* This enables plugin types to be referenced without importing
|
|
26
|
-
* internal schema modules.
|
|
27
|
-
*/
|
|
28
|
-
export interface CommerceModuleTypes {
|
|
29
|
-
Product: typeof sellableEntities.$inferSelect;
|
|
30
|
-
Order: typeof orders.$inferSelect;
|
|
31
|
-
Cart: typeof carts.$inferSelect;
|
|
32
|
-
Customer: typeof customers.$inferSelect;
|
|
33
|
-
InventoryLevel: typeof inventoryLevels.$inferSelect;
|
|
34
|
-
}
|