prism-pr 1.0.0-alpha.60 → 1.0.0-alpha.63

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 (98) hide show
  1. package/dist/commands/guard/check.d.ts +5 -3
  2. package/dist/commands/guard/check.d.ts.map +1 -1
  3. package/dist/commands/guard/check.js +154 -34
  4. package/dist/commands/guard/check.js.map +1 -1
  5. package/dist/commands/rules/bootstrap.d.ts +27 -0
  6. package/dist/commands/rules/bootstrap.d.ts.map +1 -0
  7. package/dist/commands/rules/bootstrap.js +187 -0
  8. package/dist/commands/rules/bootstrap.js.map +1 -0
  9. package/dist/commands/rules/push.d.ts.map +1 -1
  10. package/dist/commands/rules/push.js +8 -2
  11. package/dist/commands/rules/push.js.map +1 -1
  12. package/dist/guard/guard-engine.d.ts.map +1 -1
  13. package/dist/guard/guard-engine.js +12 -8
  14. package/dist/guard/guard-engine.js.map +1 -1
  15. package/dist/guard/patterns-loader.d.ts +8 -2
  16. package/dist/guard/patterns-loader.d.ts.map +1 -1
  17. package/dist/guard/patterns-loader.js +17 -1
  18. package/dist/guard/patterns-loader.js.map +1 -1
  19. package/dist/guard/tech-detector.d.ts +30 -0
  20. package/dist/guard/tech-detector.d.ts.map +1 -0
  21. package/dist/guard/tech-detector.js +97 -0
  22. package/dist/guard/tech-detector.js.map +1 -0
  23. package/dist/guard/types.d.ts +7 -0
  24. package/dist/guard/types.d.ts.map +1 -1
  25. package/dist/rule-catalog/ag-grid/base.d.ts +3 -0
  26. package/dist/rule-catalog/ag-grid/base.d.ts.map +1 -0
  27. package/dist/rule-catalog/ag-grid/base.js +51 -0
  28. package/dist/rule-catalog/ag-grid/base.js.map +1 -0
  29. package/dist/rule-catalog/ag-grid/v32.d.ts +3 -0
  30. package/dist/rule-catalog/ag-grid/v32.d.ts.map +1 -0
  31. package/dist/rule-catalog/ag-grid/v32.js +51 -0
  32. package/dist/rule-catalog/ag-grid/v32.js.map +1 -0
  33. package/dist/rule-catalog/angular/base.d.ts +3 -0
  34. package/dist/rule-catalog/angular/base.d.ts.map +1 -0
  35. package/dist/rule-catalog/angular/base.js +65 -0
  36. package/dist/rule-catalog/angular/base.js.map +1 -0
  37. package/dist/rule-catalog/angular/v17.d.ts +3 -0
  38. package/dist/rule-catalog/angular/v17.d.ts.map +1 -0
  39. package/dist/rule-catalog/angular/v17.js +51 -0
  40. package/dist/rule-catalog/angular/v17.js.map +1 -0
  41. package/dist/rule-catalog/index.d.ts +16 -0
  42. package/dist/rule-catalog/index.d.ts.map +1 -0
  43. package/dist/rule-catalog/index.js +41 -0
  44. package/dist/rule-catalog/index.js.map +1 -0
  45. package/dist/rule-catalog/nestjs/base.d.ts +3 -0
  46. package/dist/rule-catalog/nestjs/base.d.ts.map +1 -0
  47. package/dist/rule-catalog/nestjs/base.js +51 -0
  48. package/dist/rule-catalog/nestjs/base.js.map +1 -0
  49. package/dist/rule-catalog/react/base.d.ts +3 -0
  50. package/dist/rule-catalog/react/base.d.ts.map +1 -0
  51. package/dist/rule-catalog/react/base.js +65 -0
  52. package/dist/rule-catalog/react/base.js.map +1 -0
  53. package/dist/rule-catalog/ruleset-mapper.d.ts +15 -0
  54. package/dist/rule-catalog/ruleset-mapper.d.ts.map +1 -0
  55. package/dist/rule-catalog/ruleset-mapper.js +57 -0
  56. package/dist/rule-catalog/ruleset-mapper.js.map +1 -0
  57. package/dist/rule-catalog/shared/general.d.ts +3 -0
  58. package/dist/rule-catalog/shared/general.d.ts.map +1 -0
  59. package/dist/rule-catalog/shared/general.js +65 -0
  60. package/dist/rule-catalog/shared/general.js.map +1 -0
  61. package/dist/rule-catalog/shared/security.d.ts +3 -0
  62. package/dist/rule-catalog/shared/security.d.ts.map +1 -0
  63. package/dist/rule-catalog/shared/security.js +93 -0
  64. package/dist/rule-catalog/shared/security.js.map +1 -0
  65. package/dist/rule-catalog/shared/typescript.d.ts +3 -0
  66. package/dist/rule-catalog/shared/typescript.d.ts.map +1 -0
  67. package/dist/rule-catalog/shared/typescript.js +65 -0
  68. package/dist/rule-catalog/shared/typescript.js.map +1 -0
  69. package/dist/rule-catalog/types.d.ts +27 -0
  70. package/dist/rule-catalog/types.d.ts.map +1 -0
  71. package/dist/rule-catalog/types.js +2 -0
  72. package/dist/rule-catalog/types.js.map +1 -0
  73. package/dist/rules-repo/manifest-resolver.d.ts +6 -0
  74. package/dist/rules-repo/manifest-resolver.d.ts.map +1 -0
  75. package/dist/rules-repo/manifest-resolver.js +43 -0
  76. package/dist/rules-repo/manifest-resolver.js.map +1 -0
  77. package/dist/rules-repo/manifest-types.d.ts +26 -0
  78. package/dist/rules-repo/manifest-types.d.ts.map +1 -0
  79. package/dist/rules-repo/manifest-types.js +2 -0
  80. package/dist/rules-repo/manifest-types.js.map +1 -0
  81. package/dist/rules-repo/rules-cache.d.ts +18 -0
  82. package/dist/rules-repo/rules-cache.d.ts.map +1 -1
  83. package/dist/rules-repo/rules-cache.js +77 -0
  84. package/dist/rules-repo/rules-cache.js.map +1 -1
  85. package/dist/rules-repo/rules-repo-client.d.ts +35 -0
  86. package/dist/rules-repo/rules-repo-client.d.ts.map +1 -1
  87. package/dist/rules-repo/rules-repo-client.js +128 -0
  88. package/dist/rules-repo/rules-repo-client.js.map +1 -1
  89. package/dist/rules-repo/types.d.ts +8 -0
  90. package/dist/rules-repo/types.d.ts.map +1 -1
  91. package/dist/rules-repo/types.js +14 -0
  92. package/dist/rules-repo/types.js.map +1 -1
  93. package/dist/utils/git-origin.d.ts +14 -0
  94. package/dist/utils/git-origin.d.ts.map +1 -0
  95. package/dist/utils/git-origin.js +43 -0
  96. package/dist/utils/git-origin.js.map +1 -0
  97. package/oclif.manifest.json +71 -9
  98. package/package.json +3 -3
