@memberjunction/cli 5.41.0 → 5.43.0

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 (119) hide show
  1. package/dist/commands/app/install.d.ts.map +1 -1
  2. package/dist/commands/app/install.js +2 -1
  3. package/dist/commands/app/install.js.map +1 -1
  4. package/dist/commands/bundle/index.d.ts +1 -0
  5. package/dist/commands/bundle/index.d.ts.map +1 -1
  6. package/dist/commands/bundle/index.js +7 -1
  7. package/dist/commands/bundle/index.js.map +1 -1
  8. package/dist/commands/codegen/index.d.ts +6 -16
  9. package/dist/commands/codegen/index.d.ts.map +1 -1
  10. package/dist/commands/codegen/index.js +6 -90
  11. package/dist/commands/codegen/index.js.map +1 -1
  12. package/dist/commands/codegen/manifest.d.ts +41 -10
  13. package/dist/commands/codegen/manifest.d.ts.map +1 -1
  14. package/dist/commands/codegen/manifest.js +66 -0
  15. package/dist/commands/codegen/manifest.js.map +1 -1
  16. package/dist/commands/codegen/usage.d.ts +7 -0
  17. package/dist/commands/codegen/usage.d.ts.map +1 -0
  18. package/dist/commands/codegen/usage.js +10 -0
  19. package/dist/commands/codegen/usage.js.map +1 -0
  20. package/dist/commands/install/claude.d.ts +35 -0
  21. package/dist/commands/install/claude.d.ts.map +1 -0
  22. package/dist/commands/install/claude.js +108 -0
  23. package/dist/commands/install/claude.js.map +1 -0
  24. package/dist/commands/install/index.d.ts +1 -0
  25. package/dist/commands/install/index.d.ts.map +1 -1
  26. package/dist/commands/install/index.js +4 -0
  27. package/dist/commands/install/index.js.map +1 -1
  28. package/dist/commands/migrate/convert.d.ts +59 -12
  29. package/dist/commands/migrate/convert.d.ts.map +1 -1
  30. package/dist/commands/migrate/convert.js +294 -21
  31. package/dist/commands/migrate/convert.js.map +1 -1
  32. package/dist/commands/migrate/rebake.d.ts +41 -0
  33. package/dist/commands/migrate/rebake.d.ts.map +1 -0
  34. package/dist/commands/migrate/rebake.js +193 -0
  35. package/dist/commands/migrate/rebake.js.map +1 -0
  36. package/dist/commands/plugin/add.d.ts +18 -0
  37. package/dist/commands/plugin/add.d.ts.map +1 -0
  38. package/dist/commands/plugin/add.js +53 -0
  39. package/dist/commands/plugin/add.js.map +1 -0
  40. package/dist/commands/sync/pull.d.ts +6 -26
  41. package/dist/commands/sync/pull.d.ts.map +1 -1
  42. package/dist/commands/sync/pull.js +6 -281
  43. package/dist/commands/sync/pull.js.map +1 -1
  44. package/dist/commands/sync/push.d.ts +8 -19
  45. package/dist/commands/sync/push.d.ts.map +1 -1
  46. package/dist/commands/sync/push.js +8 -328
  47. package/dist/commands/sync/push.js.map +1 -1
  48. package/dist/commands/sync/usage.d.ts +7 -0
  49. package/dist/commands/sync/usage.d.ts.map +1 -0
  50. package/dist/commands/sync/usage.js +10 -0
  51. package/dist/commands/sync/usage.js.map +1 -0
  52. package/dist/commands/update/claude.d.ts +37 -0
  53. package/dist/commands/update/claude.d.ts.map +1 -0
  54. package/dist/commands/update/claude.js +90 -0
  55. package/dist/commands/update/claude.js.map +1 -0
  56. package/dist/commands/usage.d.ts +17 -0
  57. package/dist/commands/usage.d.ts.map +1 -0
  58. package/dist/commands/usage.js +29 -0
  59. package/dist/commands/usage.js.map +1 -0
  60. package/dist/config.d.ts +41 -7
  61. package/dist/config.d.ts.map +1 -1
  62. package/dist/config.js +9 -4
  63. package/dist/config.js.map +1 -1
  64. package/dist/hooks/prerun.d.ts.map +1 -1
  65. package/dist/hooks/prerun.js +49 -8
  66. package/dist/hooks/prerun.js.map +1 -1
  67. package/dist/lib/claude-pack/ManagedBlockEditor.d.ts +40 -0
  68. package/dist/lib/claude-pack/ManagedBlockEditor.d.ts.map +1 -0
  69. package/dist/lib/claude-pack/ManagedBlockEditor.js +127 -0
  70. package/dist/lib/claude-pack/ManagedBlockEditor.js.map +1 -0
  71. package/dist/lib/claude-pack/PackFetcher.d.ts +86 -0
  72. package/dist/lib/claude-pack/PackFetcher.d.ts.map +1 -0
  73. package/dist/lib/claude-pack/PackFetcher.js +163 -0
  74. package/dist/lib/claude-pack/PackFetcher.js.map +1 -0
  75. package/dist/lib/claude-pack/PackInstaller.d.ts +62 -0
  76. package/dist/lib/claude-pack/PackInstaller.d.ts.map +1 -0
  77. package/dist/lib/claude-pack/PackInstaller.js +197 -0
  78. package/dist/lib/claude-pack/PackInstaller.js.map +1 -0
  79. package/dist/lib/claude-pack/PackMerger.d.ts +61 -0
  80. package/dist/lib/claude-pack/PackMerger.d.ts.map +1 -0
  81. package/dist/lib/claude-pack/PackMerger.js +315 -0
  82. package/dist/lib/claude-pack/PackMerger.js.map +1 -0
  83. package/dist/lib/claude-pack/PackOutputFormatter.d.ts +29 -0
  84. package/dist/lib/claude-pack/PackOutputFormatter.d.ts.map +1 -0
  85. package/dist/lib/claude-pack/PackOutputFormatter.js +82 -0
  86. package/dist/lib/claude-pack/PackOutputFormatter.js.map +1 -0
  87. package/dist/lib/claude-pack/PackPaths.d.ts +80 -0
  88. package/dist/lib/claude-pack/PackPaths.d.ts.map +1 -0
  89. package/dist/lib/claude-pack/PackPaths.js +182 -0
  90. package/dist/lib/claude-pack/PackPaths.js.map +1 -0
  91. package/dist/lib/claude-pack/PackTypes.d.ts +124 -0
  92. package/dist/lib/claude-pack/PackTypes.d.ts.map +1 -0
  93. package/dist/lib/claude-pack/PackTypes.js +32 -0
  94. package/dist/lib/claude-pack/PackTypes.js.map +1 -0
  95. package/dist/lib/claude-pack/SettingsMerger.d.ts +47 -0
  96. package/dist/lib/claude-pack/SettingsMerger.d.ts.map +1 -0
  97. package/dist/lib/claude-pack/SettingsMerger.js +163 -0
  98. package/dist/lib/claude-pack/SettingsMerger.js.map +1 -0
  99. package/dist/lib/cli-plugins.d.ts +16 -0
  100. package/dist/lib/cli-plugins.d.ts.map +1 -0
  101. package/dist/lib/cli-plugins.js +26 -0
  102. package/dist/lib/cli-plugins.js.map +1 -0
  103. package/dist/lib/domain-usage-command.d.ts +16 -0
  104. package/dist/lib/domain-usage-command.d.ts.map +1 -0
  105. package/dist/lib/domain-usage-command.js +23 -0
  106. package/dist/lib/domain-usage-command.js.map +1 -0
  107. package/dist/lib/usage-render.d.ts +14 -0
  108. package/dist/lib/usage-render.d.ts.map +1 -0
  109. package/dist/lib/usage-render.js +64 -0
  110. package/dist/lib/usage-render.js.map +1 -0
  111. package/dist/light-commands.d.ts.map +1 -1
  112. package/dist/light-commands.js +11 -0
  113. package/dist/light-commands.js.map +1 -1
  114. package/dist/utils/open-app-context.d.ts +5 -5
  115. package/dist/utils/open-app-context.d.ts.map +1 -1
  116. package/dist/utils/open-app-context.js +44 -48
  117. package/dist/utils/open-app-context.js.map +1 -1
  118. package/oclif.manifest.json +821 -134
  119. package/package.json +17 -15
