@open-mercato/cli 0.6.7-develop.6744.1.0483b18565 → 0.6.7-develop.6750.1.14497517d0

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.
Files changed (63) hide show
  1. package/dist/agentic/guides/module-facts.json +108 -108
  2. package/dist/agentic/guides/modules/ai_assistant.md +1 -1
  3. package/dist/agentic/guides/modules/api_docs.md +1 -1
  4. package/dist/agentic/guides/modules/api_keys.md +1 -1
  5. package/dist/agentic/guides/modules/attachments.md +1 -1
  6. package/dist/agentic/guides/modules/audit_logs.md +1 -1
  7. package/dist/agentic/guides/modules/auth.md +1 -1
  8. package/dist/agentic/guides/modules/business_rules.md +1 -1
  9. package/dist/agentic/guides/modules/catalog.md +1 -1
  10. package/dist/agentic/guides/modules/channel_gmail.md +1 -1
  11. package/dist/agentic/guides/modules/channel_imap.md +1 -1
  12. package/dist/agentic/guides/modules/checkout.md +1 -1
  13. package/dist/agentic/guides/modules/communication_channels.md +1 -1
  14. package/dist/agentic/guides/modules/configs.md +1 -1
  15. package/dist/agentic/guides/modules/content.md +1 -1
  16. package/dist/agentic/guides/modules/currencies.md +1 -1
  17. package/dist/agentic/guides/modules/customer_accounts.md +1 -1
  18. package/dist/agentic/guides/modules/customers.md +1 -1
  19. package/dist/agentic/guides/modules/dashboards.md +1 -1
  20. package/dist/agentic/guides/modules/data_sync.md +1 -1
  21. package/dist/agentic/guides/modules/dictionaries.md +1 -1
  22. package/dist/agentic/guides/modules/directory.md +1 -1
  23. package/dist/agentic/guides/modules/entities.md +1 -1
  24. package/dist/agentic/guides/modules/events.md +1 -1
  25. package/dist/agentic/guides/modules/feature_toggles.md +1 -1
  26. package/dist/agentic/guides/modules/gateway_stripe.md +1 -1
  27. package/dist/agentic/guides/modules/generators.md +1 -1
  28. package/dist/agentic/guides/modules/inbox_ops.md +1 -1
  29. package/dist/agentic/guides/modules/integrations.md +1 -1
  30. package/dist/agentic/guides/modules/messages.md +1 -1
  31. package/dist/agentic/guides/modules/notifications.md +1 -1
  32. package/dist/agentic/guides/modules/onboarding.md +1 -1
  33. package/dist/agentic/guides/modules/payment_gateways.md +1 -1
  34. package/dist/agentic/guides/modules/perspectives.md +1 -1
  35. package/dist/agentic/guides/modules/planner.md +1 -1
  36. package/dist/agentic/guides/modules/portal.md +1 -1
  37. package/dist/agentic/guides/modules/progress.md +1 -1
  38. package/dist/agentic/guides/modules/query_index.md +1 -1
  39. package/dist/agentic/guides/modules/record_locks.md +1 -1
  40. package/dist/agentic/guides/modules/resources.md +1 -1
  41. package/dist/agentic/guides/modules/sales.md +1 -1
  42. package/dist/agentic/guides/modules/scheduler.md +1 -1
  43. package/dist/agentic/guides/modules/search.md +1 -1
  44. package/dist/agentic/guides/modules/security.md +1 -1
  45. package/dist/agentic/guides/modules/shipping_carriers.md +1 -1
  46. package/dist/agentic/guides/modules/sso.md +1 -1
  47. package/dist/agentic/guides/modules/staff.md +1 -1
  48. package/dist/agentic/guides/modules/storage_s3.md +1 -1
  49. package/dist/agentic/guides/modules/sync_akeneo.md +1 -1
  50. package/dist/agentic/guides/modules/sync_excel.md +1 -1
  51. package/dist/agentic/guides/modules/system_status_overlays.md +1 -1
  52. package/dist/agentic/guides/modules/translations.md +1 -1
  53. package/dist/agentic/guides/modules/webhooks.md +1 -1
  54. package/dist/agentic/guides/modules/wms.md +1 -1
  55. package/dist/agentic/guides/modules/workflows.md +1 -1
  56. package/dist/agentic/guides/upstream/manifest.json +1 -1
  57. package/dist/lib/generators/module-registry.js +5 -1
  58. package/dist/lib/generators/module-registry.js.map +2 -2
  59. package/dist/mercato.js +8 -0
  60. package/dist/mercato.js.map +2 -2
  61. package/package.json +5 -5
  62. package/src/lib/generators/module-registry.ts +7 -1
  63. package/src/mercato.ts +8 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@open-mercato/cli",