@@ -3,9 +3,9 @@ export default class GuardCheck extends Command {
3
3
  static description: string;
4
4
  static examples: string[];
5
5
  static flags: {
6
- workspace: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
7
- repo: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
8
- pr: import("@oclif/core/interfaces").OptionFlag<number, import("@oclif/core/interfaces").CustomOptions>;
6
+ workspace: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
7
+ repo: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
8
+ pr: import("@oclif/core/interfaces").OptionFlag<number | undefined, import("@oclif/core/interfaces").CustomOptions>;
9
9
  patterns: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
10
10
  'min-severity': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
11
11
  json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
@@ -14,6 +14,8 @@ export default class GuardCheck extends Command {
14
14
  'skip-ast': import("@oclif/core/interfaces").BooleanFlag<boolean>;
15
15
  };
16
16
  run(): Promise<void>;
17
+ /** Prompt the user to pick an open PR from the list. */
18
+ private pickPullRequest;
17
19
  private printStyledOutput;
18
20
  }
19
21
  //# sourceMappingURL=check.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../../src/commands/guard/check.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AA2C7C,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,OAAO;IAC7C,MAAM,CAAC,WAAW,SAA2D;IAE7E,MAAM,CAAC,QAAQ,WAIb;IAEF,MAAM,CAAC,KAAK;;;;;;;;;;MAuCV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IA+F1B,OAAO,CAAC,iBAAiB;CAiE1B"}
1
+ {"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../../src/commands/guard/check.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAgD7C,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,OAAO;IAC7C,MAAM,CAAC,WAAW,SAA2D;IAE7E,MAAM,CAAC,QAAQ,WAKb;IAEF,MAAM,CAAC,KAAK;;;;;;;;;;MAoCV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAoL1B,wDAAwD;YAC1C,eAAe;IA6C7B,OAAO,CAAC,iBAAiB;CAiE1B"}
@@ -6,6 +6,10 @@ import { DEFAULT_PATTERNS_PATH } from '../../guard/patterns-loader.js';
6
6
  import { FINDING_SEVERITIES } from '../../types/review-finding.js';
7
7
  import { RulesCache } from '../../rules-repo/rules-cache.js';
8
8
  import { RulesRepoClient } from '../../rules-repo/rules-repo-client.js';
9
+ import { detectGitOrigin } from '../../utils/git-origin.js';
10
+ import { resolveManifest } from '../../rules-repo/manifest-resolver.js';
11
+ import { existsSync } from 'node:fs';
12
+ import { createInterface } from 'node:readline';
9
13
  // ── Terminal colors (ANSI) ──────────────────────────────────
10
14
  const USE_COLOR = process.stdout.isTTY !== false;
11
15
  const a = (code, text) => USE_COLOR ? `\x1b[${code}m${text}\x1b[0m` : text;
@@ -41,22 +45,20 @@ export default class GuardCheck extends Command {
41
45
  '$ prism guard check --workspace acme --repo my-repo --pr 42',
42
46
  '$ prism guard check --workspace acme --repo my-repo --pr 42 --min-severity high',
43
47
  '$ prism guard check --workspace acme --repo my-repo --pr 42 --json',
48
+ '$ prism guard check --pr 42 # auto-detects workspace/repo from git origin',
44
49
  ];
45
50
  static flags = {
46
51
  workspace: Flags.string({
47
52
  char: 'w',
48
- description: 'Bitbucket workspace slug',
49
- required: true,
53
+ description: 'Bitbucket workspace slug (auto-detected from git origin if omitted)',
50
54
  }),
51
55
  repo: Flags.string({
52
56
  char: 'r',
53
- description: 'Repository slug',
54
- required: true,
57
+ description: 'Repository slug (auto-detected from git origin if omitted)',
55
58
  }),
56
59
  pr: Flags.integer({
57
60
  char: 'p',
58
- description: 'Pull request ID',
59
- required: true,
61
+ description: 'Pull request ID (interactive picker if omitted in TTY)',
60
62
  }),
61
63
  patterns: Flags.string({
62
64
  description: 'Path to patterns file',
@@ -74,7 +76,7 @@ export default class GuardCheck extends Command {
74
76
  default: false,
75
77
  }),
76
78
  remote: Flags.boolean({
77
- description: 'Fetch patterns from remote rules repository',
79
+ description: 'Fetch patterns from remote rules repository (deprecated: use manifest)',
78
80
  default: false,
79
81
  }),
80
82
  'skip-ast': Flags.boolean({
@@ -93,6 +95,22 @@ export default class GuardCheck extends Command {
93
95
  }
94
96
  minSeverity = flags['min-severity'];
95
97
  }
98
+ // ── T11.1: Auto-detect workspace/repo from git origin if not provided ──
99
+ let workspace = flags.workspace;
100
+ let repo = flags.repo;
101
+ if (!workspace || !repo) {
102
+ if (workspace || repo) {
103
+ this.error('Both --workspace and --repo must be provided together.');
104
+ return;
105
+ }
106
+ const origin = await detectGitOrigin();
107
+ if (!origin) {
108
+ this.error('Could not detect git origin. Use --workspace and --repo flags.');
109
+ return;
110
+ }
111
+ workspace = origin.workspace;
112
+ repo = origin.repo;
113
+ }
96
114
  // Load credentials
97
115
  const credentialManager = new CredentialManager();
98
116
  const creds = await credentialManager.load();
@@ -101,14 +119,23 @@ export default class GuardCheck extends Command {
101
119
  this.exit(1);
102
120
  return;
103
121
  }
104
- if (flags.verbose) {
105
- process.stdout.write(`Fetching diff for ${flags.workspace}/${flags.repo} PR #${flags.pr}...\n`);
106
- }
107
122
  // Fetch diff
108
123
  const bbClient = new BitbucketClient(creds.username, creds.password);
124
+ // ── T11.2: PR Picker — prompt if --pr not provided ─────────────────────
125
+ let prId = flags.pr;
126
+ if (prId === undefined) {
127
+ if (!process.stdin.isTTY) {
128
+ this.error('--pr flag is required in non-interactive mode.');
129
+ return;
130
+ }
131
+ prId = await this.pickPullRequest(bbClient, workspace, repo);
132
+ }
133
+ if (flags.verbose) {
134
+ process.stdout.write(`Fetching diff for ${workspace}/${repo} PR #${prId}...\n`);
135
+ }
109
136
  let rawDiff;
110
137
  try {
111
- rawDiff = await bbClient.getPullRequestDiff(flags.workspace, flags.repo, flags.pr);
138
+ rawDiff = await bbClient.getPullRequestDiff(workspace, repo, prId);
112
139
  }
113
140
  catch (err) {
114
141
  const msg = err instanceof Error ? err.message : String(err);
@@ -117,38 +144,92 @@ export default class GuardCheck extends Command {
117
144
  return;
118
145
  }
119
146
  // Use commit hash for file fetching — branch names with '/' break the src API
120
- const pr = flags['skip-ast'] ? null : await bbClient.getPullRequest(flags.workspace, flags.repo, flags.pr);
147
+ const pr = flags['skip-ast'] ? null : await bbClient.getPullRequest(workspace, repo, prId);
121
148
  const sourceRef = pr?.sourceHash || pr?.sourceBranch || 'main';
122
149
  const fileContentFetcher = flags['skip-ast']
123
150
  ? undefined
124
- : async (filePath) => bbClient.getFileContent(flags.workspace, flags.repo, sourceRef, filePath);
125
- // Build remote rules client if --remote
126
- let rulesRepoClient;
127
- if (flags.remote) {
128
- const cache = new RulesCache();
129
- rulesRepoClient = new RulesRepoClient(bbClient, {
130
- rulesWorkspace: 'walzate1',
131
- rulesRepo: 'prism-rules',
132
- }, cache);
133
- }
151
+ : async (filePath) => bbClient.getFileContent(workspace, repo, sourceRef, filePath);
152
+ // ── T11.2: Manifest Resolution ──────────────────────────────────────────
153
+ // Priority:
154
+ // 1. --patterns flag explicitly set → use local file (bypass manifest)
155
+ // 2. Otherwise try fetchManifest(workspace, repo)
156
+ // 2a. Manifest found resolveManifest → pass resolvedPatterns to runGuard
157
+ // 2b. Manifest NOT found:
158
+ // - If --remote flag → use old fetchPatterns path (backward compat)
159
+ // - Else if local .prism-patterns.json exists → use it
160
+ // - Else → error "No manifest found. Run 'prism rules bootstrap' first."
161
+ // Always create the rulesRepoClient (needed for manifest AND --remote path)
162
+ const cache = new RulesCache();
163
+ const rulesRepoClient = new RulesRepoClient(bbClient, {
164
+ rulesWorkspace: 'walzate1',
165
+ rulesRepo: 'prism-rules',
166
+ }, cache);
167
+ // Check if --patterns was explicitly set to a non-default path.
168
+ // When the user passes a custom --patterns value, bypass manifest entirely.
169
+ const patternsFlagExplicit = flags.patterns !== DEFAULT_PATTERNS_PATH;
134
170
  if (flags.verbose) {
135
171
  process.stdout.write(`Running guard against patterns at ${flags.patterns}...\n`);
136
172
  }
137
173
  // Run guard
138
174
  let result;
139
175
  try {
140
- result = await runGuard({
141
- rawDiff,
142
- ...(flags.remote ? {} : { patternsPath: flags.patterns }),
143
- ...(minSeverity !== undefined ? { minSeverity } : {}),
144
- ...(flags.remote
145
- ? {
146
- remoteRules: { workspace: flags.workspace, repo: flags.repo },
147
- ...(rulesRepoClient !== undefined ? { rulesRepoClient } : {}),
176
+ if (!patternsFlagExplicit && !flags.remote) {
177
+ // Try manifest path first
178
+ const manifest = await rulesRepoClient.fetchManifest(workspace, repo);
179
+ if (manifest !== null) {
180
+ // Manifest found — resolve it and pass to runGuard
181
+ const fetcher = (rulesetId) => {
182
+ const r = rulesRepoClient.fetchRuleset(rulesetId);
183
+ return r.then(rs => {
184
+ if (rs === null)
185
+ throw new Error(`Ruleset ${rulesetId} not found`);
186
+ return rs;
187
+ });
188
+ };
189
+ const resolved = await resolveManifest(manifest, fetcher);
190
+ result = await runGuard({
191
+ rawDiff,
192
+ resolvedPatterns: resolved.patterns,
193
+ ...(minSeverity !== undefined ? { minSeverity } : {}),
194
+ ...(fileContentFetcher !== undefined ? { fileContentFetcher } : {}),
195
+ });
196
+ }
197
+ else {
198
+ // No manifest found
199
+ if (existsSync(flags.patterns)) {
200
+ // Local patterns file exists — use it
201
+ result = await runGuard({
202
+ rawDiff,
203
+ patternsPath: flags.patterns,
204
+ ...(minSeverity !== undefined ? { minSeverity } : {}),
205
+ ...(fileContentFetcher !== undefined ? { fileContentFetcher } : {}),
206
+ });
148
207
  }
149
- : {}),
150
- ...(fileContentFetcher !== undefined ? { fileContentFetcher } : {}),
151
- });
208
+ else {
209
+ this.error(`No manifest found for ${workspace}/${repo}. Run 'prism rules bootstrap' first, or use --patterns to specify a local file.`);
210
+ return;
211
+ }
212
+ }
213
+ }
214
+ else if (flags.remote) {
215
+ // --remote flag → old fetchPatterns path (backward compat)
216
+ result = await runGuard({
217
+ rawDiff,
218
+ ...(minSeverity !== undefined ? { minSeverity } : {}),
219
+ remoteRules: { workspace, repo },
220
+ rulesRepoClient,
221
+ ...(fileContentFetcher !== undefined ? { fileContentFetcher } : {}),
222
+ });
223
+ }
224
+ else {
225
+ // --patterns explicitly set → use local file directly (bypasses manifest)
226
+ result = await runGuard({
227
+ rawDiff,
228
+ patternsPath: flags.patterns,
229
+ ...(minSeverity !== undefined ? { minSeverity } : {}),
230
+ ...(fileContentFetcher !== undefined ? { fileContentFetcher } : {}),
231
+ });
232
+ }
152
233
  }
153
234
  catch (err) {
154
235
  const msg = err instanceof Error ? err.message : String(err);
@@ -161,13 +242,52 @@ export default class GuardCheck extends Command {
161
242
  process.stdout.write(JSON.stringify(result, null, 2) + '\n');
162
243
  }
163
244
  else {
164
- this.printStyledOutput(flags, result);
245
+ this.printStyledOutput({ workspace, repo, pr: prId, verbose: flags.verbose }, result);
165
246
  }
166
247
  // Exit code: 1 if matches found, 0 if clean
167
248
  if (result.matches.length > 0) {
168
249
  this.exit(1);
169
250
  }
170
251
  }
252
+ /** Prompt the user to pick an open PR from the list. */
253
+ async pickPullRequest(bbClient, workspace, repo) {
254
+ let prs;
255
+ try {
256
+ prs = await bbClient.listPullRequests(workspace, repo);
257
+ }
258
+ catch (err) {
259
+ const msg = err instanceof Error ? err.message : String(err);
260
+ this.error(`Failed to list pull requests: ${msg}`);
261
+ }
262
+ if (prs.length === 0) {
263
+ this.error('No open pull requests found.');
264
+ }
265
+ process.stderr.write('\nOpen pull requests:\n');
266
+ for (let i = 0; i < prs.length; i++) {
267
+ const pr = prs[i];
268
+ if (!pr)
269
+ continue;
270
+ process.stderr.write(` ${i + 1}. PR #${pr.id} — ${pr.title} (${pr.sourceBranch} → ${pr.targetBranch})\n`);
271
+ }
272
+ process.stderr.write('\n');
273
+ const rl = createInterface({ input: process.stdin, output: process.stderr });
274
+ return new Promise((resolve, reject) => {
275
+ rl.question('Select a PR (number): ', (answer) => {
276
+ rl.close();
277
+ const idx = parseInt(answer.trim(), 10);
278
+ if (isNaN(idx) || idx < 1 || idx > prs.length) {
279
+ reject(new Error(`Invalid selection: ${answer}`));
280
+ return;
281
+ }
282
+ const selected = prs[idx - 1];
283
+ if (!selected) {
284
+ reject(new Error(`Invalid selection: ${answer}`));
285
+ return;
286
+ }
287
+ resolve(selected.id);
288
+ });
289
+ });
290
+ }
171
291
  printStyledOutput(flags, result) {
172
292
  const w = process.stdout.columns || 80;
173
293
  const line = dim('─'.repeat(Math.min(w - 4, 70)));
@@ -1 +1 @@
1
- {"version":3,"file":"check.js","sourceRoot":"","sources":["../../../src/commands/guard/check.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"check.js","sourceRoot":"","sources":["../../../src/commands/guard/check.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import { Command } from '@oclif/core';
2
+ import type { BitbucketClient as BitbucketClientType } from '../../bitbucket/client.js';
3
+ import type { RulesRepoClient as RulesRepoClientType } from '../../rules-repo/rules-repo-client.js';
4
+ import type { BootstrapResult } from '../../guard/tech-detector.js';
5
+ export interface BootstrapOptions {
6
+ workspace: string;
7
+ repo: string;
8
+ branch: string;
9
+ dryRun: boolean;
10
+ bbClient: BitbucketClientType;
11
+ rulesRepoClient: RulesRepoClientType;
12
+ }
13
+ export declare function runBootstrap(options: BootstrapOptions): Promise<BootstrapResult>;
14
+ export default class RulesBootstrap extends Command {
15
+ static description: string;
16
+ static examples: string[];
17
+ static flags: {
18
+ workspace: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
19
+ repo: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
20
+ branch: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
21
+ 'dry-run': import("@oclif/core/interfaces").BooleanFlag<boolean>;
22
+ json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
23
+ };
24
+ run(): Promise<void>;
25
+ private printResult;
26
+ }
27
+ //# sourceMappingURL=bootstrap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../../src/commands/rules/bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAS7C,OAAO,KAAK,EAAE,eAAe,IAAI,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACxF,OAAO,KAAK,EAAE,eAAe,IAAI,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AACpG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAKpE,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,eAAe,EAAE,mBAAmB,CAAC;CACtC;AAID,wBAAsB,YAAY,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,CAqEtF;AAID,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,OAAO;IACjD,MAAM,CAAC,WAAW,SAA4E;IAE9F,MAAM,CAAC,QAAQ,WAIb;IAEF,MAAM,CAAC,KAAK;;;;;;MAsBV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAiE1B,OAAO,CAAC,WAAW;CAqCpB"}
@@ -0,0 +1,187 @@
1
+ import { Command, Flags } from '@oclif/core';
2
+ import { CredentialManager } from '../../config/credentials.js';
3
+ import { BitbucketClient } from '../../bitbucket/client.js';
4
+ import { RulesCache } from '../../rules-repo/rules-cache.js';
5
+ import { RulesRepoClient } from '../../rules-repo/rules-repo-client.js';
6
+ import { detectTechStack, toDetectedStack } from '../../guard/tech-detector.js';
7
+ import { mapStackToRulesets } from '../../rule-catalog/ruleset-mapper.js';
8
+ import { getRuleset } from '../../rule-catalog/index.js';
9
+ import { detectGitOrigin } from '../../utils/git-origin.js';
10
+ // ── Core logic (exported for testability) ────────────────────────────────────
11
+ export async function runBootstrap(options) {
12
+ const { workspace, repo, branch, dryRun, bbClient, rulesRepoClient } = options;
13
+ // 1. Detect tech stack
14
+ const techResult = await detectTechStack(bbClient, workspace, repo, branch);
15
+ // 2. Convert to DetectedStack format
16
+ const stack = toDetectedStack(techResult);
17
+ // 3. Map to ruleset IDs
18
+ const rulesetIds = mapStackToRulesets(stack);
19
+ // 4. Count total patterns across all rulesets
20
+ let patternsCount = 0;
21
+ for (const id of rulesetIds) {
22
+ const ruleset = getRuleset(id);
23
+ if (ruleset !== undefined) {
24
+ patternsCount += ruleset.patterns.length;
25
+ }
26
+ }
27
+ // 5. Build ProjectManifest
28
+ const manifest = {
29
+ version: 3,
30
+ generatedAt: new Date().toISOString(),
31
+ stack,
32
+ includes: rulesetIds,
33
+ excludes: [],
34
+ patterns: [],
35
+ };
36
+ // 6. Push if not dry run
37
+ let pushedManifest = false;
38
+ const pushedRulesets = [];
39
+ if (!dryRun) {
40
+ await rulesRepoClient.pushManifest(workspace, repo, manifest);
41
+ pushedManifest = true;
42
+ for (const id of rulesetIds) {
43
+ const builtin = getRuleset(id);
44
+ if (builtin === undefined)
45
+ continue;
46
+ // BuiltinRulesetPattern extends PrismPattern — compatible cast
47
+ const definition = {
48
+ id: builtin.id,
49
+ name: builtin.name,
50
+ description: builtin.description,
51
+ tags: builtin.tags,
52
+ patterns: builtin.patterns,
53
+ };
54
+ const pushed = await rulesRepoClient.pushRuleset(id, definition);
55
+ if (pushed) {
56
+ pushedRulesets.push(id);
57
+ }
58
+ }
59
+ }
60
+ return {
61
+ workspace,
62
+ repo,
63
+ detectionResult: techResult,
64
+ rulesetIds,
65
+ manifest,
66
+ patternsCount,
67
+ pushedManifest,
68
+ pushedRulesets,
69
+ };
70
+ }
71
+ // ── Command class ─────────────────────────────────────────────────────────────
72
+ export default class RulesBootstrap extends Command {
73
+ static description = 'Bootstrap rules manifest for a repository based on detected tech stack';
74
+ static examples = [
75
+ '$ prism rules bootstrap --workspace acme --repo my-repo',
76
+ '$ prism rules bootstrap --dry-run',
77
+ '$ prism rules bootstrap --workspace acme --repo my-repo --json',
78
+ ];
79
+ static flags = {
80
+ workspace: Flags.string({
81
+ char: 'w',
82
+ description: 'Bitbucket workspace',
83
+ }),
84
+ repo: Flags.string({
85
+ char: 'r',
86
+ description: 'Repository slug',
87
+ }),
88
+ branch: Flags.string({
89
+ char: 'b',
90
+ default: 'main',
91
+ description: 'Branch to analyze',
92
+ }),
93
+ 'dry-run': Flags.boolean({
94
+ default: false,
95
+ description: 'Preview without pushing',
96
+ }),
97
+ json: Flags.boolean({
98
+ default: false,
99
+ description: 'Output as JSON',
100
+ }),
101
+ };
102
+ async run() {
103
+ const { flags } = await this.parse(RulesBootstrap);
104
+ // 1. Resolve workspace / repo (flags or git origin)
105
+ let workspace = flags.workspace;
106
+ let repo = flags.repo;
107
+ if (workspace === undefined || repo === undefined) {
108
+ const origin = await detectGitOrigin();
109
+ if (origin === null) {
110
+ process.stderr.write('✗ Could not detect Bitbucket repository from git origin.\n' +
111
+ ' Provide --workspace and --repo explicitly.\n');
112
+ this.exit(1);
113
+ return;
114
+ }
115
+ workspace = workspace ?? origin.workspace;
116
+ repo = repo ?? origin.repo;
117
+ }
118
+ // 2. Load credentials
119
+ const credentialManager = new CredentialManager();
120
+ const creds = await credentialManager.load();
121
+ if (!creds) {
122
+ process.stderr.write('No credentials found. Run `prism login` first.\n');
123
+ this.exit(1);
124
+ return;
125
+ }
126
+ // 3. Create clients
127
+ const bbClient = new BitbucketClient(creds.username, creds.password);
128
+ const cache = new RulesCache();
129
+ const rulesRepoClient = new RulesRepoClient(bbClient, {
130
+ rulesWorkspace: 'walzate1',
131
+ rulesRepo: 'prism-rules',
132
+ }, cache);
133
+ // 4. Run bootstrap
134
+ let result;
135
+ try {
136
+ result = await runBootstrap({
137
+ workspace,
138
+ repo,
139
+ branch: flags.branch,
140
+ dryRun: flags['dry-run'],
141
+ bbClient,
142
+ rulesRepoClient,
143
+ });
144
+ }
145
+ catch (err) {
146
+ const msg = err instanceof Error ? err.message : String(err);
147
+ process.stderr.write(`✗ ${msg}\n`);
148
+ this.exit(1);
149
+ return;
150
+ }
151
+ // 5. Output
152
+ if (flags.json) {
153
+ process.stdout.write(JSON.stringify(result, null, 2) + '\n');
154
+ return;
155
+ }
156
+ this.printResult(result, flags['dry-run']);
157
+ }
158
+ printResult(result, dryRun) {
159
+ const { workspace, repo, detectionResult, rulesetIds, patternsCount, manifest } = result;
160
+ const dryRunNote = dryRun ? ' (dry run — no changes pushed)' : '';
161
+ process.stdout.write(`\n Bootstrap: ${workspace}/${repo}${dryRunNote}\n`);
162
+ process.stdout.write(` Branch: ${manifest.stack.detectedAt ? 'main' : 'main'}\n\n`);
163
+ process.stdout.write(` Detected Stack:\n`);
164
+ if (detectionResult.languages.length > 0) {
165
+ process.stdout.write(` Languages: ${detectionResult.languages.join(', ')}\n`);
166
+ }
167
+ if (detectionResult.frameworks.length > 0) {
168
+ const fwList = detectionResult.frameworks
169
+ .map((f) => `${f.name}@${f.version}`)
170
+ .join(', ');
171
+ process.stdout.write(` Frameworks: ${fwList}\n`);
172
+ }
173
+ process.stdout.write(`\n Rulesets (${rulesetIds.length}):\n`);
174
+ for (const id of rulesetIds) {
175
+ const ruleset = getRuleset(id);
176
+ const count = ruleset?.patterns.length ?? 0;
177
+ const padded = id.padEnd(25);
178
+ process.stdout.write(` ✓ ${padded} (${count} patterns)\n`);
179
+ }
180
+ process.stdout.write(`\n Total: ${patternsCount} patterns\n`);
181
+ if (!dryRun) {
182
+ process.stdout.write(` Manifest pushed to prism-rules/projects/${workspace}/${repo}.json\n`);
183
+ }
184
+ process.stdout.write('\n');
185
+ }
186
+ }
187
+ //# sourceMappingURL=bootstrap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../../src/commands/rules/bootstrap.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../../src/commands/rules/push.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAQ7C,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,OAAO;IAC5C,MAAM,CAAC,WAAW,SAA6D;IAE/E,MAAM,CAAC,QAAQ,WAEb;IAEF,MAAM,CAAC,KAAK;;;;;MAmBV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA4C3B"}
1
+ {"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../../src/commands/rules/push.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAQ7C,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,OAAO;IAC5C,MAAM,CAAC,WAAW,SAA6D;IAE/E,MAAM,CAAC,QAAQ,WAEb;IAEF,MAAM,CAAC,KAAK;;;;;MAmBV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAkD3B"}
@@ -1,7 +1,7 @@
1
1
  import { Command, Flags } from '@oclif/core';
2
2
  import { CredentialManager } from '../../config/credentials.js';
3
3
  import { BitbucketClient } from '../../bitbucket/client.js';
4
- import { loadPatterns, DEFAULT_PATTERNS_PATH } from '../../guard/patterns-loader.js';
4
+ import { loadPatterns, isManifestFile, DEFAULT_PATTERNS_PATH } from '../../guard/patterns-loader.js';
5
5
  import { RulesCache } from '../../rules-repo/rules-cache.js';
6
6
  import { RulesRepoClient } from '../../rules-repo/rules-repo-client.js';
7
7
  import { RulesRepoError } from '../../rules-repo/types.js';
@@ -43,7 +43,13 @@ export default class RulesPush extends Command {
43
43
  // 2. Load patterns file
44
44
  let patternsFile;
45
45
  try {
46
- patternsFile = await loadPatterns(flags.patterns);
46
+ const loaded = await loadPatterns(flags.patterns);
47
+ if (isManifestFile(loaded)) {
48
+ process.stderr.write('✗ Cannot push a v3 manifest file. Use a v1 or v2 patterns file.\n');
49
+ this.exit(1);
50
+ return;
51
+ }
52
+ patternsFile = loaded;
47
53
  }
48
54
  catch (err) {
49
55
  const msg = err instanceof Error ? err.message : String(err);
@@ -1 +1 @@
1
- {"version":3,"file":"push.js","sourceRoot":"","sources":["../../../src/commands/rules/push.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACrF,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3D,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,OAAO;IAC5C,MAAM,CAAC,WAAW,GAAG,yDAAyD,CAAC;IAE/E,MAAM,CAAC,QAAQ,GAAG;QAChB,oDAAoD;KACrD,CAAC;IAEF,MAAM,CAAC,KAAK,GAAG;QACb,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC;YACtB,IAAI,EAAE,GAAG;YACT,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,0BAA0B;SACxC,CAAC;QACF,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,GAAG;YACT,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,iBAAiB;SAC/B,CAAC;QACF,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC;YACrB,WAAW,EAAE,uBAAuB;YACpC,OAAO,EAAE,qBAAqB;SAC/B,CAAC;QACF,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC;YACrB,WAAW,EAAE,uBAAuB;YACpC,OAAO,EAAE,KAAK;SACf,CAAC;KACH,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAE9C,sBAAsB;QACtB,MAAM,iBAAiB,GAAG,IAAI,iBAAiB,EAAE,CAAC;QAClD,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,IAAI,EAAE,CAAC;QAC7C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;YACzE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACb,OAAO;QACT,CAAC;QAED,wBAAwB;QACxB,IAAI,YAAY,CAAC;QACjB,IAAI,CAAC;YACH,YAAY,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACpD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;YACnC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACb,OAAO;QACT,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAClB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,YAAY,CAAC,QAAQ,CAAC,MAAM,iBAAiB,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,IAAI,OAAO,CAAC,CAAC;QACrH,CAAC;QAED,oBAAoB;QACpB,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QACrE,MAAM,KAAK,GAAG,IAAI,UAAU,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,QAAQ,EAAE;YAC3C,cAAc,EAAE,UAAU;YAC1B,SAAS,EAAE,aAAa;SACzB,EAAE,KAAK,CAAC,CAAC;QAEV,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;YACrE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,YAAY,CAAC,QAAQ,CAAC,MAAM,iBAAiB,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,IAAI,0BAA0B,CAAC,CAAC;QACzI,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,GAAG,YAAY,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAC7G,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;YACnC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACf,CAAC;IACH,CAAC"}
1
+ {"version":3,"file":"push.js","sourceRoot":"","sources":["../../../src/commands/rules/push.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"guard-engine.d.ts","sourceRoot":"","sources":["../../src/guard/guard-engine.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAgB,MAAM,YAAY,CAAC;AAExE;;;;GAIG;AACH,wBAAsB,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,CAmEtE"}
1
+ {"version":3,"file":"guard-engine.d.ts","sourceRoot":"","sources":["../../src/guard/guard-engine.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAgB,MAAM,YAAY,CAAC;AAExE;;;;GAIG;AACH,wBAAsB,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,CAwEtE"}