@@ -1 +1 @@
1
- {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/commands/app/install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,OAAO,EAAS,MAAM,aAAa,CAAC;AAMnD;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,OAAO;IAC7C,MAAM,CAAC,WAAW,SAAqD;IAEvE,MAAM,CAAC,QAAQ,WAIb;IAEF,MAAM,CAAC,IAAI;;MAKT;IAEF,MAAM,CAAC,KAAK;;;;MAOV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAgC3B"}
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/commands/app/install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,OAAO,EAAS,MAAM,aAAa,CAAC;AAMnD;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,OAAO;IAC7C,MAAM,CAAC,WAAW,SAAqD;IAEvE,MAAM,CAAC,QAAQ,WAKb;IAEF,MAAM,CAAC,IAAI;;MAMT;IAEF,MAAM,CAAC,KAAK;;;;MAOV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAgC3B"}
@@ -16,10 +16,11 @@ export default class AppInstall extends Command {
16
16
  '<%= config.bin %> app install https://github.com/acme/mj-crm',
17
17
  '<%= config.bin %> app install https://github.com/acme/mj-crm --version 1.2.0',
18
18
  '<%= config.bin %> app install https://github.com/acme/mj-crm --verbose',
19
+ '<%= config.bin %> app install https://github.com/MemberJunction/Integrations/CRM/HubSpot',
19
20
  ]; }
20
21
  static { this.args = {
21
22
  source: Args.string({
22
- description: 'GitHub repository URL of the Open App',
23
+ description: 'GitHub repository URL of the Open App. For a multi-app repo, append the in-repo path to the app (e.g. https://github.com/MemberJunction/Integrations/CRM/HubSpot).',
23
24
  required: true,
24
25
  }),
25
26
  }; }
