@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.1925.0436f3b988",
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.1925.0436f3b988",
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.1925.0436f3b988"
70
+ "@open-mercato/shared": "0.4.11-develop.1926.e34f3af1bf"
71
71
  },
72
72
  "devDependencies": {
73
- "@open-mercato/shared": "0.4.11-develop.1925.0436f3b988",
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',