@descent-vtt/spec-guard 0.27.0 → 0.29.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 (51) hide show
  1. package/CHANGELOG.md +150 -0
  2. package/README.md +102 -32
  3. package/dist/cites.d.ts.map +1 -1
  4. package/dist/cites.js +11 -1
  5. package/dist/cites.js.map +1 -1
  6. package/dist/cli.d.ts +15 -1
  7. package/dist/cli.d.ts.map +1 -1
  8. package/dist/cli.js +25 -6
  9. package/dist/cli.js.map +1 -1
  10. package/dist/dialect.d.ts +51 -0
  11. package/dist/dialect.d.ts.map +1 -0
  12. package/dist/dialect.js +265 -0
  13. package/dist/dialect.js.map +1 -0
  14. package/dist/engine.d.ts +54 -2
  15. package/dist/engine.d.ts.map +1 -1
  16. package/dist/engine.js +223 -20
  17. package/dist/engine.js.map +1 -1
  18. package/dist/glob.d.ts +9 -0
  19. package/dist/glob.d.ts.map +1 -1
  20. package/dist/glob.js +23 -0
  21. package/dist/glob.js.map +1 -1
  22. package/dist/impact.d.ts +13 -9
  23. package/dist/impact.d.ts.map +1 -1
  24. package/dist/impact.js +5 -3
  25. package/dist/impact.js.map +1 -1
  26. package/dist/index.d.ts +1 -1
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/polyglot.d.ts +4 -1
  29. package/dist/polyglot.d.ts.map +1 -1
  30. package/dist/polyglot.js +451 -69
  31. package/dist/polyglot.js.map +1 -1
  32. package/dist/prove.d.ts.map +1 -1
  33. package/dist/prove.js +42 -14
  34. package/dist/prove.js.map +1 -1
  35. package/dist/reporter.d.ts.map +1 -1
  36. package/dist/reporter.js +13 -0
  37. package/dist/reporter.js.map +1 -1
  38. package/dist/runner.d.ts.map +1 -1
  39. package/dist/runner.js +25 -16
  40. package/dist/runner.js.map +1 -1
  41. package/dist/scope.d.ts +22 -2
  42. package/dist/scope.d.ts.map +1 -1
  43. package/dist/scope.js +10 -2
  44. package/dist/scope.js.map +1 -1
  45. package/dist/structure.d.ts +3 -1
  46. package/dist/structure.d.ts.map +1 -1
  47. package/dist/structure.js +22 -4
  48. package/dist/structure.js.map +1 -1
  49. package/dist/types.d.ts +7 -0
  50. package/dist/types.d.ts.map +1 -1
  51. package/package.json +1 -1