@@ -1 +1 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/commands/app/install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,GAAG,MAAM,aAAa,CAAC;AAC9B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAE3E;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,OAAO;aACtC,gBAAW,GAAG,iDAAiD,CAAC;aAEhE,aAAQ,GAAG;QAChB,8DAA8D;QAC9D,8EAA8E;QAC9E,wEAAwE;KACzE,CAAC;aAEK,SAAI,GAAG;QACZ,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;YAClB,WAAW,EAAE,uCAAuC;YACpD,QAAQ,EAAE,IAAI;SACf,CAAC;KACH,CAAC;aAEK,UAAK,GAAG;QACb,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,+CAA+C,EAAE,CAAC;QACvF,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,sBAAsB,EAAE,CAAC;QAC1E,+CAA+C,EAAE,KAAK,CAAC,OAAO,CAAC;YAC7D,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,KAAK;SACf,CAAC;KACH,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC;QAEtB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,wBAAwB,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YAEpE,MAAM,MAAM,GAAG,MAAM,UAAU,CAC7B;gBACE,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,2BAA2B,EAAE,KAAK,CAAC,+CAA+C,CAAC;aACpF,EACD,OAAO,CACR,CAAC;YAEF,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gBAC/E,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;oBACnB,IAAI,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;gBAClC,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAmB,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;gBAClE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACf,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAC/B,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACtB,CAAC;IACH,CAAC"}
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/commands/app/install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,GAAG,MAAM,aAAa,CAAC;AAC9B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAE3E;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,OAAO;aACtC,gBAAW,GAAG,iDAAiD,CAAC;aAEhE,aAAQ,GAAG;QAChB,8DAA8D;QAC9D,8EAA8E;QAC9E,wEAAwE;QACxE,0FAA0F;KAC3F,CAAC;aAEK,SAAI,GAAG;QACZ,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;YAClB,WAAW,EACT,oKAAoK;YACtK,QAAQ,EAAE,IAAI;SACf,CAAC;KACH,CAAC;aAEK,UAAK,GAAG;QACb,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,+CAA+C,EAAE,CAAC;QACvF,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,sBAAsB,EAAE,CAAC;QAC1E,+CAA+C,EAAE,KAAK,CAAC,OAAO,CAAC;YAC7D,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,KAAK;SACf,CAAC;KACH,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC;QAEtB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,wBAAwB,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YAEpE,MAAM,MAAM,GAAG,MAAM,UAAU,CAC7B;gBACE,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,2BAA2B,EAAE,KAAK,CAAC,+CAA+C,CAAC;aACpF,EACD,OAAO,CACR,CAAC;YAEF,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gBAC/E,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;oBACnB,IAAI,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;gBAClC,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAmB,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;gBAClE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACf,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAC/B,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACtB,CAAC;IACH,CAAC"}
@@ -14,6 +14,7 @@ export default class Bundle extends Command {
14
14
  source: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
15
15
  'with-migrations': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
16
16
  'db-platform': import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
17
+ 'no-claude-pack': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
17
18
  verbose: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
18
19
  };
19
20
  run(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/bundle/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAK7C;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,OAAO;IACzC,MAAM,CAAC,WAAW,SAA6F;IAE/G,MAAM,CAAC,QAAQ,WAMb;IAEF,MAAM,CAAC,KAAK;;;;;;;MAaV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAgC3B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/bundle/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAK7C;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,OAAO;IACzC,MAAM,CAAC,WAAW,SAA6F;IAE/G,MAAM,CAAC,QAAQ,WAMb;IAEF,MAAM,CAAC,KAAK;;;;;;;;MAgBV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAoC3B"}
@@ -30,6 +30,9 @@ export default class Bundle extends Command {
30
30
  options: ['sqlserver', 'postgresql'],
31
31
  dependsOn: ['with-migrations'],
32
32
  }),
33
+ 'no-claude-pack': Flags.boolean({
34
+ description: 'Exclude the Claude Code pack (CLAUDE.md + .claude/) from the bundle. By default the pack is included so air-gapped installs get the same out-of-the-box Claude experience as online installs.',
35
+ }),
33
36
  verbose: Flags.boolean({ char: 'v', description: 'Show detailed output' }),
34
37
  }; }
