@pixpilot/scaffoldfy-configs 0.20.2 → 0.22.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # @pixpilot/scaffoldfy-configs
2
2
 
3
+ ## 0.22.0
4
+
5
+ ### Minor Changes
6
+
7
+ - add support for conditional variables in package generation
8
+
9
+ ## 0.21.0
10
+
11
+ ### Minor Changes
12
+
13
+ - add packageOrgName variable for package naming
14
+
15
+ ### Patch Changes
16
+
17
+ - update stdio configuration for output capturing
18
+
3
19
  ## 0.20.2
4
20
 
5
21
  ### Patch Changes
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@pixpilot/scaffoldfy-configs",
3
3
  "type": "module",
4
- "version": "0.20.2",
4
+ "version": "0.22.0",
5
5
  "author": "PixPilot <m.doaie@hotmail.com>",
6
6
  "license": "MIT",
7
7
  "repository": {
@@ -27,7 +27,7 @@
27
27
  "@internal/tsdown-config": "0.1.0",
28
28
  "@internal/prettier-config": "0.0.1",
29
29
  "@internal/vitest-config": "0.1.0",
30
- "@pixpilot/scaffoldfy": "0.47.1"
30
+ "@pixpilot/scaffoldfy": "0.48.0"
31
31
  },
32
32
  "prettier": "@internal/prettier-config",
33
33
  "publishConfig": {
@@ -218,7 +218,7 @@ describe('workspace-package-generator – package.json.hbs rendering', () => {
218
218
  relativeRootPath: '../../',
219
219
  author: 'Test Author',
220
220
  repoUrl: 'https://github.com/test/monorepo.git',
221
- orgName: 'myorg',
221
+ packageOrgName: 'myorg',
222
222
  };
223
223
 
224
224
  const rendered = renderHbs(tplPath, ctx);
@@ -50,6 +50,15 @@
50
50
  "ifFalse": false
51
51
  }
52
52
  },
53
+ {
54
+ "id": "isReactPackage",
55
+ "value": {
56
+ "type": "conditional",
57
+ "condition": "packageType === 'react'",
58
+ "ifTrue": true,
59
+ "ifFalse": false
60
+ }
61
+ },
53
62
  {
54
63
  "id": "tsdownConfigPackage",
55
64
  "value": {
@@ -22,6 +22,14 @@
22
22
  "type": "interpolate",
23
23
  "value": "{{repoDirectory}}/LICENSE"
24
24
  }
25
+ },
26
+ {
27
+ "id": "packageOrgName",
28
+ "value": {
29
+ "type": "interpolate",
30
+ "value": "{{orgName}}"
31
+ },
32
+ "transformers": ["kebabcase"]
25
33
  }
26
34
  ],
27
35
 
@@ -1,8 +1,21 @@
1
1
  #!/usr/bin/env node
2
+ /* eslint-disable prefer-named-capture-group */
3
+ /* eslint-disable regexp/no-super-linear-backtracking */
4
+ /* eslint-disable no-continue */
2
5
  /* eslint-disable node/prefer-global/process */
3
6
  /**
4
- * Checks whether @internal/tsdown-config exists in the monorepo's node_modules.
7
+ * Checks whether a workspace package named @internal/tsdown-config exists.
8
+ *
9
+ * Strategy (tried in order):
10
+ * 1. Scan workspace packages declared in pnpm-workspace.yaml — the most
11
+ * reliable approach for pnpm monorepos where private packages are NOT
12
+ * hoisted to the root node_modules.
13
+ * 2. Fall back to checking common node_modules locations (covers npm/yarn
14
+ * workspaces and any hoisting configurations that do hoist the package).
15
+ *
5
16
  * Outputs "true" or "false" to stdout.
17
+ * Debug output is written to stderr so it never pollutes the captured stdout
18
+ * that the scaffoldfy framework parses.
6
19
  */
7
20
 
8
21
  'use strict';
@@ -10,19 +23,121 @@
10
23
  const fs = require('node:fs');
11
24
  const path = require('node:path');
12
25
 
26
+ const TARGET_PACKAGE = '@internal/tsdown-config';
13
27
  const cwd = process.cwd();
14
28
 
