@open-mercato/cli 0.6.7-develop.6568.1.9f57ffc393 → 0.6.7-develop.6572.1.3d8e83062f
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 +53 -53
- 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/workflows.md +1 -1
- package/dist/lib/generators/index.js +7 -1
- package/dist/lib/generators/index.js.map +2 -2
- package/dist/lib/generators/module-registry.js +224 -266
- package/dist/lib/generators/module-registry.js.map +3 -3
- package/dist/lib/module-install.js +2 -6
- package/dist/lib/module-install.js.map +2 -2
- package/dist/mercato.js +6 -14
- package/dist/mercato.js.map +2 -2
- package/package.json +5 -5
- package/src/__tests__/mercato.test.ts +13 -27
- package/src/lib/generators/__tests__/generators.test.ts +5 -0
- package/src/lib/generators/__tests__/output-snapshots.test.ts +37 -1
- package/src/lib/generators/index.ts +7 -1
- package/src/lib/generators/module-registry.ts +291 -293
- package/src/lib/module-install.ts +2 -6
- package/src/mercato.ts +6 -14
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.6572.1.3d8e83062f",
|
|
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.6572.1.3d8e83062f",
|
|
64
|
+
"@open-mercato/shared": "0.6.7-develop.6572.1.3d8e83062f",
|
|
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.6572.1.3d8e83062f"
|
|
76
76
|
},
|
|
77
77
|
"devDependencies": {
|
|
78
|
-
"@open-mercato/shared": "0.6.7-develop.
|
|
78
|
+
"@open-mercato/shared": "0.6.7-develop.6572.1.3d8e83062f",
|
|
79
79
|
"@types/jest": "^30.0.0",
|
|
80
80
|
"jest": "^30.4.2",
|
|
81
81
|
"ts-jest": "^29.4.11"
|
|
@@ -352,9 +352,7 @@ describe('init command failure output', () => {
|
|
|
352
352
|
}))
|
|
353
353
|
jest.doMock('../lib/generators', () => ({
|
|
354
354
|
generateEntityIds: jest.fn().mockResolvedValue(undefined),
|
|
355
|
-
|
|
356
|
-
generateModuleRegistryApp: jest.fn().mockResolvedValue(undefined),
|
|
357
|
-
generateModuleRegistryCli: jest.fn().mockResolvedValue(undefined),
|
|
355
|
+
generateModuleRegistries: jest.fn().mockResolvedValue(undefined),
|
|
358
356
|
generateModuleEntities: jest.fn().mockResolvedValue(undefined),
|
|
359
357
|
generateModuleDi: jest.fn().mockResolvedValue(undefined),
|
|
360
358
|
generateModulePackageSources: jest.fn().mockResolvedValue(undefined),
|
|
@@ -400,9 +398,7 @@ describe('init command failure output', () => {
|
|
|
400
398
|
}))
|
|
401
399
|
jest.doMock('../lib/generators', () => ({
|
|
402
400
|
generateEntityIds: jest.fn().mockResolvedValue(undefined),
|
|
403
|
-
|
|
404
|
-
generateModuleRegistryApp: jest.fn().mockResolvedValue(undefined),
|
|
405
|
-
generateModuleRegistryCli: jest.fn().mockResolvedValue(undefined),
|
|
401
|
+
generateModuleRegistries: jest.fn().mockResolvedValue(undefined),
|
|
406
402
|
generateModuleEntities: jest.fn().mockResolvedValue(undefined),
|
|
407
403
|
generateModuleDi: jest.fn().mockResolvedValue(undefined),
|
|
408
404
|
generateModulePackageSources: jest.fn().mockResolvedValue(undefined),
|
|
@@ -451,9 +447,7 @@ describe('init command failure output', () => {
|
|
|
451
447
|
}))
|
|
452
448
|
jest.doMock('../lib/generators', () => ({
|
|
453
449
|
generateEntityIds: jest.fn().mockResolvedValue(undefined),
|
|
454
|
-
|
|
455
|
-
generateModuleRegistryApp: jest.fn().mockResolvedValue(undefined),
|
|
456
|
-
generateModuleRegistryCli: jest.fn().mockResolvedValue(undefined),
|
|
450
|
+
generateModuleRegistries: jest.fn().mockResolvedValue(undefined),
|
|
457
451
|
generateModuleEntities: jest.fn().mockResolvedValue(undefined),
|
|
458
452
|
generateModuleDi: jest.fn().mockResolvedValue(undefined),
|
|
459
453
|
generateModulePackageSources: jest.fn().mockResolvedValue(undefined),
|
|
@@ -553,9 +547,7 @@ describe('generate post-step structural invalidation', () => {
|
|
|
553
547
|
filesUnchanged: [],
|
|
554
548
|
errors: [],
|
|
555
549
|
})
|
|
556
|
-
const
|
|
557
|
-
const generateModuleRegistryApp = jest.fn().mockResolvedValue(undefined)
|
|
558
|
-
const generateModuleRegistryCli = jest.fn().mockResolvedValue(undefined)
|
|
550
|
+
const generateModuleRegistries = jest.fn().mockResolvedValue([])
|
|
559
551
|
const generateModuleEntities = jest.fn().mockResolvedValue(undefined)
|
|
560
552
|
const generateModuleDi = jest.fn().mockResolvedValue(undefined)
|
|
561
553
|
const generateModulePackageSources = jest.fn().mockResolvedValue(undefined)
|
|
@@ -569,9 +561,7 @@ describe('generate post-step structural invalidation', () => {
|
|
|
569
561
|
|
|
570
562
|
jest.doMock('../lib/generators', () => ({
|
|
571
563
|
generateEntityIds,
|
|
572
|
-
|
|
573
|
-
generateModuleRegistryApp,
|
|
574
|
-
generateModuleRegistryCli,
|
|
564
|
+
generateModuleRegistries,
|
|
575
565
|
generateModuleEntities,
|
|
576
566
|
generateModuleDi,
|
|
577
567
|
generateModulePackageSources,
|
|
@@ -595,6 +585,7 @@ describe('generate post-step structural invalidation', () => {
|
|
|
595
585
|
|
|
596
586
|
expect(exitCode).toBe(0)
|
|
597
587
|
expect(generateEntityIds).toHaveBeenCalled()
|
|
588
|
+
expect(generateModuleRegistries).toHaveBeenCalledTimes(1)
|
|
598
589
|
expect(invalidate).toHaveBeenCalledWith('/tmp/test-app')
|
|
599
590
|
|
|
600
591
|
consoleErrorSpy.mockRestore()
|
|
@@ -611,9 +602,7 @@ describe('generate post-step structural invalidation', () => {
|
|
|
611
602
|
}
|
|
612
603
|
const generators = {
|
|
613
604
|
generateEntityIds: jest.fn().mockResolvedValue(unchangedResult),
|
|
614
|
-
|
|
615
|
-
generateModuleRegistryApp: jest.fn().mockResolvedValue(unchangedResult),
|
|
616
|
-
generateModuleRegistryCli: jest.fn().mockResolvedValue(unchangedResult),
|
|
605
|
+
generateModuleRegistries: jest.fn().mockResolvedValue([unchangedResult, unchangedResult, unchangedResult]),
|
|
617
606
|
generateModuleEntities: jest.fn().mockResolvedValue(unchangedResult),
|
|
618
607
|
generateModuleDi: jest.fn().mockResolvedValue(unchangedResult),
|
|
619
608
|
generateModulePackageSources: jest.fn().mockResolvedValue(unchangedResult),
|
|
@@ -653,9 +642,7 @@ describe('generate post-step structural invalidation', () => {
|
|
|
653
642
|
filesUnchanged: [],
|
|
654
643
|
errors: [],
|
|
655
644
|
})
|
|
656
|
-
const
|
|
657
|
-
const generateModuleRegistryApp = jest.fn().mockResolvedValue(undefined)
|
|
658
|
-
const generateModuleRegistryCli = jest.fn().mockResolvedValue(undefined)
|
|
645
|
+
const generateModuleRegistries = jest.fn().mockResolvedValue([])
|
|
659
646
|
const generateModuleEntities = jest.fn().mockResolvedValue(undefined)
|
|
660
647
|
const generateModuleDi = jest.fn().mockResolvedValue(undefined)
|
|
661
648
|
const generateModulePackageSources = jest.fn().mockResolvedValue(undefined)
|
|
@@ -664,9 +651,7 @@ describe('generate post-step structural invalidation', () => {
|
|
|
664
651
|
|
|
665
652
|
jest.doMock('../lib/generators', () => ({
|
|
666
653
|
generateEntityIds,
|
|
667
|
-
|
|
668
|
-
generateModuleRegistryApp,
|
|
669
|
-
generateModuleRegistryCli,
|
|
654
|
+
generateModuleRegistries,
|
|
670
655
|
generateModuleEntities,
|
|
671
656
|
generateModuleDi,
|
|
672
657
|
generateModulePackageSources,
|
|
@@ -687,6 +672,7 @@ describe('generate post-step structural invalidation', () => {
|
|
|
687
672
|
|
|
688
673
|
expect(exitCode).toBe(0)
|
|
689
674
|
expect(generateEntityIds).toHaveBeenCalled()
|
|
675
|
+
expect(generateModuleRegistries).toHaveBeenCalledTimes(1)
|
|
690
676
|
expect(invalidate).toHaveBeenCalledWith('/tmp/test-app')
|
|
691
677
|
|
|
692
678
|
consoleErrorSpy.mockRestore()
|
|
@@ -697,12 +683,11 @@ describe('generate post-step structural invalidation', () => {
|
|
|
697
683
|
const consoleErrorSpy = jest.spyOn(console, 'error').mockImplementation()
|
|
698
684
|
const consoleLogSpy = jest.spyOn(console, 'log').mockImplementation()
|
|
699
685
|
const generate = jest.fn().mockResolvedValue(undefined)
|
|
686
|
+
const generateModuleRegistries = jest.fn().mockResolvedValue([])
|
|
700
687
|
|
|
701
688
|
jest.doMock('../lib/generators', () => ({
|
|
702
689
|
generateEntityIds: generate,
|
|
703
|
-
|
|
704
|
-
generateModuleRegistryApp: generate,
|
|
705
|
-
generateModuleRegistryCli: generate,
|
|
690
|
+
generateModuleRegistries,
|
|
706
691
|
generateModuleEntities: generate,
|
|
707
692
|
generateModuleDi: generate,
|
|
708
693
|
generateModulePackageSources: generate,
|
|
@@ -723,6 +708,7 @@ describe('generate post-step structural invalidation', () => {
|
|
|
723
708
|
|
|
724
709
|
expect(exitCode).toBe(0)
|
|
725
710
|
expect(generate).toHaveBeenCalled()
|
|
711
|
+
expect(generateModuleRegistries).toHaveBeenCalledTimes(1)
|
|
726
712
|
|
|
727
713
|
consoleErrorSpy.mockRestore()
|
|
728
714
|
consoleLogSpy.mockRestore()
|
|
@@ -19,6 +19,11 @@ describe('generators', () => {
|
|
|
19
19
|
expect(typeof module.generateModuleRegistryApp).toBe('function')
|
|
20
20
|
})
|
|
21
21
|
|
|
22
|
+
it('should export generateModuleRegistries', async () => {
|
|
23
|
+
const module = await import('../module-registry')
|
|
24
|
+
expect(typeof module.generateModuleRegistries).toBe('function')
|
|
25
|
+
})
|
|
26
|
+
|
|
22
27
|
it('should export generateModuleEntities', async () => {
|
|
23
28
|
const module = await import('../module-entities')
|
|
24
29
|
expect(typeof module.generateModuleEntities).toBe('function')
|
|
@@ -13,7 +13,12 @@ import fs from 'node:fs'
|
|
|
13
13
|
import path from 'node:path'
|
|
14
14
|
import os from 'node:os'
|
|
15
15
|
import type { PackageResolver, ModuleEntry } from '../../resolver'
|
|
16
|
-
import {
|
|
16
|
+
import {
|
|
17
|
+
generateModuleRegistries,
|
|
18
|
+
generateModuleRegistry,
|
|
19
|
+
generateModuleRegistryApp,
|
|
20
|
+
generateModuleRegistryCli,
|
|
21
|
+
} from '../module-registry'
|
|
17
22
|
import { generateModuleDi } from '../module-di'
|
|
18
23
|
import { generateModuleEntities } from '../module-entities'
|
|
19
24
|
import { generateEntityIds } from '../entity-ids'
|
|
@@ -751,6 +756,37 @@ describe('generator output compatibility', () => {
|
|
|
751
756
|
expect(secondRun).toEqual(firstRun)
|
|
752
757
|
})
|
|
753
758
|
|
|
759
|
+
it('shares one discovery snapshot across all registry renderers without changing output', async () => {
|
|
760
|
+
const enabled = scaffoldFixture()
|
|
761
|
+
const baselineResolver = createMockResolver(enabled)
|
|
762
|
+
|
|
763
|
+
await generateModuleRegistry({ resolver: baselineResolver, quiet: true })
|
|
764
|
+
await generateModuleRegistryApp({ resolver: baselineResolver, quiet: true })
|
|
765
|
+
await generateModuleRegistryCli({ resolver: baselineResolver, quiet: true })
|
|
766
|
+
const baseline = captureGeneratedFiles()
|
|
767
|
+
|
|
768
|
+
fs.rmSync(outputDir, { recursive: true, force: true })
|
|
769
|
+
fs.mkdirSync(outputDir, { recursive: true })
|
|
770
|
+
|
|
771
|
+
const delegate = createMockResolver(enabled)
|
|
772
|
+
const loadEnabledModules = jest.fn(delegate.loadEnabledModules)
|
|
773
|
+
const getModulePaths = jest.fn(delegate.getModulePaths)
|
|
774
|
+
const getModuleImportBase = jest.fn(delegate.getModuleImportBase)
|
|
775
|
+
const resolver: PackageResolver = {
|
|
776
|
+
...delegate,
|
|
777
|
+
loadEnabledModules,
|
|
778
|
+
getModulePaths,
|
|
779
|
+
getModuleImportBase,
|
|
780
|
+
}
|
|
781
|
+
|
|
782
|
+
await generateModuleRegistries({ resolver, quiet: true })
|
|
783
|
+
|
|
784
|
+
expect(captureGeneratedFiles()).toEqual(baseline)
|
|
785
|
+
expect(loadEnabledModules).toHaveBeenCalledTimes(1)
|
|
786
|
+
expect(getModulePaths).toHaveBeenCalledTimes(enabled.length)
|
|
787
|
+
expect(getModuleImportBase).toHaveBeenCalledTimes(enabled.length)
|
|
788
|
+
})
|
|
789
|
+
|
|
754
790
|
it('includes app-level workers with variable-referenced queue names in generated output', async () => {
|
|
755
791
|
const enabled = scaffoldFixture()
|
|
756
792
|
const resolver = createMockResolver(enabled)
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
export { generateEntityIds, type EntityIdsOptions } from './entity-ids'
|
|
2
|
-
export {
|
|
2
|
+
export {
|
|
3
|
+
generateModuleRegistry,
|
|
4
|
+
generateModuleRegistryApp,
|
|
5
|
+
generateModuleRegistryCli,
|
|
6
|
+
generateModuleRegistries,
|
|
7
|
+
type ModuleRegistryOptions,
|
|
8
|
+
} from './module-registry'
|
|
3
9
|
export { generateModuleEntities, type ModuleEntitiesOptions } from './module-entities'
|
|
4
10
|
export { generateModuleDi, type ModuleDiOptions } from './module-di'
|
|
5
11
|
export { generateModulePackageSources, type ModulePackageSourcesOptions } from './module-package-sources'
|