@open-mercato/cli 0.4.11-develop.1925.0436f3b988 → 0.4.11-develop.1926.e34f3af1bf
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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@open-mercato/cli",
|
|
3
|
-
"version": "0.4.11-develop.
|
|
3
|
+
"version": "0.4.11-develop.1926.e34f3af1bf",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"exports": {
|
|
@@ -58,7 +58,7 @@
|
|
|
58
58
|
"@mikro-orm/core": "^6.6.10",
|
|
59
59
|
"@mikro-orm/migrations": "^6.6.10",
|
|
60
60
|
"@mikro-orm/postgresql": "^6.6.10",
|
|
61
|
-
"@open-mercato/shared": "0.4.11-develop.
|
|
61
|
+
"@open-mercato/shared": "0.4.11-develop.1926.e34f3af1bf",
|
|
62
62
|
"pg": "8.20.0",
|
|
63
63
|
"semver": "^7.7.3",
|
|
64
64
|
"testcontainers": "^11.12.0",
|
|
@@ -67,10 +67,10 @@
|
|
|
67
67
|
"typescript": "^5.9.3"
|
|
68
68
|
},
|
|
69
69
|
"peerDependencies": {
|
|
70
|
-
"@open-mercato/shared": "0.4.11-develop.
|
|
70
|
+
"@open-mercato/shared": "0.4.11-develop.1926.e34f3af1bf"
|
|
71
71
|
},
|
|
72
72
|
"devDependencies": {
|
|
73
|
-
"@open-mercato/shared": "0.4.11-develop.
|
|
73
|
+
"@open-mercato/shared": "0.4.11-develop.1926.e34f3af1bf",
|
|
74
74
|
"@types/jest": "^30.0.0",
|
|
75
75
|
"jest": "^30.2.0",
|
|
76
76
|
"ts-jest": "^29.4.6"
|
|
@@ -198,6 +198,7 @@ function scaffoldFixture(): ModuleEntry[] {
|
|
|
198
198
|
touchFile(pkgModulePath('orders', 'commands', 'interceptors.ts'), `export const interceptors = [\n { id: 'orders.audit-log', commandId: 'orders.create', phase: 'after', async handler(command: any) { return { ok: true } } },\n]\n`)
|
|
199
199
|
touchFile(pkgModulePath('orders', 'acl.ts'), "export const features = ['orders.view', 'orders.create', 'orders.edit', 'orders.delete']\n")
|
|
200
200
|
touchFile(pkgModulePath('orders', 'setup.ts'), "export const setup = { defaultRoleFeatures: ['orders.view'] }\n")
|
|
201
|
+
touchFile(pkgModulePath('orders', 'encryption.ts'), "export const defaultEncryptionMaps = [{ entityId: 'orders:sales_order', fields: [{ field: 'customer_email', hashField: 'customer_email_hash' }] }]\nexport default defaultEncryptionMaps\n")
|
|
201
202
|
touchFile(pkgModulePath('orders', 'di.ts'), 'export function register(container: any) {}\n')
|
|
202
203
|
touchFile(pkgModulePath('orders', 'i18n', 'en.json'), JSON.stringify({ orders: { list: { title: 'Orders' } } }))
|
|
203
204
|
touchFile(pkgModulePath('orders', 'i18n', 'pl.json'), JSON.stringify({ orders: { list: { title: 'Zamówienia' } } }))
|
|
@@ -497,6 +498,11 @@ describe('modules.generated.ts', () => {
|
|
|
497
498
|
expect(content).toContain('setup:')
|
|
498
499
|
})
|
|
499
500
|
|
|
501
|
+
it('modules include default encryption maps from encryption.ts', () => {
|
|
502
|
+
expect(content).toContain('defaultEncryptionMaps:')
|
|
503
|
+
expect(content).toContain('ENCRYPTION_orders_')
|
|
504
|
+
})
|
|
505
|
+
|
|
500
506
|
it('modules include translation locale keys', () => {
|
|
501
507
|
expect(content).toContain("'en':")
|
|
502
508
|
expect(content).toContain("'pl':")
|
|
@@ -1984,6 +1984,7 @@ export async function generateModuleRegistry(options: ModuleRegistryOptions): Pr
|
|
|
1984
1984
|
let customFieldSetsExpr: string = '[]'
|
|
1985
1985
|
const dashboardWidgets: string[] = []
|
|
1986
1986
|
let setupImportName: string | null = null
|
|
1987
|
+
let encryptionImportName: string | null = null
|
|
1987
1988
|
let integrationImportName: string | null = null
|
|
1988
1989
|
|
|
1989
1990
|
// === Processing order MUST match original import ID sequence ===
|
|
@@ -2099,6 +2100,12 @@ export async function generateModuleRegistry(options: ModuleRegistryOptions): Pr
|
|
|
2099
2100
|
if (setup) setupImportName = setup.importName
|
|
2100
2101
|
}
|
|
2101
2102
|
|
|
2103
|
+
// 11a. Encryption defaults: encryption.ts
|
|
2104
|
+
{
|
|
2105
|
+
const encryption = resolveConventionFile(roots, imps, 'encryption.ts', 'ENCRYPTION', modId, importIdRef, imports, runtimeImports)
|
|
2106
|
+
if (encryption) encryptionImportName = encryption.importName
|
|
2107
|
+
}
|
|
2108
|
+
|
|
2102
2109
|
// 11b. Integration manifest: integration.ts
|
|
2103
2110
|
{
|
|
2104
2111
|
const resolved = resolveModuleFile(roots, imps, 'integration.ts')
|
|
@@ -2235,6 +2242,7 @@ export async function generateModuleRegistry(options: ModuleRegistryOptions): Pr
|
|
|
2235
2242
|
${customEntitiesImportName ? `customEntities: ((${customEntitiesImportName}.default ?? ${customEntitiesImportName}.entities) as any) || [],` : ''}
|
|
2236
2243
|
${dashboardWidgets.length ? `dashboardWidgets: [${dashboardWidgets.join(', ')}],` : ''}
|
|
2237
2244
|
${setupImportName ? `setup: (${setupImportName}.default ?? ${setupImportName}.setup) || undefined,` : ''}
|
|
2245
|
+
${encryptionImportName ? `defaultEncryptionMaps: ((${encryptionImportName}.default ?? ${encryptionImportName}.defaultEncryptionMaps) as import('@open-mercato/shared/modules/encryption').ModuleEncryptionMap[]) || [],` : ''}
|
|
2238
2246
|
${integrationImportName ? `integrations: (( ${integrationImportName}.integrations ?? (${integrationImportName}.integration ? [${integrationImportName}.integration] : []) ) as import('@open-mercato/shared/modules/integrations/types').IntegrationDefinition[]),` : ''}
|
|
2239
2247
|
${integrationImportName ? `bundles: (( ${integrationImportName}.bundles ?? (${integrationImportName}.bundle ? [${integrationImportName}.bundle] : []) ) as import('@open-mercato/shared/modules/integrations/types').IntegrationBundle[]),` : ''}
|
|
2240
2248
|
}`)
|
|
@@ -2252,6 +2260,7 @@ export async function generateModuleRegistry(options: ModuleRegistryOptions): Pr
|
|
|
2252
2260
|
${featuresImportName ? `features: ((${featuresImportName}.default ?? ${featuresImportName}.features) as any) || [],` : ''}
|
|
2253
2261
|
${customEntitiesImportName ? `customEntities: ((${customEntitiesImportName}.default ?? ${customEntitiesImportName}.entities) as any) || [],` : ''}
|
|
2254
2262
|
${setupImportName ? `setup: (${setupImportName}.default ?? ${setupImportName}.setup) || undefined,` : ''}
|
|
2263
|
+
${encryptionImportName ? `defaultEncryptionMaps: ((${encryptionImportName}.default ?? ${encryptionImportName}.defaultEncryptionMaps) as import('@open-mercato/shared/modules/encryption').ModuleEncryptionMap[]) || [],` : ''}
|
|
2255
2264
|
${integrationImportName ? `integrations: (( ${integrationImportName}.integrations ?? (${integrationImportName}.integration ? [${integrationImportName}.integration] : []) ) as import('@open-mercato/shared/modules/integrations/types').IntegrationDefinition[]),` : ''}
|
|
2256
2265
|
${integrationImportName ? `bundles: (( ${integrationImportName}.bundles ?? (${integrationImportName}.bundle ? [${integrationImportName}.bundle] : []) ) as import('@open-mercato/shared/modules/integrations/types').IntegrationBundle[]),` : ''}
|
|
2257
2266
|
}`)
|
|
@@ -2551,6 +2560,7 @@ export async function generateModuleRegistryApp(options: ModuleRegistryOptions):
|
|
|
2551
2560
|
let customEntitiesImportName: string | null = null
|
|
2552
2561
|
let dashboardWidgetsValue: WriterFunction = emptyArray()
|
|
2553
2562
|
let setupImportName: string | null = null
|
|
2563
|
+
let encryptionImportName: string | null = null
|
|
2554
2564
|
let integrationImportName: string | null = null
|
|
2555
2565
|
|
|
2556
2566
|
const indexResolved = resolveModuleFile(roots, imps, 'index.ts')
|
|
@@ -2572,6 +2582,11 @@ export async function generateModuleRegistryApp(options: ModuleRegistryOptions):
|
|
|
2572
2582
|
if (setup) setupImportName = setup.importName
|
|
2573
2583
|
}
|
|
2574
2584
|
|
|
2585
|
+
{
|
|
2586
|
+
const encryption = resolveConventionFile(roots, imps, 'encryption.ts', 'ENCRYPTION', modId, importIdRef, imports)
|
|
2587
|
+
if (encryption) encryptionImportName = encryption.importName
|
|
2588
|
+
}
|
|
2589
|
+
|
|
2575
2590
|
{
|
|
2576
2591
|
const resolved = resolveModuleFile(roots, imps, 'integration.ts')
|
|
2577
2592
|
if (resolved) {
|
|
@@ -2745,6 +2760,17 @@ export async function generateModuleRegistryApp(options: ModuleRegistryOptions):
|
|
|
2745
2760
|
}),
|
|
2746
2761
|
})
|
|
2747
2762
|
}
|
|
2763
|
+
if (encryptionImportName) {
|
|
2764
|
+
moduleEntries.push({
|
|
2765
|
+
name: 'defaultEncryptionMaps',
|
|
2766
|
+
value: namespaceFallback({
|
|
2767
|
+
importName: encryptionImportName,
|
|
2768
|
+
members: ['default', 'defaultEncryptionMaps'],
|
|
2769
|
+
fallback: emptyArray(),
|
|
2770
|
+
castType: "Module['defaultEncryptionMaps']",
|
|
2771
|
+
}),
|
|
2772
|
+
})
|
|
2773
|
+
}
|
|
2748
2774
|
if (integrationImportName) {
|
|
2749
2775
|
moduleEntries.push({
|
|
2750
2776
|
name: 'integrations',
|
|
@@ -2862,6 +2888,7 @@ export async function generateModuleRegistryCli(options: ModuleRegistryOptions):
|
|
|
2862
2888
|
let vectorImportName: string | null = null
|
|
2863
2889
|
let dashboardWidgetsValue: WriterFunction = emptyArray()
|
|
2864
2890
|
let setupImportName: string | null = null
|
|
2891
|
+
let encryptionImportName: string | null = null
|
|
2865
2892
|
let integrationImportName: string | null = null
|
|
2866
2893
|
|
|
2867
2894
|
// Module metadata: index.ts (overrideable)
|
|
@@ -2885,6 +2912,12 @@ export async function generateModuleRegistryCli(options: ModuleRegistryOptions):
|
|
|
2885
2912
|
if (setup) setupImportName = setup.importName
|
|
2886
2913
|
}
|
|
2887
2914
|
|
|
2915
|
+
// Module encryption defaults: encryption.ts
|
|
2916
|
+
{
|
|
2917
|
+
const encryption = resolveConventionFile(roots, imps, 'encryption.ts', 'ENCRYPTION', modId, importIdRef, imports)
|
|
2918
|
+
if (encryption) encryptionImportName = encryption.importName
|
|
2919
|
+
}
|
|
2920
|
+
|
|
2888
2921
|
// Integration manifest: integration.ts
|
|
2889
2922
|
{
|
|
2890
2923
|
const resolved = resolveModuleFile(roots, imps, 'integration.ts')
|
|
@@ -3051,6 +3084,17 @@ export async function generateModuleRegistryCli(options: ModuleRegistryOptions):
|
|
|
3051
3084
|
}),
|
|
3052
3085
|
})
|
|
3053
3086
|
}
|
|
3087
|
+
if (encryptionImportName) {
|
|
3088
|
+
moduleEntries.push({
|
|
3089
|
+
name: 'defaultEncryptionMaps',
|
|
3090
|
+
value: namespaceFallback({
|
|
3091
|
+
importName: encryptionImportName,
|
|
3092
|
+
members: ['default', 'defaultEncryptionMaps'],
|
|
3093
|
+
fallback: emptyArray(),
|
|
3094
|
+
castType: "Module['defaultEncryptionMaps']",
|
|
3095
|
+
}),
|
|
3096
|
+
})
|
|
3097
|
+
}
|
|
3054
3098
|
if (integrationImportName) {
|
|
3055
3099
|
moduleEntries.push({
|
|
3056
3100
|
name: 'integrations',
|