35
38
  async run() {
@@ -44,6 +47,7 @@ export default class Bundle extends Command {
44
47
  // oclif validates the value against `options`, but types it as a plain string;
45
48
  // map it to the literal union without an assertion.
46
49
  const dbPlatform = flags['db-platform'] === 'postgresql' ? 'postgresql' : flags['db-platform'] === 'sqlserver' ? 'sqlserver' : undefined;
50
+ const includeClaudePack = !flags['no-claude-pack'];
47
51
  const result = await createDistributionBundle({
48
52
  Out: out,
49
53
  Ref: ref,
@@ -51,12 +55,14 @@ export default class Bundle extends Command {
51
55
  SourceDir: source,
52
56
  IncludeMigrations: flags['with-migrations'],
53
57
  MigrationPlatform: dbPlatform,
58
+ IncludeClaudePack: includeClaudePack,
54
59
  });
55
60
  if (flags.verbose && result.UsedFallback) {
56
61
  this.log('Blobless partial clone unavailable; used the full sparse-checkout fallback.');
57
62
  }
58
63
  const migrationsNote = flags['with-migrations'] ? `, including migrations${dbPlatform ? ` (${dbPlatform})` : ''}` : '';
59
- this.log(`Created ${result.Out} (${result.EntryCount} entries${migrationsNote}).`);
64
+ const packNote = includeClaudePack ? '' : ' (Claude pack excluded)';
65
+ this.log(`Created ${result.Out} (${result.EntryCount} entries${migrationsNote}${packNote}).`);
60
66
  }
61
67
  }
62
68
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/bundle/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/bundle/index.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,7 @@
1
- import { Command } from '@oclif/core';
2
- import type { ParserOutput } from '@oclif/core/interfaces';
3
- export default class CodeGen extends Command {
4
- static description: string;
5
- static examples: {
6
- command: string;
7
- description: string;
8
- }[];
9
- static flags: {
10
- skipdb: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
11
- skipfiles: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
12
- 'force-advanced-gen': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
13
- };
14
- flags: ParserOutput<CodeGen>['flags'];
15
- run(): Promise<void>;
16
- }
1
+ /**
2
+ * Thin oclif shim the real logic lives in {@link CodeGenPlugin} in
3
+ * `@memberjunction/codegen-lib/plugins` (plan §3). See sync/push.ts for the
4
+ * shim rationale. Adds `--format=json` and the slow-command runtime advisory.
5
+ */
6
+ export { CodeGenPlugin as default } from '@memberjunction/codegen-lib/plugins';
17
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/codegen/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAG3D,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,OAAO;IAC1C,MAAM,CAAC,WAAW,SA4BgD;IAElE,MAAM,CAAC,QAAQ;;;QAiBb;IAEF,MAAM,CAAC,KAAK;;;;MAUV;IAEF,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC;IAEhC,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAiC3B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/codegen/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,aAAa,IAAI,OAAO,EAAE,MAAM,qCAAqC,CAAC"}
@@ -1,91 +1,7 @@
1
- import { Command, Flags } from '@oclif/core';
2
- import { updatedConfig } from '../../config.js';
3
- export default class CodeGen extends Command {
4
- static { this.description = `Run the full MemberJunction code generation pipeline.
5
-
6
- Analyzes your SQL Server database schema, updates MemberJunction metadata, and
7
- generates synchronized code across the entire stack:
8
-
9
- - SQL views, stored procedures, indexes, and permissions
10
- - TypeScript entity classes with Zod validation schemas
11
- - Angular form components with AI-driven layouts
12
- - GraphQL resolvers and type definitions
13
- - Action subclasses and DB schema JSON
14
-
15
- Configuration is loaded from mj.config.cjs in the current directory (or parent
16
- directories). Database connection can also be set via environment variables:
17
- DB_HOST, DB_DATABASE, CODEGEN_DB_USERNAME, CODEGEN_DB_PASSWORD.
18
-
19
- Use --skipdb to skip all database operations (metadata sync, SQL object
20
- generation) and only regenerate TypeScript, Angular, and GraphQL output from
21
- existing metadata.
22
-
23
- Use --skipfiles to skip all file-generation operations (TypeScript entities,
24
- Angular components, GraphQL resolvers, action subclasses, DB schema JSON) and
25
- only run database-side operations (metadata sync, SQL object generation,
26
- permissions, custom SQL scripts).
27
-
28
- --skipdb and --skipfiles are independent and can be combined in any mix.
29
-
30
- Use --force-advanced-gen to bypass Pass 2 entity scoping and re-run the LLM-driven
31
- advanced generation (smart fields, form layout) for ALL entities. Useful when AI
32
- prompts have changed and you want unchanged entities re-evaluated.`; }
33
- static { this.examples = [
34
- {
35
- command: '<%= config.bin %> <%= command.id %>',
36
- description: 'Run the full code generation pipeline',
37
- },
38
- {
39
- command: '<%= config.bin %> <%= command.id %> --skipdb',
40
- description: 'Regenerate code files without touching the database',
41
- },
42
- {
43
- command: '<%= config.bin %> <%= command.id %> --skipfiles',
44
- description: 'Run database-side operations only, without regenerating any code files',
45
- },
46
- {
47
- command: '<%= config.bin %> <%= command.id %> --force-advanced-gen',
48
- description: 'Re-run advanced generation for all entities (bypasses changed-entity scoping)',
49
- },
50
- ]; }
51
- static { this.flags = {
52
- skipdb: Flags.boolean({
53
- description: 'Skip database operations (metadata sync, SQL generation). Only regenerate TypeScript entities, Angular components, and GraphQL resolvers from existing metadata.',
54
- }),
55
- skipfiles: Flags.boolean({
56
- description: 'Skip file-generation operations (TypeScript entities, Angular components, GraphQL resolvers, action subclasses, DB schema JSON). Only run database-side operations.',
57
- }),
58
- 'force-advanced-gen': Flags.boolean({
59
- description: 'Bypass entity scoping in Pass 2 and force advanced generation to re-run for all entities. Used when AI prompts have changed and unchanged entities should be re-evaluated.',
60
- }),
61
- }; }
62
- async run() {
63
- const { runMemberJunctionCodeGeneration, initializeConfig, configInfo } = await import('@memberjunction/codegen-lib');
64
- const parsed = await this.parse(CodeGen);
65
- this.flags = parsed.flags;
66
- const config = updatedConfig();
67
- if (!config) {
68
- this.error('No configuration found. Ensure mj.config.cjs exists in the current directory or a parent directory.');
69
- }
70
- // Initialize configuration
71
- initializeConfig(process.cwd());
72
- // --force-advanced-gen bypasses Pass 2 scoping by toggling the existing
73
- // forceRegeneration.enabled config flag. Both the Pass 2 scoping logic in
74
- // sql_codegen.ts and the advanced-generation scope check in manage-metadata.ts
75
- // honor this same flag, so flipping it here gives a uniform "process all entities"
76
- // override across both code paths.
77
- if (this.flags['force-advanced-gen']) {
78
- if (!configInfo.forceRegeneration) {
79
- // Initialize the object if it's missing — don't crash if config schema is sparse
80
- configInfo.forceRegeneration = { enabled: true };
81
- }
82
- else {
83
- configInfo.forceRegeneration.enabled = true;
84
- }
85
- this.log('--force-advanced-gen: bypassing entity scoping; advanced generation will re-run for all entities.');
86
- }
87
- // Call the function with the determined arguments
88
- runMemberJunctionCodeGeneration(this.flags.skipdb, this.flags.skipfiles);
89
- }
90
- }
1
+ /**
2
+ * Thin oclif shim — the real logic lives in {@link CodeGenPlugin} in
3
+ * `@memberjunction/codegen-lib/plugins` (plan §3). See sync/push.ts for the
4
+ * shim rationale. Adds `--format=json` and the slow-command runtime advisory.
5
+ */
6
+ export { CodeGenPlugin as default } from '@memberjunction/codegen-lib/plugins';
91
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/codegen/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,OAAO;aACnC,gBAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;mEA4B4C,CAAC;aAE3D,aAAQ,GAAG;QAChB;YACE,OAAO,EAAE,qCAAqC;YAC9C,WAAW,EAAE,uCAAuC;SACrD;QACD;YACE,OAAO,EAAE,8CAA8C;YACvD,WAAW,EAAE,qDAAqD;SACnE;QACD;YACE,OAAO,EAAE,iDAAiD;YAC1D,WAAW,EAAE,wEAAwE;SACtF;QACD;YACE,OAAO,EAAE,0DAA0D;YACnE,WAAW,EAAE,+EAA+E;SAC7F;KACF,CAAC;aAEK,UAAK,GAAG;QACb,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC;YACpB,WAAW,EAAE,kKAAkK;SAChL,CAAC;QACF,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC;YACvB,WAAW,EAAE,qKAAqK;SACnL,CAAC;QACF,oBAAoB,EAAE,KAAK,CAAC,OAAO,CAAC;YAClC,WAAW,EAAE,4KAA4K;SAC1L,CAAC;KACH,CAAC;IAIF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,+BAA+B,EAAE,gBAAgB,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,6BAA6B,CAAC,CAAC;QAEtH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACzC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAE1B,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;QAE/B,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,IAAI,CAAC,KAAK,CAAC,qGAAqG,CAAC,CAAC;QACpH,CAAC;QAED,2BAA2B;QAC3B,gBAAgB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAEhC,wEAAwE;QACxE,0EAA0E;QAC1E,+EAA+E;QAC/E,mFAAmF;QACnF,mCAAmC;QACnC,IAAI,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,EAAE,CAAC;YACrC,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC;gBAClC,iFAAiF;gBAChF,UAA0D,CAAC,iBAAiB,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YACpG,CAAC;iBAAM,CAAC;gBACN,UAAU,CAAC,iBAAiB,CAAC,OAAO,GAAG,IAAI,CAAC;YAC9C,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,mGAAmG,CAAC,CAAC;QAChH,CAAC;QAED,kDAAkD;QAClD,+BAA+B,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC3E,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/codegen/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,aAAa,IAAI,OAAO,EAAE,MAAM,qCAAqC,CAAC"}
@@ -1,4 +1,22 @@
1
1
  import { Command } from '@oclif/core';
2
+ /** A client dynamic-package entry as read from mj.config `dynamicPackages.client`. */
3
+ export interface OpenAppClientEntry {
4
+ PackageName: string;
5
+ Enabled?: boolean;
6
+ }
7
+ /**
8
+ * Pure transform: given the current manifest file content and the set of Open App
9
+ * client packages, returns the content with the managed bootstrap block refreshed.
10
+ *
11
+ * - Strips any prior managed block first, so the result is idempotent (re-running with
12
+ * the same entries is a no-op; changed entries fully replace the block).
13
+ * - Enabled entries become `import '<pkg>';`; disabled entries become a comment so a
14
+ * re-enable restores the import without losing the record.
15
+ * - Zero entries => the block is removed entirely (no stale imports left behind).
16
+ *
17
+ * Exported for unit testing of the idempotency / disabled / cleared cases.
18
+ */
19
+ export declare function applyOpenAppClientBootstrapBlock(content: string, clientEntries: OpenAppClientEntry[]): string;
2
20
  export default class CodeGenManifest extends Command {
3
21
  static description: string;
4
22
  static examples: {
@@ -6,17 +24,30 @@ export default class CodeGenManifest extends Command {
6
24
  description: string;
7
25
  }[];
8
26
  static flags: {
9
- output: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
10
- appDir: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
11
- filter: import("@oclif/core/lib/interfaces").OptionFlag<string[], import("@oclif/core/lib/interfaces").CustomOptions>;
12
- 'exclude-packages': import("@oclif/core/lib/interfaces").OptionFlag<string[], import("@oclif/core/lib/interfaces").CustomOptions>;
13
- 'no-sync-deps': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
14
- quiet: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
15
- verbose: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
16
- 'scan-dist': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
17
- 'lazy-config': import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
18
- strict: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
27
+ output: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
28
+ appDir: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
29
+ filter: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string[], import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
30
+ 'exclude-packages': import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string[], import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
31
+ 'no-sync-deps': import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
32
+ quiet: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
33
+ verbose: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
34
+ 'scan-dist': import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
35
+ 'lazy-config': import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
36
+ strict: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
37
+ 'open-app-client-bootstrap': import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
19
38
  };
20
39
  run(): Promise<void>;
40
+ /**
41
+ * Appends (or refreshes) a managed block of side-effect imports to the generated
42
+ * manifest — one `import '<pkg>';` per enabled Open App client package recorded in
43
+ * mj.config `dynamicPackages.client` (disabled packages are emitted as comments).
44
+ *
45
+ * This is what keeps the Open App client-load mechanism inside distributed npm
46
+ * packages (this CLI + the manifest MJExplorer already imports) instead of a
47
+ * hand-written MJExplorer file — so MJExplorer stays paper-thin. The block is
48
+ * delimited and rebuilt on every run, so it stays in sync as apps are installed,
49
+ * removed, enabled, or disabled (each of which edits `dynamicPackages.client`).
50
+ */
51
+ private appendOpenAppClientBootstrap;
21
52
  }
22
53
  //# sourceMappingURL=manifest.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../../src/commands/codegen/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAE7C,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,OAAO;IAChD,MAAM,CAAC,WAAW,SAWwD;IAE1E,MAAM,CAAC,QAAQ;;;QAyBb;IAEF,MAAM,CAAC,KAAK;;;;;;;;;;;MAkDV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA8C7B"}
1
+ {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../../src/commands/codegen/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAK7C,sFAAsF;AACtF,MAAM,WAAW,kBAAkB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB;AASD;;;;;;;;;;;GAWG;AACH,wBAAgB,gCAAgC,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,kBAAkB,EAAE,GAAG,MAAM,CAgB7G;AAED,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,OAAO;IAChD,MAAM,CAAC,WAAW,SAWwD;IAE1E,MAAM,CAAC,QAAQ;;;QAyBb;IAEF,MAAM,CAAC,KAAK;;;;;;;;;;;;MAwDV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAsD1B;;;;;;;;;;OAUG;IACH,OAAO,CAAC,4BAA4B;CAcvC"}
@@ -1,4 +1,35 @@
1
1
  import { Command, Flags } from '@oclif/core';
2
+ import { readFileSync, writeFileSync, existsSync } from 'node:fs';
3
+ import { resolve } from 'node:path';
4
+ import { getOptionalConfig } from '../../config.js';
5
+ const OPEN_APP_BOOTSTRAP_BEGIN = '// ===== BEGIN Open App client bootstrap (managed by `mj app` / `mj codegen manifest`) =====';
6
+ const OPEN_APP_BOOTSTRAP_END = '// ===== END Open App client bootstrap =====';
7
+ function escapeRegex(s) {
8
+ return s.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
9
+ }
10
+ /**
11
+ * Pure transform: given the current manifest file content and the set of Open App
12
+ * client packages, returns the content with the managed bootstrap block refreshed.
13
+ *
14
+ * - Strips any prior managed block first, so the result is idempotent (re-running with
15
+ * the same entries is a no-op; changed entries fully replace the block).
16
+ * - Enabled entries become `import '<pkg>';`; disabled entries become a comment so a
17
+ * re-enable restores the import without losing the record.
18
+ * - Zero entries => the block is removed entirely (no stale imports left behind).
19
+ *
20
+ * Exported for unit testing of the idempotency / disabled / cleared cases.
21
+ */
22
+ export function applyOpenAppClientBootstrapBlock(content, clientEntries) {
23
+ const blockPattern = new RegExp(`\\n*${escapeRegex(OPEN_APP_BOOTSTRAP_BEGIN)}[\\s\\S]*?${escapeRegex(OPEN_APP_BOOTSTRAP_END)}\\n*`, 'g');
24
+ let result = content.replace(blockPattern, '\n').replace(/\n+$/, '\n');
25
+ if (clientEntries.length > 0) {
26
+ const lines = clientEntries.map(e => e.Enabled === false
27
+ ? `// '${e.PackageName}' disabled by \`mj app disable\``
28
+ : `import '${e.PackageName}';`);
29
+ result = `${result.replace(/\n+$/, '')}\n\n${OPEN_APP_BOOTSTRAP_BEGIN}\n${lines.join('\n')}\n${OPEN_APP_BOOTSTRAP_END}\n`;
30
+ }
31
+ return result;
32
+ }
2
33
  export default class CodeGenManifest extends Command {
3
34
  static { this.description = `Generate a class registration manifest to prevent tree-shaking.
4
35
 
@@ -88,6 +119,12 @@ generate a supplemental manifest covering only your own application classes.`; }
88
119
  'that is not reachable from any lazy chunk subpath export. Use in CI to catch tree-shaking issues before merge.',
89
120
  default: false,
90
121
  }),
122
+ 'open-app-client-bootstrap': Flags.boolean({
123
+ description: 'After generating the manifest, append a managed block of side-effect imports — one per ' +
124
+ 'Open App client package recorded in mj.config `dynamicPackages.client` — so installed apps\' client ' +
125
+ 'classes register when the client bundle loads. Used by MJExplorer\'s prebuild; requires --output.',
126
+ default: false,
127
+ }),
91
128
  }; }