29
+ /**
30
+ * Scan workspace package directories listed in pnpm-workspace.yaml and return
31
+ * true if any package.json has `name === TARGET_PACKAGE`.
32
+ *
33
+ * Only looks one level deep inside each workspace glob base directory
34
+ * (e.g. "packages/**" → scans packages/<*>/package.json).
35
+ * This is sufficient for the flat monorepo layouts this config targets.
36
+ *
37
+ * @returns {boolean}
38
+ */
39
+ function findInWorkspacePackages() {
40
+ const workspaceYamlPath = path.join(cwd, 'pnpm-workspace.yaml');
41
+
42
+ if (!fs.existsSync(workspaceYamlPath)) {
43
+ process.stderr.write('[check-tsdown-config] pnpm-workspace.yaml not found\n');
44
+ return false;
45
+ }
46
+
47
+ const content = fs.readFileSync(workspaceYamlPath, 'utf8');
48
+
49
+ /*
50
+ * Extract lines under the `packages:` key.
51
+ * Handles a simple YAML list of strings — sufficient for pnpm-workspace.yaml.
52
+ */
53
+ const packagesBlockMatch = content.match(/^packages:\s*\n((?:\s+-\s+\S.*\n?)*)/mu);
54
+
55
+ if (!packagesBlockMatch) {
56
+ process.stderr.write(
57
+ '[check-tsdown-config] no packages list in pnpm-workspace.yaml\n',
58
+ );
59
+ return false;
60
+ }
61
+
62
+ const patterns = packagesBlockMatch[1]
63
+ .split('\n')
64
+ .map((line) => line.trim().replace(/^-\s*['"]?(?<temp1>.+?)['"]?\s*$/u, '$1'))
65
+ .filter(Boolean);
66
+
67
+ process.stderr.write(
68
+ `[check-tsdown-config] workspace patterns: ${JSON.stringify(patterns)}\n`,
69
+ );
70
+
71
+ for (const pattern of patterns) {
72
+ /* Skip exclusion patterns. */
73
+ if (pattern.startsWith('!')) continue;
74
+
75
+ /*
76
+ * Derive the base directory from the pattern.
77
+ * "packages/**" → "packages", "tooling/**" → "tooling"
78
+ */
79
+ const baseDir = pattern.split('/')[0];
80
+ const basePath = path.join(cwd, baseDir);
81
+
82
+ if (!fs.existsSync(basePath)) continue;
83
+
84
+ let entries;
85
+
86
+ try {
87
+ entries = fs.readdirSync(basePath, { withFileTypes: true });
88
+ } catch {
89
+ continue;
90
+ }
91
+
92
+ for (const entry of entries) {
93
+ if (!entry.isDirectory()) continue;
94
+
95
+ const pkgJsonPath = path.join(basePath, entry.name, 'package.json');
96
+
97
+ if (!fs.existsSync(pkgJsonPath)) continue;
98
+
99
+ try {
100
+ const pkg = JSON.parse(fs.readFileSync(pkgJsonPath, 'utf8'));
101
+
102
+ if (pkg.name === TARGET_PACKAGE) {
103
+ process.stderr.write(
104
+ `[check-tsdown-config] found ${TARGET_PACKAGE} at ${pkgJsonPath}\n`,
105
+ );
106
+ return true;
107
+ }
108
+ } catch {
109
+ /* Ignore malformed package.json files. */
110
+ }
111
+ }
112
+ }
113
+
114
+ return false;
115
+ }
116
+
15
117
  /*
16
- * In a pnpm monorepo, the workspace packages may be hoisted to the root
17
- * node_modules or available via the workspace symlinks.
18
- * Check common locations relative to the current working directory.
118
+ * Fallback: check common node_modules locations.
119
+ * Covers npm/yarn workspaces and pnpm configs that do hoist private packages.
19
120
  */
20
- const locations = [
121
+ const nodeModulesLocations = [
21
122
  path.join(cwd, 'node_modules', '@internal', 'tsdown-config'),
22
123
  path.join(cwd, '..', 'node_modules', '@internal', 'tsdown-config'),
23
124
  path.join(cwd, '..', '..', 'node_modules', '@internal', 'tsdown-config'),
24
125
  ];
25
126
 
26
- const exists = locations.some((loc) => fs.existsSync(loc));
127
+ const existsInNodeModules = nodeModulesLocations.some((loc) => {
128
+ const found = fs.existsSync(loc);
129
+
130
+ if (found) {
131
+ process.stderr.write(
132
+ `[check-tsdown-config] found ${TARGET_PACKAGE} in node_modules: ${loc}\n`,
133
+ );
134
+ }
135
+
136
+ return found;
137
+ });
138
+
139
+ const exists = existsInNodeModules || findInWorkspacePackages();
140
+
141
+ process.stderr.write(`[check-tsdown-config] result: ${exists}\n`);
27
142
 
28
143
  process.stdout.write(exists ? 'true' : 'false');
@@ -1,5 +1,5 @@
1
1
  {
2
- "name": "{{#if isNpmPackage}}{{#if orgName}}@{{orgName}}/{{packageBaseName}}{{else}}{{packageBaseName}}{{/if}}{{else}}@internal/{{packageBaseName}}{{/if}}",
2
+ "name": "{{#if isNpmPackage}}{{#if packageOrgName}}@{{packageOrgName}}/{{packageBaseName}}{{else}}{{packageBaseName}}{{/if}}{{else}}@internal/{{packageBaseName}}{{/if}}",
3
3
  "type": "module",
4
4
  "version": "0.0.0",
5
5
  {{#unless isNpmPackage}}
@@ -25,6 +25,12 @@
25
25
  {{/if}}
26
26
  "keywords": [],
27
27
  "exports": "./src/index.ts",
28
+ {{#if isReactPackage}}
29
+ "peerDependencies": {
30
+ "react": "^18 || ^19",
31
+ "react-dom": "^18 || ^19"
32
+ },
33
+ {{/if}}
28
34
  {{#if isNpmPackage}}
29
35
  "files": [
30
36
  "dist"
@@ -71,14 +77,32 @@
71
77
  "@internal/eslint-config": "workspace:*",
72
78
  "@internal/prettier-config": "workspace:*",
73
79
  "@internal/tsconfig": "workspace:*",
80
+ "@internal/vitest-config": "workspace:*",
81
+ "@types/node": "catalog:dev",
82
+ {{#if isReactPackage}}
83
+ {{#if isNpmPackage}}
84
+ "@types/react": "^19.0.0",
85
+ "@types/react-dom": "^19.0.0",
86
+ {{else}}
87
+ "@types/react": "catalog:",
88
+ "@types/react-dom": "catalog:",
89
+ {{/if}}
90
+ {{/if}}
91
+ "eslint": "catalog:dev",
92
+ {{#if isReactPackage}}
93
+ {{#if isNpmPackage}}
94
+ "react": "^19.0.0",
95
+ "react-dom": "^19.0.0",
96
+ {{else}}
97
+ "react": "catalog:",
98
+ "react-dom": "catalog:",
99
+ {{/if}}
100
+ {{/if}}
74
101
  {{#if isNpmPackage}}
75
102
  {{#if isBundlerTsdown}}
76
103
  "{{tsdownConfigPackage}}": "{{#if hasTsdownConfig}}workspace:*{{else}}^1.0.0{{/if}}",
77
104
  {{/if}}
78
105
  {{/if}}
79
- "@internal/vitest-config": "workspace:*",
80
- "@types/node": "catalog:dev",
81
- "eslint": "catalog:dev",
82
106
  {{#if isNpmPackage}}
83
107
  {{#if isBundlerTsdown}}
84
108
  "tsdown": "catalog:dev",
@@ -1 +0,0 @@
1
- [{"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/README.md":"1","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/eslint.config.mjs":"2","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/license-file/scaffoldfy.json":"3","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/monorepo-generate-packages-section/generate-packages-section.js":"4","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/monorepo-generate-packages-section/scaffoldfy.json":"5","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/package.json":"6","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/pixpilot-changesets-release/release.yml":"7","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/pixpilot-changesets-release/scaffoldfy.json":"8","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/pixpilot-copilot-instructions/copilot-instructions.md":"9","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/pixpilot-copilot-instructions/scaffoldfy.json":"10","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/pixpilot-info/scaffoldfy.json":"11","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/project-info/author-info.json":"12","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/project-info/detect-git-hub-org.js":"13","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/project-info/org-name-info.json":"14","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/project-info/project-name-info.json":"15","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/project-info/repo-info.json":"16","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/project-info/scaffoldfy.json":"17","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/security-policy/scaffoldfy.json":"18","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/test/validate-schema.test.ts":"19","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/test/workspace-package-generator.test.ts":"20","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/tsdown.config.ts":"21","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/turbo-workspace-package-generator/scaffoldfy.json":"22","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/update-root-package-json/scaffoldfy.json":"23","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/vitest.config.ts":"24","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/workspace-package-generator/experiment/scaffoldfy-base.json":"25","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/workspace-package-generator/experiment/scaffoldfy-disabled.json":"26","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/workspace-package-generator/experiment/scaffoldfy-extend-with-disables.json":"27","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/workspace-package-generator/experiment/scaffoldfy.json":"28","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/workspace-package-generator/scaffoldfy-base.json":"29","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/workspace-package-generator/scaffoldfy-project-info.json":"30","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/workspace-package-generator/scaffoldfy.json":"31","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/workspace-package-generator/scripts/add-dependencies.cjs":"32","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/workspace-package-generator/scripts/check-tsdown-config.cjs":"33","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/workspace-package-generator/templates/test/index.test.ts.hbs":"34"},{"size":2298,"mtime":1771762734625,"results":"35","hashOfConfig":"36"},{"size":260,"mtime":1771762734625,"results":"37","hashOfConfig":"38"},{"size":4875,"mtime":1771762734626,"results":"39","hashOfConfig":"40"},{"size":2047,"mtime":1771762734626,"results":"41","hashOfConfig":"42"},{"size":2044,"mtime":1771762734626,"results":"43","hashOfConfig":"40"},{"size":1149,"mtime":1771762753066,"results":"44","hashOfConfig":"45"},{"size":1139,"mtime":1771762734626,"results":"46","hashOfConfig":"47"},{"size":1307,"mtime":1771762734627,"results":"48","hashOfConfig":"40"},{"size":904,"mtime":1771762734627,"results":"49","hashOfConfig":"36"},{"size":704,"mtime":1771762734627,"results":"50","hashOfConfig":"40"},{"size":785,"mtime":1771762734627,"results":"51","hashOfConfig":"40"},{"size":698,"mtime":1771762734627,"results":"52","hashOfConfig":"40"},{"size":1962,"mtime":1771762734627,"results":"53","hashOfConfig":"42"},{"size":932,"mtime":1771762734627,"results":"54","hashOfConfig":"40"},{"size":519,"mtime":1771762734627,"results":"55","hashOfConfig":"40"},{"size":1557,"mtime":1771762734627,"results":"56","hashOfConfig":"40"},{"size":887,"mtime":1771762734627,"results":"57","hashOfConfig":"40"},{"size":1297,"mtime":1771762734627,"results":"58","hashOfConfig":"40"},{"size":960,"mtime":1771762734627,"results":"59","hashOfConfig":"60"},{"size":12229,"mtime":1771762734627,"results":"61","hashOfConfig":"60"},{"size":160,"mtime":1771762734627,"results":"62","hashOfConfig":"63"},{"size":964,"mtime":1771762734627,"results":"64","hashOfConfig":"40"},{"size":875,"mtime":1771762734627,"results":"65","hashOfConfig":"40"},{"size":78,"mtime":1771762734627,"results":"66","hashOfConfig":"63"},{"size":361,"mtime":1771762734627,"results":"67","hashOfConfig":"40"},{"size":561,"mtime":1771762734628,"results":"68","hashOfConfig":"40"},{"size":358,"mtime":1771762734628,"results":"69","hashOfConfig":"40"},{"size":432,"mtime":1771762734628,"results":"70","hashOfConfig":"40"},{"size":3508,"mtime":1771762734628,"results":"71","hashOfConfig":"40"},{"size":418,"mtime":1771762734628,"results":"72","hashOfConfig":"40"},{"size":5370,"mtime":1771762734628,"results":"73","hashOfConfig":"40"},{"size":1753,"mtime":1771762734628,"results":"74","hashOfConfig":"75"},{"size":858,"mtime":1771762734628,"results":"76","hashOfConfig":"75"},{"size":181,"mtime":1771762734628,"results":"77","hashOfConfig":"78"},{"filePath":"79","messages":"80","suppressedMessages":"81","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"1o3qqi3",{"filePath":"82","messages":"83","suppressedMessages":"84","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"1d4mhdo",{"filePath":"85","messages":"86","suppressedMessages":"87","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"1dc3ock",{"filePath":"88","messages":"89","suppressedMessages":"90","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"xjf53n",{"filePath":"91","messages":"92","suppressedMessages":"93","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"94","messages":"95","suppressedMessages":"96","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"18wrtc",{"filePath":"97","messages":"98","suppressedMessages":"99","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"1javrp5",{"filePath":"100","messages":"101","suppressedMessages":"102","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"103","messages":"104","suppressedMessages":"105","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"106","messages":"107","suppressedMessages":"108","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"109","messages":"110","suppressedMessages":"111","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"112","messages":"113","suppressedMessages":"114","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"115","messages":"116","suppressedMessages":"117","errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"118","messages":"119","suppressedMessages":"120","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"121","messages":"122","suppressedMessages":"123","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"124","messages":"125","suppressedMessages":"126","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"127","messages":"128","suppressedMessages":"129","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"130","messages":"131","suppressedMessages":"132","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"133","messages":"134","suppressedMessages":"135","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"skhll",{"filePath":"136","messages":"137","suppressedMessages":"138","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"139","messages":"140","suppressedMessages":"141","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"1pyjbrw",{"filePath":"142","messages":"143","suppressedMessages":"144","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"145","messages":"146","suppressedMessages":"147","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"148","messages":"149","suppressedMessages":"150","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"151","messages":"152","suppressedMessages":"153","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"154","messages":"155","suppressedMessages":"156","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"157","messages":"158","suppressedMessages":"159","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"160","messages":"161","suppressedMessages":"162","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"163","messages":"164","suppressedMessages":"165","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"166","messages":"167","suppressedMessages":"168","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"169","messages":"170","suppressedMessages":"171","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"172","messages":"173","suppressedMessages":"174","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"s2da7g",{"filePath":"175","messages":"176","suppressedMessages":"177","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"178","messages":"179","suppressedMessages":"180","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"exmpos","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/README.md",[],[],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/eslint.config.mjs",[],[],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/license-file/scaffoldfy.json",[],[],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/monorepo-generate-packages-section/generate-packages-section.js",[],["181"],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/monorepo-generate-packages-section/scaffoldfy.json",[],[],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/package.json",[],[],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/pixpilot-changesets-release/release.yml",[],[],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/pixpilot-changesets-release/scaffoldfy.json",[],[],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/pixpilot-copilot-instructions/copilot-instructions.md",[],[],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/pixpilot-copilot-instructions/scaffoldfy.json",[],[],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/pixpilot-info/scaffoldfy.json",[],[],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/project-info/author-info.json",[],[],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/project-info/detect-git-hub-org.js",["182"],[],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/project-info/org-name-info.json",[],[],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/project-info/project-name-info.json",[],[],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/project-info/repo-info.json",[],[],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/project-info/scaffoldfy.json",[],[],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/security-policy/scaffoldfy.json",[],[],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/test/validate-schema.test.ts",[],[],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/test/workspace-package-generator.test.ts",[],[],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/tsdown.config.ts",[],[],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/turbo-workspace-package-generator/scaffoldfy.json",[],[],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/update-root-package-json/scaffoldfy.json",[],[],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/vitest.config.ts",[],[],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/workspace-package-generator/experiment/scaffoldfy-base.json",[],[],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/workspace-package-generator/experiment/scaffoldfy-disabled.json",[],[],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/workspace-package-generator/experiment/scaffoldfy-extend-with-disables.json",[],[],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/workspace-package-generator/experiment/scaffoldfy.json",[],[],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/workspace-package-generator/scaffoldfy-base.json",[],[],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/workspace-package-generator/scaffoldfy-project-info.json",[],[],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/workspace-package-generator/scaffoldfy.json",[],[],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/workspace-package-generator/scripts/add-dependencies.cjs",[],["183","184","185","186","187"],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/workspace-package-generator/scripts/check-tsdown-config.cjs",[],["188","189"],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/workspace-package-generator/templates/test/index.test.ts.hbs",[],[],{"ruleId":"190","severity":2,"message":"191","line":65,"column":1,"nodeType":"192","messageId":"193","endLine":65,"endColumn":12,"suggestions":"194","suppressions":"195"},{"ruleId":"196","severity":1,"message":"197","line":40,"column":33,"nodeType":"198","messageId":"199","endLine":40,"endColumn":34},{"ruleId":"200","severity":2,"message":"201","line":19,"column":15,"nodeType":"202","messageId":"203","endLine":19,"endColumn":22,"suppressions":"204"},{"ruleId":"200","severity":2,"message":"201","line":28,"column":3,"nodeType":"202","messageId":"203","endLine":28,"endColumn":10,"suppressions":"205"},{"ruleId":"200","severity":2,"message":"201","line":33,"column":3,"nodeType":"202","messageId":"203","endLine":33,"endColumn":10,"suppressions":"206"},{"ruleId":"200","severity":2,"message":"201","line":38,"column":3,"nodeType":"202","messageId":"203","endLine":38,"endColumn":10,"suppressions":"207"},{"ruleId":"200","severity":2,"message":"201","line":48,"column":3,"nodeType":"202","messageId":"203","endLine":48,"endColumn":10,"suppressions":"208"},{"ruleId":"200","severity":2,"message":"201","line":13,"column":13,"nodeType":"202","messageId":"203","endLine":13,"endColumn":20,"suppressions":"209"},{"ruleId":"200","severity":2,"message":"201","line":28,"column":1,"nodeType":"202","messageId":"203","endLine":28,"endColumn":8,"suppressions":"210"},"no-console","Unexpected console statement. Only these console methods are allowed: warn, error.","MemberExpression","limited",["211"],["212"],"no-magic-numbers","No magic number: 2.","Literal","noMagic","node/prefer-global/process","Unexpected use of the global variable 'process'. Use 'require(\"process\")' instead.","Identifier","preferModule",["213"],["214"],["215"],["216"],["217"],["218"],["219"],{"fix":"220","messageId":"221","data":"222","desc":"223"},{"kind":"224","justification":"225"},{"kind":"224","justification":"225"},{"kind":"224","justification":"225"},{"kind":"224","justification":"225"},{"kind":"224","justification":"225"},{"kind":"224","justification":"225"},{"kind":"224","justification":"225"},{"kind":"224","justification":"225"},{"range":"226","text":"225"},"removeConsole",{"propertyName":"227"},"Remove the console.log().","directive","",[1994,2042],"log"]
@@ -1 +0,0 @@
1
- [["1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31","32","33","34"],{"key":"35","value":"36"},{"key":"37","value":"38"},{"key":"39","value":"40"},{"key":"41","value":"42"},{"key":"43","value":"44"},{"key":"45","value":"46"},{"key":"47","value":"48"},{"key":"49","value":"50"},{"key":"51","value":"52"},{"key":"53","value":"54"},{"key":"55","value":"56"},{"key":"57","value":"58"},{"key":"59","value":"60"},{"key":"61","value":"62"},{"key":"63","value":"64"},{"key":"65","value":"66"},{"key":"67","value":"68"},{"key":"69","value":"70"},{"key":"71","value":"72"},{"key":"73","value":"74"},{"key":"75","value":"76"},{"key":"77","value":"78"},{"key":"79","value":"80"},{"key":"81","value":"82"},{"key":"83","value":"84"},{"key":"85","value":"86"},{"key":"87","value":"88"},{"key":"89","value":"90"},{"key":"91","value":"92"},{"key":"93","value":"94"},{"key":"95","value":"96"},{"key":"97","value":"98"},{"key":"99","value":"100"},{"key":"101","value":"102"},"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/license-file/scaffoldfy.json",{"size":4875,"mtime":1771762734626,"hash":"103","data":"104"},"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/pixpilot-copilot-instructions/copilot-instructions.md",{"size":904,"mtime":1771762734627,"hash":"105","data":"106"},"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/project-info/author-info.json",{"size":698,"mtime":1771762734627,"hash":"107","data":"108"},"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/package.json",{"size":1149,"mtime":1771762753066,"hash":"109","data":"110"},"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/security-policy/scaffoldfy.json",{"size":1297,"mtime":1771762734627,"hash":"111","data":"112"},"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/workspace-package-generator/scripts/add-dependencies.cjs",{"size":1753,"mtime":1771762734628,"hash":"113","data":"114"},"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/test/workspace-package-generator.test.ts",{"size":12229,"mtime":1771762734627,"hash":"115","data":"116"},"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/monorepo-generate-packages-section/scaffoldfy.json",{"size":2044,"mtime":1771762734626,"hash":"117","data":"118"},"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/tsdown.config.ts",{"size":160,"mtime":1771762734627,"hash":"119","data":"120"},"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/pixpilot-copilot-instructions/scaffoldfy.json",{"size":704,"mtime":1771762734627,"hash":"121","data":"122"},"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/pixpilot-info/scaffoldfy.json",{"size":785,"mtime":1771762734627,"hash":"123","data":"124"},"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/project-info/project-name-info.json",{"size":519,"mtime":1771762734627,"hash":"125","data":"126"},"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/turbo-workspace-package-generator/scaffoldfy.json",{"size":964,"mtime":1771762734627,"hash":"127","data":"128"},"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/vitest.config.ts",{"size":78,"mtime":1771762734627,"hash":"129","data":"130"},"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/monorepo-generate-packages-section/generate-packages-section.js",{"size":2047,"mtime":1771762734626,"hash":"131","data":"132"},"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/workspace-package-generator/experiment/scaffoldfy-extend-with-disables.json",{"size":358,"mtime":1771762734628,"hash":"133","data":"134"},"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/workspace-package-generator/experiment/scaffoldfy.json",{"size":432,"mtime":1771762734628,"hash":"135","data":"136"},"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/eslint.config.mjs",{"size":260,"mtime":1771762734625,"hash":"137","data":"138"},"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/pixpilot-changesets-release/release.yml",{"size":1139,"mtime":1771762734626,"hash":"139","data":"140"},"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/workspace-package-generator/scaffoldfy.json",{"size":5370,"mtime":1771762734628,"hash":"141","data":"142"},"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/project-info/repo-info.json",{"size":1557,"mtime":1771762734627,"hash":"143","data":"144"},"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/update-root-package-json/scaffoldfy.json",{"size":875,"mtime":1771762734627,"hash":"145","data":"146"},"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/workspace-package-generator/experiment/scaffoldfy-disabled.json",{"size":561,"mtime":1771762734628,"hash":"147","data":"148"},"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/workspace-package-generator/scripts/check-tsdown-config.cjs",{"size":858,"mtime":1771762734628,"hash":"149","data":"150"},"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/project-info/org-name-info.json",{"size":932,"mtime":1771762734627,"hash":"151","data":"152"},"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/project-info/detect-git-hub-org.js",{"size":1962,"mtime":1771762734627,"hash":"153","data":"154"},"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/project-info/scaffoldfy.json",{"size":887,"mtime":1771762734627,"hash":"155","data":"156"},"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/test/validate-schema.test.ts",{"size":960,"mtime":1771762734627,"hash":"157","data":"158"},"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/workspace-package-generator/experiment/scaffoldfy-base.json",{"size":361,"mtime":1771762734627,"hash":"159","data":"160"},"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/workspace-package-generator/scaffoldfy-base.json",{"size":3508,"mtime":1771762734628,"hash":"161","data":"162"},"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/pixpilot-changesets-release/scaffoldfy.json",{"size":1307,"mtime":1771762734627,"hash":"163","data":"164"},"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/README.md",{"size":2298,"mtime":1771762734625,"hash":"165","data":"166"},"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/workspace-package-generator/scaffoldfy-project-info.json",{"size":418,"mtime":1771762734628,"hash":"167","data":"168"},"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/LICENSE",{"size":1065,"mtime":1771762734625,"hash":"169"},"a7cd4d041a49db893275112adf5babf7",{"hashOfOptions":"170"},"129fc064577f2fe749ed401b01155b0c",{"hashOfOptions":"171"},"e01681ec570e642b5646c0d9606ab570",{"hashOfOptions":"172"},"99218810e9e50cda076a2b705ae1b94f",{"hashOfOptions":"173"},"baadfd22a57a81937d70e0dec8b37aac",{"hashOfOptions":"174"},"cf8e67ad653b3e260e8934c29acd3b96",{"hashOfOptions":"175"},"e464727e71590fb03cd663baf1f341ae",{"hashOfOptions":"176"},"437bec5148370f57e683175b86be2a0f",{"hashOfOptions":"177"},"513debbbe37a0908feda9f0bcc5fcc4b",{"hashOfOptions":"178"},"20171b8fd858f9b268e89c1aa6484a92",{"hashOfOptions":"179"},"2be50f22a6d61efa5175d1c8162901b6",{"hashOfOptions":"180"},"3f5d1e8dadd87ae855a884272eb29c88",{"hashOfOptions":"181"},"d16152bdbad281c6f548789be4bfd8dd",{"hashOfOptions":"182"},"fb12a6e35e71f2db94bbf66fedb48a90",{"hashOfOptions":"183"},"c4b2e848701a00ec46150ef82d25fe09",{"hashOfOptions":"184"},"2c919b3cf9d5c7564cd34ea5ef2f43ee",{"hashOfOptions":"185"},"e651245e6bffc9e7dbc5af2429e52131",{"hashOfOptions":"186"},"f9ce2b24b6b27b0bd159849f75d8bfd0",{"hashOfOptions":"187"},"6d888308c5d2927c9472c902b56b2973",{"hashOfOptions":"188"},"fac4965d755ecdf7afe3a328dc14e40a",{"hashOfOptions":"189"},"6de2f3af5e99512ca522d2897b48dd90",{"hashOfOptions":"190"},"b43489756447740bb5461f8259623a1f",{"hashOfOptions":"191"},"19c08961ecbe2ad976ba5da2d8277e5a",{"hashOfOptions":"192"},"37869e9ac49f0c14c1996d62cf69bec8",{"hashOfOptions":"193"},"71ac4dec4cafa639a9c05f5e2c64b36a",{"hashOfOptions":"194"},"0f3cdcc0b5df24febf8e9a0cad1950f6",{"hashOfOptions":"195"},"2401947ee6dbe399122adabbe63a3c8f",{"hashOfOptions":"196"},"a0fc37307c5b3e7ef6c635ee81d4b22a",{"hashOfOptions":"197"},"c20d4a6d559453b60294af84b449ab57",{"hashOfOptions":"198"},"391e88baf98c62c17b0a21dedac0a5f5",{"hashOfOptions":"199"},"552893570f59b876cc311161764b971b",{"hashOfOptions":"200"},"9ffdd9ced1b95e3c890a9ac66d04b26d",{"hashOfOptions":"201"},"e13b9a9360a8a6a68c5d407c39047dad",{"hashOfOptions":"202"},"9937b6ab6bff563917af91b674d32d26","1228183422","703189870","3379652005","1914606772","3423351643","2891414639","2296905056","1043358625","1175802438","3196870400","1543004120","179349073","312527989","4152018146","1656442100","3753816910","3570345646","2275067953","3507797927","3913745798","414215294","2114078672","1809810027","1097452595","4259486204","1135076193","2874103108","1118698428","1933678496","3310438088","701893163","1154011297","4047521945"]
@@ -1,6 +0,0 @@
1
-
2
- > @pixpilot/scaffoldfy-configs@0.20.2 format /home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs
3
- > prettier --check . --ignore-path ../../.gitignore --ignore-path ../../.prettierignore --write --cache --cache-location .cache/.prettiercache
4
-
5
- Checking formatting...
6
- All matched files use Prettier code style!
@@ -1,10 +0,0 @@
1
-
2
- > @pixpilot/scaffoldfy-configs@0.20.2 lint /home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs
3
- > eslint --cache --cache-location .cache/.eslintcache
4
-
5
-
6
- /home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/project-info/detect-git-hub-org.js
7
- 40:33 warning No magic number: 2 no-magic-numbers
8
-
9
- ✖ 1 problem (0 errors, 1 warning)
10
-
@@ -1,16 +0,0 @@
1
-
2
- > @pixpilot/scaffoldfy-configs@0.20.2 test /home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs
3
- > vitest --run --passWithNoTests
4
-
5
-
6
-  RUN  v3.2.4 /home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs
7
-
8
- ✓ test/validate-schema.test.ts (2 tests) 1011ms
9
- ✓ validate-schema > should validate all scaffoldfy.json files in scaffoldfy-configs  1007ms
10
- ✓ test/workspace-package-generator.test.ts (22 tests) 1375ms
11
-
12
-  Test Files  2 passed (2)
13
-  Tests  24 passed (24)
14
-  Start at  12:19:57
15
-  Duration  2.81s (transform 655ms, setup 0ms, collect 1.97s, tests 2.39s, environment 1ms, prepare 327ms)
16
-