@kaitranntt/ccs 8.4.0-dev.4 → 8.4.0-dev.6

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 (53) hide show
  1. package/dist/cliproxy/executor/browser-launch-setup.d.ts.map +1 -1
  2. package/dist/cliproxy/executor/browser-launch-setup.js +6 -2
  3. package/dist/cliproxy/executor/browser-launch-setup.js.map +1 -1
  4. package/dist/commands/bar/bar-server-probe.d.ts +3 -3
  5. package/dist/commands/bar/bar-server-probe.d.ts.map +1 -1
  6. package/dist/commands/bar/bar-server-probe.js +21 -6
  7. package/dist/commands/bar/bar-server-probe.js.map +1 -1
  8. package/dist/commands/bar/help-subcommand.d.ts.map +1 -1
  9. package/dist/commands/bar/help-subcommand.js +2 -2
  10. package/dist/commands/bar/help-subcommand.js.map +1 -1
  11. package/dist/commands/bar/install-subcommand.d.ts +0 -7
  12. package/dist/commands/bar/install-subcommand.d.ts.map +1 -1
  13. package/dist/commands/bar/install-subcommand.js +10 -41
  14. package/dist/commands/bar/install-subcommand.js.map +1 -1
  15. package/dist/commands/config-channels-command.d.ts +1 -1
  16. package/dist/commands/config-channels-command.d.ts.map +1 -1
  17. package/dist/commands/config-channels-command.js +3 -3
  18. package/dist/commands/config-channels-command.js.map +1 -1
  19. package/dist/commands/config-command-options.js +2 -2
  20. package/dist/commands/config-command-options.js.map +1 -1
  21. package/dist/config/config-loader-facade.d.ts +1 -1
  22. package/dist/config/config-loader-facade.d.ts.map +1 -1
  23. package/dist/config/config-loader-facade.js +2 -1
  24. package/dist/config/config-loader-facade.js.map +1 -1
  25. package/dist/config/loader/config-getters.d.ts +7 -0
  26. package/dist/config/loader/config-getters.d.ts.map +1 -1
  27. package/dist/config/loader/config-getters.js +20 -1
  28. package/dist/config/loader/config-getters.js.map +1 -1
  29. package/dist/config/unified-config-loader.d.ts +1 -1
  30. package/dist/config/unified-config-loader.d.ts.map +1 -1
  31. package/dist/config/unified-config-loader.js +2 -1
  32. package/dist/config/unified-config-loader.js.map +1 -1
  33. package/dist/dispatcher/profile-resolver.d.ts.map +1 -1
  34. package/dist/dispatcher/profile-resolver.js +5 -1
  35. package/dist/dispatcher/profile-resolver.js.map +1 -1
  36. package/dist/utils/browser/browser-settings.d.ts +3 -1
  37. package/dist/utils/browser/browser-settings.d.ts.map +1 -1
  38. package/dist/utils/browser/browser-settings.js +2 -2
  39. package/dist/utils/browser/browser-settings.js.map +1 -1
  40. package/dist/utils/browser/browser-setup.d.ts.map +1 -1
  41. package/dist/utils/browser/browser-setup.js +3 -1
  42. package/dist/utils/browser/browser-setup.js.map +1 -1
  43. package/dist/utils/browser/browser-status.d.ts.map +1 -1
  44. package/dist/utils/browser/browser-status.js +4 -2
  45. package/dist/utils/browser/browser-status.js.map +1 -1
  46. package/dist/web-server/routes/cursor-routes.d.ts.map +1 -1
  47. package/dist/web-server/routes/cursor-routes.js +3 -1
  48. package/dist/web-server/routes/cursor-routes.js.map +1 -1
  49. package/dist/web-server/routes/route-helpers.d.ts.map +1 -1
  50. package/dist/web-server/routes/route-helpers.js +8 -0
  51. package/dist/web-server/routes/route-helpers.js.map +1 -1
  52. package/package.json +1 -1
  53. package/scripts/github/stable-release-issue-cleanup-lib.mjs +51 -11
@@ -1,32 +1,72 @@
1
1
  import { readFileSync } from 'node:fs';
