@meza/adr-tools 1.0.10 → 1.0.12

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 (93) hide show
  1. package/.gitattributes +40 -0
  2. package/.github/renovate.json +5 -0
  3. package/.github/workflows/ci-pr.yml +50 -0
  4. package/.github/workflows/ci.yml +28 -20
  5. package/.github/workflows/sync-deps-to-main.yml +25 -0
  6. package/.github/workflows/sync-to-deps.yml +26 -0
  7. package/.releaserc.json +1 -13
  8. package/CHANGELOG.md +76 -0
  9. package/LICENSE +674 -0
  10. package/README.md +64 -5
  11. package/biome.json +148 -0
  12. package/dist/index.js +52 -82
  13. package/dist/index.js.map +1 -1
  14. package/dist/lib/adr.js +100 -126
  15. package/dist/lib/adr.js.map +1 -1
  16. package/dist/lib/config.js +20 -37
  17. package/dist/lib/config.js.map +1 -1
  18. package/dist/lib/links.js +8 -25
  19. package/dist/lib/links.js.map +1 -1
  20. package/dist/lib/links.test.js +35 -64
  21. package/dist/lib/links.test.js.map +1 -1
  22. package/dist/lib/manipulator.js +22 -23
  23. package/dist/lib/manipulator.js.map +1 -1
  24. package/dist/lib/manipulator.test.js +59 -63
  25. package/dist/lib/manipulator.test.js.map +1 -1
  26. package/dist/lib/numbering.js +9 -48
  27. package/dist/lib/numbering.js.map +1 -1
  28. package/dist/lib/numbering.test.js +27 -44
  29. package/dist/lib/numbering.test.js.map +1 -1
  30. package/dist/lib/prompt.js +14 -0
  31. package/dist/lib/prompt.js.map +1 -0
  32. package/dist/lib/prompt.test.js +33 -0
  33. package/dist/lib/prompt.test.js.map +1 -0
  34. package/dist/lib/template.js +13 -26
  35. package/dist/lib/template.js.map +1 -1
  36. package/dist/types/lib/adr.d.ts.map +1 -1
  37. package/dist/types/lib/config.d.ts.map +1 -1
  38. package/dist/types/lib/links.d.ts.map +1 -1
  39. package/dist/types/lib/manipulator.d.ts.map +1 -1
  40. package/dist/types/lib/numbering.d.ts.map +1 -1
  41. package/dist/types/lib/prompt.d.ts +2 -0
  42. package/dist/types/lib/prompt.d.ts.map +1 -0
  43. package/dist/types/lib/prompt.test.d.ts +2 -0
  44. package/dist/types/lib/prompt.test.d.ts.map +1 -0
  45. package/dist/types/lib/template.d.ts.map +1 -1
  46. package/dist/types/version.d.ts +1 -1
  47. package/dist/version.js +1 -4
  48. package/dist/version.js.map +1 -1
  49. package/doc/adr/.adr-sequence.lock +1 -0
  50. package/doc/adr/decisions.md +3 -0
  51. package/package.json +73 -47
  52. package/src/index.ts +52 -27
  53. package/src/lib/adr.ts +68 -73
  54. package/src/lib/config.ts +3 -3
  55. package/src/lib/links.test.ts +8 -24
  56. package/src/lib/links.ts +2 -2
  57. package/src/lib/manipulator.test.ts +44 -47
  58. package/src/lib/manipulator.ts +22 -10
  59. package/src/lib/numbering.test.ts +5 -9
  60. package/src/lib/numbering.ts +4 -5
  61. package/src/lib/prompt.test.ts +42 -0
  62. package/src/lib/prompt.ts +14 -0
  63. package/src/lib/template.ts +7 -3
  64. package/src/version.ts +1 -1
  65. package/tests/.adr-dir +1 -0
  66. package/tests/__snapshots__/generate-graph.e2e.test.ts.snap +23 -23
  67. package/tests/__snapshots__/init-adr-repository.e2e.test.ts.snap +1 -1
  68. package/tests/__snapshots__/linking-records.e2e.test.ts.snap +1 -1
  69. package/tests/__snapshots__/new-adr.e2e.test.ts.snap +1 -1
  70. package/tests/__snapshots__/superseding-records.e2e.test.ts.snap +1 -1
  71. package/tests/__snapshots__/toc-prefixing.e2e.test.ts.snap +1 -1
  72. package/tests/__snapshots__/use-template-override.e2e.test.ts.snap +1 -1
  73. package/tests/edit-on-create.e2e.test.ts +17 -12
  74. package/tests/funny-characters.e2e.test.ts +28 -21
  75. package/tests/generate-graph.e2e.test.ts +21 -13
  76. package/tests/init-adr-repository.e2e.test.ts +12 -8
  77. package/tests/linking-records.e2e.test.ts +21 -14
  78. package/tests/list-adrs.e2e.test.ts +23 -18
  79. package/tests/new-adr.e2e.test.ts +15 -12
  80. package/tests/superseding-records.e2e.test.ts +16 -11
  81. package/tests/toc-prefixing.e2e.test.ts +15 -11
  82. package/tests/use-template-override.e2e.test.ts +18 -10
  83. package/tests/work-form-other-directories.e2e.test.ts +14 -12
  84. package/tsconfig.json +9 -8
  85. package/vitest.config.e2e.ts +13 -0
  86. package/vitest.config.ts +8 -1
  87. package/.eslintignore +0 -2
  88. package/.eslintrc.json +0 -23
  89. package/.github/dependabot.yml +0 -14
  90. package/.github/workflows/auto-merge.yml +0 -14
  91. package/doc/adr/0001-record-architecture-decisions.md +0 -21
  92. package/doc/adr/0002-using-heavy-e2e-tests.md +0 -20
  93. /package/src/{environment.d.ts → types/environment.d.ts} +0 -0
