@unifiedcommerce/core 0.0.1 → 0.0.2
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/auth/access.d.ts +1 -1
- package/dist/auth/access.d.ts.map +1 -1
- package/dist/auth/auth-schema.js +3 -3
- package/dist/auth/middleware.d.ts +2 -2
- package/dist/auth/middleware.d.ts.map +1 -1
- package/dist/auth/middleware.js +37 -10
- package/dist/auth/org.js +1 -1
- package/dist/auth/permissions.d.ts +1 -1
- package/dist/auth/permissions.d.ts.map +1 -1
- package/dist/auth/permissions.js +1 -1
- package/dist/auth/setup.d.ts +19 -10
- package/dist/auth/setup.d.ts.map +1 -1
- package/dist/auth/setup.js +3 -4
- package/dist/auth/system-actor.d.ts +1 -1
- package/dist/auth/system-actor.d.ts.map +1 -1
- package/dist/auth/system-actor.js +1 -1
- package/dist/config/defaults.d.ts +1 -1
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/define-config.d.ts +1 -1
- package/dist/config/define-config.d.ts.map +1 -1
- package/dist/config/define-config.js +2 -2
- package/dist/config/types.d.ts +11 -11
- package/dist/config/types.d.ts.map +1 -1
- package/dist/hooks/checkout-completion.d.ts +2 -2
- package/dist/hooks/checkout-completion.d.ts.map +1 -1
- package/dist/hooks/checkout-completion.js +2 -2
- package/dist/hooks/checkout.d.ts +3 -3
- package/dist/hooks/checkout.d.ts.map +1 -1
- package/dist/hooks/checkout.js +3 -3
- package/dist/hooks/order-emails.d.ts +1 -1
- package/dist/hooks/order-emails.d.ts.map +1 -1
- package/dist/index.d.ts +81 -81
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +50 -13381
- package/dist/interfaces/mcp/context-enrichment.d.ts +2 -2
- package/dist/interfaces/mcp/context-enrichment.d.ts.map +1 -1
- package/dist/interfaces/mcp/context-enrichment.js +1 -1
- package/dist/interfaces/mcp/server.d.ts +2 -2
- package/dist/interfaces/mcp/server.d.ts.map +1 -1
- package/dist/interfaces/mcp/server.js +3 -3
- package/dist/interfaces/mcp/transport.d.ts +2 -2
- package/dist/interfaces/mcp/transport.d.ts.map +1 -1
- package/dist/interfaces/mcp/transport.js +1 -1
- package/dist/interfaces/rest/customer-portal.d.ts +2 -2
- package/dist/interfaces/rest/customer-portal.d.ts.map +1 -1
- package/dist/interfaces/rest/customer-portal.js +3 -3
- package/dist/interfaces/rest/index.d.ts +2 -2
- package/dist/interfaces/rest/index.d.ts.map +1 -1
- package/dist/interfaces/rest/index.js +13 -13
- package/dist/interfaces/rest/router.d.ts +1 -1
- package/dist/interfaces/rest/router.d.ts.map +1 -1
- package/dist/interfaces/rest/router.js +4 -4
- package/dist/interfaces/rest/routes/admin-jobs.d.ts +2 -2
- package/dist/interfaces/rest/routes/admin-jobs.d.ts.map +1 -1
- package/dist/interfaces/rest/routes/admin-jobs.js +4 -4
- package/dist/interfaces/rest/routes/audit.d.ts +2 -2
- package/dist/interfaces/rest/routes/audit.d.ts.map +1 -1
- package/dist/interfaces/rest/routes/audit.js +3 -3
- package/dist/interfaces/rest/routes/carts.d.ts +2 -2
- package/dist/interfaces/rest/routes/carts.d.ts.map +1 -1
- package/dist/interfaces/rest/routes/carts.js +2 -2
- package/dist/interfaces/rest/routes/catalog.d.ts +2 -2
- package/dist/interfaces/rest/routes/catalog.d.ts.map +1 -1
- package/dist/interfaces/rest/routes/catalog.js +2 -2
- package/dist/interfaces/rest/routes/checkout.d.ts +2 -2
- package/dist/interfaces/rest/routes/checkout.d.ts.map +1 -1
- package/dist/interfaces/rest/routes/checkout.js +7 -7
- package/dist/interfaces/rest/routes/inventory.d.ts +2 -2
- package/dist/interfaces/rest/routes/inventory.d.ts.map +1 -1
- package/dist/interfaces/rest/routes/inventory.js +2 -2
- package/dist/interfaces/rest/routes/media.d.ts +2 -2
- package/dist/interfaces/rest/routes/media.d.ts.map +1 -1
- package/dist/interfaces/rest/routes/media.js +2 -2
- package/dist/interfaces/rest/routes/orders.d.ts +2 -2
- package/dist/interfaces/rest/routes/orders.d.ts.map +1 -1
- package/dist/interfaces/rest/routes/orders.js +2 -2
- package/dist/interfaces/rest/routes/payments.d.ts +2 -2
- 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 +2 -2
- package/dist/interfaces/rest/routes/pricing.d.ts.map +1 -1
- package/dist/interfaces/rest/routes/pricing.js +2 -2
- package/dist/interfaces/rest/routes/promotions.d.ts +2 -2
- package/dist/interfaces/rest/routes/promotions.d.ts.map +1 -1
- package/dist/interfaces/rest/routes/promotions.js +3 -3
- package/dist/interfaces/rest/routes/search.d.ts +2 -2
- package/dist/interfaces/rest/routes/search.d.ts.map +1 -1
- package/dist/interfaces/rest/routes/search.js +2 -2
- package/dist/interfaces/rest/routes/webhooks.d.ts +2 -2
- package/dist/interfaces/rest/routes/webhooks.d.ts.map +1 -1
- package/dist/interfaces/rest/routes/webhooks.js +2 -2
- package/dist/interfaces/rest/schemas/admin-jobs.js +1 -1
- package/dist/interfaces/rest/schemas/carts.d.ts +1 -1
- package/dist/interfaces/rest/schemas/carts.d.ts.map +1 -1
- package/dist/interfaces/rest/schemas/carts.js +3 -3
- package/dist/interfaces/rest/schemas/catalog.js +3 -3
- package/dist/interfaces/rest/schemas/checkout.js +1 -1
- package/dist/interfaces/rest/schemas/customer-portal.js +2 -2
- package/dist/interfaces/rest/schemas/inventory.d.ts +1 -1
- package/dist/interfaces/rest/schemas/inventory.d.ts.map +1 -1
- package/dist/interfaces/rest/schemas/inventory.js +2 -2
- package/dist/interfaces/rest/schemas/media.js +1 -1
- package/dist/interfaces/rest/schemas/orders.js +2 -2
- package/dist/interfaces/rest/schemas/pricing.d.ts +1 -1
- package/dist/interfaces/rest/schemas/pricing.d.ts.map +1 -1
- package/dist/interfaces/rest/schemas/pricing.js +2 -2
- package/dist/interfaces/rest/schemas/promotions.d.ts +1 -1
- package/dist/interfaces/rest/schemas/promotions.d.ts.map +1 -1
- package/dist/interfaces/rest/schemas/promotions.js +2 -2
- package/dist/interfaces/rest/schemas/responses.js +5 -5
- package/dist/interfaces/rest/schemas/search.js +1 -1
- package/dist/interfaces/rest/schemas/webhooks.js +1 -1
- package/dist/interfaces/rest/utils.d.ts +2 -2
- package/dist/interfaces/rest/utils.d.ts.map +1 -1
- package/dist/interfaces/rest/utils.js +2 -2
- package/dist/interfaces/rest/webhook-router.d.ts +1 -1
- package/dist/interfaces/rest/webhook-router.d.ts.map +1 -1
- package/dist/kernel/compensation/executor.d.ts +2 -2
- package/dist/kernel/compensation/executor.d.ts.map +1 -1
- package/dist/kernel/compensation/types.d.ts +3 -3
- package/dist/kernel/compensation/types.d.ts.map +1 -1
- package/dist/kernel/database/drizzle-db.d.ts +1 -1
- package/dist/kernel/database/drizzle-db.d.ts.map +1 -1
- package/dist/kernel/database/drizzle-db.js +1 -1
- package/dist/kernel/database/migrate.d.ts +2 -2
- package/dist/kernel/database/migrate.d.ts.map +1 -1
- package/dist/kernel/database/migrate.js +1 -1
- package/dist/kernel/database/schema.d.ts +13 -13
- package/dist/kernel/database/schema.d.ts.map +1 -1
- package/dist/kernel/database/schema.js +13 -13
- package/dist/kernel/database/tx-context.d.ts +2 -2
- package/dist/kernel/database/tx-context.d.ts.map +1 -1
- package/dist/kernel/error-mapper.js +1 -1
- package/dist/kernel/factory/repository-factory.d.ts +2 -2
- package/dist/kernel/factory/repository-factory.d.ts.map +1 -1
- package/dist/kernel/factory/repository-factory.js +1 -1
- package/dist/kernel/hooks/create-context.d.ts +4 -4
- package/dist/kernel/hooks/create-context.d.ts.map +1 -1
- package/dist/kernel/hooks/create-context.js +1 -1
- package/dist/kernel/hooks/executor.d.ts +1 -1
- package/dist/kernel/hooks/executor.d.ts.map +1 -1
- package/dist/kernel/hooks/types.d.ts +3 -3
- package/dist/kernel/hooks/types.d.ts.map +1 -1
- package/dist/kernel/http-error.d.ts +1 -1
- package/dist/kernel/http-error.d.ts.map +1 -1
- package/dist/kernel/jobs/drizzle-adapter.d.ts +3 -3
- package/dist/kernel/jobs/drizzle-adapter.d.ts.map +1 -1
- package/dist/kernel/jobs/drizzle-adapter.js +2 -2
- package/dist/kernel/jobs/runner.d.ts +3 -3
- package/dist/kernel/jobs/runner.d.ts.map +1 -1
- package/dist/kernel/jobs/runner.js +1 -1
- package/dist/kernel/jobs/schema.js +1 -1
- package/dist/kernel/jobs/types.d.ts +2 -2
- package/dist/kernel/jobs/types.d.ts.map +1 -1
- package/dist/kernel/local-api.d.ts +21 -21
- package/dist/kernel/local-api.d.ts.map +1 -1
- package/dist/kernel/plugin/manifest.d.ts +1 -1
- package/dist/kernel/plugin/manifest.d.ts.map +1 -1
- package/dist/kernel/query/executor.d.ts +1 -1
- package/dist/kernel/query/executor.d.ts.map +1 -1
- package/dist/kernel/query/executor.js +1 -1
- package/dist/kernel/result.d.ts +1 -1
- package/dist/kernel/result.d.ts.map +1 -1
- package/dist/kernel/state-machine/machine.js +1 -1
- package/dist/modules/analytics/drizzle-adapter.d.ts +3 -3
- package/dist/modules/analytics/drizzle-adapter.d.ts.map +1 -1
- package/dist/modules/analytics/drizzle-adapter.js +2 -2
- package/dist/modules/analytics/models.d.ts +1 -1
- package/dist/modules/analytics/models.d.ts.map +1 -1
- package/dist/modules/analytics/repository/index.d.ts +1 -1
- package/dist/modules/analytics/repository/index.d.ts.map +1 -1
- package/dist/modules/analytics/service.d.ts +4 -4
- package/dist/modules/analytics/service.d.ts.map +1 -1
- package/dist/modules/analytics/service.js +2 -2
- package/dist/modules/analytics/types.d.ts +1 -1
- package/dist/modules/analytics/types.d.ts.map +1 -1
- package/dist/modules/audit/hooks.d.ts +1 -1
- package/dist/modules/audit/hooks.d.ts.map +1 -1
- package/dist/modules/audit/schema.js +1 -1
- package/dist/modules/audit/service.d.ts +4 -4
- package/dist/modules/audit/service.d.ts.map +1 -1
- package/dist/modules/audit/service.js +2 -2
- package/dist/modules/cart/access.d.ts +2 -2
- package/dist/modules/cart/access.d.ts.map +1 -1
- package/dist/modules/cart/matcher.d.ts +1 -1
- package/dist/modules/cart/matcher.d.ts.map +1 -1
- package/dist/modules/cart/repository/index.d.ts +3 -3
- package/dist/modules/cart/repository/index.d.ts.map +1 -1
- package/dist/modules/cart/repository/index.js +1 -1
- package/dist/modules/cart/schema.js +2 -2
- package/dist/modules/cart/service.d.ts +10 -10
- package/dist/modules/cart/service.d.ts.map +1 -1
- package/dist/modules/cart/service.js +8 -8
- package/dist/modules/catalog/repository/index.d.ts +3 -3
- package/dist/modules/catalog/repository/index.d.ts.map +1 -1
- package/dist/modules/catalog/repository/index.js +1 -1
- package/dist/modules/catalog/schema.js +1 -1
- package/dist/modules/catalog/service.d.ts +9 -9
- package/dist/modules/catalog/service.d.ts.map +1 -1
- package/dist/modules/catalog/service.js +8 -8
- package/dist/modules/customers/repository/index.d.ts +3 -3
- package/dist/modules/customers/repository/index.d.ts.map +1 -1
- package/dist/modules/customers/repository/index.js +1 -1
- package/dist/modules/customers/schema.js +1 -1
- package/dist/modules/customers/service.d.ts +4 -4
- package/dist/modules/customers/service.d.ts.map +1 -1
- package/dist/modules/customers/service.js +3 -3
- package/dist/modules/fulfillment/repository/index.d.ts +3 -3
- package/dist/modules/fulfillment/repository/index.d.ts.map +1 -1
- package/dist/modules/fulfillment/repository/index.js +1 -1
- package/dist/modules/fulfillment/schema.js +2 -2
- package/dist/modules/fulfillment/service.d.ts +6 -6
- package/dist/modules/fulfillment/service.d.ts.map +1 -1
- package/dist/modules/fulfillment/service.js +4 -4
- package/dist/modules/fulfillment/types.d.ts +2 -2
- package/dist/modules/fulfillment/types.d.ts.map +1 -1
- package/dist/modules/inventory/repository/index.d.ts +3 -3
- package/dist/modules/inventory/repository/index.d.ts.map +1 -1
- package/dist/modules/inventory/repository/index.js +1 -1
- package/dist/modules/inventory/schema.js +2 -2
- package/dist/modules/inventory/service.d.ts +9 -9
- package/dist/modules/inventory/service.d.ts.map +1 -1
- package/dist/modules/inventory/service.js +8 -8
- package/dist/modules/media/adapter.d.ts +1 -1
- package/dist/modules/media/adapter.d.ts.map +1 -1
- package/dist/modules/media/repository/index.d.ts +3 -3
- package/dist/modules/media/repository/index.d.ts.map +1 -1
- package/dist/modules/media/repository/index.js +1 -1
- package/dist/modules/media/schema.js +2 -2
- package/dist/modules/media/service.d.ts +6 -6
- package/dist/modules/media/service.d.ts.map +1 -1
- package/dist/modules/media/service.js +4 -4
- package/dist/modules/orders/repository/index.d.ts +3 -3
- package/dist/modules/orders/repository/index.d.ts.map +1 -1
- package/dist/modules/orders/repository/index.js +1 -1
- package/dist/modules/orders/schema.js +2 -2
- package/dist/modules/orders/service.d.ts +8 -8
- package/dist/modules/orders/service.d.ts.map +1 -1
- package/dist/modules/orders/service.js +9 -9
- package/dist/modules/orders/stale-order-cleanup.d.ts +1 -1
- package/dist/modules/orders/stale-order-cleanup.d.ts.map +1 -1
- package/dist/modules/orders/stale-order-cleanup.js +1 -1
- package/dist/modules/organization/service.d.ts +1 -1
- package/dist/modules/organization/service.d.ts.map +1 -1
- package/dist/modules/organization/service.js +1 -1
- package/dist/modules/payments/adapter.d.ts +1 -1
- package/dist/modules/payments/adapter.d.ts.map +1 -1
- package/dist/modules/payments/repository/index.d.ts +1 -1
- package/dist/modules/payments/repository/index.d.ts.map +1 -1
- package/dist/modules/payments/service.d.ts +3 -3
- package/dist/modules/payments/service.d.ts.map +1 -1
- package/dist/modules/payments/service.js +2 -2
- package/dist/modules/pricing/repository/index.d.ts +3 -3
- package/dist/modules/pricing/repository/index.d.ts.map +1 -1
- package/dist/modules/pricing/repository/index.js +1 -1
- package/dist/modules/pricing/schema.js +2 -2
- package/dist/modules/pricing/service.d.ts +7 -7
- package/dist/modules/pricing/service.d.ts.map +1 -1
- package/dist/modules/pricing/service.js +3 -3
- package/dist/modules/promotions/repository/index.d.ts +3 -3
- package/dist/modules/promotions/repository/index.d.ts.map +1 -1
- package/dist/modules/promotions/repository/index.js +1 -1
- package/dist/modules/promotions/schema.js +1 -1
- package/dist/modules/promotions/service.d.ts +8 -8
- package/dist/modules/promotions/service.d.ts.map +1 -1
- package/dist/modules/promotions/service.js +3 -3
- package/dist/modules/search/adapter.d.ts +1 -1
- package/dist/modules/search/adapter.d.ts.map +1 -1
- package/dist/modules/search/hooks.d.ts +1 -1
- package/dist/modules/search/hooks.d.ts.map +1 -1
- package/dist/modules/search/repository/index.d.ts +1 -1
- package/dist/modules/search/repository/index.d.ts.map +1 -1
- package/dist/modules/search/service.d.ts +4 -4
- package/dist/modules/search/service.d.ts.map +1 -1
- package/dist/modules/search/service.js +2 -2
- package/dist/modules/shipping/calculator.d.ts +3 -3
- package/dist/modules/shipping/calculator.d.ts.map +1 -1
- package/dist/modules/shipping/repository/index.d.ts +1 -1
- package/dist/modules/shipping/repository/index.d.ts.map +1 -1
- package/dist/modules/shipping/service.d.ts +5 -5
- package/dist/modules/shipping/service.d.ts.map +1 -1
- package/dist/modules/shipping/service.js +2 -2
- package/dist/modules/tax/adapter.d.ts +1 -1
- package/dist/modules/tax/adapter.d.ts.map +1 -1
- package/dist/modules/tax/repository/index.d.ts +1 -1
- package/dist/modules/tax/repository/index.d.ts.map +1 -1
- package/dist/modules/tax/service.d.ts +2 -2
- package/dist/modules/tax/service.d.ts.map +1 -1
- package/dist/modules/tax/service.js +2 -2
- package/dist/modules/webhooks/hook.d.ts +1 -1
- package/dist/modules/webhooks/hook.d.ts.map +1 -1
- package/dist/modules/webhooks/repository/index.d.ts +3 -3
- package/dist/modules/webhooks/repository/index.d.ts.map +1 -1
- package/dist/modules/webhooks/repository/index.js +1 -1
- package/dist/modules/webhooks/schema.js +1 -1
- package/dist/modules/webhooks/service.d.ts +4 -4
- package/dist/modules/webhooks/service.d.ts.map +1 -1
- package/dist/modules/webhooks/service.js +3 -3
- package/dist/modules/webhooks/tasks.d.ts +1 -1
- package/dist/modules/webhooks/tasks.d.ts.map +1 -1
- package/dist/modules/webhooks/tasks.js +1 -1
- package/dist/modules/webhooks/worker.d.ts +1 -1
- package/dist/modules/webhooks/worker.d.ts.map +1 -1
- package/dist/modules/webhooks/worker.js +2 -2
- package/dist/runtime/commerce.d.ts +9 -9
- package/dist/runtime/commerce.d.ts.map +1 -1
- package/dist/runtime/commerce.js +5 -5
- package/dist/runtime/kernel.d.ts +21 -21
- package/dist/runtime/kernel.d.ts.map +1 -1
- package/dist/runtime/kernel.js +41 -41
- package/dist/runtime/logger.d.ts +1 -1
- package/dist/runtime/logger.d.ts.map +1 -1
- package/dist/runtime/server.d.ts +6 -6
- package/dist/runtime/server.d.ts.map +1 -1
- package/dist/runtime/server.js +8 -6
- package/dist/runtime/shutdown.d.ts +1 -1
- package/dist/runtime/shutdown.d.ts.map +1 -1
- package/dist/test-utils/create-pglite-adapter.d.ts +2 -2
- package/dist/test-utils/create-pglite-adapter.d.ts.map +1 -1
- package/dist/test-utils/create-pglite-adapter.js +3 -3
- package/dist/test-utils/create-plugin-test-app.d.ts +3 -3
- package/dist/test-utils/create-plugin-test-app.d.ts.map +1 -1
- package/dist/test-utils/create-plugin-test-app.js +4 -4
- package/dist/test-utils/create-repository-test-harness.d.ts +2 -2
- package/dist/test-utils/create-repository-test-harness.d.ts.map +1 -1
- package/dist/test-utils/create-repository-test-harness.js +2 -2
- package/dist/test-utils/create-test-config.d.ts +1 -1
- package/dist/test-utils/create-test-config.d.ts.map +1 -1
- package/dist/test-utils/create-test-config.js +4 -4
- package/dist/test-utils/create-test-kernel.d.ts +2 -2
- package/dist/test-utils/create-test-kernel.d.ts.map +1 -1
- package/dist/test-utils/create-test-kernel.js +2 -2
- package/dist/test-utils/create-test-plugin-context.d.ts +2 -2
- package/dist/test-utils/create-test-plugin-context.d.ts.map +1 -1
- package/dist/test-utils/create-test-plugin-context.js +3 -3
- package/dist/test-utils/rest-api-test-utils.d.ts +4 -4
- package/dist/test-utils/rest-api-test-utils.d.ts.map +1 -1
- package/dist/test-utils/rest-api-test-utils.js +8 -8
- package/dist/test-utils/test-actors.d.ts +1 -1
- package/dist/test-utils/test-actors.d.ts.map +1 -1
- package/dist/test-utils/typed-hooks.d.ts +2 -2
- package/dist/test-utils/typed-hooks.d.ts.map +1 -1
- package/dist/types/commerce-types.d.ts +5 -5
- package/dist/types/commerce-types.d.ts.map +1 -1
- package/dist/utils/logger.d.ts +1 -1
- package/dist/utils/logger.d.ts.map +1 -1
- package/package.json +17 -9
- package/src/auth/access.ts +1 -1
- package/src/auth/auth-schema.ts +3 -3
- package/src/auth/middleware.ts +43 -14
- package/src/auth/org.ts +1 -1
- package/src/auth/permissions.ts +2 -2
- package/src/auth/setup.ts +18 -14
- package/src/auth/system-actor.ts +2 -2
- package/src/config/defaults.ts +1 -1
- package/src/config/define-config.ts +3 -3
- package/src/config/types.ts +11 -11
- package/src/hooks/checkout-completion.ts +4 -4
- package/src/hooks/checkout.ts +8 -8
- package/src/hooks/order-emails.ts +1 -1
- package/src/index.ts +83 -83
- package/src/interfaces/mcp/context-enrichment.ts +3 -3
- package/src/interfaces/mcp/server.ts +6 -6
- package/src/interfaces/mcp/transport.ts +3 -3
- package/src/interfaces/rest/customer-portal.ts +6 -6
- package/src/interfaces/rest/index.ts +15 -15
- package/src/interfaces/rest/router.ts +5 -5
- package/src/interfaces/rest/routes/admin-jobs.ts +5 -5
- package/src/interfaces/rest/routes/audit.ts +4 -4
- package/src/interfaces/rest/routes/carts.ts +4 -4
- package/src/interfaces/rest/routes/catalog.ts +5 -5
- package/src/interfaces/rest/routes/checkout.ts +11 -11
- package/src/interfaces/rest/routes/inventory.ts +3 -3
- package/src/interfaces/rest/routes/media.ts +4 -4
- package/src/interfaces/rest/routes/orders.ts +3 -3
- package/src/interfaces/rest/routes/payments.ts +3 -3
- package/src/interfaces/rest/routes/pricing.ts +3 -3
- package/src/interfaces/rest/routes/promotions.ts +4 -4
- package/src/interfaces/rest/routes/search.ts +3 -3
- package/src/interfaces/rest/routes/webhooks.ts +3 -3
- package/src/interfaces/rest/schemas/admin-jobs.ts +1 -1
- package/src/interfaces/rest/schemas/carts.ts +3 -3
- package/src/interfaces/rest/schemas/catalog.ts +3 -3
- package/src/interfaces/rest/schemas/checkout.ts +1 -1
- package/src/interfaces/rest/schemas/customer-portal.ts +2 -2
- package/src/interfaces/rest/schemas/inventory.ts +2 -2
- package/src/interfaces/rest/schemas/media.ts +1 -1
- package/src/interfaces/rest/schemas/orders.ts +2 -2
- package/src/interfaces/rest/schemas/pricing.ts +2 -2
- package/src/interfaces/rest/schemas/promotions.ts +2 -2
- package/src/interfaces/rest/schemas/responses.ts +5 -5
- package/src/interfaces/rest/schemas/search.ts +1 -1
- package/src/interfaces/rest/schemas/webhooks.ts +1 -1
- package/src/interfaces/rest/utils.ts +4 -4
- package/src/interfaces/rest/webhook-router.ts +1 -1
- package/src/kernel/compensation/executor.ts +2 -2
- package/src/kernel/compensation/types.ts +3 -3
- package/src/kernel/database/drizzle-db.ts +1 -1
- package/src/kernel/database/migrate.ts +2 -2
- package/src/kernel/database/schema.ts +13 -13
- package/src/kernel/database/tx-context.ts +2 -2
- package/src/kernel/error-mapper.ts +1 -1
- package/src/kernel/factory/repository-factory.ts +3 -3
- package/src/kernel/hooks/create-context.ts +5 -5
- package/src/kernel/hooks/executor.ts +1 -1
- package/src/kernel/hooks/types.ts +3 -3
- package/src/kernel/http-error.ts +1 -1
- package/src/kernel/jobs/drizzle-adapter.ts +5 -5
- package/src/kernel/jobs/runner.ts +4 -4
- package/src/kernel/jobs/schema.ts +1 -1
- package/src/kernel/jobs/types.ts +2 -2
- package/src/kernel/local-api.ts +4 -4
- package/src/kernel/plugin/manifest.ts +1 -1
- package/src/kernel/query/executor.ts +2 -2
- package/src/kernel/result.ts +1 -1
- package/src/kernel/state-machine/machine.ts +1 -1
- package/src/modules/analytics/drizzle-adapter.ts +4 -4
- package/src/modules/analytics/models.ts +1 -1
- package/src/modules/analytics/repository/index.ts +1 -1
- package/src/modules/analytics/service.ts +5 -5
- package/src/modules/analytics/types.ts +1 -1
- package/src/modules/audit/hooks.ts +3 -3
- package/src/modules/audit/schema.ts +1 -1
- package/src/modules/audit/service.ts +5 -5
- package/src/modules/cart/access.ts +2 -2
- package/src/modules/cart/matcher.ts +1 -1
- package/src/modules/cart/repository/index.ts +3 -3
- package/src/modules/cart/schema.ts +2 -2
- package/src/modules/cart/service.ts +17 -17
- package/src/modules/catalog/repository/index.ts +3 -3
- package/src/modules/catalog/schema.ts +1 -1
- package/src/modules/catalog/service.ts +16 -16
- package/src/modules/customers/repository/index.ts +3 -3
- package/src/modules/customers/schema.ts +1 -1
- package/src/modules/customers/service.ts +6 -6
- package/src/modules/fulfillment/repository/index.ts +3 -3
- package/src/modules/fulfillment/schema.ts +2 -2
- package/src/modules/fulfillment/service.ts +9 -9
- package/src/modules/fulfillment/types.ts +2 -2
- package/src/modules/inventory/repository/index.ts +3 -3
- package/src/modules/inventory/schema.ts +2 -2
- package/src/modules/inventory/service.ts +16 -16
- package/src/modules/media/adapter.ts +1 -1
- package/src/modules/media/repository/index.ts +3 -3
- package/src/modules/media/schema.ts +2 -2
- package/src/modules/media/service.ts +9 -9
- package/src/modules/orders/repository/index.ts +3 -3
- package/src/modules/orders/schema.ts +2 -2
- package/src/modules/orders/service.ts +15 -15
- package/src/modules/orders/stale-order-cleanup.ts +2 -2
- package/src/modules/organization/service.ts +2 -2
- package/src/modules/payments/adapter.ts +1 -1
- package/src/modules/payments/repository/index.ts +1 -1
- package/src/modules/payments/service.ts +3 -3
- package/src/modules/pricing/repository/index.ts +3 -3
- package/src/modules/pricing/schema.ts +2 -2
- package/src/modules/pricing/service.ts +9 -9
- package/src/modules/promotions/repository/index.ts +3 -3
- package/src/modules/promotions/schema.ts +1 -1
- package/src/modules/promotions/service.ts +10 -10
- package/src/modules/search/adapter.ts +1 -1
- package/src/modules/search/hooks.ts +2 -2
- package/src/modules/search/repository/index.ts +1 -1
- package/src/modules/search/service.ts +5 -5
- package/src/modules/shipping/calculator.ts +3 -3
- package/src/modules/shipping/repository/index.ts +1 -1
- package/src/modules/shipping/service.ts +5 -5
- package/src/modules/tax/adapter.ts +1 -1
- package/src/modules/tax/repository/index.ts +1 -1
- package/src/modules/tax/service.ts +3 -3
- package/src/modules/webhooks/hook.ts +1 -1
- package/src/modules/webhooks/repository/index.ts +3 -3
- package/src/modules/webhooks/schema.ts +1 -1
- package/src/modules/webhooks/service.ts +6 -6
- package/src/modules/webhooks/tasks.ts +3 -3
- package/src/modules/webhooks/worker.ts +3 -3
- package/src/runtime/commerce.ts +11 -11
- package/src/runtime/kernel.ts +45 -45
- package/src/runtime/logger.ts +1 -1
- package/src/runtime/server.ts +17 -13
- package/src/runtime/shutdown.ts +1 -1
- package/src/test-utils/create-pglite-adapter.ts +5 -5
- package/src/test-utils/create-plugin-test-app.ts +7 -7
- package/src/test-utils/create-repository-test-harness.ts +3 -3
- package/src/test-utils/create-test-config.ts +6 -6
- package/src/test-utils/create-test-kernel.ts +3 -3
- package/src/test-utils/create-test-plugin-context.ts +4 -4
- package/src/test-utils/rest-api-test-utils.ts +11 -11
- package/src/test-utils/test-actors.ts +1 -1
- package/src/test-utils/typed-hooks.ts +2 -2
- package/src/types/commerce-types.ts +5 -5
- package/src/utils/logger.ts +1 -1
- package/dist/auth/pos.d.ts +0 -3
- package/dist/auth/pos.d.ts.map +0 -1
- package/dist/auth/pos.js +0 -62
- package/dist/index.js.map +0 -156
- package/dist/interfaces/graphql/index.d.ts +0 -4
- package/dist/interfaces/graphql/index.d.ts.map +0 -1
- package/dist/interfaces/graphql/index.js +0 -415
- package/dist/kernel/factory/in-memory-repository-factory.d.ts +0 -20
- package/dist/kernel/factory/in-memory-repository-factory.d.ts.map +0 -1
- package/dist/kernel/factory/in-memory-repository-factory.js +0 -83
- package/dist/kernel/plugin/capability-registry.d.ts +0 -9
- package/dist/kernel/plugin/capability-registry.d.ts.map +0 -1
- package/dist/kernel/plugin/capability-registry.js +0 -28
- package/dist/kernel/plugin/dependency-graph.d.ts +0 -6
- package/dist/kernel/plugin/dependency-graph.d.ts.map +0 -1
- package/dist/kernel/plugin/dependency-graph.js +0 -55
- package/dist/modules/analytics/cubes.d.ts +0 -19
- package/dist/modules/analytics/cubes.d.ts.map +0 -1
- package/dist/modules/analytics/cubes.js +0 -187
- package/dist/modules/cart/repository/in-memory.d.ts +0 -30
- package/dist/modules/cart/repository/in-memory.d.ts.map +0 -1
- package/dist/modules/cart/repository/in-memory.js +0 -159
- package/dist/modules/catalog/repository/in-memory.d.ts +0 -82
- package/dist/modules/catalog/repository/in-memory.d.ts.map +0 -1
- package/dist/modules/catalog/repository/in-memory.js +0 -444
- package/dist/modules/customers/repository/in-memory.d.ts +0 -37
- package/dist/modules/customers/repository/in-memory.d.ts.map +0 -1
- package/dist/modules/customers/repository/in-memory.js +0 -278
- package/dist/modules/fulfillment/repository/in-memory.d.ts +0 -53
- package/dist/modules/fulfillment/repository/in-memory.d.ts.map +0 -1
- package/dist/modules/fulfillment/repository/in-memory.js +0 -327
- package/dist/modules/inventory/repository/in-memory.d.ts +0 -51
- package/dist/modules/inventory/repository/in-memory.d.ts.map +0 -1
- package/dist/modules/inventory/repository/in-memory.js +0 -281
- package/dist/modules/media/repository/in-memory.d.ts +0 -26
- package/dist/modules/media/repository/in-memory.d.ts.map +0 -1
- package/dist/modules/media/repository/in-memory.js +0 -145
- package/dist/modules/orders/repository/in-memory.d.ts +0 -40
- package/dist/modules/orders/repository/in-memory.d.ts.map +0 -1
- package/dist/modules/orders/repository/in-memory.js +0 -245
- package/dist/modules/pricing/repository/in-memory.d.ts +0 -25
- package/dist/modules/pricing/repository/in-memory.d.ts.map +0 -1
- package/dist/modules/pricing/repository/in-memory.js +0 -288
- package/dist/modules/promotions/repository/in-memory.d.ts +0 -32
- package/dist/modules/promotions/repository/in-memory.d.ts.map +0 -1
- package/dist/modules/promotions/repository/in-memory.js +0 -227
- package/dist/modules/webhooks/repository/in-memory.d.ts +0 -31
- package/dist/modules/webhooks/repository/in-memory.d.ts.map +0 -1
- package/dist/modules/webhooks/repository/in-memory.js +0 -187
- package/dist/runtime/state-manager.d.ts +0 -14
- package/dist/runtime/state-manager.d.ts.map +0 -1
- package/dist/runtime/state-manager.js +0 -84
- package/dist/runtime/state-repository.d.ts +0 -13
- package/dist/runtime/state-repository.d.ts.map +0 -1
- package/dist/runtime/state-repository.js +0 -160
- package/dist/runtime/state.d.ts +0 -382
- package/dist/runtime/state.d.ts.map +0 -1
- package/dist/runtime/state.js +0 -37
- package/dist/runtime/store.d.ts +0 -382
- package/dist/runtime/store.d.ts.map +0 -1
- package/dist/runtime/store.js +0 -37
- package/dist/tsconfig.tsbuildinfo +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/interfaces/graphql/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAydnD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,oDAYlD"}
|
|
@@ -1,415 +0,0 @@
|
|
|
1
|
-
import { Hono } from "hono";
|
|
2
|
-
import { createSchema, createYoga } from "graphql-yoga";
|
|
3
|
-
import { applyPromotionCodes, authorizePayment, calculateShipping, calculateTax, checkInventoryAvailability, resolveCurrentPrices, validateCartNotEmpty, validatePaymentMethod, } from "../../hooks/checkout";
|
|
4
|
-
import { makeId } from "../../utils/id";
|
|
5
|
-
import { runAfterHooks, runBeforeHooks } from "../../kernel/hooks/executor";
|
|
6
|
-
function getGraphQLActor(kernel) {
|
|
7
|
-
const base = kernel.getMCPActor();
|
|
8
|
-
return {
|
|
9
|
-
...base,
|
|
10
|
-
permissions: Array.from(new Set([
|
|
11
|
-
...base.permissions,
|
|
12
|
-
"catalog:create",
|
|
13
|
-
"catalog:update",
|
|
14
|
-
"catalog:read",
|
|
15
|
-
"cart:create",
|
|
16
|
-
"cart:update",
|
|
17
|
-
"orders:create",
|
|
18
|
-
"orders:read",
|
|
19
|
-
"orders:update",
|
|
20
|
-
"inventory:read",
|
|
21
|
-
])),
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
function toIso(value) {
|
|
25
|
-
if (!value)
|
|
26
|
-
return null;
|
|
27
|
-
const date = value instanceof Date ? value : new Date(String(value));
|
|
28
|
-
return Number.isNaN(date.getTime()) ? null : date.toISOString();
|
|
29
|
-
}
|
|
30
|
-
function gqlFieldName(name) {
|
|
31
|
-
const normalized = name.replace(/[^A-Za-z0-9_]/g, "_");
|
|
32
|
-
return /^[A-Za-z_]/.test(normalized) ? normalized : `f_${normalized}`;
|
|
33
|
-
}
|
|
34
|
-
function buildEntityCustomFieldMap(kernel) {
|
|
35
|
-
const seen = new Set();
|
|
36
|
-
const output = [];
|
|
37
|
-
for (const entityConfig of Object.values(kernel.config.entities ?? {})) {
|
|
38
|
-
for (const field of entityConfig.fields) {
|
|
39
|
-
if (seen.has(field.name))
|
|
40
|
-
continue;
|
|
41
|
-
seen.add(field.name);
|
|
42
|
-
const gqlType = field.type === "number"
|
|
43
|
-
? "Float"
|
|
44
|
-
: field.type === "boolean"
|
|
45
|
-
? "Boolean"
|
|
46
|
-
: "String";
|
|
47
|
-
output.push({
|
|
48
|
-
sourceName: field.name,
|
|
49
|
-
gqlName: gqlFieldName(field.name),
|
|
50
|
-
gqlType,
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
return output;
|
|
55
|
-
}
|
|
56
|
-
function buildSchema(kernel) {
|
|
57
|
-
const customFields = buildEntityCustomFieldMap(kernel);
|
|
58
|
-
const customFieldSDL = customFields.map((field) => `${field.gqlName}: ${field.gqlType}`).join("\n ");
|
|
59
|
-
const typeDefs = /* GraphQL */ `
|
|
60
|
-
type Query {
|
|
61
|
-
entity(idOrSlug: String!): Entity
|
|
62
|
-
entities(type: String, status: String, page: Int, limit: Int): EntityList!
|
|
63
|
-
cart(id: ID!): Cart
|
|
64
|
-
order(id: ID, orderNumber: String): Order
|
|
65
|
-
orders(page: Int, limit: Int, status: String): OrderList!
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
type Mutation {
|
|
69
|
-
createEntity(type: String!, slug: String!, title: String!, description: String, basePrice: Int): Entity
|
|
70
|
-
updateEntity(id: ID!, slug: String, status: String, isVisible: Boolean): Entity
|
|
71
|
-
addToCart(cartId: ID!, entityId: ID!, variantId: ID, quantity: Int): Cart
|
|
72
|
-
checkout(
|
|
73
|
-
cartId: ID!
|
|
74
|
-
paymentMethodId: String!
|
|
75
|
-
customerId: String
|
|
76
|
-
customerGroupIds: [String!]
|
|
77
|
-
promotionCodes: [String!]
|
|
78
|
-
currency: String
|
|
79
|
-
): Order
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
type Pagination {
|
|
83
|
-
page: Int!
|
|
84
|
-
limit: Int!
|
|
85
|
-
totalItems: Int!
|
|
86
|
-
totalPages: Int!
|
|
87
|
-
hasNext: Boolean!
|
|
88
|
-
hasPrev: Boolean!
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
type EntityList {
|
|
92
|
-
items: [Entity!]!
|
|
93
|
-
pagination: Pagination!
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
type OrderList {
|
|
97
|
-
items: [Order!]!
|
|
98
|
-
pagination: Pagination!
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
type Entity {
|
|
102
|
-
id: ID!
|
|
103
|
-
type: String!
|
|
104
|
-
slug: String!
|
|
105
|
-
status: String!
|
|
106
|
-
isVisible: Boolean!
|
|
107
|
-
metadata: String
|
|
108
|
-
createdAt: String!
|
|
109
|
-
updatedAt: String!
|
|
110
|
-
publishedAt: String
|
|
111
|
-
${customFieldSDL}
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
type CartLineItem {
|
|
115
|
-
id: ID!
|
|
116
|
-
entityId: ID!
|
|
117
|
-
variantId: ID
|
|
118
|
-
quantity: Int!
|
|
119
|
-
unitPriceSnapshot: Int!
|
|
120
|
-
currency: String!
|
|
121
|
-
addedAt: String!
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
type Cart {
|
|
125
|
-
id: ID!
|
|
126
|
-
customerId: String
|
|
127
|
-
status: String!
|
|
128
|
-
currency: String!
|
|
129
|
-
createdAt: String!
|
|
130
|
-
updatedAt: String!
|
|
131
|
-
expiresAt: String!
|
|
132
|
-
lineItems: [CartLineItem!]!
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
type OrderLineItem {
|
|
136
|
-
id: ID!
|
|
137
|
-
orderId: ID!
|
|
138
|
-
entityId: ID!
|
|
139
|
-
entityType: String!
|
|
140
|
-
variantId: ID
|
|
141
|
-
sku: String
|
|
142
|
-
title: String!
|
|
143
|
-
quantity: Int!
|
|
144
|
-
unitPrice: Int!
|
|
145
|
-
totalPrice: Int!
|
|
146
|
-
taxAmount: Int!
|
|
147
|
-
discountAmount: Int!
|
|
148
|
-
fulfillmentStatus: String!
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
type Order {
|
|
152
|
-
id: ID!
|
|
153
|
-
orderNumber: String!
|
|
154
|
-
customerId: String
|
|
155
|
-
status: String!
|
|
156
|
-
currency: String!
|
|
157
|
-
subtotal: Int!
|
|
158
|
-
taxTotal: Int!
|
|
159
|
-
shippingTotal: Int!
|
|
160
|
-
discountTotal: Int!
|
|
161
|
-
grandTotal: Int!
|
|
162
|
-
placedAt: String!
|
|
163
|
-
fulfilledAt: String
|
|
164
|
-
cancelledAt: String
|
|
165
|
-
lineItems: [OrderLineItem!]!
|
|
166
|
-
}
|
|
167
|
-
`;
|
|
168
|
-
const customFieldResolvers = Object.fromEntries(customFields.map((field) => [
|
|
169
|
-
field.gqlName,
|
|
170
|
-
(entity) => {
|
|
171
|
-
const values = kernel.store.customFields.get(entity.id) ?? [];
|
|
172
|
-
const hit = values.find((item) => item.fieldName === field.sourceName);
|
|
173
|
-
if (!hit)
|
|
174
|
-
return null;
|
|
175
|
-
if (field.gqlType === "Float")
|
|
176
|
-
return Number(hit.value);
|
|
177
|
-
if (field.gqlType === "Boolean")
|
|
178
|
-
return Boolean(hit.value);
|
|
179
|
-
return String(hit.value);
|
|
180
|
-
},
|
|
181
|
-
]));
|
|
182
|
-
const resolvers = {
|
|
183
|
-
Query: {
|
|
184
|
-
entity: async (_root, args) => {
|
|
185
|
-
const result = args.idOrSlug.includes("-")
|
|
186
|
-
? await kernel.services.catalog.getById(args.idOrSlug)
|
|
187
|
-
: await kernel.services.catalog.getBySlug(args.idOrSlug);
|
|
188
|
-
return result.ok ? result.value : null;
|
|
189
|
-
},
|
|
190
|
-
entities: async (_root, args) => {
|
|
191
|
-
const result = await kernel.services.catalog.list({
|
|
192
|
-
filter: {
|
|
193
|
-
...(args.type !== undefined ? { type: args.type } : {}),
|
|
194
|
-
...(args.status !== undefined ? { status: args.status } : {}),
|
|
195
|
-
},
|
|
196
|
-
pagination: {
|
|
197
|
-
page: args.page ?? 1,
|
|
198
|
-
limit: args.limit ?? 20,
|
|
199
|
-
},
|
|
200
|
-
});
|
|
201
|
-
if (!result.ok) {
|
|
202
|
-
return {
|
|
203
|
-
items: [],
|
|
204
|
-
pagination: {
|
|
205
|
-
page: args.page ?? 1,
|
|
206
|
-
limit: args.limit ?? 20,
|
|
207
|
-
totalItems: 0,
|
|
208
|
-
totalPages: 0,
|
|
209
|
-
hasNext: false,
|
|
210
|
-
hasPrev: false,
|
|
211
|
-
},
|
|
212
|
-
};
|
|
213
|
-
}
|
|
214
|
-
return result.value;
|
|
215
|
-
},
|
|
216
|
-
cart: async (_root, args) => {
|
|
217
|
-
const result = await kernel.services.cart.getById(args.id);
|
|
218
|
-
return result.ok ? result.value : null;
|
|
219
|
-
},
|
|
220
|
-
order: async (_root, args) => {
|
|
221
|
-
const actor = getGraphQLActor(kernel);
|
|
222
|
-
if (args.id) {
|
|
223
|
-
const result = await kernel.services.orders.getById(args.id, actor);
|
|
224
|
-
return result.ok ? result.value : null;
|
|
225
|
-
}
|
|
226
|
-
if (args.orderNumber) {
|
|
227
|
-
const result = await kernel.services.orders.getByNumber(args.orderNumber, actor);
|
|
228
|
-
return result.ok ? result.value : null;
|
|
229
|
-
}
|
|
230
|
-
return null;
|
|
231
|
-
},
|
|
232
|
-
orders: async (_root, args) => {
|
|
233
|
-
const actor = getGraphQLActor(kernel);
|
|
234
|
-
const result = await kernel.services.orders.list({
|
|
235
|
-
page: args.page ?? 1,
|
|
236
|
-
limit: args.limit ?? 20,
|
|
237
|
-
...(args.status !== undefined ? { status: args.status } : {}),
|
|
238
|
-
}, actor);
|
|
239
|
-
if (!result.ok) {
|
|
240
|
-
return {
|
|
241
|
-
items: [],
|
|
242
|
-
pagination: {
|
|
243
|
-
page: args.page ?? 1,
|
|
244
|
-
limit: args.limit ?? 20,
|
|
245
|
-
totalItems: 0,
|
|
246
|
-
totalPages: 0,
|
|
247
|
-
hasNext: false,
|
|
248
|
-
hasPrev: false,
|
|
249
|
-
},
|
|
250
|
-
};
|
|
251
|
-
}
|
|
252
|
-
return result.value;
|
|
253
|
-
},
|
|
254
|
-
},
|
|
255
|
-
Mutation: {
|
|
256
|
-
createEntity: async (_root, args) => {
|
|
257
|
-
const actor = getGraphQLActor(kernel);
|
|
258
|
-
const result = await kernel.services.catalog.create({
|
|
259
|
-
type: args.type,
|
|
260
|
-
slug: args.slug,
|
|
261
|
-
attributes: {
|
|
262
|
-
title: args.title,
|
|
263
|
-
...(args.description !== undefined ? { description: args.description } : {}),
|
|
264
|
-
},
|
|
265
|
-
metadata: {
|
|
266
|
-
...(args.basePrice !== undefined ? { basePrice: args.basePrice } : {}),
|
|
267
|
-
},
|
|
268
|
-
}, actor);
|
|
269
|
-
return result.ok ? result.value : null;
|
|
270
|
-
},
|
|
271
|
-
updateEntity: async (_root, args) => {
|
|
272
|
-
const actor = getGraphQLActor(kernel);
|
|
273
|
-
const result = await kernel.services.catalog.update(args.id, {
|
|
274
|
-
...(args.slug !== undefined ? { slug: args.slug } : {}),
|
|
275
|
-
...(args.status !== undefined ? { status: args.status } : {}),
|
|
276
|
-
...(args.isVisible !== undefined ? { isVisible: args.isVisible } : {}),
|
|
277
|
-
}, actor);
|
|
278
|
-
return result.ok ? result.value : null;
|
|
279
|
-
},
|
|
280
|
-
addToCart: async (_root, args) => {
|
|
281
|
-
const actor = getGraphQLActor(kernel);
|
|
282
|
-
const added = await kernel.services.cart.addItem({
|
|
283
|
-
cartId: args.cartId,
|
|
284
|
-
entityId: args.entityId,
|
|
285
|
-
quantity: args.quantity ?? 1,
|
|
286
|
-
...(args.variantId !== undefined ? { variantId: args.variantId } : {}),
|
|
287
|
-
}, actor);
|
|
288
|
-
if (!added.ok)
|
|
289
|
-
return null;
|
|
290
|
-
const cart = await kernel.services.cart.getById(args.cartId);
|
|
291
|
-
return cart.ok ? cart.value : null;
|
|
292
|
-
},
|
|
293
|
-
checkout: async (_root, args) => {
|
|
294
|
-
const actor = getGraphQLActor(kernel);
|
|
295
|
-
const checkoutData = {
|
|
296
|
-
checkoutId: makeId(),
|
|
297
|
-
cartId: args.cartId,
|
|
298
|
-
currency: args.currency ?? "USD",
|
|
299
|
-
paymentMethodId: args.paymentMethodId,
|
|
300
|
-
lineItems: [],
|
|
301
|
-
subtotal: 0,
|
|
302
|
-
discountTotal: 0,
|
|
303
|
-
taxTotal: 0,
|
|
304
|
-
shippingTotal: 0,
|
|
305
|
-
total: 0,
|
|
306
|
-
...(args.customerId !== undefined ? { customerId: args.customerId } : {}),
|
|
307
|
-
...(args.customerGroupIds !== undefined ? { customerGroupIds: args.customerGroupIds } : {}),
|
|
308
|
-
...(args.promotionCodes !== undefined ? { promotionCodes: args.promotionCodes } : {}),
|
|
309
|
-
};
|
|
310
|
-
const beforeHooks = [
|
|
311
|
-
validateCartNotEmpty,
|
|
312
|
-
resolveCurrentPrices,
|
|
313
|
-
checkInventoryAvailability,
|
|
314
|
-
applyPromotionCodes,
|
|
315
|
-
calculateTax,
|
|
316
|
-
calculateShipping,
|
|
317
|
-
validatePaymentMethod,
|
|
318
|
-
authorizePayment,
|
|
319
|
-
...kernel.hooks.resolve("checkout.beforeCreate"),
|
|
320
|
-
];
|
|
321
|
-
const afterHooks = [...kernel.hooks.resolve("checkout.afterCreate")];
|
|
322
|
-
const context = {
|
|
323
|
-
actor,
|
|
324
|
-
tx: null,
|
|
325
|
-
logger: kernel.logger,
|
|
326
|
-
services: kernel.services,
|
|
327
|
-
metadata: {
|
|
328
|
-
moduleName: "checkout",
|
|
329
|
-
},
|
|
330
|
-
};
|
|
331
|
-
try {
|
|
332
|
-
const processed = await kernel.database.transaction(async (_tx) => {
|
|
333
|
-
context.tx = _tx;
|
|
334
|
-
return runBeforeHooks(beforeHooks, checkoutData, "create", context);
|
|
335
|
-
});
|
|
336
|
-
const orderPayload = {
|
|
337
|
-
currency: processed.currency,
|
|
338
|
-
subtotal: processed.subtotal,
|
|
339
|
-
taxTotal: processed.taxTotal,
|
|
340
|
-
shippingTotal: processed.shippingTotal,
|
|
341
|
-
discountTotal: processed.discountTotal,
|
|
342
|
-
grandTotal: processed.total,
|
|
343
|
-
metadata: {
|
|
344
|
-
cartId: processed.cartId,
|
|
345
|
-
paymentIntentId: processed.paymentIntentId,
|
|
346
|
-
checkoutId: processed.checkoutId,
|
|
347
|
-
promotionCodes: processed.promotionCodes,
|
|
348
|
-
appliedPromotions: processed.appliedPromotions,
|
|
349
|
-
},
|
|
350
|
-
lineItems: processed.lineItems.map((lineItem) => ({
|
|
351
|
-
entityId: lineItem.entityId,
|
|
352
|
-
entityType: lineItem.entityType ?? "product",
|
|
353
|
-
title: lineItem.title ?? lineItem.entityId,
|
|
354
|
-
quantity: lineItem.quantity,
|
|
355
|
-
unitPrice: lineItem.resolvedUnitPrice ?? 0,
|
|
356
|
-
totalPrice: lineItem.resolvedTotal ?? 0,
|
|
357
|
-
...(lineItem.variantId !== undefined ? { variantId: lineItem.variantId } : {}),
|
|
358
|
-
})),
|
|
359
|
-
...(processed.customerId !== undefined ? { customerId: processed.customerId } : {}),
|
|
360
|
-
};
|
|
361
|
-
const order = await kernel.services.orders.create(orderPayload, actor);
|
|
362
|
-
if (!order.ok)
|
|
363
|
-
return null;
|
|
364
|
-
if (order.ok && (processed.appliedPromotions?.length ?? 0) > 0) {
|
|
365
|
-
await kernel.services.promotions.recordUsage({
|
|
366
|
-
promotions: processed.appliedPromotions ?? [],
|
|
367
|
-
orderId: order.value.id,
|
|
368
|
-
...(processed.customerId !== undefined ? { customerId: processed.customerId } : {}),
|
|
369
|
-
});
|
|
370
|
-
}
|
|
371
|
-
await runAfterHooks(afterHooks, null, order.value, "create", context);
|
|
372
|
-
return order.value;
|
|
373
|
-
}
|
|
374
|
-
catch {
|
|
375
|
-
return null;
|
|
376
|
-
}
|
|
377
|
-
},
|
|
378
|
-
},
|
|
379
|
-
Entity: {
|
|
380
|
-
metadata: (entity) => JSON.stringify(entity.metadata ?? {}),
|
|
381
|
-
createdAt: (entity) => toIso(entity.createdAt),
|
|
382
|
-
updatedAt: (entity) => toIso(entity.updatedAt),
|
|
383
|
-
publishedAt: (entity) => toIso(entity.publishedAt),
|
|
384
|
-
...customFieldResolvers,
|
|
385
|
-
},
|
|
386
|
-
Cart: {
|
|
387
|
-
createdAt: (cart) => toIso(cart.createdAt),
|
|
388
|
-
updatedAt: (cart) => toIso(cart.updatedAt),
|
|
389
|
-
expiresAt: (cart) => toIso(cart.expiresAt),
|
|
390
|
-
},
|
|
391
|
-
CartLineItem: {
|
|
392
|
-
addedAt: (item) => toIso(item.addedAt),
|
|
393
|
-
},
|
|
394
|
-
Order: {
|
|
395
|
-
placedAt: (order) => toIso(order.placedAt),
|
|
396
|
-
fulfilledAt: (order) => toIso(order.fulfilledAt),
|
|
397
|
-
cancelledAt: (order) => toIso(order.cancelledAt),
|
|
398
|
-
},
|
|
399
|
-
};
|
|
400
|
-
return createSchema({
|
|
401
|
-
typeDefs,
|
|
402
|
-
resolvers,
|
|
403
|
-
});
|
|
404
|
-
}
|
|
405
|
-
export function createGraphQLHandler(kernel) {
|
|
406
|
-
const schema = buildSchema(kernel);
|
|
407
|
-
const yoga = createYoga({
|
|
408
|
-
schema,
|
|
409
|
-
graphqlEndpoint: "/graphql",
|
|
410
|
-
landingPage: false,
|
|
411
|
-
});
|
|
412
|
-
const router = new Hono();
|
|
413
|
-
router.all("/", async (c) => yoga.fetch(c.req.raw, c.env));
|
|
414
|
-
return router;
|
|
415
|
-
}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import type { BaseRepository } from "./repository-factory";
|
|
2
|
-
/**
|
|
3
|
-
* Creates an in-memory implementation of BaseRepository for testing.
|
|
4
|
-
*
|
|
5
|
-
* Data is stored in a Map<string, TRow>. The `_store` property is exposed
|
|
6
|
-
* for test assertions (e.g., checking store size, seeding data).
|
|
7
|
-
*
|
|
8
|
-
* Usage:
|
|
9
|
-
* ```typescript
|
|
10
|
-
* const repo = createInMemoryRepository<Promotion, PromotionInsert>()
|
|
11
|
-
* await repo.create({ id: "promo-1", name: "Summer Sale", ... })
|
|
12
|
-
* const found = await repo.findById("promo-1")
|
|
13
|
-
* ```
|
|
14
|
-
*/
|
|
15
|
-
export declare function createInMemoryRepository<TRow extends {
|
|
16
|
-
id: string;
|
|
17
|
-
}, TInsert>(): BaseRepository<TRow, TInsert> & {
|
|
18
|
-
_store: Map<string, TRow>;
|
|
19
|
-
};
|
|
20
|
-
//# sourceMappingURL=in-memory-repository-factory.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"in-memory-repository-factory.d.ts","sourceRoot":"","sources":["../../../src/kernel/factory/in-memory-repository-factory.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAwB,MAAM,sBAAsB,CAAC;AAEjF;;;;;;;;;;;;GAYG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EAC3B,OAAO,KACJ,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG;IAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;CAAE,CAoFjE"}
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
import { CommerceNotFoundError } from "../errors";
|
|
2
|
-
/**
|
|
3
|
-
* Creates an in-memory implementation of BaseRepository for testing.
|
|
4
|
-
*
|
|
5
|
-
* Data is stored in a Map<string, TRow>. The `_store` property is exposed
|
|
6
|
-
* for test assertions (e.g., checking store size, seeding data).
|
|
7
|
-
*
|
|
8
|
-
* Usage:
|
|
9
|
-
* ```typescript
|
|
10
|
-
* const repo = createInMemoryRepository<Promotion, PromotionInsert>()
|
|
11
|
-
* await repo.create({ id: "promo-1", name: "Summer Sale", ... })
|
|
12
|
-
* const found = await repo.findById("promo-1")
|
|
13
|
-
* ```
|
|
14
|
-
*/
|
|
15
|
-
export function createInMemoryRepository() {
|
|
16
|
-
const store = new Map();
|
|
17
|
-
function generateId() {
|
|
18
|
-
// Use crypto.randomUUID when available, fall back to timestamp-based
|
|
19
|
-
if (typeof crypto !== "undefined" && typeof crypto.randomUUID === "function") {
|
|
20
|
-
return crypto.randomUUID();
|
|
21
|
-
}
|
|
22
|
-
return `mem-${Date.now()}-${Math.random().toString(36).slice(2, 9)}`;
|
|
23
|
-
}
|
|
24
|
-
function applyFilters(rows, filters) {
|
|
25
|
-
if (!filters)
|
|
26
|
-
return rows;
|
|
27
|
-
return rows.filter((row) => Object.entries(filters).every(([key, value]) => value === undefined || row[key] === value));
|
|
28
|
-
}
|
|
29
|
-
function applyPagination(rows, options) {
|
|
30
|
-
if (!options)
|
|
31
|
-
return rows;
|
|
32
|
-
const offset = options.offset ?? 0;
|
|
33
|
-
const sliced = rows.slice(offset);
|
|
34
|
-
if (options.limit !== undefined) {
|
|
35
|
-
return sliced.slice(0, options.limit);
|
|
36
|
-
}
|
|
37
|
-
return sliced;
|
|
38
|
-
}
|
|
39
|
-
const repo = {
|
|
40
|
-
_store: store,
|
|
41
|
-
async findById(id) {
|
|
42
|
-
return store.get(id);
|
|
43
|
-
},
|
|
44
|
-
async findMany(filters, options) {
|
|
45
|
-
const all = Array.from(store.values());
|
|
46
|
-
const filtered = applyFilters(all, filters);
|
|
47
|
-
return applyPagination(filtered, options);
|
|
48
|
-
},
|
|
49
|
-
async findAndCount(filters, options) {
|
|
50
|
-
const all = Array.from(store.values());
|
|
51
|
-
const filtered = applyFilters(all, filters);
|
|
52
|
-
const paginated = applyPagination(filtered, options);
|
|
53
|
-
return { rows: paginated, total: filtered.length };
|
|
54
|
-
},
|
|
55
|
-
async create(data) {
|
|
56
|
-
const id = data.id ??
|
|
57
|
-
generateId();
|
|
58
|
-
const row = { ...data, id };
|
|
59
|
-
store.set(id, row);
|
|
60
|
-
return row;
|
|
61
|
-
},
|
|
62
|
-
async createMany(data) {
|
|
63
|
-
const results = [];
|
|
64
|
-
for (const d of data) {
|
|
65
|
-
results.push(await repo.create(d));
|
|
66
|
-
}
|
|
67
|
-
return results;
|
|
68
|
-
},
|
|
69
|
-
async update(id, data) {
|
|
70
|
-
const existing = store.get(id);
|
|
71
|
-
if (!existing) {
|
|
72
|
-
throw new CommerceNotFoundError(`Record ${id} not found.`);
|
|
73
|
-
}
|
|
74
|
-
const updated = { ...existing, ...data };
|
|
75
|
-
store.set(id, updated);
|
|
76
|
-
return updated;
|
|
77
|
-
},
|
|
78
|
-
async delete(id) {
|
|
79
|
-
store.delete(id);
|
|
80
|
-
},
|
|
81
|
-
};
|
|
82
|
-
return repo;
|
|
83
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import type { CommercePluginManifest } from "./manifest";
|
|
2
|
-
export type CapabilityHandler = unknown;
|
|
3
|
-
export declare class PluginCapabilityRegistry {
|
|
4
|
-
private registry;
|
|
5
|
-
register(manifest: CommercePluginManifest, capabilities: Record<string, CapabilityHandler>): void;
|
|
6
|
-
get<TCapability = unknown>(key: string): TCapability | undefined;
|
|
7
|
-
list(): string[];
|
|
8
|
-
}
|
|
9
|
-
//# sourceMappingURL=capability-registry.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"capability-registry.d.ts","sourceRoot":"","sources":["../../../src/kernel/plugin/capability-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEzD,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC;AAUxC,qBAAa,wBAAwB;IACnC,OAAO,CAAC,QAAQ,CAAwC;IAExD,QAAQ,CACN,QAAQ,EAAE,sBAAsB,EAChC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,GAC9C,IAAI;IAeP,GAAG,CAAC,WAAW,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAIhE,IAAI,IAAI,MAAM,EAAE;CAGjB"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
function majorVersion(version) {
|
|
2
|
-
const parsed = Number.parseInt(version.split(".")[0] ?? "1", 10);
|
|
3
|
-
if (Number.isNaN(parsed) || parsed < 0) {
|
|
4
|
-
return "1";
|
|
5
|
-
}
|
|
6
|
-
return String(parsed);
|
|
7
|
-
}
|
|
8
|
-
export class PluginCapabilityRegistry {
|
|
9
|
-
registry = new Map();
|
|
10
|
-
register(manifest, capabilities) {
|
|
11
|
-
const major = majorVersion(manifest.version);
|
|
12
|
-
for (const [name, handler] of Object.entries(capabilities)) {
|
|
13
|
-
const normalized = name.includes("/")
|
|
14
|
-
? name
|
|
15
|
-
: `${manifest.id}/${name}@${major}`;
|
|
16
|
-
if (this.registry.has(normalized)) {
|
|
17
|
-
throw new Error(`Capability key collision: \"${normalized}\".`);
|
|
18
|
-
}
|
|
19
|
-
this.registry.set(normalized, handler);
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
get(key) {
|
|
23
|
-
return this.registry.get(key);
|
|
24
|
-
}
|
|
25
|
-
list() {
|
|
26
|
-
return [...this.registry.keys()].sort();
|
|
27
|
-
}
|
|
28
|
-
}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import type { CommercePluginManifest } from "./manifest";
|
|
2
|
-
export declare class PluginDependencyError extends Error {
|
|
3
|
-
constructor(message: string);
|
|
4
|
-
}
|
|
5
|
-
export declare function resolvePluginInitializationOrder(manifests: CommercePluginManifest[]): CommercePluginManifest[];
|
|
6
|
-
//# sourceMappingURL=dependency-graph.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dependency-graph.d.ts","sourceRoot":"","sources":["../../../src/kernel/plugin/dependency-graph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEzD,qBAAa,qBAAsB,SAAQ,KAAK;gBAClC,OAAO,EAAE,MAAM;CAI5B;AAED,wBAAgB,gCAAgC,CAC9C,SAAS,EAAE,sBAAsB,EAAE,GAClC,sBAAsB,EAAE,CA6D1B"}
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
export class PluginDependencyError extends Error {
|
|
2
|
-
constructor(message) {
|
|
3
|
-
super(message);
|
|
4
|
-
this.name = "PluginDependencyError";
|
|
5
|
-
}
|
|
6
|
-
}
|
|
7
|
-
export function resolvePluginInitializationOrder(manifests) {
|
|
8
|
-
const byId = new Map();
|
|
9
|
-
for (const manifest of manifests) {
|
|
10
|
-
if (byId.has(manifest.id)) {
|
|
11
|
-
throw new PluginDependencyError(`Duplicate plugin id \"${manifest.id}\".`);
|
|
12
|
-
}
|
|
13
|
-
byId.set(manifest.id, manifest);
|
|
14
|
-
}
|
|
15
|
-
const indegree = new Map();
|
|
16
|
-
const edges = new Map();
|
|
17
|
-
for (const manifest of manifests) {
|
|
18
|
-
indegree.set(manifest.id, 0);
|
|
19
|
-
edges.set(manifest.id, []);
|
|
20
|
-
}
|
|
21
|
-
for (const manifest of manifests) {
|
|
22
|
-
for (const dependency of manifest.dependsOn ?? []) {
|
|
23
|
-
if (!byId.has(dependency)) {
|
|
24
|
-
throw new PluginDependencyError(`Plugin \"${manifest.id}\" depends on missing plugin \"${dependency}\".`);
|
|
25
|
-
}
|
|
26
|
-
edges.get(dependency).push(manifest.id);
|
|
27
|
-
indegree.set(manifest.id, (indegree.get(manifest.id) ?? 0) + 1);
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
const queue = [...indegree.entries()]
|
|
31
|
-
.filter(([, degree]) => degree === 0)
|
|
32
|
-
.map(([pluginId]) => pluginId)
|
|
33
|
-
.sort();
|
|
34
|
-
const ordered = [];
|
|
35
|
-
while (queue.length > 0) {
|
|
36
|
-
const pluginId = queue.shift();
|
|
37
|
-
ordered.push(byId.get(pluginId));
|
|
38
|
-
for (const child of edges.get(pluginId) ?? []) {
|
|
39
|
-
const next = (indegree.get(child) ?? 0) - 1;
|
|
40
|
-
indegree.set(child, next);
|
|
41
|
-
if (next === 0) {
|
|
42
|
-
queue.push(child);
|
|
43
|
-
queue.sort();
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
if (ordered.length !== manifests.length) {
|
|
48
|
-
const stuck = [...indegree.entries()]
|
|
49
|
-
.filter(([, degree]) => degree > 0)
|
|
50
|
-
.map(([id]) => id)
|
|
51
|
-
.sort();
|
|
52
|
-
throw new PluginDependencyError(`Plugin dependency cycle detected among: ${stuck.join(", ")}.`);
|
|
53
|
-
}
|
|
54
|
-
return ordered;
|
|
55
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import type { CubeDefinition } from "./types";
|
|
2
|
-
/**
|
|
3
|
-
* Built-in cube definitions for the 4 core analytics models.
|
|
4
|
-
*
|
|
5
|
-
* Each cube maps a Cube.js-shaped name (e.g., "Orders.revenue") to a
|
|
6
|
-
* PostgreSQL table + column. The DrizzleAnalyticsAdapter compiles these
|
|
7
|
-
* into parameterized SQL queries.
|
|
8
|
-
*/
|
|
9
|
-
export declare const ORDERS_CUBE: CubeDefinition;
|
|
10
|
-
export declare const ORDER_LINE_ITEMS_CUBE: CubeDefinition;
|
|
11
|
-
export declare const INVENTORY_CUBE: CubeDefinition;
|
|
12
|
-
export declare const CUSTOMERS_CUBE: CubeDefinition;
|
|
13
|
-
export declare const VENDOR_ORDERS_CUBE: CubeDefinition;
|
|
14
|
-
export declare const VENDOR_BALANCE_CUBE: CubeDefinition;
|
|
15
|
-
export declare const VENDOR_REVIEWS_CUBE: CubeDefinition;
|
|
16
|
-
export declare const BUILTIN_CUBES: CubeDefinition[];
|
|
17
|
-
/** Marketplace cubes — registered when marketplace plugin is active */
|
|
18
|
-
export declare const MARKETPLACE_CUBES: CubeDefinition[];
|
|
19
|
-
//# sourceMappingURL=cubes.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cubes.d.ts","sourceRoot":"","sources":["../../../src/modules/analytics/cubes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAiB,MAAM,SAAS,CAAC;AAE7D;;;;;;GAMG;AAEH,eAAO,MAAM,WAAW,EAAE,cAwBzB,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,cA6BnC,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,cA2B5B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,cA0B5B,CAAC;AAIF,eAAO,MAAM,kBAAkB,EAAE,cAmBhC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,cAkBjC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,cAiBjC,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,cAAc,EAKzC,CAAC;AAEF,uEAAuE;AACvE,eAAO,MAAM,iBAAiB,EAAE,cAAc,EAI7C,CAAC"}
|