@open-mercato/cli 0.6.7-develop.6744.1.0483b18565 → 0.6.7-develop.6749.1.6b54c56dfe
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/agentic/guides/module-facts.json +108 -108
- package/dist/agentic/guides/modules/ai_assistant.md +1 -1
- package/dist/agentic/guides/modules/api_docs.md +1 -1
- package/dist/agentic/guides/modules/api_keys.md +1 -1
- package/dist/agentic/guides/modules/attachments.md +1 -1
- package/dist/agentic/guides/modules/audit_logs.md +1 -1
- package/dist/agentic/guides/modules/auth.md +1 -1
- package/dist/agentic/guides/modules/business_rules.md +1 -1
- package/dist/agentic/guides/modules/catalog.md +1 -1
- package/dist/agentic/guides/modules/channel_gmail.md +1 -1
- package/dist/agentic/guides/modules/channel_imap.md +1 -1
- package/dist/agentic/guides/modules/checkout.md +1 -1
- package/dist/agentic/guides/modules/communication_channels.md +1 -1
- package/dist/agentic/guides/modules/configs.md +1 -1
- package/dist/agentic/guides/modules/content.md +1 -1
- package/dist/agentic/guides/modules/currencies.md +1 -1
- package/dist/agentic/guides/modules/customer_accounts.md +1 -1
- package/dist/agentic/guides/modules/customers.md +1 -1
- package/dist/agentic/guides/modules/dashboards.md +1 -1
- package/dist/agentic/guides/modules/data_sync.md +1 -1
- package/dist/agentic/guides/modules/dictionaries.md +1 -1
- package/dist/agentic/guides/modules/directory.md +1 -1
- package/dist/agentic/guides/modules/entities.md +1 -1
- package/dist/agentic/guides/modules/events.md +1 -1
- package/dist/agentic/guides/modules/feature_toggles.md +1 -1
- package/dist/agentic/guides/modules/gateway_stripe.md +1 -1
- package/dist/agentic/guides/modules/generators.md +1 -1
- package/dist/agentic/guides/modules/inbox_ops.md +1 -1
- package/dist/agentic/guides/modules/integrations.md +1 -1
- package/dist/agentic/guides/modules/messages.md +1 -1
- package/dist/agentic/guides/modules/notifications.md +1 -1
- package/dist/agentic/guides/modules/onboarding.md +1 -1
- package/dist/agentic/guides/modules/payment_gateways.md +1 -1
- package/dist/agentic/guides/modules/perspectives.md +1 -1
- package/dist/agentic/guides/modules/planner.md +1 -1
- package/dist/agentic/guides/modules/portal.md +1 -1
- package/dist/agentic/guides/modules/progress.md +1 -1
- package/dist/agentic/guides/modules/query_index.md +1 -1
- package/dist/agentic/guides/modules/record_locks.md +1 -1
- package/dist/agentic/guides/modules/resources.md +1 -1
- package/dist/agentic/guides/modules/sales.md +1 -1
- package/dist/agentic/guides/modules/scheduler.md +1 -1
- package/dist/agentic/guides/modules/search.md +1 -1
- package/dist/agentic/guides/modules/security.md +1 -1
- package/dist/agentic/guides/modules/shipping_carriers.md +1 -1
- package/dist/agentic/guides/modules/sso.md +1 -1
- package/dist/agentic/guides/modules/staff.md +1 -1
- package/dist/agentic/guides/modules/storage_s3.md +1 -1
- package/dist/agentic/guides/modules/sync_akeneo.md +1 -1
- package/dist/agentic/guides/modules/sync_excel.md +1 -1
- package/dist/agentic/guides/modules/system_status_overlays.md +1 -1
- package/dist/agentic/guides/modules/translations.md +1 -1
- package/dist/agentic/guides/modules/webhooks.md +1 -1
- package/dist/agentic/guides/modules/wms.md +1 -1
- package/dist/agentic/guides/modules/workflows.md +1 -1
- package/dist/agentic/guides/upstream/manifest.json +1 -1
- package/dist/lib/generators/module-registry.js +5 -1
- package/dist/lib/generators/module-registry.js.map +2 -2
- package/dist/mercato.js +8 -0
- package/dist/mercato.js.map +2 -2
- package/package.json +5 -5
- package/src/lib/generators/module-registry.ts +7 -1
- 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.
|
|
3
|
+
"version": "0.6.7-develop.6749.1.6b54c56dfe",
|
|
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.
|
|
64
|
-
"@open-mercato/shared": "0.6.7-develop.
|
|
63
|
+
"@open-mercato/queue": "0.6.7-develop.6749.1.6b54c56dfe",
|
|
64
|
+
"@open-mercato/shared": "0.6.7-develop.6749.1.6b54c56dfe",
|
|
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.
|
|
75
|
+
"@open-mercato/shared": "0.6.7-develop.6749.1.6b54c56dfe"
|
|
76
76
|
},
|
|
77
77
|
"devDependencies": {
|
|
78
|
-
"@open-mercato/shared": "0.6.7-develop.
|
|
78
|
+
"@open-mercato/shared": "0.6.7-develop.6749.1.6b54c56dfe",
|
|
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 {
|