@@ -1,94 +1,65 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
1
+ import fs from 'fs/promises';
2
+ import { afterEach, describe, expect, it, vi } from 'vitest';
3
+ import { getDir } from './config.js';
4
+ import { getLinkDetails } from './links.js';
5
+ vi.mock('./config.js');
6
+ vi.mock('fs/promises');
7
+ describe('The link lib', () => {
8
+ afterEach(() => {
9
+ vi.resetAllMocks();
9
10
  });
10
- };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- const vitest_1 = require("vitest");
16
- const promises_1 = __importDefault(require("fs/promises"));
17
- const config_1 = require("./config");
18
- const links_1 = require("./links");
19
- vitest_1.vi.mock('./config');
20
- vitest_1.vi.mock('fs/promises');
21
- (0, vitest_1.describe)('The link lib', () => {
22
- (0, vitest_1.afterEach)(() => {
23
- vitest_1.vi.resetAllMocks();
24
- });
25
- (0, vitest_1.it)('does not care if there are no matches', () => __awaiter(void 0, void 0, void 0, function* () {
26
- vitest_1.vi.mocked(config_1.getDir).mockResolvedValueOnce('/');
27
- vitest_1.vi.mocked(promises_1.default.readdir).mockResolvedValueOnce([]);
11
+ it('does not care if there are no matches', async () => {
12
+ vi.mocked(getDir).mockResolvedValueOnce('/');
13
+ vi.mocked(fs.readdir).mockResolvedValueOnce([]);
28
14
  const linkString = '1:overrides:overriden by';
29
- const response = yield (0, links_1.getLinkDetails)(linkString);
30
- (0, vitest_1.expect)(response).toEqual({
15
+ const response = await getLinkDetails(linkString);
16
+ expect(response).toEqual({
31
17
  pattern: '1',
32
18
  original: '1:overrides:overriden by',
33
19
  link: 'overrides',
34
20
  reverseLink: 'overriden by',
35
21
  matches: []
36
22
  });
37
- }));
38
- (0, vitest_1.it)('does handles multiple matches', () => __awaiter(void 0, void 0, void 0, function* () {
39
- vitest_1.vi.mocked(config_1.getDir).mockResolvedValueOnce('/');
40
- vitest_1.vi.mocked(promises_1.default.readdir).mockResolvedValueOnce([
41
- '1-one',
42
- '1-two',
43
- '1-three'
44
- ]);
23
+ });
24
+ it('does handles multiple matches', async () => {
25
+ vi.mocked(getDir).mockResolvedValueOnce('/');
26
+ vi.mocked(fs.readdir).mockResolvedValueOnce(['1-one', '1-two', '1-three']);
45
27
  const linkString = '1:overrides:overriden by';
46
- const response = yield (0, links_1.getLinkDetails)(linkString);
47
- (0, vitest_1.expect)(response).toEqual({
28
+ const response = await getLinkDetails(linkString);
29
+ expect(response).toEqual({
48
30
  pattern: '1',
49
31
  original: '1:overrides:overriden by',
50
32
  link: 'overrides',
51
33
  reverseLink: 'overriden by',
52
- matches: [
53
- '1-one',
54
- '1-two',
55
- '1-three'
56
- ]
34
+ matches: ['1-one', '1-two', '1-three']
57
35
  });
58
- }));
59
- (0, vitest_1.it)('returns only files that match the pattern', () => __awaiter(void 0, void 0, void 0, function* () {
60
- vitest_1.vi.mocked(config_1.getDir).mockResolvedValueOnce('/');
61
- vitest_1.vi.mocked(promises_1.default.readdir).mockResolvedValueOnce([
62
- 'on1e',
63
- '1-two',
64
- 'three'
65
- ]);
36
+ });
37
+ it('returns only files that match the pattern', async () => {
38
+ vi.mocked(getDir).mockResolvedValueOnce('/');
39
+ vi.mocked(fs.readdir).mockResolvedValueOnce(['on1e', '1-two', 'three']);
66
40
  const linkString = '1:overrides:overriden by';
67
- const response = yield (0, links_1.getLinkDetails)(linkString);
68
- (0, vitest_1.expect)(response).toEqual({
41
+ const response = await getLinkDetails(linkString);
42
+ expect(response).toEqual({
69
43
  pattern: '1',
70
44
  original: '1:overrides:overriden by',
71
45
  link: 'overrides',
72
46
  reverseLink: 'overriden by',
73
- matches: [
74
- 'on1e',
75
- '1-two'
76
- ]
47
+ matches: ['on1e', '1-two']
77
48
  });
78
- }));
79
- (0, vitest_1.it)('handles superseding', () => __awaiter(void 0, void 0, void 0, function* () {
80
- vitest_1.vi.mocked(config_1.getDir).mockResolvedValueOnce('/');
81
- vitest_1.vi.mocked(promises_1.default.readdir).mockResolvedValueOnce([]);
49
+ });
50
+ it('handles superseding', async () => {
51
+ vi.mocked(getDir).mockResolvedValueOnce('/');
52
+ vi.mocked(fs.readdir).mockResolvedValueOnce([]);
82
53
  const linkString = '1';
83
54
  const supersede = true;
84
- const response = yield (0, links_1.getLinkDetails)(linkString, supersede);
85
- (0, vitest_1.expect)(response).toEqual({
55
+ const response = await getLinkDetails(linkString, supersede);
56
+ expect(response).toEqual({
86
57
  pattern: '1',
87
58
  original: '1',
88
59
  link: 'Supersedes',
89
60
  reverseLink: 'Superseded by',
90
61
  matches: []
91
62
  });
92
- }));
63
+ });
93
64
  });
94
65
  //# sourceMappingURL=links.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"links.test.js","sourceRoot":"src/","sources":["lib/links.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"links.test.js","sourceRoot":"src/","sources":["lib/links.test.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,11 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.injectLink = exports.supersede = exports.getTitleFrom = exports.getLinksFrom = void 0;
4
- const marked_1 = require("marked");
1
+ import { marked } from 'marked';
5
2
  const convertToMd = (tokens) => {
6
- return tokens.map(token => token.raw).join('');
3
+ return tokens.map((token) => token.raw).join('');
7
4
  };
8
- const getLinksFrom = (markdown) => {
9
- const tokens = marked_1.marked.lexer(markdown);
5
+ export const getLinksFrom = (markdown) => {
6
+ const tokens = marked.lexer(markdown);
10
7
  const linkRegex = new RegExp(/^(.*)\s\[(.*)\]\((.*)\)$/);
11
- const links = tokens.filter(token => token.type === 'paragraph' && linkRegex.test(token.text));
8
+ const links = tokens.filter((token) => token.type === 'paragraph' && linkRegex.test(token.text));
12
9
  return links.map((link) => {
13
10
  const linkToken = link;
14
11
  const linkMatches = linkToken.text.match(linkRegex);
@@ -24,19 +21,17 @@ const getLinksFrom = (markdown) => {
24
21
  };
25
22
  });
26
23
  };
27
- exports.getLinksFrom = getLinksFrom;
28
- const getTitleFrom = (adr) => {
29
- const tokens = marked_1.marked.lexer(adr);
30
- const mainHead = tokens.find(token => token.type === 'heading' && token.depth === 1);
24
+ export const getTitleFrom = (adr) => {
25
+ const tokens = marked.lexer(adr);
26
+ const mainHead = tokens.find((token) => token.type === 'heading' && token.depth === 1);
31
27
  if (!mainHead) {
32
28
  throw new Error('No main heading found');
33
29
  }
34
30
  return mainHead.text.trim();
35
31
  };
36
- exports.getTitleFrom = getTitleFrom;
37
- const supersede = (markdown, link) => {
38
- const tokens = marked_1.marked.lexer(markdown);
39
- const statusIndex = tokens.findIndex(token => token.type === 'heading' && token.text.toLowerCase() === 'status');
32
+ export const supersede = (markdown, link) => {
33
+ const tokens = marked.lexer(markdown);
34
+ const statusIndex = tokens.findIndex((token) => token.type === 'heading' && token.text.toLowerCase() === 'status');
40
35
  if (statusIndex < 0) {
41
36
  throw new Error('Could not find status section');
42
37
  }
@@ -47,7 +42,10 @@ const supersede = (markdown, link) => {
47
42
  throw new Error('There is no status paragraph. Please format your adr properly');
48
43
  }
49
44
  tokens[followingParagraphIndex] = {
50
- type: 'paragraph', text: link, raw: link, tokens: [
45
+ type: 'paragraph',
46
+ text: link,
47
+ raw: link,
48
+ tokens: [
51
49
  {
52
50
  type: 'text',
53
51
  raw: link,
@@ -57,10 +55,9 @@ const supersede = (markdown, link) => {
57
55
  };
58
56
  return convertToMd(tokens);
59
57
  };
60
- exports.supersede = supersede;
61
- const injectLink = (markdown, link) => {
62
- const tokens = marked_1.marked.lexer(markdown);
63
- const statusIndex = tokens.findIndex(token => token.type === 'heading' && token.text.toLowerCase() === 'status');
58
+ export const injectLink = (markdown, link) => {
59
+ const tokens = marked.lexer(markdown);
60
+ const statusIndex = tokens.findIndex((token) => token.type === 'heading' && token.text.toLowerCase() === 'status');
64
61
  if (statusIndex < 0) {
65
62
  throw new Error('Could not find status section');
66
63
  }
@@ -70,7 +67,10 @@ const injectLink = (markdown, link) => {
70
67
  followingHeadingIndex = tokens.length;
71
68
  }
72
69
  tokens.splice(followingHeadingIndex, 0, {
73
- type: 'paragraph', text: link, raw: link, tokens: [
70
+ type: 'paragraph',
71
+ text: link,
72
+ raw: link,
73
+ tokens: [
74
74
  {
75
75
  type: 'text',
76
76
  raw: link,
@@ -81,5 +81,4 @@ const injectLink = (markdown, link) => {
81
81
  tokens.splice(followingHeadingIndex + 1, 0, { type: 'space', raw: '\n\n' });
82
82
  return convertToMd(tokens);
83
83
  };
84
- exports.injectLink = injectLink;
85
84
  //# sourceMappingURL=manipulator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"manipulator.js","sourceRoot":"src/","sources":["lib/manipulator.ts"],"names":[],"mappings":";;;AAAA,mCAAgC;AAEhC,MAAM,WAAW,GAAG,CAAC,MAAsB,EAAE,EAAE;IAC7C,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACjD,CAAC,CAAC;AAEK,MAAM,YAAY,GAAG,CAAC,QAAgB,EAAE,EAAE;IAC/C,MAAM,MAAM,GAAG,eAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACtC,MAAM,SAAS,GAAG,IAAI,MAAM,CAAC,0BAA0B,CAAC,CAAC;IACzD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAE/F,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACxB,MAAM,SAAS,GAAG,IAA+B,CAAC;QAClD,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACpD,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YAC1C,MAAM,IAAI,KAAK,CAAC,8BAA8B,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC;SAClE;QACD,OAAO;YACL,YAAY,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACtE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC;YACrB,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;YACpB,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;YACpB,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC;SACpB,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAnBW,QAAA,YAAY,gBAmBvB;AAEK,MAAM,YAAY,GAAG,CAAC,GAAW,EAAE,EAAE;IAC1C,MAAM,MAAM,GAAG,eAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC;IACrF,IAAI,CAAC,QAAQ,EAAE;QACb,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;KAC1C;IACD,OAAQ,QAAkC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;AACzD,CAAC,CAAC;AAPW,QAAA,YAAY,gBAOvB;AAEK,MAAM,SAAS,GAAG,CAAC,QAAgB,EAAE,IAAY,EAAE,EAAE;IAC1D,MAAM,MAAM,GAAG,eAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACtC,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,CAAC;IACjH,IAAI,WAAW,GAAG,CAAC,EAAE;QACnB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;KAClD;IACD,MAAM,WAAW,GAAI,MAAM,CAAC,WAAW,CAA2B,CAAC,KAAK,CAAC;IACzE,MAAM,qBAAqB,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,KAAK,KAAK,WAAW,IAAI,KAAK,GAAG,WAAW,CAAC,CAAC;IACjJ,MAAM,uBAAuB,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,KAAK,GAAG,WAAW,IAAI,KAAK,GAAG,qBAAqB,CAAC,CAAC;IAEvJ,IAAI,uBAAuB,GAAG,qBAAqB,IAAI,uBAAuB,KAAK,CAAC,CAAC,EAAE;QACrF,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;KAClF;IAED,MAAM,CAAC,uBAAuB,CAAC,GAAG;QAChC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE;YAChD;gBACE,IAAI,EAAE,MAAM;gBACZ,GAAG,EAAE,IAAI;gBACT,IAAI,EAAE,IAAI;aACX;SACF;KACF,CAAC;IACF,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC;AAC7B,CAAC,CAAC;AAxBW,QAAA,SAAS,aAwBpB;AAEK,MAAM,UAAU,GAAG,CAAC,QAAgB,EAAE,IAAY,EAAE,EAAE;IAC3D,MAAM,MAAM,GAAG,eAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACtC,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,CAAC;IACjH,IAAI,WAAW,GAAG,CAAC,EAAE;QACnB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;KAClD;IAED,MAAM,WAAW,GAAI,MAAM,CAAC,WAAW,CAA2B,CAAC,KAAK,CAAC;IACzE,IAAI,qBAAqB,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,KAAK,KAAK,WAAW,IAAI,KAAK,GAAG,WAAW,CAAC,CAAC;IAC/I,IAAI,qBAAqB,GAAG,CAAC,EAAE;QAC7B,qBAAqB,GAAG,MAAM,CAAC,MAAM,CAAC;KACvC;IACD,MAAM,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC,EAAE;QACtC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE;YAChD;gBACE,IAAI,EAAE,MAAM;gBACZ,GAAG,EAAE,IAAI;gBACT,IAAI,EAAE,IAAI;aACX;SACF;KACF,CAAC,CAAC;IACH,MAAM,CAAC,MAAM,CAAC,qBAAqB,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;IAC5E,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC;AAC7B,CAAC,CAAC;AAvBW,QAAA,UAAU,cAuBrB"}
1
+ {"version":3,"file":"manipulator.js","sourceRoot":"src/","sources":["lib/manipulator.ts"],"names":[],"mappings":"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"}
@@ -1,74 +1,70 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const vitest_1 = require("vitest");
4
- const manipulator_1 = require("./manipulator");
5
- (0, vitest_1.describe)('The ADR manipulator', () => {
6
- const original = '# NUMBER. TITLE\n'
7
- + '\n'
8
- + 'Date: DATE\n'
9
- + '\n'
10
- + '## Status\n'
11
- + '\n'
12
- + 'STATUS\n'
13
- + '\n'
14
- + '## Context\n'
15
- + '\n'
16
- + 'The issue motivating this decision, and any context that influences or constrains the decision.\n'
17
- + '\n'
18
- + '## Decision\n'
19
- + '\n'
20
- + 'The change that we\'re proposing or have agreed to implement.\n'
21
- + '\n'
22
- + '## Consequences\n'
23
- + '\n'
24
- + 'What becomes easier or more difficult to do and any risks introduced by the change that will need to be mitigated.\n';
25
- const modified = '# NUMBER. TITLE\n'
26
- + '\n'
27
- + 'Date: DATE\n'
28
- + '\n'
29
- + '## Status\n'
30
- + '\n'
31
- + 'STATUS\n'
32
- + '\n'
33
- + 'INJECTED STUFF\n'
34
- + '\n'
35
- + '## Context\n'
36
- + '\n'
37
- + 'The issue motivating this decision, and any context that influences or constrains the decision.\n'
38
- + '\n'
39
- + '## Decision\n'
40
- + '\n'
41
- + 'The change that we\'re proposing or have agreed to implement.\n'
42
- + '\n'
43
- + '## Consequences\n'
44
- + '\n'
45
- + 'What becomes easier or more difficult to do and any risks introduced by the change that will need to be mitigated.\n';
46
- (0, vitest_1.it)('can inject links to the status section', () => {
47
- const test = (0, manipulator_1.injectLink)(original, 'INJECTED STUFF');
48
- (0, vitest_1.expect)(test).toEqual(modified);
1
+ import { describe, expect, it } from 'vitest';
2
+ import { getLinksFrom, getTitleFrom, injectLink } from './manipulator.js';
3
+ describe('The ADR manipulator', () => {
4
+ const original = '# NUMBER. TITLE\n' +
5
+ '\n' +
6
+ 'Date: DATE\n' +
7
+ '\n' +
8
+ '## Status\n' +
9
+ '\n' +
10
+ 'STATUS\n' +
11
+ '\n' +
12
+ '## Context\n' +
13
+ '\n' +
14
+ 'The issue motivating this decision, and any context that influences or constrains the decision.\n' +
15
+ '\n' +
16
+ '## Decision\n' +
17
+ '\n' +
18
+ "The change that we're proposing or have agreed to implement.\n" +
19
+ '\n' +
20
+ '## Consequences\n' +
21
+ '\n' +
22
+ 'What becomes easier or more difficult to do and any risks introduced by the change that will need to be mitigated.\n';
23
+ const modified = '# NUMBER. TITLE\n' +
24
+ '\n' +
25
+ 'Date: DATE\n' +
26
+ '\n' +
27
+ '## Status\n' +
28
+ '\n' +
29
+ 'STATUS\n' +
30
+ '\n' +
31
+ 'INJECTED STUFF\n' +
32
+ '\n' +
33
+ '## Context\n' +
34
+ '\n' +
35
+ 'The issue motivating this decision, and any context that influences or constrains the decision.\n' +
36
+ '\n' +
37
+ '## Decision\n' +
38
+ '\n' +
39
+ "The change that we're proposing or have agreed to implement.\n" +
40
+ '\n' +
41
+ '## Consequences\n' +
42
+ '\n' +
43
+ 'What becomes easier or more difficult to do and any risks introduced by the change that will need to be mitigated.\n';
44
+ it('can inject links to the status section', () => {
45
+ const test = injectLink(original, 'INJECTED STUFF');
46
+ expect(test).toEqual(modified);
49
47
  });
50
- (0, vitest_1.it)('throws an error when status cannot be found', () => {
48
+ it('throws an error when status cannot be found', () => {
51
49
  const noStatus = '# NUMBER. TITLE\n';
52
- const test = () => (0, manipulator_1.injectLink)(noStatus, 'INJECTED STUFF');
53
- (0, vitest_1.expect)(test).toThrowError('Could not find status section');
50
+ const test = () => injectLink(noStatus, 'INJECTED STUFF');
51
+ expect(test).toThrowError('Could not find status section');
54
52
  });
55
- (0, vitest_1.it)('adds to the status section even when there are no following headers', () => {
53
+ it('adds to the status section even when there are no following headers', () => {
56
54
  const noFollowingHeaders = '## STATUS\nACCEPTED\n\n';
57
55
  const expected = '## STATUS\nACCEPTED\n\nINJECTED STUFF\n\n';
58
- const test = (0, manipulator_1.injectLink)(noFollowingHeaders, 'INJECTED STUFF');
59
- (0, vitest_1.expect)(test).toEqual(expected);
56
+ const test = injectLink(noFollowingHeaders, 'INJECTED STUFF');
57
+ expect(test).toEqual(expected);
60
58
  });
61
- (0, vitest_1.it)('can return the title and number', () => {
59
+ it('can return the title and number', () => {
62
60
  const original = '# 2. This is the title\n';
63
- const test = (0, manipulator_1.getTitleFrom)(original);
64
- (0, vitest_1.expect)(test).toEqual('2. This is the title');
61
+ const test = getTitleFrom(original);
62
+ expect(test).toEqual('2. This is the title');
65
63
  });
66
- (0, vitest_1.it)('can extract links from the status section', () => {
67
- const original = '## Status\n'
68
- + '\n'
69
- + 'Superseded by [3. title here](and-a-link-here.md)\n';
70
- const extractedLink = (0, manipulator_1.getLinksFrom)(original);
71
- (0, vitest_1.expect)(extractedLink[0]).toEqual({
64
+ it('can extract links from the status section', () => {
65
+ const original = '## Status\n' + '\n' + 'Superseded by [3. title here](and-a-link-here.md)\n';
66
+ const extractedLink = getLinksFrom(original);
67
+ expect(extractedLink[0]).toEqual({
72
68
  label: 'Superseded by',
73
69
  targetNumber: '3',
74
70
  text: '3. title here',
@@ -1 +1 @@
1
- {"version":3,"file":"manipulator.test.js","sourceRoot":"src/","sources":["lib/manipulator.test.ts"],"names":[],"mappings":";;AAAA,mCAA8C;AAC9C,+CAAuE;AAEvE,IAAA,iBAAQ,EAAC,qBAAqB,EAAE,GAAG,EAAE;IAEnC,MAAM,QAAQ,GAAG,mBAAmB;UAChC,IAAI;UACJ,cAAc;UACd,IAAI;UACJ,aAAa;UACb,IAAI;UACJ,UAAU;UACV,IAAI;UACJ,cAAc;UACd,IAAI;UACJ,mGAAmG;UACnG,IAAI;UACJ,eAAe;UACf,IAAI;UACJ,iEAAiE;UACjE,IAAI;UACJ,mBAAmB;UACnB,IAAI;UACJ,sHAAsH,CAAC;IAE3H,MAAM,QAAQ,GAAG,mBAAmB;UAChC,IAAI;UACJ,cAAc;UACd,IAAI;UACJ,aAAa;UACb,IAAI;UACJ,UAAU;UACV,IAAI;UACJ,kBAAkB;UAClB,IAAI;UACJ,cAAc;UACd,IAAI;UACJ,mGAAmG;UACnG,IAAI;UACJ,eAAe;UACf,IAAI;UACJ,iEAAiE;UACjE,IAAI;UACJ,mBAAmB;UACnB,IAAI;UACJ,sHAAsH,CAAC;IAE3H,IAAA,WAAE,EAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,IAAI,GAAG,IAAA,wBAAU,EAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;QACpD,IAAA,eAAM,EAAC,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,QAAQ,GAAG,mBAAmB,CAAC;QACrC,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,IAAA,wBAAU,EAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;QAC1D,IAAA,eAAM,EAAC,IAAI,CAAC,CAAC,YAAY,CAAC,+BAA+B,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,qEAAqE,EAAE,GAAG,EAAE;QAC7E,MAAM,kBAAkB,GAAG,yBAAyB,CAAC;QACrD,MAAM,QAAQ,GAAG,2CAA2C,CAAC;QAC7D,MAAM,IAAI,GAAG,IAAA,wBAAU,EAAC,kBAAkB,EAAE,gBAAgB,CAAC,CAAC;QAC9D,IAAA,eAAM,EAAC,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,MAAM,QAAQ,GAAG,0BAA0B,CAAC;QAC5C,MAAM,IAAI,GAAG,IAAA,0BAAY,EAAC,QAAQ,CAAC,CAAC;QACpC,IAAA,eAAM,EAAC,IAAI,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,QAAQ,GAAG,aAAa;cAC1B,IAAI;cACJ,qDAAqD,CAAC;QAC1D,MAAM,aAAa,GAAG,IAAA,0BAAY,EAAC,QAAQ,CAAC,CAAC;QAE7C,IAAA,eAAM,EAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YAC/B,KAAK,EAAE,eAAe;YACtB,YAAY,EAAE,GAAG;YACjB,IAAI,EAAE,eAAe;YACrB,IAAI,EAAE,oBAAoB;YAC1B,GAAG,EAAE,mDAAmD;SACzD,CAAC,CAAC;IAEL,CAAC,CAAC,CAAC;AAEL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"manipulator.test.js","sourceRoot":"src/","sources":["lib/manipulator.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE1E,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,MAAM,QAAQ,GACZ,mBAAmB;QACnB,IAAI;QACJ,cAAc;QACd,IAAI;QACJ,aAAa;QACb,IAAI;QACJ,UAAU;QACV,IAAI;QACJ,cAAc;QACd,IAAI;QACJ,mGAAmG;QACnG,IAAI;QACJ,eAAe;QACf,IAAI;QACJ,gEAAgE;QAChE,IAAI;QACJ,mBAAmB;QACnB,IAAI;QACJ,sHAAsH,CAAC;IAEzH,MAAM,QAAQ,GACZ,mBAAmB;QACnB,IAAI;QACJ,cAAc;QACd,IAAI;QACJ,aAAa;QACb,IAAI;QACJ,UAAU;QACV,IAAI;QACJ,kBAAkB;QAClB,IAAI;QACJ,cAAc;QACd,IAAI;QACJ,mGAAmG;QACnG,IAAI;QACJ,eAAe;QACf,IAAI;QACJ,gEAAgE;QAChE,IAAI;QACJ,mBAAmB;QACnB,IAAI;QACJ,sHAAsH,CAAC;IAEzH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;QACpD,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,QAAQ,GAAG,mBAAmB,CAAC;QACrC,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;QAC1D,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,+BAA+B,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qEAAqE,EAAE,GAAG,EAAE;QAC7E,MAAM,kBAAkB,GAAG,yBAAyB,CAAC;QACrD,MAAM,QAAQ,GAAG,2CAA2C,CAAC;QAC7D,MAAM,IAAI,GAAG,UAAU,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CAAC;QAC9D,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,MAAM,QAAQ,GAAG,0BAA0B,CAAC;QAC5C,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;QACpC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,QAAQ,GAAG,aAAa,GAAG,IAAI,GAAG,qDAAqD,CAAC;QAC9F,MAAM,aAAa,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;QAE7C,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YAC/B,KAAK,EAAE,eAAe;YACtB,YAAY,EAAE,GAAG;YACjB,IAAI,EAAE,eAAe;YACrB,IAAI,EAAE,oBAAoB;YAC1B,GAAG,EAAE,mDAAmD;SACzD,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,55 +1,17 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
- return new (P || (P = Promise))(function (resolve, reject) {
28
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
- step((generator = generator.apply(thisArg, _arguments || [])).next());
32
- });
33
- };
34
- var __importDefault = (this && this.__importDefault) || function (mod) {
35
- return (mod && mod.__esModule) ? mod : { "default": mod };
36
- };
37
- Object.defineProperty(exports, "__esModule", { value: true });
38
- exports.newNumber = void 0;
39
- const promises_1 = __importDefault(require("fs/promises"));
40
- const config_1 = require("./config");
41
- const path = __importStar(require("path"));
42
- const newNumber = () => __awaiter(void 0, void 0, void 0, function* () {
1
+ import * as path from 'path';
2
+ import fs from 'fs/promises';
3
+ import { getDir } from './config.js';
4
+ export const newNumber = async () => {
43
5
  try {
44
- const lockfile = yield promises_1.default.readFile(path.resolve(yield (0, config_1.getDir)(), '.adr-sequence.lock'));
6
+ const lockfile = await fs.readFile(path.resolve(await getDir(), '.adr-sequence.lock'));
45
7
  return parseInt(lockfile.toString().trim(), 10) + 1;
46
8
  }
47
- catch (e) {
9
+ catch (_e) {
48
10
  // This is for backward compatibility. If someone upgrades from an older tool without a lockfile,
49
11
  // we create one.
50
12
  const filePattern = /^0*(\d+)-.*$/;
51
- const files = yield promises_1.default.readdir(yield (0, config_1.getDir)());
52
- const numbers = files.map(f => {
13
+ const files = await fs.readdir(await getDir());
14
+ const numbers = files.map((f) => {
53
15
  const adrFile = f.match(filePattern);
54
16
  if (adrFile) {
55
17
  return parseInt(adrFile[1], 10);
@@ -59,6 +21,5 @@ const newNumber = () => __awaiter(void 0, void 0, void 0, function* () {
59
21
  const largestNumber = numbers.reduce((a, b) => Math.max(a, b), 0);
60
22
  return largestNumber + 1;
61
23
  }
62
- });
63
- exports.newNumber = newNumber;
24
+ };
64
25
  //# sourceMappingURL=numbering.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"numbering.js","sourceRoot":"src/","sources":["lib/numbering.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2DAA6B;AAC7B,qCAAkC;AAClC,2CAA6B;AAEtB,MAAM,SAAS,GAAG,GAAS,EAAE;IAClC,IAAI;QACF,MAAM,QAAQ,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,IAAA,eAAM,GAAE,EAAE,oBAAoB,CAAC,CAAC,CAAC;QACvF,OAAO,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;KACrD;IAAC,OAAO,CAAC,EAAE;QACV,iGAAiG;QACjG,iBAAiB;QACjB,MAAM,WAAW,GAAG,cAAc,CAAC;QACnC,MAAM,KAAK,GAAG,MAAM,kBAAE,CAAC,OAAO,CAAC,MAAM,IAAA,eAAM,GAAE,CAAC,CAAC;QAC/C,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YAC5B,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YACrC,IAAI,OAAO,EAAE;gBACX,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;aACjC;YACD,OAAO,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAClE,OAAO,aAAa,GAAG,CAAC,CAAC;KAC1B;AAEH,CAAC,CAAA,CAAC;AArBW,QAAA,SAAS,aAqBpB"}
1
+ {"version":3,"file":"numbering.js","sourceRoot":"src/","sources":["lib/numbering.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,IAAI,EAAE;IAClC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,MAAM,EAAE,EAAE,oBAAoB,CAAC,CAAC,CAAC;QACvF,OAAO,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;IACtD,CAAC;IAAC,OAAO,EAAE,EAAE,CAAC;QACZ,iGAAiG;QACjG,iBAAiB;QACjB,MAAM,WAAW,GAAG,cAAc,CAAC;QACnC,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,MAAM,EAAE,CAAC,CAAC;QAC/C,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC9B,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YACrC,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAClC,CAAC;YACD,OAAO,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAClE,OAAO,aAAa,GAAG,CAAC,CAAC;IAC3B,CAAC;AACH,CAAC,CAAC"}
@@ -1,49 +1,32 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- const vitest_1 = require("vitest");
16
- const promises_1 = __importDefault(require("fs/promises"));
17
- const numbering_1 = require("./numbering");
18
- vitest_1.vi.mock('fs/promises');
19
- vitest_1.vi.mock('./config', () => ({
20
- getDir: vitest_1.vi.fn().mockResolvedValue('/')
1
+ import fs from 'fs/promises';
2
+ import { afterAll, describe, expect, it, vi } from 'vitest';
3
+ import { newNumber } from './numbering.js';
4
+ vi.mock('fs/promises');
5
+ vi.mock('./config.js', () => ({
6
+ getDir: vi.fn().mockResolvedValue('/')
21
7
  }));
22
- (0, vitest_1.describe)('The numbering logic', () => {
23
- (0, vitest_1.afterAll)(() => {
24
- vitest_1.vi.resetAllMocks();
8
+ describe('The numbering logic', () => {
9
+ afterAll(() => {
10
+ vi.resetAllMocks();
25
11
  });
26
- (0, vitest_1.it)('can read from the sequence file', () => __awaiter(void 0, void 0, void 0, function* () {
12
+ it('can read from the sequence file', async () => {
27
13
  const random = Math.floor(Math.random() * 100);
28
- vitest_1.vi.mocked(promises_1.default.readFile).mockResolvedValueOnce(random.toString());
29
- const num = yield (0, numbering_1.newNumber)();
30
- (0, vitest_1.expect)(num).toEqual(random + 1);
31
- }));
32
- (0, vitest_1.it)('returns 1 if there are no files', () => __awaiter(void 0, void 0, void 0, function* () {
33
- vitest_1.vi.mocked(promises_1.default.readFile).mockRejectedValueOnce('no sequence file');
34
- vitest_1.vi.mocked(promises_1.default.readdir).mockResolvedValueOnce([]);
35
- const num = yield (0, numbering_1.newNumber)();
36
- (0, vitest_1.expect)(num).toEqual(1);
37
- }));
38
- (0, vitest_1.it)('processes existing files if there is no lockfile', () => __awaiter(void 0, void 0, void 0, function* () {
39
- const fakeFiles = [
40
- '0001-first-file.md',
41
- '0002-first-file.md'
42
- ];
43
- vitest_1.vi.mocked(promises_1.default.readFile).mockRejectedValueOnce('no sequence file');
44
- vitest_1.vi.mocked(promises_1.default.readdir).mockResolvedValueOnce(fakeFiles);
45
- const num = yield (0, numbering_1.newNumber)();
46
- (0, vitest_1.expect)(num).toEqual(3);
47
- }));
14
+ vi.mocked(fs.readFile).mockResolvedValueOnce(random.toString());
15
+ const num = await newNumber();
16
+ expect(num).toEqual(random + 1);
17
+ });
18
+ it('returns 1 if there are no files', async () => {
19
+ vi.mocked(fs.readFile).mockRejectedValueOnce('no sequence file');
20
+ vi.mocked(fs.readdir).mockResolvedValueOnce([]);
21
+ const num = await newNumber();
22
+ expect(num).toEqual(1);
23
+ });
24
+ it('processes existing files if there is no lockfile', async () => {
25
+ const fakeFiles = ['0001-first-file.md', '0002-first-file.md'];
26
+ vi.mocked(fs.readFile).mockRejectedValueOnce('no sequence file');
27
+ vi.mocked(fs.readdir).mockResolvedValueOnce(fakeFiles);
28
+ const num = await newNumber();
29
+ expect(num).toEqual(3);
30
+ });
48
31
  });
49
32
  //# sourceMappingURL=numbering.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"numbering.test.js","sourceRoot":"src/","sources":["lib/numbering.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,mCAA4D;AAC5D,2DAA6B;AAC7B,2CAAwC;AAIxC,WAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACvB,WAAE,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;IACzB,MAAM,EAAE,WAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC;CACvC,CAAC,CAAC,CAAC;AAEJ,IAAA,iBAAQ,EAAC,qBAAqB,EAAE,GAAG,EAAE;IAEnC,IAAA,iBAAQ,EAAC,GAAG,EAAE;QACZ,WAAE,CAAC,aAAa,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IACH,IAAA,WAAE,EAAC,iCAAiC,EAAE,GAAS,EAAE;QAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;QAC/C,WAAE,CAAC,MAAM,CAAC,kBAAE,CAAC,QAAQ,CAAC,CAAC,qBAAqB,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QAChE,MAAM,GAAG,GAAG,MAAM,IAAA,qBAAS,GAAE,CAAC;QAC9B,IAAA,eAAM,EAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAClC,CAAC,CAAA,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,iCAAiC,EAAE,GAAS,EAAE;QAC/C,WAAE,CAAC,MAAM,CAAC,kBAAE,CAAC,QAAQ,CAAC,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,CAAC;QACjE,WAAE,CAAC,MAAM,CAAC,kBAAE,CAAC,OAAO,CAAC,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;QAChD,MAAM,GAAG,GAAG,MAAM,IAAA,qBAAS,GAAE,CAAC;QAC9B,IAAA,eAAM,EAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC,CAAA,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,kDAAkD,EAAE,GAAS,EAAE;QAChE,MAAM,SAAS,GAAa;YAC1B,oBAAoB;YACpB,oBAAoB;SACrB,CAAC;QACF,WAAE,CAAC,MAAM,CAAC,kBAAE,CAAC,QAAQ,CAAC,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,CAAC;QACjE,WAAE,CAAC,MAAM,CAAC,kBAAE,CAAC,OAAiC,CAAC,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;QACjF,MAAM,GAAG,GAAG,MAAM,IAAA,qBAAS,GAAE,CAAC;QAC9B,IAAA,eAAM,EAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC,CAAA,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"numbering.test.js","sourceRoot":"src/","sources":["lib/numbering.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAI3C,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACvB,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC;IAC5B,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC;CACvC,CAAC,CAAC,CAAC;AAEJ,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,QAAQ,CAAC,GAAG,EAAE;QACZ,EAAE,CAAC,aAAa,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;QAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;QAC/C,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,qBAAqB,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QAChE,MAAM,GAAG,GAAG,MAAM,SAAS,EAAE,CAAC;QAC9B,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;QAC/C,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,CAAC;QACjE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;QAChD,MAAM,GAAG,GAAG,MAAM,SAAS,EAAE,CAAC;QAC9B,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAChE,MAAM,SAAS,GAAa,CAAC,oBAAoB,EAAE,oBAAoB,CAAC,CAAC;QACzE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,CAAC;QACjE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,OAAiC,CAAC,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;QACjF,MAAM,GAAG,GAAG,MAAM,SAAS,EAAE,CAAC;QAC9B,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,14 @@
1
+ import chalk from 'chalk';
2
+ import inquirer from 'inquirer';
3
+ export const askForClarification = async (searchString, matches) => {
4
+ const selection = await inquirer.prompt([
5
+ {
6
+ type: 'list',
7
+ name: 'target',
8
+ message: `Which file do you want to link to for ${chalk.blue(searchString)}?`,
9
+ choices: matches
10
+ }
11
+ ]);
12
+ return selection.target;
13
+ };
14
+ //# sourceMappingURL=prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt.js","sourceRoot":"src/","sources":["lib/prompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,UAAU,CAAC;AAEhC,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EAAE,YAAoB,EAAE,OAAiB,EAAE,EAAE;IACnF,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;QACtC;YACE,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,yCAAyC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG;YAC7E,OAAO,EAAE,OAAO;SACjB;KACF,CAAC,CAAC;IACH,OAAO,SAAS,CAAC,MAAM,CAAC;AAC1B,CAAC,CAAC"}