2
2
  import { spawnSync } from 'node:child_process';
3
3
 
4
- const ISSUE_REF_PATTERN = /#([0-9]+)/g;
5
- const ACTION_VERB_PATTERN =
6
- /\b(?:fixes|closes|resolves|refs?)\b\s+(#\d+\b(?:\s*(?:,|and)?\s*#\d+\b)*)/gi;
7
- const RESOLVE_VERB_PATTERN =
8
- /\b(?:fixes|closes|resolves)\b\s+(#\d+\b(?:\s*(?:,|and)?\s*#\d+\b)*)/gi;
4
+ const ACTION_VERB_PATTERN = /\b(?:fixes|closes|resolves|refs?)\b\s+/gi;
5
+ const RESOLVE_VERB_PATTERN = /\b(?:fixes|closes|resolves)\b\s+/gi;
9
6
  const PR_REF_PATTERN = /(?:Merge pull request #|\(#)([0-9]+)/g;
10
7
  const STABLE_TAG_PATTERN = /^v[0-9]+\.[0-9]+\.[0-9]+$/;
11
8
 
12
9
  export function extractIssueNumbers(text, { includeRefs = true } = {}) {
13
10
  const pattern = includeRefs ? ACTION_VERB_PATTERN : RESOLVE_VERB_PATTERN;
11
+ const source = text || '';
14
12
  const issues = new Set();
15
13
  let actionMatch;
16
14
 
17
15
  pattern.lastIndex = 0;
18
- while ((actionMatch = pattern.exec(text || '')) !== null) {
19
- const tail = actionMatch[1] || '';
20
- let issueMatch;
21
- ISSUE_REF_PATTERN.lastIndex = 0;
22
- while ((issueMatch = ISSUE_REF_PATTERN.exec(tail)) !== null) {
23
- issues.add(Number(issueMatch[1]));
16
+ while ((actionMatch = pattern.exec(source)) !== null) {
17
+ let cursor = actionMatch.index + actionMatch[0].length;
18
+
19
+ while (source[cursor] === '#') {
20
+ const numberStart = cursor + 1;
21
+ let numberEnd = numberStart;
22
+ while (numberEnd < source.length && isAsciiDigit(source[numberEnd])) {
23
+ numberEnd += 1;
24
+ }
25
+
26
+ if (numberEnd === numberStart || isAsciiWord(source[numberEnd] || '')) break;
27
+ issues.add(Number(source.slice(numberStart, numberEnd)));
28
+ cursor = numberEnd;
29
+
30
+ cursor = skipWhitespace(source, cursor);
31
+ if (source[cursor] === ',') {
32
+ cursor = skipWhitespace(source, cursor + 1);
33
+ } else if (isAndSeparator(source, cursor)) {
34
+ cursor = skipWhitespace(source, cursor + 3);
35
+ }
24
36
  }
25
37
  }
26
38
 
27
39
  return [...issues].sort((a, b) => a - b);
28
40
  }
29
41
 
42
+ function skipWhitespace(text, cursor) {
43
+ while (cursor < text.length && /\s/.test(text[cursor])) {
44
+ cursor += 1;
45
+ }
46
+ return cursor;
47
+ }
48
+
49
+ function isAndSeparator(text, cursor) {
50
+ return (
51
+ text.slice(cursor, cursor + 3).toLowerCase() === 'and' &&
52
+ !isAsciiWord(text[cursor - 1] || '') &&
53
+ !isAsciiWord(text[cursor + 3] || '')
54
+ );
55
+ }
56
+
57
+ function isAsciiDigit(value) {
58
+ return value >= '0' && value <= '9';
59
+ }
60
+
61
+ function isAsciiWord(value) {
62
+ return (
63
+ (value >= '0' && value <= '9') ||
64
+ (value >= 'A' && value <= 'Z') ||
65
+ (value >= 'a' && value <= 'z') ||
66
+ value === '_'
67
+ );
68
+ }
69
+
30
70
  export function extractPrNumbers(text) {
31
71
  const prs = new Set();
32
72
  let match;