@unifiedcommerce/core 0.4.2 → 0.4.4
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/interfaces/rest/index.d.ts.map +1 -1
- package/dist/interfaces/rest/index.js +4 -17
- package/dist/runtime/server.d.ts.map +1 -1
- package/dist/runtime/server.js +33 -0
- package/package.json +1 -1
- package/src/interfaces/rest/index.ts +4 -18
- package/src/runtime/server.ts +33 -0
- package/dist/adapters/console-email.d.ts +0 -23
- package/dist/adapters/console-email.d.ts.map +0 -1
- package/dist/adapters/console-email.js +0 -38
- 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/auth/auth-schema.d.ts +0 -1475
- package/dist/auth/auth-schema.d.ts.map +0 -1
- package/dist/auth/auth-schema.js +0 -124
- package/dist/auth/middleware.d.ts +0 -5
- package/dist/auth/middleware.d.ts.map +0 -1
- package/dist/auth/middleware.js +0 -141
- package/dist/auth/org.d.ts +0 -22
- package/dist/auth/org.d.ts.map +0 -1
- package/dist/auth/org.js +0 -36
- package/dist/auth/permissions.d.ts +0 -4
- package/dist/auth/permissions.d.ts.map +0 -1
- package/dist/auth/permissions.js +0 -24
- package/dist/auth/setup.d.ts +0 -29
- package/dist/auth/setup.d.ts.map +0 -1
- package/dist/auth/setup.js +0 -117
- package/dist/auth/system-actor.d.ts +0 -7
- package/dist/auth/system-actor.d.ts.map +0 -1
- package/dist/auth/system-actor.js +0 -17
- package/dist/auth/types.d.ts +0 -11
- package/dist/auth/types.d.ts.map +0 -1
- package/dist/auth/types.js +0 -1
- package/dist/config/defaults.d.ts +0 -3
- package/dist/config/defaults.d.ts.map +0 -1
- package/dist/config/defaults.js +0 -80
- package/dist/config/define-config.d.ts +0 -9
- package/dist/config/define-config.d.ts.map +0 -1
- package/dist/config/define-config.js +0 -44
- package/dist/config/types.d.ts +0 -327
- package/dist/config/types.d.ts.map +0 -1
- package/dist/config/types.js +0 -1
- package/dist/generated/plugin-manifest.d.ts +0 -48
- package/dist/generated/plugin-manifest.d.ts.map +0 -1
- package/dist/generated/plugin-manifest.js +0 -20
- package/dist/hooks/checkout-completion.d.ts +0 -58
- package/dist/hooks/checkout-completion.d.ts.map +0 -1
- package/dist/hooks/checkout-completion.js +0 -137
- package/dist/hooks/checkout.d.ts +0 -99
- package/dist/hooks/checkout.d.ts.map +0 -1
- package/dist/hooks/checkout.js +0 -317
- package/dist/hooks/order-emails.d.ts +0 -16
- package/dist/hooks/order-emails.d.ts.map +0 -1
- package/dist/hooks/order-emails.js +0 -44
- package/dist/index.d.ts +0 -77
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -45
- package/dist/interfaces/mcp/agent-prompt.d.ts +0 -16
- package/dist/interfaces/mcp/agent-prompt.d.ts.map +0 -1
- package/dist/interfaces/mcp/agent-prompt.js +0 -172
- package/dist/interfaces/mcp/context-enrichment.d.ts +0 -39
- package/dist/interfaces/mcp/context-enrichment.d.ts.map +0 -1
- package/dist/interfaces/mcp/context-enrichment.js +0 -119
- package/dist/interfaces/mcp/server.d.ts +0 -5
- package/dist/interfaces/mcp/server.d.ts.map +0 -1
- package/dist/interfaces/mcp/server.js +0 -30
- package/dist/interfaces/mcp/tool-builder.d.ts +0 -120
- package/dist/interfaces/mcp/tool-builder.d.ts.map +0 -1
- package/dist/interfaces/mcp/tool-builder.js +0 -224
- package/dist/interfaces/mcp/tools/analytics.d.ts +0 -42
- package/dist/interfaces/mcp/tools/analytics.d.ts.map +0 -1
- package/dist/interfaces/mcp/tools/analytics.js +0 -70
- package/dist/interfaces/mcp/tools/cart.d.ts +0 -14
- package/dist/interfaces/mcp/tools/cart.d.ts.map +0 -1
- package/dist/interfaces/mcp/tools/cart.js +0 -47
- package/dist/interfaces/mcp/tools/catalog.d.ts +0 -53
- package/dist/interfaces/mcp/tools/catalog.d.ts.map +0 -1
- package/dist/interfaces/mcp/tools/catalog.js +0 -284
- package/dist/interfaces/mcp/tools/index.d.ts +0 -3
- package/dist/interfaces/mcp/tools/index.d.ts.map +0 -1
- package/dist/interfaces/mcp/tools/index.js +0 -20
- package/dist/interfaces/mcp/tools/inventory.d.ts +0 -27
- package/dist/interfaces/mcp/tools/inventory.d.ts.map +0 -1
- package/dist/interfaces/mcp/tools/inventory.js +0 -143
- package/dist/interfaces/mcp/tools/orders.d.ts +0 -18
- package/dist/interfaces/mcp/tools/orders.d.ts.map +0 -1
- package/dist/interfaces/mcp/tools/orders.js +0 -82
- package/dist/interfaces/mcp/tools/pricing.d.ts +0 -29
- package/dist/interfaces/mcp/tools/pricing.d.ts.map +0 -1
- package/dist/interfaces/mcp/tools/pricing.js +0 -90
- package/dist/interfaces/mcp/tools/promotions.d.ts +0 -44
- package/dist/interfaces/mcp/tools/promotions.d.ts.map +0 -1
- package/dist/interfaces/mcp/tools/promotions.js +0 -109
- package/dist/interfaces/mcp/tools/registry.d.ts +0 -32
- package/dist/interfaces/mcp/tools/registry.d.ts.map +0 -1
- package/dist/interfaces/mcp/tools/registry.js +0 -55
- package/dist/interfaces/mcp/tools/search.d.ts +0 -14
- package/dist/interfaces/mcp/tools/search.d.ts.map +0 -1
- package/dist/interfaces/mcp/tools/search.js +0 -39
- package/dist/interfaces/mcp/tools/webhooks.d.ts +0 -15
- package/dist/interfaces/mcp/tools/webhooks.d.ts.map +0 -1
- package/dist/interfaces/mcp/tools/webhooks.js +0 -48
- package/dist/interfaces/mcp/transport.d.ts +0 -20
- package/dist/interfaces/mcp/transport.d.ts.map +0 -1
- package/dist/interfaces/mcp/transport.js +0 -99
- package/dist/interfaces/rest/customer-portal.d.ts +0 -5
- package/dist/interfaces/rest/customer-portal.d.ts.map +0 -1
- package/dist/interfaces/rest/customer-portal.js +0 -206
- package/dist/interfaces/rest/router.d.ts +0 -164
- package/dist/interfaces/rest/router.d.ts.map +0 -1
- package/dist/interfaces/rest/router.js +0 -259
- package/dist/interfaces/rest/routes/admin-jobs.d.ts +0 -5
- package/dist/interfaces/rest/routes/admin-jobs.d.ts.map +0 -1
- package/dist/interfaces/rest/routes/admin-jobs.js +0 -48
- package/dist/interfaces/rest/routes/audit.d.ts +0 -5
- package/dist/interfaces/rest/routes/audit.d.ts.map +0 -1
- package/dist/interfaces/rest/routes/audit.js +0 -43
- package/dist/interfaces/rest/routes/carts.d.ts +0 -5
- package/dist/interfaces/rest/routes/carts.d.ts.map +0 -1
- package/dist/interfaces/rest/routes/carts.js +0 -55
- package/dist/interfaces/rest/routes/catalog.d.ts +0 -5
- package/dist/interfaces/rest/routes/catalog.d.ts.map +0 -1
- package/dist/interfaces/rest/routes/catalog.js +0 -256
- package/dist/interfaces/rest/routes/checkout.d.ts +0 -5
- package/dist/interfaces/rest/routes/checkout.d.ts.map +0 -1
- package/dist/interfaces/rest/routes/checkout.js +0 -216
- package/dist/interfaces/rest/routes/customers.d.ts +0 -5
- package/dist/interfaces/rest/routes/customers.d.ts.map +0 -1
- package/dist/interfaces/rest/routes/customers.js +0 -74
- package/dist/interfaces/rest/routes/entity-aliases.d.ts +0 -18
- package/dist/interfaces/rest/routes/entity-aliases.d.ts.map +0 -1
- package/dist/interfaces/rest/routes/entity-aliases.js +0 -39
- package/dist/interfaces/rest/routes/inventory.d.ts +0 -5
- package/dist/interfaces/rest/routes/inventory.d.ts.map +0 -1
- package/dist/interfaces/rest/routes/inventory.js +0 -72
- package/dist/interfaces/rest/routes/media.d.ts +0 -5
- package/dist/interfaces/rest/routes/media.d.ts.map +0 -1
- package/dist/interfaces/rest/routes/media.js +0 -65
- package/dist/interfaces/rest/routes/orders.d.ts +0 -5
- package/dist/interfaces/rest/routes/orders.d.ts.map +0 -1
- package/dist/interfaces/rest/routes/orders.js +0 -64
- package/dist/interfaces/rest/routes/payments.d.ts +0 -5
- package/dist/interfaces/rest/routes/payments.d.ts.map +0 -1
- package/dist/interfaces/rest/routes/payments.js +0 -45
- package/dist/interfaces/rest/routes/pricing.d.ts +0 -5
- package/dist/interfaces/rest/routes/pricing.d.ts.map +0 -1
- package/dist/interfaces/rest/routes/pricing.js +0 -48
- package/dist/interfaces/rest/routes/promotions.d.ts +0 -5
- package/dist/interfaces/rest/routes/promotions.d.ts.map +0 -1
- package/dist/interfaces/rest/routes/promotions.js +0 -76
- package/dist/interfaces/rest/routes/search.d.ts +0 -5
- package/dist/interfaces/rest/routes/search.d.ts.map +0 -1
- package/dist/interfaces/rest/routes/search.js +0 -60
- package/dist/interfaces/rest/routes/webhooks.d.ts +0 -5
- package/dist/interfaces/rest/routes/webhooks.d.ts.map +0 -1
- package/dist/interfaces/rest/routes/webhooks.js +0 -39
- package/dist/interfaces/rest/schemas/admin-jobs.d.ts +0 -327
- package/dist/interfaces/rest/schemas/admin-jobs.d.ts.map +0 -1
- package/dist/interfaces/rest/schemas/admin-jobs.js +0 -37
- package/dist/interfaces/rest/schemas/audit.d.ts +0 -59
- package/dist/interfaces/rest/schemas/audit.d.ts.map +0 -1
- package/dist/interfaces/rest/schemas/audit.js +0 -43
- package/dist/interfaces/rest/schemas/carts.d.ts +0 -1456
- package/dist/interfaces/rest/schemas/carts.d.ts.map +0 -1
- package/dist/interfaces/rest/schemas/carts.js +0 -109
- package/dist/interfaces/rest/schemas/catalog.d.ts +0 -5452
- package/dist/interfaces/rest/schemas/catalog.d.ts.map +0 -1
- package/dist/interfaces/rest/schemas/catalog.js +0 -397
- package/dist/interfaces/rest/schemas/checkout.d.ts +0 -160
- package/dist/interfaces/rest/schemas/checkout.d.ts.map +0 -1
- package/dist/interfaces/rest/schemas/checkout.js +0 -60
- package/dist/interfaces/rest/schemas/customer-portal.d.ts +0 -2203
- package/dist/interfaces/rest/schemas/customer-portal.d.ts.map +0 -1
- package/dist/interfaces/rest/schemas/customer-portal.js +0 -177
- package/dist/interfaces/rest/schemas/customers.d.ts +0 -422
- package/dist/interfaces/rest/schemas/customers.d.ts.map +0 -1
- package/dist/interfaces/rest/schemas/customers.js +0 -150
- package/dist/interfaces/rest/schemas/inventory.d.ts +0 -561
- package/dist/interfaces/rest/schemas/inventory.d.ts.map +0 -1
- package/dist/interfaces/rest/schemas/inventory.js +0 -148
- package/dist/interfaces/rest/schemas/media.d.ts +0 -303
- package/dist/interfaces/rest/schemas/media.d.ts.map +0 -1
- package/dist/interfaces/rest/schemas/media.js +0 -69
- package/dist/interfaces/rest/schemas/orders.d.ts +0 -1792
- package/dist/interfaces/rest/schemas/orders.d.ts.map +0 -1
- package/dist/interfaces/rest/schemas/orders.js +0 -93
- package/dist/interfaces/rest/schemas/pricing.d.ts +0 -256
- package/dist/interfaces/rest/schemas/pricing.d.ts.map +0 -1
- package/dist/interfaces/rest/schemas/pricing.js +0 -72
- package/dist/interfaces/rest/schemas/promotions.d.ts +0 -363
- package/dist/interfaces/rest/schemas/promotions.d.ts.map +0 -1
- package/dist/interfaces/rest/schemas/promotions.js +0 -98
- package/dist/interfaces/rest/schemas/responses.d.ts +0 -4086
- package/dist/interfaces/rest/schemas/responses.d.ts.map +0 -1
- package/dist/interfaces/rest/schemas/responses.js +0 -74
- package/dist/interfaces/rest/schemas/search.d.ts +0 -247
- package/dist/interfaces/rest/schemas/search.d.ts.map +0 -1
- package/dist/interfaces/rest/schemas/search.js +0 -55
- package/dist/interfaces/rest/schemas/shared.d.ts +0 -95
- package/dist/interfaces/rest/schemas/shared.d.ts.map +0 -1
- package/dist/interfaces/rest/schemas/shared.js +0 -51
- package/dist/interfaces/rest/schemas/webhooks.d.ts +0 -221
- package/dist/interfaces/rest/schemas/webhooks.d.ts.map +0 -1
- package/dist/interfaces/rest/schemas/webhooks.js +0 -62
- package/dist/interfaces/rest/utils.d.ts +0 -45
- package/dist/interfaces/rest/utils.d.ts.map +0 -1
- package/dist/interfaces/rest/utils.js +0 -71
- package/dist/interfaces/rest/webhook-router.d.ts +0 -41
- package/dist/interfaces/rest/webhook-router.d.ts.map +0 -1
- package/dist/interfaces/rest/webhook-router.js +0 -36
- package/dist/kernel/compensation/executor.d.ts +0 -21
- package/dist/kernel/compensation/executor.d.ts.map +0 -1
- package/dist/kernel/compensation/executor.js +0 -36
- package/dist/kernel/compensation/types.d.ts +0 -25
- package/dist/kernel/compensation/types.d.ts.map +0 -1
- package/dist/kernel/compensation/types.js +0 -1
- package/dist/kernel/database/adapter.d.ts +0 -18
- package/dist/kernel/database/adapter.d.ts.map +0 -1
- package/dist/kernel/database/adapter.js +0 -3
- package/dist/kernel/database/drizzle-db.d.ts +0 -49
- package/dist/kernel/database/drizzle-db.d.ts.map +0 -1
- package/dist/kernel/database/drizzle-db.js +0 -20
- package/dist/kernel/database/migrate.d.ts +0 -38
- package/dist/kernel/database/migrate.d.ts.map +0 -1
- package/dist/kernel/database/migrate.js +0 -61
- package/dist/kernel/database/plugin-types.d.ts +0 -32
- package/dist/kernel/database/plugin-types.d.ts.map +0 -1
- package/dist/kernel/database/plugin-types.js +0 -10
- package/dist/kernel/database/schema.d.ts +0 -24
- package/dist/kernel/database/schema.d.ts.map +0 -1
- package/dist/kernel/database/schema.js +0 -36
- package/dist/kernel/database/scoped-db.d.ts +0 -20
- package/dist/kernel/database/scoped-db.d.ts.map +0 -1
- package/dist/kernel/database/scoped-db.js +0 -62
- package/dist/kernel/database/tx-context.d.ts +0 -15
- package/dist/kernel/database/tx-context.d.ts.map +0 -1
- package/dist/kernel/database/tx-context.js +0 -19
- package/dist/kernel/error-mapper.d.ts +0 -3
- package/dist/kernel/error-mapper.d.ts.map +0 -1
- package/dist/kernel/error-mapper.js +0 -12
- package/dist/kernel/errors.d.ts +0 -38
- package/dist/kernel/errors.d.ts.map +0 -1
- package/dist/kernel/errors.js +0 -69
- 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/hooks/create-context.d.ts +0 -25
- package/dist/kernel/hooks/create-context.d.ts.map +0 -1
- package/dist/kernel/hooks/create-context.js +0 -22
- package/dist/kernel/hooks/executor.d.ts +0 -12
- package/dist/kernel/hooks/executor.d.ts.map +0 -1
- package/dist/kernel/hooks/executor.js +0 -50
- package/dist/kernel/hooks/registry.d.ts +0 -28
- package/dist/kernel/hooks/registry.d.ts.map +0 -1
- package/dist/kernel/hooks/registry.js +0 -58
- package/dist/kernel/hooks/types.d.ts +0 -37
- package/dist/kernel/hooks/types.d.ts.map +0 -1
- package/dist/kernel/hooks/types.js +0 -1
- 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/adapter.d.ts +0 -25
- package/dist/kernel/jobs/adapter.d.ts.map +0 -1
- package/dist/kernel/jobs/adapter.js +0 -9
- package/dist/kernel/jobs/drizzle-adapter.d.ts +0 -15
- package/dist/kernel/jobs/drizzle-adapter.d.ts.map +0 -1
- package/dist/kernel/jobs/drizzle-adapter.js +0 -42
- package/dist/kernel/jobs/runner.d.ts +0 -24
- package/dist/kernel/jobs/runner.d.ts.map +0 -1
- package/dist/kernel/jobs/runner.js +0 -114
- package/dist/kernel/jobs/schema.d.ts +0 -280
- package/dist/kernel/jobs/schema.d.ts.map +0 -1
- package/dist/kernel/jobs/schema.js +0 -37
- package/dist/kernel/jobs/types.d.ts +0 -30
- package/dist/kernel/jobs/types.d.ts.map +0 -1
- package/dist/kernel/jobs/types.js +0 -1
- package/dist/kernel/local-api.d.ts +0 -103
- package/dist/kernel/local-api.d.ts.map +0 -1
- package/dist/kernel/local-api.js +0 -89
- package/dist/kernel/plugin/manifest.d.ts +0 -90
- package/dist/kernel/plugin/manifest.d.ts.map +0 -1
- package/dist/kernel/plugin/manifest.js +0 -169
- 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/result.d.ts +0 -36
- package/dist/kernel/result.d.ts.map +0 -1
- package/dist/kernel/result.js +0 -16
- package/dist/kernel/schema/extra-columns.d.ts +0 -23
- package/dist/kernel/schema/extra-columns.d.ts.map +0 -1
- package/dist/kernel/schema/extra-columns.js +0 -10
- 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/kernel/service-timing.d.ts +0 -25
- package/dist/kernel/service-timing.d.ts.map +0 -1
- package/dist/kernel/service-timing.js +0 -62
- package/dist/kernel/state-machine/machine.d.ts +0 -24
- package/dist/kernel/state-machine/machine.d.ts.map +0 -1
- package/dist/kernel/state-machine/machine.js +0 -70
- package/dist/modules/analytics/drizzle-adapter.d.ts +0 -13
- package/dist/modules/analytics/drizzle-adapter.d.ts.map +0 -1
- package/dist/modules/analytics/drizzle-adapter.js +0 -358
- 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/models.d.ts +0 -14
- package/dist/modules/analytics/models.d.ts.map +0 -1
- package/dist/modules/analytics/models.js +0 -118
- 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/analytics/service.d.ts +0 -45
- package/dist/modules/analytics/service.d.ts.map +0 -1
- package/dist/modules/analytics/service.js +0 -196
- package/dist/modules/analytics/types.d.ts +0 -119
- package/dist/modules/analytics/types.d.ts.map +0 -1
- package/dist/modules/analytics/types.js +0 -25
- package/dist/modules/audit/hooks.d.ts +0 -7
- package/dist/modules/audit/hooks.d.ts.map +0 -1
- package/dist/modules/audit/hooks.js +0 -67
- package/dist/modules/audit/schema.d.ts +0 -178
- package/dist/modules/audit/schema.d.ts.map +0 -1
- package/dist/modules/audit/schema.js +0 -21
- package/dist/modules/audit/service.d.ts +0 -38
- package/dist/modules/audit/service.d.ts.map +0 -1
- package/dist/modules/audit/service.js +0 -109
- 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/matcher.d.ts +0 -20
- package/dist/modules/cart/matcher.d.ts.map +0 -1
- package/dist/modules/cart/matcher.js +0 -2
- package/dist/modules/cart/repository/index.d.ts +0 -45
- package/dist/modules/cart/repository/index.d.ts.map +0 -1
- package/dist/modules/cart/repository/index.js +0 -158
- package/dist/modules/cart/schema.d.ts +0 -359
- package/dist/modules/cart/schema.d.ts.map +0 -1
- package/dist/modules/cart/schema.js +0 -40
- package/dist/modules/cart/schemas.d.ts +0 -29
- package/dist/modules/cart/schemas.d.ts.map +0 -1
- package/dist/modules/cart/schemas.js +0 -14
- package/dist/modules/cart/service.d.ts +0 -63
- package/dist/modules/cart/service.d.ts.map +0 -1
- package/dist/modules/cart/service.js +0 -339
- package/dist/modules/catalog/repository/index.d.ts +0 -106
- package/dist/modules/catalog/repository/index.d.ts.map +0 -1
- package/dist/modules/catalog/repository/index.js +0 -455
- package/dist/modules/catalog/schema.d.ts +0 -1193
- package/dist/modules/catalog/schema.d.ts.map +0 -1
- package/dist/modules/catalog/schema.js +0 -149
- package/dist/modules/catalog/schemas.d.ts +0 -81
- package/dist/modules/catalog/schemas.d.ts.map +0 -1
- package/dist/modules/catalog/schemas.js +0 -62
- package/dist/modules/catalog/service.d.ts +0 -160
- package/dist/modules/catalog/service.d.ts.map +0 -1
- package/dist/modules/catalog/service.js +0 -759
- package/dist/modules/customers/repository/index.d.ts +0 -47
- package/dist/modules/customers/repository/index.d.ts.map +0 -1
- package/dist/modules/customers/repository/index.js +0 -206
- package/dist/modules/customers/schema.d.ts +0 -560
- package/dist/modules/customers/schema.d.ts.map +0 -1
- package/dist/modules/customers/schema.js +0 -60
- package/dist/modules/customers/service.d.ts +0 -27
- package/dist/modules/customers/service.d.ts.map +0 -1
- package/dist/modules/customers/service.js +0 -106
- package/dist/modules/fulfillment/repository/index.d.ts +0 -63
- package/dist/modules/fulfillment/repository/index.d.ts.map +0 -1
- package/dist/modules/fulfillment/repository/index.js +0 -268
- package/dist/modules/fulfillment/schema.d.ts +0 -655
- package/dist/modules/fulfillment/schema.d.ts.map +0 -1
- package/dist/modules/fulfillment/schema.js +0 -83
- package/dist/modules/fulfillment/service.d.ts +0 -58
- package/dist/modules/fulfillment/service.d.ts.map +0 -1
- package/dist/modules/fulfillment/service.js +0 -338
- package/dist/modules/fulfillment/types.d.ts +0 -44
- package/dist/modules/fulfillment/types.d.ts.map +0 -1
- package/dist/modules/fulfillment/types.js +0 -1
- package/dist/modules/inventory/repository/index.d.ts +0 -81
- package/dist/modules/inventory/repository/index.d.ts.map +0 -1
- package/dist/modules/inventory/repository/index.js +0 -310
- package/dist/modules/inventory/schema.d.ts +0 -570
- package/dist/modules/inventory/schema.d.ts.map +0 -1
- package/dist/modules/inventory/schema.js +0 -69
- package/dist/modules/inventory/schemas.d.ts +0 -31
- package/dist/modules/inventory/schemas.d.ts.map +0 -1
- package/dist/modules/inventory/schemas.js +0 -28
- package/dist/modules/inventory/service.d.ts +0 -69
- package/dist/modules/inventory/service.d.ts.map +0 -1
- package/dist/modules/inventory/service.js +0 -283
- package/dist/modules/media/adapter.d.ts +0 -16
- package/dist/modules/media/adapter.d.ts.map +0 -1
- package/dist/modules/media/adapter.js +0 -1
- package/dist/modules/media/repository/index.d.ts +0 -35
- package/dist/modules/media/repository/index.d.ts.map +0 -1
- package/dist/modules/media/repository/index.js +0 -176
- package/dist/modules/media/schema.d.ts +0 -289
- package/dist/modules/media/schema.d.ts.map +0 -1
- package/dist/modules/media/schema.js +0 -35
- package/dist/modules/media/service.d.ts +0 -42
- package/dist/modules/media/service.d.ts.map +0 -1
- package/dist/modules/media/service.js +0 -89
- package/dist/modules/orders/repository/index.d.ts +0 -48
- package/dist/modules/orders/repository/index.d.ts.map +0 -1
- package/dist/modules/orders/repository/index.js +0 -199
- package/dist/modules/orders/schema.d.ts +0 -672
- package/dist/modules/orders/schema.d.ts.map +0 -1
- package/dist/modules/orders/schema.js +0 -63
- package/dist/modules/orders/service.d.ts +0 -85
- package/dist/modules/orders/service.d.ts.map +0 -1
- package/dist/modules/orders/service.js +0 -313
- package/dist/modules/orders/stale-order-cleanup.d.ts +0 -27
- package/dist/modules/orders/stale-order-cleanup.d.ts.map +0 -1
- package/dist/modules/orders/stale-order-cleanup.js +0 -55
- package/dist/modules/organization/service.d.ts +0 -53
- package/dist/modules/organization/service.d.ts.map +0 -1
- package/dist/modules/organization/service.js +0 -151
- package/dist/modules/payments/adapter.d.ts +0 -42
- package/dist/modules/payments/adapter.d.ts.map +0 -1
- package/dist/modules/payments/adapter.js +0 -1
- 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/payments/service.d.ts +0 -23
- package/dist/modules/payments/service.d.ts.map +0 -1
- package/dist/modules/payments/service.js +0 -72
- package/dist/modules/pricing/repository/index.d.ts +0 -34
- package/dist/modules/pricing/repository/index.d.ts.map +0 -1
- package/dist/modules/pricing/repository/index.js +0 -176
- package/dist/modules/pricing/schema.d.ts +0 -565
- package/dist/modules/pricing/schema.d.ts.map +0 -1
- package/dist/modules/pricing/schema.js +0 -57
- package/dist/modules/pricing/schemas.d.ts +0 -37
- package/dist/modules/pricing/schemas.d.ts.map +0 -1
- package/dist/modules/pricing/schemas.js +0 -30
- package/dist/modules/pricing/service.d.ts +0 -62
- package/dist/modules/pricing/service.d.ts.map +0 -1
- package/dist/modules/pricing/service.js +0 -308
- package/dist/modules/promotions/repository/index.d.ts +0 -41
- package/dist/modules/promotions/repository/index.d.ts.map +0 -1
- package/dist/modules/promotions/repository/index.js +0 -204
- package/dist/modules/promotions/schema.d.ts +0 -427
- package/dist/modules/promotions/schema.d.ts.map +0 -1
- package/dist/modules/promotions/schema.js +0 -52
- package/dist/modules/promotions/schemas.d.ts +0 -33
- package/dist/modules/promotions/schemas.d.ts.map +0 -1
- package/dist/modules/promotions/schemas.js +0 -32
- package/dist/modules/promotions/service.d.ts +0 -80
- package/dist/modules/promotions/service.d.ts.map +0 -1
- package/dist/modules/promotions/service.js +0 -347
- package/dist/modules/search/adapter.d.ts +0 -51
- package/dist/modules/search/adapter.d.ts.map +0 -1
- package/dist/modules/search/adapter.js +0 -1
- package/dist/modules/search/hooks.d.ts +0 -8
- package/dist/modules/search/hooks.d.ts.map +0 -1
- package/dist/modules/search/hooks.js +0 -6
- 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/search/service.d.ts +0 -24
- package/dist/modules/search/service.d.ts.map +0 -1
- package/dist/modules/search/service.js +0 -217
- package/dist/modules/shipping/calculator.d.ts +0 -42
- package/dist/modules/shipping/calculator.d.ts.map +0 -1
- package/dist/modules/shipping/calculator.js +0 -91
- package/dist/modules/shipping/repository/index.d.ts +0 -5
- package/dist/modules/shipping/repository/index.d.ts.map +0 -1
- package/dist/modules/shipping/repository/index.js +0 -1
- package/dist/modules/shipping/service.d.ts +0 -28
- package/dist/modules/shipping/service.d.ts.map +0 -1
- package/dist/modules/shipping/service.js +0 -20
- package/dist/modules/tax/adapter.d.ts +0 -58
- package/dist/modules/tax/adapter.d.ts.map +0 -1
- package/dist/modules/tax/adapter.js +0 -1
- package/dist/modules/tax/repository/index.d.ts +0 -5
- package/dist/modules/tax/repository/index.d.ts.map +0 -1
- package/dist/modules/tax/repository/index.js +0 -1
- package/dist/modules/tax/service.d.ts +0 -19
- package/dist/modules/tax/service.d.ts.map +0 -1
- package/dist/modules/tax/service.js +0 -34
- package/dist/modules/webhooks/hook.d.ts +0 -13
- package/dist/modules/webhooks/hook.d.ts.map +0 -1
- package/dist/modules/webhooks/hook.js +0 -29
- package/dist/modules/webhooks/repository/index.d.ts +0 -40
- package/dist/modules/webhooks/repository/index.d.ts.map +0 -1
- package/dist/modules/webhooks/repository/index.js +0 -175
- package/dist/modules/webhooks/schema.d.ts +0 -404
- package/dist/modules/webhooks/schema.d.ts.map +0 -1
- package/dist/modules/webhooks/schema.js +0 -40
- package/dist/modules/webhooks/service.d.ts +0 -23
- package/dist/modules/webhooks/service.d.ts.map +0 -1
- package/dist/modules/webhooks/service.js +0 -92
- package/dist/modules/webhooks/signing.d.ts +0 -2
- package/dist/modules/webhooks/signing.d.ts.map +0 -1
- package/dist/modules/webhooks/signing.js +0 -5
- package/dist/modules/webhooks/ssrf-guard.d.ts +0 -19
- package/dist/modules/webhooks/ssrf-guard.d.ts.map +0 -1
- package/dist/modules/webhooks/ssrf-guard.js +0 -79
- package/dist/modules/webhooks/tasks.d.ts +0 -16
- package/dist/modules/webhooks/tasks.d.ts.map +0 -1
- package/dist/modules/webhooks/tasks.js +0 -35
- package/dist/modules/webhooks/worker.d.ts +0 -21
- package/dist/modules/webhooks/worker.d.ts.map +0 -1
- package/dist/modules/webhooks/worker.js +0 -113
- package/dist/runtime/commerce.d.ts +0 -110
- package/dist/runtime/commerce.d.ts.map +0 -1
- package/dist/runtime/commerce.js +0 -37
- package/dist/runtime/kernel.d.ts +0 -71
- package/dist/runtime/kernel.d.ts.map +0 -1
- package/dist/runtime/kernel.js +0 -306
- package/dist/runtime/logger.d.ts +0 -11
- package/dist/runtime/logger.d.ts.map +0 -1
- package/dist/runtime/logger.js +0 -32
- package/dist/runtime/shutdown.d.ts +0 -15
- package/dist/runtime/shutdown.d.ts.map +0 -1
- package/dist/runtime/shutdown.js +0 -34
- package/dist/test-utils/create-pglite-adapter.d.ts +0 -32
- package/dist/test-utils/create-pglite-adapter.d.ts.map +0 -1
- package/dist/test-utils/create-pglite-adapter.js +0 -107
- package/dist/test-utils/create-plugin-test-app.d.ts +0 -50
- package/dist/test-utils/create-plugin-test-app.d.ts.map +0 -1
- package/dist/test-utils/create-plugin-test-app.js +0 -74
- 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-config.d.ts +0 -18
- package/dist/test-utils/create-test-config.d.ts.map +0 -1
- package/dist/test-utils/create-test-config.js +0 -172
- package/dist/test-utils/create-test-kernel.d.ts +0 -3
- package/dist/test-utils/create-test-kernel.d.ts.map +0 -1
- package/dist/test-utils/create-test-kernel.js +0 -5
- package/dist/test-utils/create-test-plugin-context.d.ts +0 -42
- package/dist/test-utils/create-test-plugin-context.d.ts.map +0 -1
- package/dist/test-utils/create-test-plugin-context.js +0 -46
- package/dist/test-utils/rest-api-test-utils.d.ts +0 -64
- package/dist/test-utils/rest-api-test-utils.d.ts.map +0 -1
- package/dist/test-utils/rest-api-test-utils.js +0 -207
- package/dist/test-utils/test-actors.d.ts +0 -15
- package/dist/test-utils/test-actors.d.ts.map +0 -1
- package/dist/test-utils/test-actors.js +0 -57
- package/dist/test-utils/typed-hooks.d.ts +0 -43
- package/dist/test-utils/typed-hooks.d.ts.map +0 -1
- package/dist/test-utils/typed-hooks.js +0 -35
- package/dist/testing.d.ts +0 -14
- package/dist/testing.d.ts.map +0 -1
- package/dist/testing.js +0 -13
- package/dist/tsconfig.tsbuildinfo +0 -1
- 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/dist/utils/id.d.ts +0 -2
- package/dist/utils/id.d.ts.map +0 -1
- package/dist/utils/id.js +0 -3
- package/dist/utils/logger.d.ts +0 -3
- package/dist/utils/logger.d.ts.map +0 -1
- package/dist/utils/logger.js +0 -16
- package/dist/utils/pagination.d.ts +0 -11
- package/dist/utils/pagination.d.ts.map +0 -1
- package/dist/utils/pagination.js +0 -15
|
@@ -1,138 +0,0 @@
|
|
|
1
|
-
import { eq, and, isNull, sql, getTableColumns, } from "drizzle-orm";
|
|
2
|
-
import { CommerceNotFoundError } from "../errors.js";
|
|
3
|
-
/**
|
|
4
|
-
* Creates a typed repository with standard CRUD operations from a Drizzle table schema.
|
|
5
|
-
*
|
|
6
|
-
* Usage:
|
|
7
|
-
* ```typescript
|
|
8
|
-
* const repo = createRepository(schema.promotions, db)
|
|
9
|
-
* const row = await repo.findById("abc-123")
|
|
10
|
-
* const rows = await repo.findMany({ status: "active" }, { limit: 10 })
|
|
11
|
-
* ```
|
|
12
|
-
*
|
|
13
|
-
* Tables with a `deletedAt` column automatically get `softDelete()` and `restore()`.
|
|
14
|
-
* Domain-specific queries should remain in dedicated repository classes that
|
|
15
|
-
* delegate standard CRUD to the factory-created instance.
|
|
16
|
-
*/
|
|
17
|
-
export function createRepository(table, db) {
|
|
18
|
-
// Use getTableColumns for type-safe column access
|
|
19
|
-
const columns = getTableColumns(table);
|
|
20
|
-
// Runtime check for soft-delete column
|
|
21
|
-
const hasSoftDelete = "deletedAt" in columns || "deleted_at" in columns;
|
|
22
|
-
const deletedAtColumn = columns["deletedAt"] ?? columns["deleted_at"] ?? null;
|
|
23
|
-
const idColumn = columns["id"];
|
|
24
|
-
// Drizzle's generic types require PgTable at the boundary.
|
|
25
|
-
// We cast once here rather than at every call site.
|
|
26
|
-
const pgTable = table;
|
|
27
|
-
function getDb(ctx) {
|
|
28
|
-
return ctx?.tx ?? db;
|
|
29
|
-
}
|
|
30
|
-
function buildWhereConditions(filters, includeDeleted = false) {
|
|
31
|
-
const conditions = [];
|
|
32
|
-
// Automatically exclude soft-deleted rows unless explicitly requested
|
|
33
|
-
if (hasSoftDelete && !includeDeleted && deletedAtColumn) {
|
|
34
|
-
conditions.push(isNull(deletedAtColumn));
|
|
35
|
-
}
|
|
36
|
-
if (filters) {
|
|
37
|
-
for (const [key, value] of Object.entries(filters)) {
|
|
38
|
-
const col = columns[key];
|
|
39
|
-
if (value !== undefined && col) {
|
|
40
|
-
conditions.push(eq(col, value));
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
return conditions;
|
|
45
|
-
}
|
|
46
|
-
const repo = {
|
|
47
|
-
async findById(id, ctx) {
|
|
48
|
-
const conditions = buildWhereConditions(undefined, false);
|
|
49
|
-
conditions.push(eq(idColumn, id));
|
|
50
|
-
const rows = await getDb(ctx)
|
|
51
|
-
.select()
|
|
52
|
-
.from(pgTable)
|
|
53
|
-
.where(and(...conditions));
|
|
54
|
-
return rows[0];
|
|
55
|
-
},
|
|
56
|
-
async findMany(filters, options = {}, ctx) {
|
|
57
|
-
const conditions = buildWhereConditions(filters, options.withDeleted);
|
|
58
|
-
let query = getDb(ctx).select().from(pgTable).$dynamic();
|
|
59
|
-
if (conditions.length > 0) {
|
|
60
|
-
query = query.where(and(...conditions));
|
|
61
|
-
}
|
|
62
|
-
if (options.limit !== undefined) {
|
|
63
|
-
query = query.limit(options.limit);
|
|
64
|
-
}
|
|
65
|
-
if (options.offset !== undefined) {
|
|
66
|
-
query = query.offset(options.offset);
|
|
67
|
-
}
|
|
68
|
-
// Drizzle's $dynamic() erases the row type when using PgTable.
|
|
69
|
-
// Use .then() to narrow the resolved array type with a single cast.
|
|
70
|
-
return query.then((rows) => rows);
|
|
71
|
-
},
|
|
72
|
-
async findAndCount(filters, options = {}, ctx) {
|
|
73
|
-
const rows = await repo.findMany(filters, options, ctx);
|
|
74
|
-
const conditions = buildWhereConditions(filters, options.withDeleted);
|
|
75
|
-
let countQuery = getDb(ctx)
|
|
76
|
-
.select({ count: sql `count(*)::int` })
|
|
77
|
-
.from(pgTable)
|
|
78
|
-
.$dynamic();
|
|
79
|
-
if (conditions.length > 0) {
|
|
80
|
-
countQuery = countQuery.where(and(...conditions));
|
|
81
|
-
}
|
|
82
|
-
const countResult = await countQuery;
|
|
83
|
-
return { rows, total: countResult[0]?.count ?? 0 };
|
|
84
|
-
},
|
|
85
|
-
async create(data, ctx) {
|
|
86
|
-
const rows = await getDb(ctx)
|
|
87
|
-
.insert(pgTable)
|
|
88
|
-
.values(data)
|
|
89
|
-
.returning();
|
|
90
|
-
return rows[0];
|
|
91
|
-
},
|
|
92
|
-
async createMany(data, ctx) {
|
|
93
|
-
if (data.length === 0)
|
|
94
|
-
return [];
|
|
95
|
-
const rows = await getDb(ctx)
|
|
96
|
-
.insert(pgTable)
|
|
97
|
-
.values(data)
|
|
98
|
-
.returning();
|
|
99
|
-
return rows;
|
|
100
|
-
},
|
|
101
|
-
async update(id, data, ctx) {
|
|
102
|
-
const rows = await getDb(ctx)
|
|
103
|
-
.update(pgTable)
|
|
104
|
-
.set(data)
|
|
105
|
-
.where(eq(idColumn, id))
|
|
106
|
-
.returning();
|
|
107
|
-
if (!rows[0]) {
|
|
108
|
-
throw new CommerceNotFoundError(`Record ${id} not found.`);
|
|
109
|
-
}
|
|
110
|
-
return rows[0];
|
|
111
|
-
},
|
|
112
|
-
async delete(id, ctx) {
|
|
113
|
-
await getDb(ctx).delete(pgTable).where(eq(idColumn, id));
|
|
114
|
-
},
|
|
115
|
-
};
|
|
116
|
-
if (hasSoftDelete && deletedAtColumn) {
|
|
117
|
-
const softRepo = repo;
|
|
118
|
-
softRepo.softDelete = async (id, ctx) => {
|
|
119
|
-
await getDb(ctx)
|
|
120
|
-
.update(pgTable)
|
|
121
|
-
.set({ deletedAt: new Date() })
|
|
122
|
-
.where(eq(idColumn, id));
|
|
123
|
-
};
|
|
124
|
-
softRepo.restore = async (id, ctx) => {
|
|
125
|
-
const rows = await getDb(ctx)
|
|
126
|
-
.update(pgTable)
|
|
127
|
-
.set({ deletedAt: null })
|
|
128
|
-
.where(eq(idColumn, id))
|
|
129
|
-
.returning();
|
|
130
|
-
if (!rows[0]) {
|
|
131
|
-
throw new CommerceNotFoundError(`Record ${id} not found.`);
|
|
132
|
-
}
|
|
133
|
-
return rows[0];
|
|
134
|
-
};
|
|
135
|
-
return softRepo;
|
|
136
|
-
}
|
|
137
|
-
return repo;
|
|
138
|
-
}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import type { Actor } from "../../auth/types.js";
|
|
2
|
-
import type { JobsAdapter } from "../jobs/adapter.js";
|
|
3
|
-
import type { PluginDb } from "../database/plugin-types.js";
|
|
4
|
-
import type { HookContext, HookOrigin, Logger, ServiceContainer } from "./types.js";
|
|
5
|
-
export interface CreateHookContextArgs {
|
|
6
|
-
actor: Actor | null;
|
|
7
|
-
tx?: unknown;
|
|
8
|
-
logger: Logger;
|
|
9
|
-
services: ServiceContainer;
|
|
10
|
-
context?: Record<string, unknown>;
|
|
11
|
-
requestId?: string;
|
|
12
|
-
origin?: HookOrigin;
|
|
13
|
-
jobs?: JobsAdapter;
|
|
14
|
-
db?: PluginDb;
|
|
15
|
-
kernel?: {
|
|
16
|
-
database: {
|
|
17
|
-
db: PluginDb;
|
|
18
|
-
};
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Creates a HookContext with sensible defaults.
|
|
23
|
-
*/
|
|
24
|
-
export declare function createHookContext(args: CreateHookContextArgs): HookContext;
|
|
25
|
-
//# sourceMappingURL=create-context.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"create-context.d.ts","sourceRoot":"","sources":["../../../src/kernel/hooks/create-context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEpF,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,EAAE,CAAC,EAAE,QAAQ,CAAC;IACd,MAAM,CAAC,EAAE;QAAE,QAAQ,EAAE;YAAE,EAAE,EAAE,QAAQ,CAAA;SAAE,CAAA;KAAE,CAAC;CACzC;AAID;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,qBAAqB,GAAG,WAAW,CAiB1E"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { randomUUID } from "node:crypto";
|
|
2
|
-
import { NullJobsAdapter } from "../jobs/adapter.js";
|
|
3
|
-
const nullJobs = new NullJobsAdapter();
|
|
4
|
-
/**
|
|
5
|
-
* Creates a HookContext with sensible defaults.
|
|
6
|
-
*/
|
|
7
|
-
export function createHookContext(args) {
|
|
8
|
-
// Resolve db: prefer explicit db arg, fall back to kernel.database.db
|
|
9
|
-
const db = args.db ?? args.kernel?.database?.db ?? null;
|
|
10
|
-
const ctx = {
|
|
11
|
-
actor: args.actor,
|
|
12
|
-
tx: args.tx ?? null,
|
|
13
|
-
logger: args.logger,
|
|
14
|
-
services: args.services,
|
|
15
|
-
context: args.context ?? {},
|
|
16
|
-
requestId: args.requestId ?? randomUUID(),
|
|
17
|
-
origin: args.origin ?? "rest",
|
|
18
|
-
jobs: args.jobs ?? nullJobs,
|
|
19
|
-
db: db,
|
|
20
|
-
};
|
|
21
|
-
return ctx;
|
|
22
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import type { AfterHook, BeforeHook, HookContext, HookOperation } from "./types.js";
|
|
2
|
-
export interface HookError {
|
|
3
|
-
hookName: string;
|
|
4
|
-
message: string;
|
|
5
|
-
}
|
|
6
|
-
export interface HookReport {
|
|
7
|
-
errors: HookError[];
|
|
8
|
-
hasErrors: boolean;
|
|
9
|
-
}
|
|
10
|
-
export declare function runBeforeHooks<T>(hooks: BeforeHook<T>[], data: T, operation: HookOperation, context: HookContext): Promise<T>;
|
|
11
|
-
export declare function runAfterHooks<T>(hooks: AfterHook<T>[], originalData: T | null, committedResult: T, operation: HookOperation, context: HookContext): Promise<HookReport>;
|
|
12
|
-
//# sourceMappingURL=executor.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../../src/kernel/hooks/executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEpF,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;CACpB;AAmBD,wBAAsB,cAAc,CAAC,CAAC,EACpC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,EACtB,IAAI,EAAE,CAAC,EACP,SAAS,EAAE,aAAa,EACxB,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,CAAC,CAAC,CAmBZ;AAED,wBAAsB,aAAa,CAAC,CAAC,EACnC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,EACrB,YAAY,EAAE,CAAC,GAAG,IAAI,EACtB,eAAe,EAAE,CAAC,EAClB,SAAS,EAAE,aAAa,EACxB,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC,CA0BrB"}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
/** Default hook timeout: 20 seconds */
|
|
2
|
-
const HOOK_TIMEOUT_MS = 20_000;
|
|
3
|
-
function withTimeout(promiseOrValue, timeoutMs, hookName) {
|
|
4
|
-
const promise = Promise.resolve(promiseOrValue);
|
|
5
|
-
return new Promise((resolve, reject) => {
|
|
6
|
-
const timer = setTimeout(() => reject(new Error(`Hook "${hookName}" timed out after ${timeoutMs}ms`)), timeoutMs);
|
|
7
|
-
promise.then((val) => { clearTimeout(timer); resolve(val); }, (err) => { clearTimeout(timer); reject(err); });
|
|
8
|
-
});
|
|
9
|
-
}
|
|
10
|
-
export async function runBeforeHooks(hooks, data, operation, context) {
|
|
11
|
-
let current = data;
|
|
12
|
-
for (const hook of hooks) {
|
|
13
|
-
const hookName = hook.name || "(anonymous beforeHook)";
|
|
14
|
-
try {
|
|
15
|
-
current = await withTimeout(hook({ data: current, operation, context }), HOOK_TIMEOUT_MS, hookName);
|
|
16
|
-
}
|
|
17
|
-
catch (error) {
|
|
18
|
-
context.logger.error(`Before-hook "${hookName}" failed during ${operation}`, {
|
|
19
|
-
error: error instanceof Error ? error.message : String(error),
|
|
20
|
-
requestId: context.requestId,
|
|
21
|
-
});
|
|
22
|
-
throw error; // Re-throw — beforeHooks MUST succeed
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
return current;
|
|
26
|
-
}
|
|
27
|
-
export async function runAfterHooks(hooks, originalData, committedResult, operation, context) {
|
|
28
|
-
const errors = [];
|
|
29
|
-
for (const hook of hooks) {
|
|
30
|
-
const hookName = hook.name || "(anonymous afterHook)";
|
|
31
|
-
try {
|
|
32
|
-
await withTimeout(hook({
|
|
33
|
-
data: originalData,
|
|
34
|
-
result: committedResult,
|
|
35
|
-
operation,
|
|
36
|
-
context,
|
|
37
|
-
}), HOOK_TIMEOUT_MS, hookName);
|
|
38
|
-
}
|
|
39
|
-
catch (error) {
|
|
40
|
-
errors.push({
|
|
41
|
-
hookName,
|
|
42
|
-
message: error instanceof Error ? error.message : String(error),
|
|
43
|
-
});
|
|
44
|
-
context.logger.error(`After-hook "${hookName}" failed`, {
|
|
45
|
-
error,
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
return { errors, hasErrors: errors.length > 0 };
|
|
50
|
-
}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
export type HookHandler = (...args: never[]) => unknown;
|
|
2
|
-
export declare class HookRegistry {
|
|
3
|
-
private registry;
|
|
4
|
-
private logger?;
|
|
5
|
-
registerConfigHooks(hookName: string, handlers: HookHandler[]): void;
|
|
6
|
-
append(hookName: string, handler: HookHandler): void;
|
|
7
|
-
prepend(hookName: string, handler: HookHandler): void;
|
|
8
|
-
resolve(hookName: string): HookHandler[];
|
|
9
|
-
/**
|
|
10
|
-
* Emit a plugin event to all registered listeners.
|
|
11
|
-
*
|
|
12
|
-
* Unlike the before/after hook pattern (which transforms data through
|
|
13
|
-
* a pipeline), emit is fire-and-forget notification. Errors in handlers
|
|
14
|
-
* are caught and logged but do not propagate to the emitter.
|
|
15
|
-
*
|
|
16
|
-
* Usage:
|
|
17
|
-
* kernel.hooks.emit("production.afterComplete", { orderId, quantity });
|
|
18
|
-
*
|
|
19
|
-
* Any plugin can listen:
|
|
20
|
-
* hooks: () => [{ key: "production.afterComplete", handler: async (payload) => { ... } }]
|
|
21
|
-
*/
|
|
22
|
-
setLogger(logger: {
|
|
23
|
-
error: (obj: Record<string, unknown>, msg: string) => void;
|
|
24
|
-
}): void;
|
|
25
|
-
emit(key: string, payload: unknown): Promise<void>;
|
|
26
|
-
private ensureEntry;
|
|
27
|
-
}
|
|
28
|
-
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/kernel/hooks/registry.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO,CAAC;AAQxD,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAgC;IAChD,OAAO,CAAC,MAAM,CAAC,CAAiE;IAEhF,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAI;IAKpE,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,IAAI;IAKpD,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,IAAI;IAKrD,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,EAAE;IAMxC;;;;;;;;;;;;OAYG;IACH,SAAS,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,GAAG,IAAI;IAIjF,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAcxD,OAAO,CAAC,WAAW;CASpB"}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
export class HookRegistry {
|
|
2
|
-
registry = new Map();
|
|
3
|
-
logger;
|
|
4
|
-
registerConfigHooks(hookName, handlers) {
|
|
5
|
-
this.ensureEntry(hookName);
|
|
6
|
-
this.registry.get(hookName).configured = [...handlers];
|
|
7
|
-
}
|
|
8
|
-
append(hookName, handler) {
|
|
9
|
-
this.ensureEntry(hookName);
|
|
10
|
-
this.registry.get(hookName).appended.push(handler);
|
|
11
|
-
}
|
|
12
|
-
prepend(hookName, handler) {
|
|
13
|
-
this.ensureEntry(hookName);
|
|
14
|
-
this.registry.get(hookName).prepended.push(handler);
|
|
15
|
-
}
|
|
16
|
-
resolve(hookName) {
|
|
17
|
-
const entry = this.registry.get(hookName);
|
|
18
|
-
if (!entry)
|
|
19
|
-
return [];
|
|
20
|
-
return [...entry.prepended, ...entry.configured, ...entry.appended];
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Emit a plugin event to all registered listeners.
|
|
24
|
-
*
|
|
25
|
-
* Unlike the before/after hook pattern (which transforms data through
|
|
26
|
-
* a pipeline), emit is fire-and-forget notification. Errors in handlers
|
|
27
|
-
* are caught and logged but do not propagate to the emitter.
|
|
28
|
-
*
|
|
29
|
-
* Usage:
|
|
30
|
-
* kernel.hooks.emit("production.afterComplete", { orderId, quantity });
|
|
31
|
-
*
|
|
32
|
-
* Any plugin can listen:
|
|
33
|
-
* hooks: () => [{ key: "production.afterComplete", handler: async (payload) => { ... } }]
|
|
34
|
-
*/
|
|
35
|
-
setLogger(logger) {
|
|
36
|
-
this.logger = logger;
|
|
37
|
-
}
|
|
38
|
-
async emit(key, payload) {
|
|
39
|
-
const handlers = this.resolve(key);
|
|
40
|
-
for (const handler of handlers) {
|
|
41
|
-
try {
|
|
42
|
-
await handler(payload);
|
|
43
|
-
}
|
|
44
|
-
catch (err) {
|
|
45
|
-
this.logger?.error({ err, hookKey: key }, `Event handler failed for "${key}"`);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
ensureEntry(hookName) {
|
|
50
|
-
if (!this.registry.has(hookName)) {
|
|
51
|
-
this.registry.set(hookName, {
|
|
52
|
-
prepended: [],
|
|
53
|
-
configured: [],
|
|
54
|
-
appended: [],
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import type { Actor } from "../../auth/types.js";
|
|
2
|
-
import type { JobsAdapter } from "../jobs/adapter.js";
|
|
3
|
-
import type { PluginDb } from "../database/plugin-types.js";
|
|
4
|
-
export type HookOperation = "create" | "update" | "delete" | "read" | "list" | "statusChange" | "addItem" | "removeItem" | "custom";
|
|
5
|
-
export interface Logger {
|
|
6
|
-
info(message: string, data?: unknown): void;
|
|
7
|
-
warn(message: string, data?: unknown): void;
|
|
8
|
-
error(message: string, data?: unknown): void;
|
|
9
|
-
}
|
|
10
|
-
export interface ServiceContainer {
|
|
11
|
-
[key: string]: unknown;
|
|
12
|
-
}
|
|
13
|
-
export type HookOrigin = "rest" | "local" | "mcp";
|
|
14
|
-
export interface HookContext {
|
|
15
|
-
actor: Actor | null;
|
|
16
|
-
tx: unknown;
|
|
17
|
-
logger: Logger;
|
|
18
|
-
services: ServiceContainer;
|
|
19
|
-
context: Record<string, unknown>;
|
|
20
|
-
requestId: string;
|
|
21
|
-
origin: HookOrigin;
|
|
22
|
-
jobs: JobsAdapter;
|
|
23
|
-
/** Drizzle database instance. Fully typed — use directly for queries in hook handlers. */
|
|
24
|
-
db: PluginDb;
|
|
25
|
-
}
|
|
26
|
-
export type BeforeHook<TData> = (args: {
|
|
27
|
-
data: TData;
|
|
28
|
-
operation: HookOperation;
|
|
29
|
-
context: HookContext;
|
|
30
|
-
}) => Promise<TData> | TData;
|
|
31
|
-
export type AfterHook<TData> = (args: {
|
|
32
|
-
data: TData | null;
|
|
33
|
-
result: TData;
|
|
34
|
-
operation: HookOperation;
|
|
35
|
-
context: HookContext;
|
|
36
|
-
}) => Promise<void> | void;
|
|
37
|
-
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/kernel/hooks/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAE5D,MAAM,MAAM,aAAa,GACrB,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,MAAM,GACN,MAAM,GACN,cAAc,GACd,SAAS,GACT,YAAY,GACZ,QAAQ,CAAC;AAEb,MAAM,WAAW,MAAM;IACrB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC5C,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC5C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CAC9C;AAED,MAAM,WAAW,gBAAgB;IAC/B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;AAElD,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,UAAU,CAAC;IACnB,IAAI,EAAE,WAAW,CAAC;IAClB,0FAA0F;IAC1F,EAAE,EAAE,QAAQ,CAAC;CACd;AAED,MAAM,MAAM,UAAU,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE;IACrC,IAAI,EAAE,KAAK,CAAC;IACZ,SAAS,EAAE,aAAa,CAAC;IACzB,OAAO,EAAE,WAAW,CAAC;CACtB,KAAK,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;AAE7B,MAAM,MAAM,SAAS,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE;IACpC,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC;IACnB,MAAM,EAAE,KAAK,CAAC;IACd,SAAS,EAAE,aAAa,CAAC;IACzB,OAAO,EAAE,WAAW,CAAC;CACtB,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Converts a PluginResultErr into a structured HTTP error response.
|
|
3
|
-
*
|
|
4
|
-
* Replaces the `throw new Error(result.error)` pattern in plugin routes
|
|
5
|
-
* which always produces HTTP 500 with no structured error code.
|
|
6
|
-
*
|
|
7
|
-
* Usage in routes:
|
|
8
|
-
* const result = await service.doSomething(orgId, input);
|
|
9
|
-
* if (!result.ok) return toHttpError(result);
|
|
10
|
-
* return result.value;
|
|
11
|
-
*
|
|
12
|
-
* The function infers HTTP status from the error code or message content:
|
|
13
|
-
* - "NOT_FOUND" or "not found" --> 404
|
|
14
|
-
* - "FORBIDDEN" or "permission" --> 403
|
|
15
|
-
* - "CONFLICT" or "already exists" --> 409
|
|
16
|
-
* - "VALIDATION" or "cannot/must" --> 422
|
|
17
|
-
* - Everything else --> 400
|
|
18
|
-
*/
|
|
19
|
-
import type { PluginResultErr } from "./result.js";
|
|
20
|
-
export interface HttpErrorResponse {
|
|
21
|
-
status: 400 | 403 | 404 | 409 | 422;
|
|
22
|
-
body: {
|
|
23
|
-
error: {
|
|
24
|
-
code: string;
|
|
25
|
-
message: string;
|
|
26
|
-
};
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
export declare function toHttpError(result: PluginResultErr): HttpErrorResponse;
|
|
30
|
-
//# sourceMappingURL=http-error.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"http-error.d.ts","sourceRoot":"","sources":["../../src/kernel/http-error.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IACpC,IAAI,EAAE;QAAE,KAAK,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;CACpD;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,eAAe,GAAG,iBAAiB,CAiBtE"}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Converts a PluginResultErr into a structured HTTP error response.
|
|
3
|
-
*
|
|
4
|
-
* Replaces the `throw new Error(result.error)` pattern in plugin routes
|
|
5
|
-
* which always produces HTTP 500 with no structured error code.
|
|
6
|
-
*
|
|
7
|
-
* Usage in routes:
|
|
8
|
-
* const result = await service.doSomething(orgId, input);
|
|
9
|
-
* if (!result.ok) return toHttpError(result);
|
|
10
|
-
* return result.value;
|
|
11
|
-
*
|
|
12
|
-
* The function infers HTTP status from the error code or message content:
|
|
13
|
-
* - "NOT_FOUND" or "not found" --> 404
|
|
14
|
-
* - "FORBIDDEN" or "permission" --> 403
|
|
15
|
-
* - "CONFLICT" or "already exists" --> 409
|
|
16
|
-
* - "VALIDATION" or "cannot/must" --> 422
|
|
17
|
-
* - Everything else --> 400
|
|
18
|
-
*/
|
|
19
|
-
export function toHttpError(result) {
|
|
20
|
-
const message = result.error;
|
|
21
|
-
const code = result.code;
|
|
22
|
-
if (code === "NOT_FOUND" || /not found/i.test(message)) {
|
|
23
|
-
return { status: 404, body: { error: { code: "NOT_FOUND", message } } };
|
|
24
|
-
}
|
|
25
|
-
if (code === "FORBIDDEN" || /permission|forbidden|unauthorized/i.test(message)) {
|
|
26
|
-
return { status: 403, body: { error: { code: "FORBIDDEN", message } } };
|
|
27
|
-
}
|
|
28
|
-
if (code === "CONFLICT" || /already|duplicate|exists|unique/i.test(message)) {
|
|
29
|
-
return { status: 409, body: { error: { code: "CONFLICT", message } } };
|
|
30
|
-
}
|
|
31
|
-
if (code === "VALIDATION" || /invalid|cannot|must|required|exceeded|negative/i.test(message)) {
|
|
32
|
-
return { status: 422, body: { error: { code: "VALIDATION_FAILED", message } } };
|
|
33
|
-
}
|
|
34
|
-
return { status: 400, body: { error: { code: code ?? "BAD_REQUEST", message } } };
|
|
35
|
-
}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Minimal interface for enqueueing background jobs.
|
|
3
|
-
* The full DrizzleJobsAdapter implements this; hooks receive
|
|
4
|
-
* it on HookContext.jobs so they can defer work without caring
|
|
5
|
-
* about the underlying storage.
|
|
6
|
-
*/
|
|
7
|
-
export interface JobsAdapter {
|
|
8
|
-
enqueue(taskSlug: string, input: Record<string, unknown>, options?: EnqueueOptions): Promise<string>;
|
|
9
|
-
}
|
|
10
|
-
export interface EnqueueOptions {
|
|
11
|
-
queue?: string;
|
|
12
|
-
maxAttempts?: number;
|
|
13
|
-
delayMs?: number;
|
|
14
|
-
concurrencyKey?: string;
|
|
15
|
-
supersedes?: boolean;
|
|
16
|
-
organizationId?: string;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* No-op adapter used when no jobs backend is configured.
|
|
20
|
-
* All enqueue calls silently succeed and return a placeholder ID.
|
|
21
|
-
*/
|
|
22
|
-
export declare class NullJobsAdapter implements JobsAdapter {
|
|
23
|
-
enqueue(_taskSlug: string, _input: Record<string, unknown>, _options?: EnqueueOptions): Promise<string>;
|
|
24
|
-
}
|
|
25
|
-
//# sourceMappingURL=adapter.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/kernel/jobs/adapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B,OAAO,CACL,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,MAAM,CAAC,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;GAGG;AACH,qBAAa,eAAgB,YAAW,WAAW;IAC3C,OAAO,CACX,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC,MAAM,CAAC;CAGnB"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import type { DrizzleDatabase } from "../database/drizzle-db.js";
|
|
2
|
-
import type { TaskDefinition } from "./types.js";
|
|
3
|
-
import type { JobsAdapter, EnqueueOptions } from "./adapter.js";
|
|
4
|
-
/**
|
|
5
|
-
* PostgreSQL-backed job queue adapter using the application's own database.
|
|
6
|
-
* Stores jobs in the `commerce_jobs` table. Supports concurrency keys
|
|
7
|
-
* and supersede semantics for deduplication.
|
|
8
|
-
*/
|
|
9
|
-
export declare class DrizzleJobsAdapter implements JobsAdapter {
|
|
10
|
-
private db;
|
|
11
|
-
private tasks;
|
|
12
|
-
constructor(db: DrizzleDatabase, tasks: Map<string, TaskDefinition>);
|
|
13
|
-
enqueue(taskSlug: string, input: Record<string, unknown>, options?: EnqueueOptions): Promise<string>;
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=drizzle-adapter.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"drizzle-adapter.d.ts","sourceRoot":"","sources":["../../../src/kernel/jobs/drizzle-adapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAIhE;;;;GAIG;AACH,qBAAa,kBAAmB,YAAW,WAAW;IAElD,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,KAAK;gBADL,EAAE,EAAE,eAAe,EACnB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC;IAGtC,OAAO,CACX,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,MAAM,CAAC;CAmCnB"}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { eq, and } from "drizzle-orm";
|
|
2
|
-
import { DEFAULT_ORG_ID } from "../../auth/org.js";
|
|
3
|
-
import { commerceJobs } from "./schema.js";
|
|
4
|
-
/**
|
|
5
|
-
* PostgreSQL-backed job queue adapter using the application's own database.
|
|
6
|
-
* Stores jobs in the `commerce_jobs` table. Supports concurrency keys
|
|
7
|
-
* and supersede semantics for deduplication.
|
|
8
|
-
*/
|
|
9
|
-
export class DrizzleJobsAdapter {
|
|
10
|
-
db;
|
|
11
|
-
tasks;
|
|
12
|
-
constructor(db, tasks) {
|
|
13
|
-
this.db = db;
|
|
14
|
-
this.tasks = tasks;
|
|
15
|
-
}
|
|
16
|
-
async enqueue(taskSlug, input, options) {
|
|
17
|
-
// If supersedes is set, delete existing pending jobs with the same concurrency key
|
|
18
|
-
if (options?.concurrencyKey && options.supersedes) {
|
|
19
|
-
await this.db
|
|
20
|
-
.delete(commerceJobs)
|
|
21
|
-
.where(and(eq(commerceJobs.concurrencyKey, options.concurrencyKey), eq(commerceJobs.status, "pending")));
|
|
22
|
-
}
|
|
23
|
-
// Look up task definition for default retry config
|
|
24
|
-
const task = this.tasks.get(taskSlug);
|
|
25
|
-
const maxAttempts = options?.maxAttempts ?? task?.retries?.attempts ?? 1;
|
|
26
|
-
const rows = await this.db
|
|
27
|
-
.insert(commerceJobs)
|
|
28
|
-
.values({
|
|
29
|
-
organizationId: options?.organizationId ?? DEFAULT_ORG_ID,
|
|
30
|
-
taskSlug,
|
|
31
|
-
input,
|
|
32
|
-
queue: options?.queue ?? "default",
|
|
33
|
-
maxAttempts,
|
|
34
|
-
waitUntil: options?.delayMs
|
|
35
|
-
? new Date(Date.now() + options.delayMs)
|
|
36
|
-
: null,
|
|
37
|
-
concurrencyKey: options?.concurrencyKey ?? null,
|
|
38
|
-
})
|
|
39
|
-
.returning({ id: commerceJobs.id });
|
|
40
|
-
return rows[0].id;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import type { DrizzleDatabase } from "../database/drizzle-db.js";
|
|
2
|
-
import type { Logger, ServiceContainer } from "../hooks/types.js";
|
|
3
|
-
import type { TaskDefinition } from "./types.js";
|
|
4
|
-
export interface RunPendingJobsArgs {
|
|
5
|
-
db: DrizzleDatabase;
|
|
6
|
-
tasks: Map<string, TaskDefinition>;
|
|
7
|
-
queue?: string;
|
|
8
|
-
limit?: number;
|
|
9
|
-
logger: Logger;
|
|
10
|
-
services: ServiceContainer;
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* Claims and processes pending jobs from the `commerce_jobs` table.
|
|
14
|
-
*
|
|
15
|
-
* Uses `FOR UPDATE SKIP LOCKED` to allow multiple runners to process
|
|
16
|
-
* jobs in parallel without conflicts. Each runner claims a batch,
|
|
17
|
-
* marks them as processing, then executes handlers outside the
|
|
18
|
-
* claim transaction.
|
|
19
|
-
*/
|
|
20
|
-
export declare function runPendingJobs(args: RunPendingJobsArgs): Promise<{
|
|
21
|
-
processed: number;
|
|
22
|
-
failed: number;
|
|
23
|
-
}>;
|
|
24
|
-
//# sourceMappingURL=runner.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../../src/kernel/jobs/runner.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAGjD,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,eAAe,CAAC;IACpB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,gBAAgB,CAAC;CAC5B;AAED;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,kBAAkB,GACvB,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CA+HhD"}
|