@openge/forge-text-integrity 0.1.0-rc.1 → 0.1.1

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":"scan.d.ts","sourceRoot":"","sources":["../../src/node/scan.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAA0B,MAAM,iBAAiB,CAAC;AAElF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAgB/D,eAAO,MAAM,sBAAsB,GACjC,OAAO,SAAS,MAAM,EAAE,EACxB,UAAS,wBAA6B,KACrC,OAAO,CAAC,SAAS,kBAAkB,EAAE,CASvC,CAAC;AAEF,eAAO,MAAM,6BAA6B,GACxC,UAAS,wBAA6B,KACrC,OAAO,CAAC,SAAS,kBAAkB,EAAE,CAMvC,CAAC"}
1
+ {"version":3,"file":"scan.d.ts","sourceRoot":"","sources":["../../src/node/scan.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,kBAAkB,EAA0B,MAAM,iBAAiB,CAAC;AAElF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAiB/D,eAAO,MAAM,sBAAsB,GACjC,OAAO,SAAS,MAAM,EAAE,EACxB,UAAS,wBAA6B,KACrC,OAAO,CAAC,SAAS,kBAAkB,EAAE,CAYvC,CAAC;AAEF,eAAO,MAAM,6BAA6B,GACxC,UAAS,wBAA6B,KACrC,OAAO,CAAC,SAAS,kBAAkB,EAAE,CASvC,CAAC"}
package/dist/node/scan.js CHANGED
@@ -1,9 +1,9 @@
1
1
  import { readFile } from 'node:fs/promises';
2
2
  import { relative, resolve } from 'node:path';
3
+ import { filterIgnoredRepositoryPaths, listChangedRepositoryFiles, } from '@openge/forge-repository-files';
3
4
  import { inspectTextIntegrity } from '../inspection.js';
4
5
  import { createScanConfiguration } from './configuration.js';
5
- import { collectChangedTextFiles, filterGitRelevantFiles } from './git.js';
6
- import { collectTextFiles, compareNormalizedPaths, normalizeRepoPath, } from './paths.js';
6
+ import { collectTextFiles, compareNormalizedPaths, isIgnoredPath, isTextFile, normalizeRepoPath, } from './paths.js';
7
7
  const issueCodeOrder = {
8
8
  'question-placeholder': 0,
9
9
  'replacement-character': 1,
@@ -16,14 +16,17 @@ export const scanTextIntegrityPaths = async (paths, options = {}) => {
16
16
  const configuration = createScanConfiguration(options);
17
17
  const collectedFiles = await collectTextFiles(paths, cwd, configuration);
18
18
  const files = configuration.respectGitIgnore
19
- ? await filterGitRelevantFiles(collectedFiles)
19
+ ? (await filterIgnoredRepositoryPaths(collectedFiles.map((file) => normalizeRepoPath(relative(cwd, file))), { cwd })).map((file) => resolve(cwd, file))
20
20
  : collectedFiles;
21
21
  return scanFiles(files, cwd, options, configuration.concurrency);
22
22
  };
23
23
  export const scanChangedTextIntegrityFiles = async (options = {}) => {
24
24
  const cwd = resolve(options.cwd ?? process.cwd());
25
25
  const configuration = createScanConfiguration(options);
26
- const files = await collectChangedTextFiles(cwd, configuration);
26
+ const files = (await listChangedRepositoryFiles({ cwd }))
27
+ .map((filePath) => resolve(cwd, filePath))
28
+ .filter((filePath) => !isIgnoredPath(filePath, cwd, configuration))
29
+ .filter((filePath) => isTextFile(filePath, configuration));
27
30
  return scanFiles(files, cwd, options, configuration.concurrency);
28
31
  };
29
32
  const scanFiles = async (files, cwd, options, concurrency) => {
@@ -1 +1 @@
1
- {"version":3,"file":"scan.js","sourceRoot":"","sources":["../../src/node/scan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scan.js","sourceRoot":"","sources":["../../src/node/scan.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openge/forge-text-integrity",
3
- "version": "0.1.0-rc.1",
3
+ "version": "0.1.1",
4
4
  "description": "Runtime-neutral text integrity inspection and Node.js repository scanning",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -41,6 +41,9 @@
41
41
  "bugs": {
42
42
  "url": "https://github.com/zopenge/foundation-forge/issues"
43
43
  },
44
+ "dependencies": {
45
+ "@openge/forge-repository-files": "^0.1.0"
46
+ },
44
47
  "scripts": {
45
48
  "build": "tsc -p tsconfig.build.json",
46
49
  "lint": "eslint . --max-warnings 0",
@@ -1,4 +0,0 @@
1
- import type { TextIntegrityScanConfiguration } from './configuration.js';
2
- export declare const filterGitRelevantFiles: (files: readonly string[]) => Promise<readonly string[]>;
3
- export declare const collectChangedTextFiles: (cwd: string, configuration: TextIntegrityScanConfiguration) => Promise<readonly string[]>;
4
- //# sourceMappingURL=git.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/node/git.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,oBAAoB,CAAC;AAUzE,eAAO,MAAM,sBAAsB,GACjC,OAAO,SAAS,MAAM,EAAE,KACvB,OAAO,CAAC,SAAS,MAAM,EAAE,CA+B3B,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAClC,KAAK,MAAM,EACX,eAAe,8BAA8B,KAC5C,OAAO,CAAC,SAAS,MAAM,EAAE,CAe3B,CAAC"}
package/dist/node/git.js DELETED
@@ -1,110 +0,0 @@
1
- import { execFile, spawn } from 'node:child_process';
2
- import { dirname, relative, resolve } from 'node:path';
3
- import { promisify } from 'node:util';
4
- import { compareNormalizedPaths, isIgnoredPath, isTextFile, normalizeRepoPath, } from './paths.js';
5
- const execFileAsync = promisify(execFile);
6
- export const filterGitRelevantFiles = async (files) => {
7
- const rootCache = new Map();
8
- const filesByRoot = new Map();
9
- const nonGitFiles = [];
10
- for (const file of files) {
11
- const root = await findGitRoot(dirname(file), rootCache);
12
- if (root === undefined) {
13
- nonGitFiles.push(file);
14
- continue;
15
- }
16
- const group = filesByRoot.get(root) ?? [];
17
- group.push(file);
18
- filesByRoot.set(root, group);
19
- }
20
- const filtered = [...nonGitFiles];
21
- for (const [root, rootFiles] of filesByRoot) {
22
- const relativePaths = rootFiles.map((file) => normalizeRepoPath(relative(root, file)));
23
- const ignoredPaths = await collectGitIgnoredPaths(root, relativePaths);
24
- for (const [index, file] of rootFiles.entries()) {
25
- const relativePath = relativePaths[index];
26
- if (relativePath !== undefined && !ignoredPaths.has(relativePath)) {
27
- filtered.push(file);
28
- }
29
- }
30
- }
31
- return filtered.sort((left, right) => compareNormalizedPaths(normalizeRepoPath(left), normalizeRepoPath(right)));
32
- };
33
- export const collectChangedTextFiles = async (cwd, configuration) => {
34
- const { stdout } = await execFileAsync('git', ['status', '--porcelain=v1', '-z', '--untracked-files=all'], { cwd, encoding: 'utf8', maxBuffer: 16 * 1_024 * 1_024 });
35
- const files = parseGitStatusPorcelain(stdout)
36
- .map((filePath) => resolve(cwd, filePath))
37
- .filter((filePath) => !isIgnoredPath(filePath, cwd, configuration))
38
- .filter((filePath) => isTextFile(filePath, configuration));
39
- return [...new Set(files)].sort((left, right) => compareNormalizedPaths(normalizeRepoPath(relative(cwd, left)), normalizeRepoPath(relative(cwd, right))));
40
- };
41
- const parseGitStatusPorcelain = (output) => {
42
- const paths = [];
43
- const entries = output.split('\0');
44
- for (let index = 0; index < entries.length; index += 1) {
45
- const entry = entries[index];
46
- if (entry === undefined || entry.length === 0) {
47
- continue;
48
- }
49
- const status = entry.slice(0, 2);
50
- const filePath = entry.slice(3);
51
- if (!status.includes('D')) {
52
- paths.push(filePath);
53
- }
54
- if (status[0] === 'R' || status[0] === 'C') {
55
- index += 1;
56
- }
57
- }
58
- return paths;
59
- };
60
- const findGitRoot = async (directory, cache) => {
61
- const resolvedDirectory = resolve(directory);
62
- if (cache.has(resolvedDirectory)) {
63
- return cache.get(resolvedDirectory);
64
- }
65
- try {
66
- const { stdout } = await execFileAsync('git', ['rev-parse', '--show-toplevel'], { cwd: resolvedDirectory, encoding: 'utf8', maxBuffer: 1_024 * 1_024 });
67
- const root = resolve(stdout.trim());
68
- cache.set(resolvedDirectory, root);
69
- return root;
70
- }
71
- catch (error) {
72
- if (isExitCode(error, 128)) {
73
- cache.set(resolvedDirectory, undefined);
74
- return undefined;
75
- }
76
- throw error;
77
- }
78
- };
79
- const collectGitIgnoredPaths = (root, relativePaths) => new Promise((resolvePromise, reject) => {
80
- if (relativePaths.length === 0) {
81
- resolvePromise(new Set());
82
- return;
83
- }
84
- const child = spawn('git', ['check-ignore', '-z', '--stdin'], {
85
- cwd: root,
86
- stdio: ['pipe', 'pipe', 'pipe'],
87
- });
88
- const stdoutChunks = [];
89
- const stderrChunks = [];
90
- child.stdout.on('data', (chunk) => stdoutChunks.push(chunk));
91
- child.stderr.on('data', (chunk) => stderrChunks.push(chunk));
92
- child.on('error', reject);
93
- child.on('close', (code) => {
94
- if (code !== 0 && code !== 1) {
95
- const diagnostic = Buffer.concat(stderrChunks).toString('utf8').trim();
96
- reject(new Error(diagnostic || `git check-ignore failed with exit code ${String(code)}`));
97
- return;
98
- }
99
- const output = Buffer.concat(stdoutChunks).toString('utf8');
100
- resolvePromise(new Set(output.split('\0').filter((path) => path.length > 0)));
101
- });
102
- child.stdin.end(`${relativePaths.join('\0')}\0`, 'utf8');
103
- });
104
- const isExitCode = (error, expected) => {
105
- if (typeof error !== 'object' || error === null || !('code' in error)) {
106
- return false;
107
- }
108
- return error.code === expected;
109
- };
110
- //# sourceMappingURL=git.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/node/git.ts"],"names":[],"mappings":"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"}