3
- "version": "0.6.7-develop.6744.1.0483b18565",
3
+ "version": "0.6.7-develop.6750.1.14497517d0",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -60,8 +60,8 @@
60
60
  "@mikro-orm/decorators": "^7.1.5",
61
61
  "@mikro-orm/migrations": "^7.1.5",
62
62
  "@mikro-orm/postgresql": "^7.1.5",
63
- "@open-mercato/queue": "0.6.7-develop.6744.1.0483b18565",
64
- "@open-mercato/shared": "0.6.7-develop.6744.1.0483b18565",
63
+ "@open-mercato/queue": "0.6.7-develop.6750.1.14497517d0",
64
+ "@open-mercato/shared": "0.6.7-develop.6750.1.14497517d0",
65
65
  "cross-spawn": "^7.0.6",
66
66
  "pg": "8.22.0",
67
67
  "semver": "^7.8.5",
@@ -72,10 +72,10 @@
72
72
  "typescript-js": "npm:typescript@6.0.3"
73
73
  },
74
74
  "peerDependencies": {
75
- "@open-mercato/shared": "0.6.7-develop.6744.1.0483b18565"
75
+ "@open-mercato/shared": "0.6.7-develop.6750.1.14497517d0"
76
76
  },
77
77
  "devDependencies": {
78
- "@open-mercato/shared": "0.6.7-develop.6744.1.0483b18565",
78
+ "@open-mercato/shared": "0.6.7-develop.6750.1.14497517d0",
79
79
  "@types/jest": "^30.0.0",
80
80
  "jest": "^30.4.2",
81
81
  "ts-jest": "^29.4.11"
@@ -224,6 +224,8 @@ type SerializableWorkerMetadata = {
224
224
  id?: string
225
225
  queue?: string
226
226
  concurrency?: number
227
+ lockDuration?: number
228
+ maxStalledCount?: number
227
229
  }
228
230
 
229
231
  type PageMetadataManifestLoadResult = {
@@ -1553,6 +1555,8 @@ function normalizeWorkerMetadata(raw: unknown): SerializableWorkerMetadata | nul
1553
1555
  if (typeof source.id === 'string' && source.id.length > 0) normalized.id = source.id
1554
1556
  if (typeof source.queue === 'string' && source.queue.length > 0) normalized.queue = source.queue
1555
1557
  if (typeof source.concurrency === 'number') normalized.concurrency = source.concurrency
1558
+ if (typeof source.lockDuration === 'number') normalized.lockDuration = source.lockDuration
1559
+ if (typeof source.maxStalledCount === 'number') normalized.maxStalledCount = source.maxStalledCount
1556
1560
  return Object.keys(normalized).length > 0 ? normalized : null
1557
1561
  }
1558
1562
 
@@ -2055,7 +2059,7 @@ function processWorkers(discovered: DiscoveredWorker[]): string[] {
2055
2059
  for (const { id, importPath, metadata } of discovered) {
2056
2060
  const workerId = metadata.id ?? id
2057
2061
  workers.push(
2058
- `{ id: ${toLiteral(workerId)}, queue: ${toLiteral(metadata.queue)}, concurrency: ${toLiteral(metadata.concurrency ?? 1)}, handler: createLazyModuleWorker(() => ${buildDynamicImportExpression(importPath)}, ${toLiteral(workerId)}) }`
2062
+ `{ id: ${toLiteral(workerId)}, queue: ${toLiteral(metadata.queue)}, concurrency: ${toLiteral(metadata.concurrency ?? 1)}${metadata.lockDuration === undefined ? '' : `, lockDuration: ${toLiteral(metadata.lockDuration)}`}${metadata.maxStalledCount === undefined ? '' : `, maxStalledCount: ${toLiteral(metadata.maxStalledCount)}`}, handler: createLazyModuleWorker(() => ${buildDynamicImportExpression(importPath)}, ${toLiteral(workerId)}) }`
2059
2063
  )
2060
2064
  }
2061
2065
  return workers
@@ -2730,6 +2734,8 @@ function processWorkersAst(discovered: DiscoveredWorker[]): WriterFunction[] {
2730
2734
  { name: 'id', value: workerId },
2731
2735
  { name: 'queue', value: metadata.queue },
2732
2736
  { name: 'concurrency', value: metadata.concurrency ?? 1 },
2737
+ ...(metadata.lockDuration === undefined ? [] : [{ name: 'lockDuration', value: metadata.lockDuration }]),
2738
+ ...(metadata.maxStalledCount === undefined ? [] : [{ name: 'maxStalledCount', value: metadata.maxStalledCount }]),
2733
2739
  {
2734
2740
  name: 'handler',
2735
2741
  value: callExpression(identifier('createLazyModuleWorker'), [
package/src/mercato.ts CHANGED
@@ -1654,6 +1654,8 @@ export async function run(argv = process.argv) {
1654
1654
  effectiveByQueue.get(queue) ??
1655
1655
  concurrencyOverride ??
1656
1656
  Math.max(...queueWorkers.map((w) => w.concurrency), 1)
1657
+ const maxStalledCount = Math.max(...queueWorkers.map((w) => w.maxStalledCount ?? 1), 1)
1658
+ const lockDuration = Math.max(...queueWorkers.map((w) => w.lockDuration ?? 0), 0) || undefined
1657
1659
 
1658
1660
  console.log(`[worker] Starting "${queue}" with ${queueWorkers.length} handler(s), concurrency: ${concurrency}`)
1659
1661
 
@@ -1662,6 +1664,8 @@ export async function run(argv = process.argv) {
1662
1664
  queueName: queue,
1663
1665
  connection: queueRedisUrl ? { url: queueRedisUrl } : undefined,
1664
1666
  concurrency,
1667
+ lockDuration,
1668
+ maxStalledCount,
1665
1669
  background: true,
1666
1670
  handler: createPerJobWorkerHandler(queueWorkers, createRequestContainer),
1667
1671
  })
@@ -1705,6 +1709,8 @@ export async function run(argv = process.argv) {
1705
1709
  // never check out more pooled connections than the worker pool holds.
1706
1710
  const budgetPlan = await resolveWorkerBudgetPlan([{ queue: queueName!, concurrency: requested }])
1707
1711
  const concurrency = budgetPlan.entries[0]?.effective ?? requested
1712
+ const maxStalledCount = Math.max(...queueWorkers.map((w) => w.maxStalledCount ?? 1), 1)
1713
+ const lockDuration = Math.max(...queueWorkers.map((w) => w.lockDuration ?? 0), 0) || undefined
1708
1714
 
1709
1715
  console.log(`[worker] Found ${queueWorkers.length} worker(s) for queue "${queueName}"`)
1710
1716
 
@@ -1713,6 +1719,8 @@ export async function run(argv = process.argv) {
1713
1719
  queueName: queueName!,
1714
1720
  connection: queueRedisUrl ? { url: queueRedisUrl } : undefined,
1715
1721
  concurrency,
1722
+ lockDuration,
1723
+ maxStalledCount,
1716
1724
  handler: createPerJobWorkerHandler(queueWorkers, createRequestContainer),
1717
1725
  })
1718
1726
  } else {