@fyuld/snitch 2.3.6 → 2.3.8

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.
@@ -1 +1 @@
1
- {"version":3,"file":"enforcement-software.d.ts","sourceRoot":"","sources":["../../src/utils/enforcement-software.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAA;AAQlE,wBAAsB,oBAAoB,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAgCjF"}
1
+ {"version":3,"file":"enforcement-software.d.ts","sourceRoot":"","sources":["../../src/utils/enforcement-software.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAA;AAclE,wBAAsB,oBAAoB,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA4CjF"}
@@ -40,25 +40,37 @@ const child_process_1 = require("child_process");
40
40
  const https = __importStar(require("https"));
41
41
  const json_merge_1 = require("./json-merge");
42
42
  async function setupThirdPartyTools(tools) {
43
- const createdFiles = new Set();
44
- const allSideEffects = [];
43
+ // Phase 1: Download and prepare all configs (no file creation yet)
44
+ const preparedTools = [];
45
+ const seenFilenames = new Set();
45
46
  for (const tool of tools) {
46
47
  const { configFilename, configuration, sideEffects, title } = tool;
47
- const configObject = await resolveConfiguration(configuration);
48
- const configContent = formatConfigContent(configObject, configFilename, title);
49
- if (createdFiles.has(configFilename)) {
48
+ // Check for duplicate filenames
49
+ if (seenFilenames.has(configFilename)) {
50
50
  throw new Error(`Duplicate config filename detected: ${configFilename}. Multiple tools are trying to create the same file.`);
51
51
  }
52
- fs.writeFileSync(path.resolve(configFilename), configContent, 'utf-8');
53
- createdFiles.add(configFilename);
54
- console.log(`Created ${configFilename}`);
55
- if (sideEffects) {
56
- allSideEffects.push(sideEffects);
57
- }
52
+ seenFilenames.add(configFilename);
53
+ // Download and format config
54
+ const configObject = await resolveConfiguration(configuration);
55
+ const configContent = formatConfigContent(configObject, configFilename, title);
56
+ preparedTools.push({
57
+ configFilename,
58
+ configContent,
59
+ sideEffects,
60
+ });
58
61
  }
59
- for (const sideEffects of allSideEffects) {
60
- applySideEffects(sideEffects);
62
+ // Phase 2: All validations passed, now create files
63
+ for (const prepared of preparedTools) {
64
+ fs.writeFileSync(path.resolve(prepared.configFilename), prepared.configContent, 'utf-8');
65
+ console.log(`Created ${prepared.configFilename}`);
66
+ }
67
+ // Phase 3: Apply side effects to package.json
68
+ for (const prepared of preparedTools) {
69
+ if (prepared.sideEffects) {
70
+ applySideEffects(prepared.sideEffects);
71
+ }
61
72
  }
73
+ // Phase 4: Run npm install
62
74
  console.log('Running npm install to install packages from package.json...');
63
75
  (0, child_process_1.execSync)('npm install', { stdio: 'inherit' });
64
76
  console.log('Installed all packages');
@@ -89,10 +101,11 @@ async function resolveConfiguration(source) {
89
101
  }
90
102
  function formatConfigContent(content, filename, toolTitle) {
91
103
  const ext = path.extname(filename);
104
+ const basename = path.basename(filename);
92
105
  if (ext === '.js') {
93
106
  return `module.exports = ${JSON.stringify(content, null, 2)}\n`;
94
107
  }
95
- if (ext === '.json' || ext === '.prettierrc') {
108
+ if (ext === '.json' || basename === '.prettierrc') {
96
109
  return JSON.stringify(content, null, 2);
97
110
  }
98
111
  throw new Error(`Unsupported config file extension for tool "${toolTitle}": filename="${filename}", extension="${ext}". Only .js and .json extensions are supported.`);
@@ -1 +1 @@
1
- {"version":3,"file":"enforcement-software.js","sourceRoot":"","sources":["../../src/utils/enforcement-software.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,oDAgCC;AAtCD,uCAAwB;AACxB,2CAA4B;AAC5B,iDAAwC;AACxC,6CAA8B;AAC9B,6CAAwC;AAEjC,KAAK,UAAU,oBAAoB,CAAC,KAAuB;IAChE,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAA;IACtC,MAAM,cAAc,GAAa,EAAE,CAAA;IAEnC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,IAAI,CAAA;QAElE,MAAM,YAAY,GAAG,MAAM,oBAAoB,CAAC,aAAa,CAAC,CAAA;QAC9D,MAAM,aAAa,GAAG,mBAAmB,CAAC,YAAY,EAAE,cAAc,EAAE,KAAK,CAAC,CAAA;QAE9E,IAAI,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CACb,uCAAuC,cAAc,sDAAsD,CAC5G,CAAA;QACH,CAAC;QAED,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,CAAA;QACtE,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;QAChC,OAAO,CAAC,GAAG,CAAC,WAAW,cAAc,EAAE,CAAC,CAAA;QAExC,IAAI,WAAW,EAAE,CAAC;YAChB,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QAClC,CAAC;IACH,CAAC;IAED,KAAK,MAAM,WAAW,IAAI,cAAc,EAAE,CAAC;QACzC,gBAAgB,CAAC,WAA0C,CAAC,CAAA;IAC9D,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,8DAA8D,CAAC,CAAA;IAC3E,IAAA,wBAAQ,EAAC,aAAa,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;IAC7C,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAA;AACvC,CAAC;AAED,KAAK,UAAU,oBAAoB,CAAC,MAAoB;IACtD,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAO,MAAM,CAAA;IACf,CAAC;IAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,KAAK;aACF,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE;YACnB,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;gBAC3B,MAAM,CAAC,IAAI,KAAK,CAAC,mCAAmC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAA;gBACtE,OAAM;YACR,CAAC;YACD,IAAI,IAAI,GAAG,EAAE,CAAA;YACb,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;gBACvB,IAAI,IAAI,KAAK,CAAA;YACf,CAAC,CAAC,CAAA;YACF,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;gBACjB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA;YAC3B,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC;aACD,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACnB,MAAM,CAAC,IAAI,KAAK,CAAC,8BAA8B,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;QAChE,CAAC,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAe,EAAE,QAAgB,EAAE,SAAiB;IAC/E,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IAElC,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;QAClB,OAAO,oBAAoB,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAA;IACjE,CAAC;IAED,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,aAAa,EAAE,CAAC;QAC7C,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;IACzC,CAAC;IAED,MAAM,IAAI,KAAK,CACb,+CAA+C,SAAS,gBAAgB,QAAQ,iBAAiB,GAAG,iDAAiD,CACtJ,CAAA;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,WAAwC;IAChE,IAAI,WAAW,CAAC,cAAc,CAAC,EAAE,CAAC;QAChC,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;QACpD,MAAM,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAA;QAChF,MAAM,iBAAiB,GAAG,IAAA,sBAAS,EAAC,kBAAkB,EAAE,WAAW,CAAC,cAAc,CAAC,CAAC,CAAA;QACpF,EAAE,CAAC,aAAa,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;QACtF,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAA;IACvD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"enforcement-software.js","sourceRoot":"","sources":["../../src/utils/enforcement-software.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fyuld/snitch",
3
- "version": "2.3.6",
3
+ "version": "2.3.8",
4
4
  "description": "Snitch",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",