92
129
  async run() {
93
130
  const { generateClassRegistrationsManifest } = await import('@memberjunction/codegen-lib');
@@ -130,6 +167,35 @@ generate a supplemental manifest covering only your own application classes.`; }
130
167
  }
131
168
  }
132
169
  }
170
+ if (flags['open-app-client-bootstrap']) {
171
+ if (!flags.output) {
172
+ this.error('--open-app-client-bootstrap requires --output (the manifest file to append the client bootstrap block to).');
173
+ }
174
+ this.appendOpenAppClientBootstrap(flags.output, flags.quiet);
175
+ }
176
+ }
177
+ /**
178
+ * Appends (or refreshes) a managed block of side-effect imports to the generated
179
+ * manifest — one `import '<pkg>';` per enabled Open App client package recorded in
180
+ * mj.config `dynamicPackages.client` (disabled packages are emitted as comments).
181
+ *
182
+ * This is what keeps the Open App client-load mechanism inside distributed npm
183
+ * packages (this CLI + the manifest MJExplorer already imports) instead of a
184
+ * hand-written MJExplorer file — so MJExplorer stays paper-thin. The block is
185
+ * delimited and rebuilt on every run, so it stays in sync as apps are installed,
186
+ * removed, enabled, or disabled (each of which edits `dynamicPackages.client`).
187
+ */
188
+ appendOpenAppClientBootstrap(outputPath, quiet) {
189
+ const filePath = resolve(process.cwd(), outputPath);
190
+ if (!existsSync(filePath)) {
191
+ return; // manifest generation produced no file (e.g. --no-sync-deps fallback); nothing to append to
192
+ }
193
+ const clientEntries = (getOptionalConfig()?.dynamicPackages?.client ?? []);
194
+ const content = applyOpenAppClientBootstrapBlock(readFileSync(filePath, 'utf-8'), clientEntries);
195
+ writeFileSync(filePath, content, 'utf-8');
196
+ if (!quiet) {
197
+ this.log(`[class-manifest] Open App client bootstrap: ${clientEntries.length} client ${clientEntries.length === 1 ? 'package' : 'packages'} wired`);
198
+ }
133
199
  }
134
200
  }
135
201
  //# sourceMappingURL=manifest.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../src/commands/codegen/manifest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../src/commands/codegen/manifest.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { DomainUsageCommand } from '../../lib/domain-usage-command.js';
2
+ /** Tier-2 usage for the `codegen` domain (`mj codegen usage`). */
3
+ export default class CodeGenUsage extends DomainUsageCommand {
4
+ static description: string;
5
+ protected Domain: string;
6
+ }
7
+ //# sourceMappingURL=usage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usage.d.ts","sourceRoot":"","sources":["../../../src/commands/codegen/usage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAEvE,kEAAkE;AAClE,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,kBAAkB;IAC1D,MAAM,CAAC,WAAW,SAAsE;IACxF,SAAS,CAAC,MAAM,SAAa;CAC9B"}
@@ -0,0 +1,10 @@
1
+ import { DomainUsageCommand } from '../../lib/domain-usage-command.js';
2
+ /** Tier-2 usage for the `codegen` domain (`mj codegen usage`). */
3
+ export default class CodeGenUsage extends DomainUsageCommand {
4
+ constructor() {
5
+ super(...arguments);
6
+ this.Domain = 'codegen';
7
+ }
8
+ static { this.description = 'Show usage, flags, examples, and runtime hints for `mj codegen`.'; }
9
+ }
10
+ //# sourceMappingURL=usage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usage.js","sourceRoot":"","sources":["../../../src/commands/codegen/usage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAEvE,kEAAkE;AAClE,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,kBAAkB;IAA5D;;QAEY,WAAM,GAAG,SAAS,CAAC;IAC/B,CAAC;aAFQ,gBAAW,GAAG,kEAAkE,AAArE,CAAsE"}
@@ -0,0 +1,35 @@
1
+ import { Command } from '@oclif/core';
2
+ import { type InstallPackOptions } from '../../lib/claude-pack/PackInstaller.js';
3
+ /**
4
+ * `mj install:claude` — install or refresh the Claude Code pack in the
5
+ * current directory.
6
+ *
7
+ * Pure flag-parsing + output-rendering wrapper around `installPack()`.
8
+ * See plans/claude-install-pack.md §7.4 (flags) and §7.5 (--json shape).
9
+ */
10
+ export default class InstallClaude extends Command {
11
+ static description: string;
12
+ static examples: string[];
13
+ static flags: {
14
+ dir: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
15
+ major: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
16
+ ref: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
17
+ from: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
18
+ offline: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
19
+ 'dry-run': import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
20
+ yes: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
21
+ force: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
22
+ 'skip-commands': import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
23
+ 'skip-skills': import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
24
+ 'skip-settings': import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
25
+ json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
26
+ verbose: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
27
+ };
28
+ run(): Promise<void>;
29
+ }
30
+ /**
31
+ * Translate oclif flag bag → `installPack` options. Extracted so update:claude
32
+ * can reuse the shared install-style options (it adds its own on top).
33
+ */
34
+ export declare function mapFlagsToInstallOptions(flags: Record<string, unknown>, onProgress?: (msg: string) => void): InstallPackOptions;
35
+ //# sourceMappingURL=claude.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../../src/commands/install/claude.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAe,KAAK,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAG9F;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,OAAO;IAC9C,MAAM,CAAC,WAAW,SAAuE;IAEzF,MAAM,CAAC,QAAQ,WAKb;IAEF,MAAM,CAAC,KAAK;;;;;;;;;;;;;;MA2CV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAe7B;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACpC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GACnC,kBAAkB,CAcpB"}
@@ -0,0 +1,108 @@
1
+ import { Command, Flags } from '@oclif/core';
2
+ import { installPack } from '../../lib/claude-pack/PackInstaller.js';
3
+ import { formatJson, formatPretty } from '../../lib/claude-pack/PackOutputFormatter.js';
4
+ /**
5
+ * `mj install:claude` — install or refresh the Claude Code pack in the
6
+ * current directory.
7
+ *
8
+ * Pure flag-parsing + output-rendering wrapper around `installPack()`.
9
+ * See plans/claude-install-pack.md §7.4 (flags) and §7.5 (--json shape).
10
+ */
11
+ export default class InstallClaude extends Command {
12
+ static { this.description = 'Install or refresh the Claude Code pack in the current directory.'; }
13
+ static { this.examples = [
14
+ '<%= config.bin %> install:claude',
15
+ '<%= config.bin %> install:claude --dry-run',
16
+ '<%= config.bin %> install:claude --from ./local-pack',
17
+ '<%= config.bin %> install:claude --json',
18
+ ]; }
19
+ static { this.flags = {
20
+ dir: Flags.string({
21
+ description: 'Target directory for the install',
22
+ default: '.',
23
+ }),
24
+ major: Flags.string({
25
+ description: 'Force a specific MJ major (default: detected from package.json)',
26
+ }),
27
+ ref: Flags.string({
28
+ description: 'Git ref to fetch from (branch or tag). Default: main.',
29
+ }),
30
+ from: Flags.string({
31
+ description: 'Use a local pack source instead of fetching from GitHub',
32
+ }),
33
+ offline: Flags.boolean({
34
+ description: 'Forbid network; requires --from <path>',
35
+ }),
36
+ 'dry-run': Flags.boolean({
37
+ description: 'Print what would be written; change nothing',
38
+ }),
39
+ yes: Flags.boolean({
40
+ char: 'y',
41
+ description: "Don't prompt (reserved for future interactive paths; currently no-op)",
42
+ }),
43
+ force: Flags.boolean({
44
+ description: 'Overwrite user-customized commands/skills (saves .bak files)',
45
+ }),
46
+ 'skip-commands': Flags.boolean({
47
+ description: 'Skip seeding .claude/commands/',
48
+ }),
49
+ 'skip-skills': Flags.boolean({
50
+ description: 'Skip seeding .claude/skills/',
51
+ }),
52
+ 'skip-settings': Flags.boolean({
53
+ description: 'Skip merging .claude/settings.json',
54
+ }),
55
+ json: Flags.boolean({
56
+ description: 'Output as JSON (matches plan §7.5 schema)',
57
+ }),
58
+ verbose: Flags.boolean({
59
+ char: 'v',
60
+ description: 'Show progress messages from the fetcher and merger',
61
+ }),
62
+ }; }
63
+ async run() {
64
+ const { flags } = await this.parse(InstallClaude);
65
+ const opts = mapFlagsToInstallOptions(flags, (msg) => {
66
+ if (flags.verbose && !flags.json)
67
+ this.log(msg);
68
+ });
69
+ const result = await installPack(opts);
70
+ if (flags.json) {
71
+ this.log(formatJson(result));
72
+ }
73
+ else {
74
+ this.log(formatPretty(result));
75
+ }
76
+ if (!result.ok)
77
+ this.exit(1);
78
+ }
79
+ }
80
+ /**
81
+ * Translate oclif flag bag → `installPack` options. Extracted so update:claude
82
+ * can reuse the shared install-style options (it adds its own on top).
83
+ */
84
+ export function mapFlagsToInstallOptions(flags, onProgress) {
85
+ return {
86
+ TargetDir: asString(flags.dir, '.'),
87
+ Major: asOptString(flags.major),
88
+ Ref: asOptString(flags.ref),
89
+ FromPath: asOptString(flags.from),
90
+ Offline: asBool(flags.offline),
91
+ DryRun: asBool(flags['dry-run']),
92
+ Force: asBool(flags.force),
93
+ SkipCommands: asBool(flags['skip-commands']),
94
+ SkipSkills: asBool(flags['skip-skills']),
95
+ SkipSettings: asBool(flags['skip-settings']),
96
+ OnProgress: onProgress,
97
+ };
98
+ }
99
+ function asString(v, fallback) {
100
+ return typeof v === 'string' && v.length > 0 ? v : fallback;
101
+ }
102
+ function asOptString(v) {
103
+ return typeof v === 'string' && v.length > 0 ? v : undefined;
104
+ }
105
+ function asBool(v) {
106
+ return v === true;
107
+ }
108
+ //# sourceMappingURL=claude.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../../src/commands/install/claude.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,7 @@ export default class Install extends Command {
16
16
  fast: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
17
17
  'overwrite-config': import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
18
18
  monorepo: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
19
+ 'no-claude-pack': import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
19
20
  };
20
21
  run(): Promise<void>;
21
22
  private runEngineInstall;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/install/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAe7C,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,OAAO;IAC1C,MAAM,CAAC,WAAW,SAAkD;IAEpE,MAAM,CAAC,QAAQ,WAKb;IAEF,MAAM,CAAC,KAAK;;;;;;;;;;;;;;MA8CV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;YAeZ,gBAAgB;IAmD9B,OAAO,CAAC,iBAAiB;YA0CX,iBAAiB;IA0C/B,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,YAAY;IA0CpB,OAAO,CAAC,cAAc;CAQvB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/install/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAe7C,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,OAAO;IAC1C,MAAM,CAAC,WAAW,SAAkD;IAEpE,MAAM,CAAC,QAAQ,WAKb;IAEF,MAAM,CAAC,KAAK;;;;;;;;;;;;;;;MAiDV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;YAeZ,gBAAgB;IAqD9B,OAAO,CAAC,iBAAiB;YA0CX,iBAAiB;IA0C/B,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,YAAY;IA0CpB,OAAO,CAAC,cAAc;CAQvB"}