package/dist/cli.d.ts CHANGED
@@ -101,7 +101,21 @@ export declare class UsageError extends Error {
101
101
  * fallback nobody knows still works.
102
102
  */
103
103
  export declare function version(manifest?: string): string;
104
- export declare const HELP = "spec-guard - Executable architecture assertions for Markdown specs & ADRs\n\nUsage\n spec-guard [patterns...] [options] execute the directives in the specs\n spec-guard query <paths...> [options] list the rules in force for files or directories\n spec-guard mcp [options] serve the rules to an AI agent over MCP on stdio\n spec-guard prove [patterns...] [options]\n show each rule a violation of itself, in memory, and report any that pass\n spec-guard cites [paths...] [options] check that each spec a code comment cites exists and is in force\n spec-guard impact <paths...> [options] the files that depend on each path, and the rules in play there\n\nPatterns\n Globs or paths to the Markdown specs to execute. A directory expands to the\n Markdown files inside it. Defaults to \"docs/**/*.md\" when omitted. query,\n mcp, cites and impact take theirs from --spec.\n\nOptions\n -r, --root <path> Codebase root that assertions are resolved against, a directory (default: cwd)\n --spec <pattern> A spec glob or path; repeatable (default: \"docs/**/*.md\")\n -v, --verbose Print passing assertions too\n --watch Run again as the tree changes, until Ctrl+C (human output only)\n --fail-fast Stop at the first failing assertion\n --json Emit a machine-readable JSON report (same as --format json)\n --format <name> human | json | sarif | github | gitlab (sarif uploads to code scanning,\n github annotates a pull request from the log, gitlab is Code Quality)\n --engine <name> auto | rg | js (default: auto - scanner for small trees, ripgrep for big ones)\n ripgrep is rg on PATH, or the program SPEC_GUARD_RG names; where that\n is no ripgrep that runs, rg is exit 2 and auto leaves it to the scanner\n --strict Treat analysis that could not be completed, and a run that\n executed no assertion, as a failure\n --allow-missing-targets\n Tolerate target paths that do not exist (they fail by default)\n --allow-empty-scope Tolerate assertions whose scope holds no files (they fail by default)\n --print-baseline Print the baseline=\"...\" that would exempt today's violations, and exit\n --no-default-skips Search .git, .hg, .svn and node_modules too\n --exclude <globs> Paths no assertion looks at, beside each directive's exclude; repeatable\n --ignore-status Execute directives in documents not in force too (see Directives)\n --include-specs Also count matches inside the spec files themselves\n --max-snippets <n> Failure snippets per assertion (default: 5)\n --concurrency <n> Assertions executed in parallel, 1 or more (default: 8)\n --depth <n> impact: follow dependents at most n imports away (default: all)\n --allow-empty Let a run, prove or impact through when no spec file matched, or when\n one pattern matched none beside others that did (not an assertion)\n --color/--no-color Force colour on or off (NO_COLOR, FORCE_COLOR and TERM=dumb are honoured)\n --ascii/--no-ascii Write a report in ASCII, its marks as + x ! o, or with their Unicode\n forms, on any platform. Without either, SPEC_GUARD_ASCII asks for\n ASCII unless it is empty, 0 or false\n -h, --help Show this help\n --version Print the version\n\n An option that is set and names nothing is refused, exit 2, never read as if\n it were not there: an empty --root or spec pattern, --exclude \",\" (--exclude=\n with nothing clears the list), --concurrency 0, a root that is no directory,\n and a value given to an option that takes none, as in --strict=false.\n\n An option given beside its own opposite is refused the same way, in either\n order, since one of the two would go unread: --strict beside --no-strict,\n --color beside --no-color, and each other pair. The same option given twice\n is read as once.\n\n So is an option that takes one value and is given two, since the first of\n them would go unread: --root a --root b, --format json --format sarif, and\n --json beside a --format that names another format. The same value given\n twice is read as once, as --json beside --format json is. --spec and\n --exclude are lists, and each use adds to its list. Such a line is refused\n with --help or --version on it too, as a line with a pair is. And --help\n beside --version is refused, in either order: a line gets one answer.\n\n A spec pattern that matches no file, beside others that do, is refused the\n same way and by name, since none of its rules was read: a run, prove, impact\n and query exit 2. --allow-empty lets the first three through and still names\n it; --watch and mcp carry on, and say which pattern it is; cites names it\n and goes on, and exits 1 for it under --strict (see cites, below).\n\nConfiguration\n package.json in the root can hold specs, exclude, engine, strict,\n allowMissingTargets, allowEmptyScope, ignoreStatus, includeSpecs, defaultSkips,\n maxSnippets and concurrency under \"specGuard\"; a root with no package.json can\n keep them in .spec-guard.json instead, but not in both. A flag wins over the\n file, every on/off option there also takes its opposite (--no-strict,\n --default-skips, ...), and --exclude= with nothing clears exclude.\n \"cites\": [{ \"id\": \"ADR-{n}\", \"files\": \"docs/adr/{n}-*.md\" }] names the\n documents code comments cite; without it, cites reads them off the titles of\n numbered specs.\n\nDirectives\n <!-- @assert-absence target=\"src/\" symbol=\"LegacyGateway\" exclude=\"src/legacy/**\" -->\n <!-- @assert-count target=\"src/\" symbol=\"SessionManager\" expected=\"1\" -->\n <!-- @assert-present file=\"SECURITY.md\" -->\n <!-- @assert-import-cycle target=\"src/\" types=\"ignore\" -->\n <!-- @assert-layers target=\"src/\" order=\"domain, application, infrastructure\" -->\n <!-- @assert-structure target=\"src/\" exclude=\"*.test.ts\" partner=\"[name].test.ts\" -->\n\n Matches inside comments do not count; add comments=\"include\" to count them.\n An assertion whose scope holds no files fails; add allow-empty=\"true\" to allow it.\n A document whose status is draft, proposed, rejected, deprecated, superseded\n or archived is reported and not executed; --ignore-status runs it anyway.\n The status is read in English, whatever language the document is written in:\n status: superseded.\n\nprove adds, changes or removes files in memory only - never on disk - to make\nthe violation each rule forbids, and runs the rule over that tree. A rule that\nstill passes survived, and exits 1; one no violation could be made for is\nunprovable, and exits 1 under --strict.\n\ncites reads comment text only - not strings, not Markdown - for ids such as\nADR-0007, ADR-7 and ADR-007, which are one document. A ghost citation names no\ndocument, and exits 1; a stale one names a document superseded, deprecated,\nrejected or archived, and exits 1 under --strict. A family whose files match no\ndocument exits 2. A spec pattern that matches no file beside others that do is\nnamed on stderr. Without \"cites\" in the configuration the families are read off\nthe specs, so one kept under that pattern was not read and no citation of it\nwas looked for: exit 1 under --strict. Families \"cites\" names lose nothing.\n\nimpact follows the import graph backwards: relative JavaScript, TypeScript and\nPython imports that name a file. Go, Rust, C# and absolute Python imports name\nmodules, and are counted rather than followed; an import that names no file is\nlisted, never guessed at.\n\nquery answers from the specs alone, without reading the codebase, so it works\nfor a file that does not exist yet. mcp offers the same answer, a check and\nimpact's, as the tools get_architectural_rules, check_architecture and\nget_dependents.\n\nExit codes\n 0 all assertions passed 1 an assertion failed, or none ran under --strict\n 2 spec-guard could not run 130 a --watch session was stopped";
104
+ export declare const HELP = "spec-guard - Executable architecture assertions for Markdown specs & ADRs\n\nUsage\n spec-guard [patterns...] [options] execute the directives in the specs\n spec-guard query <paths...> [options] list the rules in force for files or directories\n spec-guard mcp [options] serve the rules to an AI agent over MCP on stdio\n spec-guard prove [patterns...] [options]\n show each rule a violation of itself, in memory, and report any that pass\n spec-guard cites [paths...] [options] check that each spec a code comment cites exists and is in force\n spec-guard impact <paths...> [options] the files that depend on each path, and the rules in play there\n\nPatterns\n Globs or paths to the Markdown specs to execute. A directory expands to the\n Markdown files inside it. Defaults to \"docs/**/*.md\" when omitted. query,\n mcp, cites and impact take theirs from --spec.\n\nOptions\n -r, --root <path> Codebase root that assertions are resolved against, a directory (default: cwd)\n --spec <pattern> A spec glob or path; repeatable (default: \"docs/**/*.md\")\n -v, --verbose Print passing assertions too\n --watch Run again as the tree changes, until Ctrl+C (human output only)\n --fail-fast Stop at the first failing assertion\n --json Emit a machine-readable JSON report (same as --format json)\n --format <name> human | json | sarif | github | gitlab (sarif uploads to code scanning,\n github annotates a pull request from the log, gitlab is Code Quality)\n --engine <name> auto | rg | js (default: auto - scanner for small trees, ripgrep for big ones)\n ripgrep is rg on PATH, or the program SPEC_GUARD_RG names; where that\n is no ripgrep that runs, rg is exit 2 and auto leaves it to the scanner\n --strict Treat analysis that could not be completed, and a run that\n executed no assertion, as a failure\n --allow-missing-targets\n Tolerate target paths that do not exist (they fail by default)\n --allow-empty-scope Tolerate assertions whose scope holds no files (they fail by default)\n --print-baseline Print the baseline=\"...\" that would exempt today's violations, and exit\n --no-default-skips Search .git, .hg, .svn and node_modules too, and the other git work trees\n below the root\n --exclude <globs> Paths no assertion looks at, beside each directive's exclude; repeatable\n --ignore-status Execute directives in documents not in force too (see Directives)\n --include-specs Also count matches inside the spec files themselves\n --max-snippets <n> Failure snippets per assertion (default: 5)\n --concurrency <n> Assertions executed in parallel, 1 or more (default: 8)\n --depth <n> impact: follow dependents at most n imports away (default: all)\n --allow-empty Let a run, prove or impact through when no spec file matched, or when\n one pattern matched none beside others that did (not an assertion)\n --color/--no-color Force colour on or off (NO_COLOR, FORCE_COLOR and TERM=dumb are honoured)\n --ascii/--no-ascii Write a report in ASCII, its marks as + x ! o, or with their Unicode\n forms, on any platform. Without either, SPEC_GUARD_ASCII asks for\n ASCII unless it is empty, 0 or false\n -h, --help Show this help\n --version Print the version\n\n An option that is set and names nothing is refused, exit 2, never read as if\n it were not there: an empty --root or spec pattern, --exclude \",\" (--exclude=\n with nothing clears the list), --concurrency 0, a root that is no directory,\n and a value given to an option that takes none, as in --strict=false.\n\n An option given beside its own opposite is refused the same way, in either\n order, since one of the two would go unread: --strict beside --no-strict,\n --color beside --no-color, and each other pair. The same option given twice\n is read as once.\n\n So is an option that takes one value and is given two, since the first of\n them would go unread: --root a --root b, --format json --format sarif, and\n --json beside a --format that names another format. The same value given\n twice is read as once, as --json beside --format json is, and on Windows\n a drive letter names its volume in either case, so --root C:\\x beside\n --root c:\\x is one root. --spec and --exclude are lists, and each use adds\n to its list. Such a line is refused with --help or --version on it too, as\n a line with a pair is. And --help beside --version is refused, in either\n order: a line gets one answer.\n\n A spec pattern that matches no file, beside others that do, is refused the\n same way and by name, since none of its rules was read: a run, prove, impact\n and query exit 2. --allow-empty lets the first three through and still names\n it; --watch and mcp carry on, and say which pattern it is; cites names it\n and goes on, and exits 1 for it under --strict (see cites, below).\n\nConfiguration\n package.json in the root can hold specs, exclude, engine, strict,\n allowMissingTargets, allowEmptyScope, ignoreStatus, includeSpecs, defaultSkips,\n maxSnippets and concurrency under \"specGuard\"; a root with no package.json can\n keep them in .spec-guard.json instead, but not in both. A flag wins over the\n file, every on/off option there also takes its opposite (--no-strict,\n --default-skips, ...), and --exclude= with nothing clears exclude.\n \"cites\": [{ \"id\": \"ADR-{n}\", \"files\": \"docs/adr/{n}-*.md\" }] names the\n documents code comments cite; without it, cites reads them off the titles of\n numbered specs.\n\nDirectives\n <!-- @assert-absence target=\"src/\" symbol=\"LegacyGateway\" exclude=\"src/legacy/**\" -->\n <!-- @assert-count target=\"src/\" symbol=\"SessionManager\" expected=\"1\" -->\n <!-- @assert-present file=\"SECURITY.md\" -->\n <!-- @assert-import-cycle target=\"src/\" types=\"ignore\" -->\n <!-- @assert-layers target=\"src/\" order=\"domain, application, infrastructure\" -->\n <!-- @assert-structure target=\"src/\" exclude=\"*.test.ts\" partner=\"[name].test.ts\" -->\n\n Matches inside comments do not count; add comments=\"include\" to count them.\n An assertion whose scope holds no files fails; add allow-empty=\"true\" to allow it.\n A document whose status is draft, proposed, rejected, deprecated, superseded\n or archived is reported and not executed; --ignore-status runs it anyway.\n The status is read in English, whatever language the document is written in:\n status: superseded.\n\nprove adds, changes or removes files in memory only - never on disk - to make\nthe violation each rule forbids, and runs the rule over that tree. A rule that\nstill passes survived, and exits 1; one no violation could be made for is\nunprovable, and exits 1 under --strict.\n\ncites reads comment text only - not strings, not Markdown - for ids such as\nADR-0007, ADR-7 and ADR-007, which are one document. A ghost citation names no\ndocument, and exits 1; a stale one names a document superseded, deprecated,\nrejected or archived, and exits 1 under --strict. A family whose files match no\ndocument exits 2. A spec pattern that matches no file beside others that do is\nnamed on stderr. Without \"cites\" in the configuration the families are read off\nthe specs, so one kept under that pattern was not read and no citation of it\nwas looked for: exit 1 under --strict. Families \"cites\" names lose nothing.\n\nimpact follows the import graph backwards: relative JavaScript, TypeScript and\nPython imports that name a file. Go, Rust, C# and absolute Python imports name\nmodules, and are counted rather than followed; an import that names no file is\nlisted, never guessed at.\n\nquery answers from the specs alone, without reading the codebase, so it works\nfor a file that does not exist yet. mcp offers the same answer, a check and\nimpact's, as the tools get_architectural_rules, check_architecture and\nget_dependents.\n\nExit codes\n 0 all assertions passed 1 an assertion failed, or none ran under --strict\n 2 spec-guard could not run 130 a --watch session was stopped";
105
+ /**
106
+ * A resolved root as two of them are compared. On Windows a drive letter
107
+ * names its volume in either case, so `--root C:\x` beside `--root c:\x` is
108
+ * one directory asked for twice (spec-core's ADR-0005, amended 2026-10-19).
109
+ * A resolved path starts with its drive letter there, and with a separator,
110
+ * which has no case, everywhere else and for a UNC path: so the first
111
+ * character is the one folded, on every host. The rest of the path is the
112
+ * disk's to tell apart, and is compared as resolved. Folded down instead of
113
+ * up, two letters compare alike, so that mutant is equivalent. So is the
114
+ * whole path folded with the rest of it added as resolved, `.charAt(0)`
115
+ * taken off: two keys made so are equal exactly where the first characters
116
+ * fold alike and the rest is the same, as two made by this line are.
117
+ */
118
+ export declare function comparedRoot(resolved: string): string;
105
119
  /** Minimal, dependency-free argv parser. Supports `--flag value` and `--flag=value`. */
106
120
  export declare function parseArgs(argv: readonly string[], cwd: string): CliOptions;
107
121
  /**
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
@@ -99,7 +99,8 @@ Options
99
99
  Tolerate target paths that do not exist (they fail by default)
100
100
  --allow-empty-scope Tolerate assertions whose scope holds no files (they fail by default)
101
101
  --print-baseline Print the baseline="..." that would exempt today's violations, and exit
102
- --no-default-skips Search .git, .hg, .svn and node_modules too
102
+ --no-default-skips Search .git, .hg, .svn and node_modules too, and the other git work trees
103
+ below the root
103
104
  --exclude <globs> Paths no assertion looks at, beside each directive's exclude; repeatable
104
105
  --ignore-status Execute directives in documents not in force too (see Directives)
105
106
  --include-specs Also count matches inside the spec files themselves
@@ -128,10 +129,12 @@ Options
128
129
  So is an option that takes one value and is given two, since the first of
129
130
  them would go unread: --root a --root b, --format json --format sarif, and
130
131
  --json beside a --format that names another format. The same value given
131
- twice is read as once, as --json beside --format json is. --spec and
132
- --exclude are lists, and each use adds to its list. Such a line is refused
133
- with --help or --version on it too, as a line with a pair is. And --help
134
- beside --version is refused, in either order: a line gets one answer.
132
+ twice is read as once, as --json beside --format json is, and on Windows
133
+ a drive letter names its volume in either case, so --root C:\\x beside
134
+ --root c:\\x is one root. --spec and --exclude are lists, and each use adds
135
+ to its list. Such a line is refused with --help or --version on it too, as
136
+ a line with a pair is. And --help beside --version is refused, in either
137
+ order: a line gets one answer.
135
138
 
136
139
  A spec pattern that matches no file, beside others that do, is refused the
137
140
  same way and by name, since none of its rules was read: a run, prove, impact
@@ -308,6 +311,22 @@ const NOT_WITH_WATCH = [
308
311
  ];
309
312
  /** The long name of an option, whichever way it was spelled. */
310
313
  const LONG_NAMES = { '-v': '--verbose', '-r': '--root', '-h': '--help' };
314
+ /**
315
+ * A resolved root as two of them are compared. On Windows a drive letter
316
+ * names its volume in either case, so `--root C:\x` beside `--root c:\x` is
317
+ * one directory asked for twice (spec-core's ADR-0005, amended 2026-10-19).
318
+ * A resolved path starts with its drive letter there, and with a separator,
319
+ * which has no case, everywhere else and for a UNC path: so the first
320
+ * character is the one folded, on every host. The rest of the path is the
321
+ * disk's to tell apart, and is compared as resolved. Folded down instead of
322
+ * up, two letters compare alike, so that mutant is equivalent. So is the
323
+ * whole path folded with the rest of it added as resolved, `.charAt(0)`
324
+ * taken off: two keys made so are equal exactly where the first characters
325
+ * fold alike and the rest is the same, as two made by this line are.
326
+ */
327
+ export function comparedRoot(resolved) {
328
+ return `${resolved.charAt(0).toUpperCase()}${resolved.slice(1)}`;
329
+ }
311
330
  /** Minimal, dependency-free argv parser. Supports `--flag value` and `--flag=value`. */
312
331
  export function parseArgs(argv, cwd) {
313
332
  const command = COMMANDS.has(argv[0]) ? argv[0] : 'check';
@@ -512,7 +531,7 @@ export function parseArgs(argv, cwd) {
512
531
  throw new UsageError(`Option ${name} expects a directory, got ${JSON.stringify(value)}. Name one, or leave the option out to run in the working directory.`);
513
532
  }
514
533
  options.root = path.resolve(cwd, value);
515
- asks(options.root, value);
534
+ asks(comparedRoot(options.root), value);
516
535
  break;
517
536
  }
518
537
  case '--spec':
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * One reading of a regex rule, for both engines. ADR-0007, amended
3
+ * 2026-10-24.
4
+ *
5
+ * ripgrep only names the files the scanner reads, so a file its reading of a
6
+ * pattern leaves out is a file whose matches are never counted, and a rule
7
+ * they would fail passes. ripgrep reads a pattern as the regex crate's
8
+ * documentation says, and JavaScript gave some of the same text another
9
+ * meaning: its `\w`, `\b` and `\d` were ASCII and its `\s` held U+FEFF and not
10
+ * NEL, where the crate's are Unicode's; a character was a UTF-16 unit; and
11
+ * `\A`, `\<` or `[[:alpha:]]` were letters and brackets. So the scanner is
12
+ * given each rule as the crate reads it, in JavaScript's `v` mode, which reads
13
+ * a character as a code point, folds case by Unicode's simple case folding as
14
+ * the crate does, and holds a class inside a class:
15
+ *
16
+ * - `\w`, `\d`, `\s`, their negations, `\b` and `\B` are the crate's Unicode
17
+ * ones, and so is the boundary `word="true"` puts round a rule;
18
+ * - `^` and `$` meet each line, as ripgrep reads one with `--crlf`;
19
+ * - what the crate reads and JavaScript read otherwise is refused, naming it,
20
+ * since one engine would count what the other never named;
21
+ * - what JavaScript read without `v` as itself is kept as itself: an escaped
22
+ * sign, a lone `]`, a `{` or `}` that is no count, and a `-` beside a class
23
+ * escape in a class. The crate reads each the same, but a `{` and that `-`,
24
+ * which it refuses, and which the scanner then answers alone;
25
+ * - what only JavaScript reads, a look-around or a back-reference, is the
26
+ * scanner's alone, as before: ripgrep refuses the pattern, and the scanner
27
+ * answers the search.
28
+ */
29
+ /**
30
+ * The regex crate's `\w`: `\p{Alphabetic}`, `\p{M}`, `\d`, `\p{Pc}` and
31
+ * `\p{Join_Control}`, as its documentation lists them (regex 1.13.1, read
32
+ * 2026-10-24). JavaScript's is `[A-Za-z0-9_]`, and a literal's word boundary
33
+ * here was `\p{L}`, `\p{N}` and `_`, which holds no mark and no ZWJ.
34
+ */
35
+ export declare const WORD_CHARACTER: string;
36
+ /**
37
+ * A regex rule's source as the scanner reads it, in JavaScript's `v` mode:
38
+ * the reading ripgrep has of it, where the two dialects meet.
39
+ *
40
+ * Throws a SyntaxError, worded as JavaScript words its own, for a rule the
41
+ * two engines would read differently.
42
+ */
43
+ export declare function readRegex(source: string): string;
44
+ /**
45
+ * The regular expression the scanner matches a regex rule with: the rule as
46
+ * `readRegex` reads it, between word boundaries for `word="true"`, which
47
+ * ripgrep's `--word-regexp` puts round a pattern as `\b{start-half}` and
48
+ * `\b{end-half}`: no word character before the match and none after it.
49
+ */
50
+ export declare function buildRegexRule(symbol: string, flags: string, word: boolean): RegExp;
51
+ //# sourceMappingURL=dialect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialect.d.ts","sourceRoot":"","sources":["../src/dialect.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH;;;;;GAKG;AACH,eAAO,MAAM,cAAc,QAAgE,CAAC;AA6K5F;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CA6ChD;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,CAUnF"}
@@ -0,0 +1,265 @@
1
+ /**
2
+ * One reading of a regex rule, for both engines. ADR-0007, amended
3
+ * 2026-10-24.
4
+ *
5
+ * ripgrep only names the files the scanner reads, so a file its reading of a
6
+ * pattern leaves out is a file whose matches are never counted, and a rule
7
+ * they would fail passes. ripgrep reads a pattern as the regex crate's
8
+ * documentation says, and JavaScript gave some of the same text another
9
+ * meaning: its `\w`, `\b` and `\d` were ASCII and its `\s` held U+FEFF and not
10
+ * NEL, where the crate's are Unicode's; a character was a UTF-16 unit; and
11
+ * `\A`, `\<` or `[[:alpha:]]` were letters and brackets. So the scanner is
12
+ * given each rule as the crate reads it, in JavaScript's `v` mode, which reads
13
+ * a character as a code point, folds case by Unicode's simple case folding as
14
+ * the crate does, and holds a class inside a class:
15
+ *
16
+ * - `\w`, `\d`, `\s`, their negations, `\b` and `\B` are the crate's Unicode
17
+ * ones, and so is the boundary `word="true"` puts round a rule;
18
+ * - `^` and `$` meet each line, as ripgrep reads one with `--crlf`;
19
+ * - what the crate reads and JavaScript read otherwise is refused, naming it,
20
+ * since one engine would count what the other never named;
21
+ * - what JavaScript read without `v` as itself is kept as itself: an escaped
22
+ * sign, a lone `]`, a `{` or `}` that is no count, and a `-` beside a class
23
+ * escape in a class. The crate reads each the same, but a `{` and that `-`,
24
+ * which it refuses, and which the scanner then answers alone;
25
+ * - what only JavaScript reads, a look-around or a back-reference, is the
26
+ * scanner's alone, as before: ripgrep refuses the pattern, and the scanner
27
+ * answers the search.
28
+ */
29
+ /**
30
+ * The regex crate's `\w`: `\p{Alphabetic}`, `\p{M}`, `\d`, `\p{Pc}` and
31
+ * `\p{Join_Control}`, as its documentation lists them (regex 1.13.1, read
32
+ * 2026-10-24). JavaScript's is `[A-Za-z0-9_]`, and a literal's word boundary
33
+ * here was `\p{L}`, `\p{N}` and `_`, which holds no mark and no ZWJ.
34
+ */
35
+ export const WORD_CHARACTER = String.raw `[\p{Alphabetic}\p{M}\p{Nd}\p{Pc}\p{Join_Control}]`;
36
+ const NOT_WORD_CHARACTER = `[^${WORD_CHARACTER.slice(1)}`;
37
+ /** The crate's `\d`, `\s`, `\w` and their negations, each of which stands in a class as well as outside one. */
38
+ const CLASS_ESCAPES = {
39
+ d: String.raw `\p{Nd}`,
40
+ D: String.raw `\P{Nd}`,
41
+ s: String.raw `\p{White_Space}`,
42
+ S: String.raw `\P{White_Space}`,
43
+ w: WORD_CHARACTER,
44
+ W: NOT_WORD_CHARACTER,
45
+ };
46
+ /**
47
+ * A word character on one side and none on the other, the start and the end
48
+ * of the text standing for none, as the crate's `\b` reads.
49
+ */
50
+ const BOUNDARY = `(?:(?<=${WORD_CHARACTER})(?!${WORD_CHARACTER})|(?<!${WORD_CHARACTER})(?=${WORD_CHARACTER}))`;
51
+ const NOT_BOUNDARY = `(?:(?<=${WORD_CHARACTER})(?=${WORD_CHARACTER})|(?<!${WORD_CHARACTER})(?!${WORD_CHARACTER}))`;
52
+ /**
53
+ * U+2028 and U+2029, at which JavaScript's `m` ends a line and ripgrep
54
+ * does not. Made from their numbers, so that no separator stands in this file
55
+ * where an editor would show a line break.
56
+ */
57
+ const SEPARATORS = String.fromCharCode(0x2028, 0x2029);
58
+ /**
59
+ * `^` and `$` as ripgrep reads them with `--crlf`: at the start and at the
60
+ * end of each line, a line ending at LF, at CRLF or at a lone CR, with no line
61
+ * after the last line end. JavaScript's `m` reads three lines more, and each
62
+ * is taken back out: one between the CR and the LF of a CRLF, one after the
63
+ * last line end (and so in an empty file), and a line end at each separator.
64
+ * With `m` alone `\s+$` matched on every line of a CRLF file and on the
65
+ * last of every file, `^` met each CRLF line twice, and a line begun at a
66
+ * separator was counted in a file ripgrep never named. ADR-0007, amended
67
+ * 2026-10-19.
68
+ */
69
+ const LINE_START = `(?:^(?<![${SEPARATORS}])(?!(?<=\\r)\\n)(?=[\\s\\S]))`;
70
+ const LINE_END = `(?:$(?![${SEPARATORS}])(?!(?<=\\r)\\n)(?!(?<![^\\n\\r])(?![\\s\\S])))`;
71
+ /** What the crate reads in an escape that JavaScript read as the letter or the sign itself. */
72
+ const RIPGREP_ESCAPES = {
73
+ A: 'the start of the text',
74
+ z: 'the end of the text',
75
+ '<': 'the start of a word',
76
+ '>': 'the end of a word',
77
+ a: 'a bell, U+0007',
78
+ U: 'a code point in eight hex digits',
79
+ };
80
+ /** A count JavaScript reads after an atom: `{n}`, `{n,}` or `{n,m}`. */
81
+ const COUNT = /\{\d+(?:,\d*)?\}/y;
82
+ /**
83
+ * A count with blanks in it, `{2, 3}`, which ripgrep 15.0.0 reads as a count
84
+ * (measured; its documentation does not say) and JavaScript as characters.
85
+ */
86
+ const BLANK_COUNT = /\{\s*\d+\s*(?:,\s*\d*\s*)?\}/y;
87
+ /**
88
+ * An escape that holds a name or a number between brackets: `\p{...}`,
89
+ * `\P{...}`, `\u{...}` and `\k<...>`. Read as a match of its own, so that no
90
+ * reading of a rule steps back. One left open is read a character at a time,
91
+ * and `v` mode refuses it in the words it has for it read whole.
92
+ */
93
+ const NAMED = /\\[pPu]\{[^}]*\}|\\k<[^>]*>/y;
94
+ /** A group's name, which may hold a `$`; one left open is read as `NAMED` reads one. */
95
+ const GROUP_NAME = /\(\?<(?![=!])[^>]*>/y;
96
+ function refuse(source, reason) {
97
+ throw new SyntaxError(`Invalid regular expression: /${source}/: ${reason}`);
98
+ }
99
+ /**
100
+ * ASCII that is neither a letter nor a digit, which the crate reads as itself
101
+ * after a backslash, `<` and `>` aside, and which `v` mode reads as itself
102
+ * written as a hex escape, in a class and outside one.
103
+ */
104
+ function isAsciiSign(char) {
105
+ return char.charCodeAt(0) < 0x80 && !/[0-9A-Za-z]/.test(char);
106
+ }
107
+ function hex(char) {
108
+ return `\\x${char.charCodeAt(0).toString(16).padStart(2, '0')}`;
109
+ }
110
+ /** The escape that starts at `at`, which is a backslash. */
111
+ function escapeAt(source, at, inClass) {
112
+ const next = source.charAt(at + 1);
113
+ const known = CLASS_ESCAPES[next];
114
+ if (known !== undefined)
115
+ return { text: known, length: 2, set: true };
116
+ const ripgrep = RIPGREP_ESCAPES[next];
117
+ // In a class the crate refuses a `\<`, a `\A` and a `\z`, and the scanner
118
+ // answers as JavaScript reads it, which `v` mode accepts or refuses itself.
119
+ if (ripgrep !== undefined && (!inClass || next === 'a' || next === 'U')) {
120
+ refuse(source, `"\\${next}" is ${ripgrep} to ripgrep and "${next}" to JavaScript`);
121
+ }
122
+ const after = source.charAt(at + 2);
123
+ if (next === 'b' || next === 'B') {
124
+ if (inClass)
125
+ return { text: next === 'b' ? '\\x08' : '\\B', length: 2 };
126
+ if (next === 'b' && after === '{')
127
+ refuse(source, '"\\b{" is a word boundary of the kind its braces name to ripgrep, and a word boundary before a "{" to JavaScript');
128
+ return { text: next === 'b' ? BOUNDARY : NOT_BOUNDARY, length: 2 };
129
+ }
130
+ if ((next === 'p' || next === 'P') && after !== '{') {
131
+ refuse(source, `"\\${next}${after}" is a class of characters to ripgrep and "${next}${after}" to JavaScript`);
132
+ }
133
+ if (next === 'x' && after === '{')
134
+ refuse(source, '"\\x{" is the code point its braces hold to ripgrep, and an "x" and braces to JavaScript');
135
+ // No sign between the brackets is the class's or the rule's own. `v` mode
136
+ // refuses a `\k<...>` in a class, read whole or not.
137
+ NAMED.lastIndex = at;
138
+ const named = NAMED.exec(source);
139
+ if (named !== null)
140
+ return { text: named[0], length: named[0].length, set: next !== 'u' };
141
+ if (isAsciiSign(next))
142
+ return { text: hex(next), length: 2 };
143
+ // A letter, a digit, any other character, or nothing: `v` mode reads it as
144
+ // JavaScript reads it, or refuses it, as it refuses a trailing backslash.
145
+ // Two on from a trailing backslash is past the end, where every reading
146
+ // here stops.
147
+ return { text: source.slice(at, at + 2), length: 2 };
148
+ }
149
+ /** The class that starts at `at`, which is a `[`, and whether it is `[]` or `[^]`, which the crate does not close where JavaScript does. */
150
+ function classAt(source, at) {
151
+ let i = at + 1;
152
+ const negated = source.charAt(i) === '^';
153
+ if (negated)
154
+ i += 1;
155
+ if (source.charAt(i) === ']')
156
+ return { text: source.slice(at, i + 1), length: i + 1 - at, empty: true };
157
+ const atoms = [];
158
+ while (i < source.length && source.charAt(i) !== ']') {
159
+ const pair = source.slice(i, i + 2);
160
+ if (pair === '&&' || pair === '--' || pair === '~~') {
161
+ refuse(source, `"${pair}" in a class is an operation on two classes to ripgrep and two characters to JavaScript`);
162
+ }
163
+ const char = source.charAt(i);
164
+ if (char === '[')
165
+ refuse(source, '"[" in a class is a class inside it to ripgrep, as in [[:alpha:]], and a "[" to JavaScript');
166
+ if (char === '\\') {
167
+ const escape = escapeAt(source, i, true);
168
+ atoms.push({ text: escape.text, set: escape.set, dash: false });
169
+ i += escape.length;
170
+ continue;
171
+ }
172
+ const point = String.fromCodePoint(source.codePointAt(i));
173
+ atoms.push({ text: isAsciiSign(point) ? hex(point) : point, dash: point === '-' });
174
+ i += point.length;
175
+ }
176
+ // A `-` between two characters is a range to both. Beside a class escape,
177
+ // or after a range, JavaScript read it as itself. Two in a row are refused
178
+ // above, so neither end of a range is a `-` that could start another.
179
+ let body = '';
180
+ for (let k = 0; k < atoms.length; k += 1) {
181
+ const atom = atoms[k];
182
+ const end = atoms[k + 2];
183
+ const ranged = !atom.set && atoms[k + 1]?.dash === true && end !== undefined && !end.set;
184
+ body += ranged ? `${atom.text}-${end.text}` : atom.text;
185
+ k += ranged ? 2 : 0;
186
+ }
187
+ // The class's `]`, or nothing where the rule ends first: an unterminated
188
+ // class stays unterminated, for `v` mode to refuse.
189
+ const closed = source.charAt(i);
190
+ return { text: `[${negated ? '^' : ''}${body}${closed}`, length: i + closed.length - at, empty: false };
191
+ }
192
+ /**
193
+ * A regex rule's source as the scanner reads it, in JavaScript's `v` mode:
194
+ * the reading ripgrep has of it, where the two dialects meet.
195
+ *
196
+ * Throws a SyntaxError, worded as JavaScript words its own, for a rule the
197
+ * two engines would read differently.
198
+ */
199
+ export function readRegex(source) {
200
+ let read = '';
201
+ let at = 0;
202
+ let empty = '';
203
+ // `<=` for the `<` reads one place past the end, where `charAt` gives
204
+ // nothing and nothing is added: an equivalent mutant.
205
+ while (at < source.length) {
206
+ const char = source.charAt(at);
207
+ if (char === '\\') {
208
+ const escape = escapeAt(source, at, false);
209
+ read += escape.text;
210
+ at += escape.length;
211
+ continue;
212
+ }
213
+ if (char === '[') {
214
+ const found = classAt(source, at);
215
+ read += found.text;
216
+ if (found.empty)
217
+ empty = found.text;
218
+ at += found.length;
219
+ continue;
220
+ }
221
+ GROUP_NAME.lastIndex = at;
222
+ const group = GROUP_NAME.exec(source);
223
+ if (group !== null) {
224
+ read += group[0];
225
+ at += group[0].length;
226
+ continue;
227
+ }
228
+ if (char === '{') {
229
+ COUNT.lastIndex = at;
230
+ const count = COUNT.exec(source);
231
+ BLANK_COUNT.lastIndex = at;
232
+ const blank = count === null ? BLANK_COUNT.exec(source) : null;
233
+ if (blank !== null)
234
+ refuse(source, `"${blank[0]}" is a count to ripgrep, which reads one with blanks in it, and those characters to JavaScript`);
235
+ read += count === null ? '\\{' : count[0];
236
+ at += count === null ? 1 : count[0].length;
237
+ continue;
238
+ }
239
+ if (char === ']' && empty !== '') {
240
+ refuse(source, `"${empty}" before a "]" is a class holding the "]" to ripgrep, and ${empty === '[]' ? 'no character' : 'any character'} to JavaScript`);
241
+ }
242
+ read += char === '^' ? LINE_START : char === '$' ? LINE_END : char === ']' || char === '}' ? `\\${char}` : char;
243
+ at += 1;
244
+ }
245
+ return read;
246
+ }
247
+ /**
248
+ * The regular expression the scanner matches a regex rule with: the rule as
249
+ * `readRegex` reads it, between word boundaries for `word="true"`, which
250
+ * ripgrep's `--word-regexp` puts round a pattern as `\b{start-half}` and
251
+ * `\b{end-half}`: no word character before the match and none after it.
252
+ */
253
+ export function buildRegexRule(symbol, flags, word) {
254
+ const read = readRegex(symbol);
255
+ const source = word ? `(?<!${WORD_CHARACTER})(?:${read})(?!${WORD_CHARACTER})` : read;
256
+ try {
257
+ return new RegExp(source, `${flags}mv`);
258
+ }
259
+ catch (error) {
260
+ // V8 names the source it was given, which is the reading, not the rule.
261
+ const message = error.message;
262
+ refuse(symbol, message.slice(message.lastIndexOf(': ') + 2));
263
+ }
264
+ }
265
+ //# sourceMappingURL=dialect.js.map