@meza/adr-tools 1.0.3 → 1.0.8

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 (52) hide show
  1. package/.releaserc.json +7 -2
  2. package/CHANGELOG.md +30 -0
  3. package/package.json +7 -11
  4. package/src/lib/adr.ts +1 -1
  5. package/src/version.ts +1 -1
  6. package/tests/__snapshots__/new-adr.e2e.test.ts.snap +2 -2
  7. package/tests/__snapshots__/toc-prefixing.e2e.test.ts.snap +3 -3
  8. package/dist/index.js +0 -135
  9. package/dist/index.js.map +0 -1
  10. package/dist/lib/adr.js +0 -203
  11. package/dist/lib/adr.js.map +0 -1
  12. package/dist/lib/config.js +0 -50
  13. package/dist/lib/config.js.map +0 -1
  14. package/dist/lib/links.js +0 -42
  15. package/dist/lib/links.js.map +0 -1
  16. package/dist/lib/links.test.js +0 -94
  17. package/dist/lib/links.test.js.map +0 -1
  18. package/dist/lib/manipulator.js +0 -85
  19. package/dist/lib/manipulator.js.map +0 -1
  20. package/dist/lib/manipulator.test.js +0 -80
  21. package/dist/lib/manipulator.test.js.map +0 -1
  22. package/dist/lib/numbering.js +0 -64
  23. package/dist/lib/numbering.js.map +0 -1
  24. package/dist/lib/numbering.test.js +0 -49
  25. package/dist/lib/numbering.test.js.map +0 -1
  26. package/dist/lib/template.js +0 -34
  27. package/dist/lib/template.js.map +0 -1
  28. package/dist/types/index.d.ts +0 -3
  29. package/dist/types/index.d.ts.map +0 -1
  30. package/dist/types/lib/adr.d.ts +0 -18
  31. package/dist/types/lib/adr.d.ts.map +0 -1
  32. package/dist/types/lib/config.d.ts +0 -3
  33. package/dist/types/lib/config.d.ts.map +0 -1
  34. package/dist/types/lib/links.d.ts +0 -10
  35. package/dist/types/lib/links.d.ts.map +0 -1
  36. package/dist/types/lib/links.test.d.ts +0 -2
  37. package/dist/types/lib/links.test.d.ts.map +0 -1
  38. package/dist/types/lib/manipulator.d.ts +0 -11
  39. package/dist/types/lib/manipulator.d.ts.map +0 -1
  40. package/dist/types/lib/manipulator.test.d.ts +0 -2
  41. package/dist/types/lib/manipulator.test.d.ts.map +0 -1
  42. package/dist/types/lib/numbering.d.ts +0 -2
  43. package/dist/types/lib/numbering.d.ts.map +0 -1
  44. package/dist/types/lib/numbering.test.d.ts +0 -2
  45. package/dist/types/lib/numbering.test.d.ts.map +0 -1
  46. package/dist/types/lib/template.d.ts +0 -2
  47. package/dist/types/lib/template.d.ts.map +0 -1
  48. package/dist/types/version.d.ts +0 -2
  49. package/dist/types/version.d.ts.map +0 -1
  50. package/dist/version.js +0 -5
  51. package/dist/version.js.map +0 -1
  52. package/docs/CHANGELOG.md +0 -6
package/.releaserc.json CHANGED
@@ -18,7 +18,8 @@
18
18
  [
19
19
  "@semantic-release/changelog",
20
20
  {
21
- "changelogFile": "docs/CHANGELOG.md"
21
+ "changelogTitle": "# ADR Tools Changelog",
22
+ "changelogFile": "CHANGELOG.md"
22
23
  }
23
24
  ],
24
25
  "@semantic-release/npm",
@@ -39,7 +40,11 @@
39
40
  [
40
41
  "@semantic-release/git",
41
42
  {
42
- "assets": ["CHANGELOG.md"]
43
+ "message": "chore(release): ${nextRelease.version} as ${branch.channel} [skip ci]\n\n${nextRelease.notes}",
44
+ "assets": [
45
+ "package.json",
46
+ "CHANGELOG.md"
47
+ ]
43
48
  }
44
49
  ]
45
50
  ]
package/CHANGELOG.md ADDED
@@ -0,0 +1,30 @@
1
+ # ADR Tools Changelog
2
+
3
+ ## [1.0.8](https://github.com/meza/adr-tools/compare/v1.0.7...v1.0.8) (2022-06-27)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * toc now generates as a list ([ecfe2aa](https://github.com/meza/adr-tools/commit/ecfe2aaf9b4431672860411b0d6fbd7ec0141beb))
9
+
10
+ ## [1.0.7](https://github.com/meza/adr-tools/compare/v1.0.6...v1.0.7) (2022-06-27)
11
+
12
+
13
+ ### Bug Fixes
14
+
15
+ * fixed the regression of the restricted releases ([303c19f](https://github.com/meza/adr-tools/commit/303c19fd40a31dd586feb01fd0c8209c92423898))
16
+
17
+ ## [1.0.6](https://github.com/meza/adr-tools/compare/v1.0.5...v1.0.6) (2022-06-27)
18
+
19
+
20
+ ### Bug Fixes
21
+
22
+ * fixed the changelog title ([0f3f4d2](https://github.com/meza/adr-tools/commit/0f3f4d2b75ef6b93ce6e55c9527318e11867e28b))
23
+
24
+ ## [1.0.5](https://github.com/meza/adr-tools/compare/v1.0.4...v1.0.5) (2022-06-27)
25
+
26
+
27
+ ### Bug Fixes
28
+
29
+ * no git push on release ([51d520e](https://github.com/meza/adr-tools/commit/51d520ee07f3c638ac59dae35c74e47b397db6b7))
30
+ * removed unused dependencies ([7a5af74](https://github.com/meza/adr-tools/commit/7a5af74a9f592212f5272644bde713dc9bfa40b1))
package/package.json CHANGED
@@ -1,20 +1,15 @@
1
1
  {
2
2
  "name": "@meza/adr-tools",
3
- "version": "1.0.3",
3
+ "version": "1.0.8",
4
4
  "main": "dist/index.js",
5
5
  "bin": {
6
6
  "adr": "dist/index.js"
7
7
  },
8
- "publishConfig": {
9
- "access": "public"
10
- },
11
- "license": "MIT",
12
8
  "types": "dist/index.d.ts",
13
9
  "private": false,
14
10
  "scripts": {
15
- "prepack": "./scripts/inject-version.sh ./src/version.ts && tsc",
11
+ "prebuild": "node -p \"'export const LIB_VERSION = ' + require('./package.json').version + ';'\" > src/version.ts",
16
12
  "build": "tsc",
17
- "postbuild": "",
18
13
  "start": "ts-node src/index.ts",
19
14
  "commit": "commit",
20
15
  "ci": "npm set editor '' && yarn lint && yarn test",
@@ -26,7 +21,7 @@
26
21
  "lint:fix": "yarn lint:eslint --fix && yarn lint:tsc",
27
22
  "lint": "yarn lint:eslint && yarn lint:tsc",
28
23
  "test": "vitest",
29
- "prepare": "husky install",
24
+ "prepare": "is-ci || husky install",
30
25
  "report": "exit 0",
31
26
  "semantic-release": "semantic-release",
32
27
  "release": "semantic-release"
@@ -59,7 +54,6 @@
59
54
  "@commitlint/config-conventional": "^17.0.2",
60
55
  "@commitlint/prompt-cli": "^17.0.0",
61
56
  "@meza/tsconfig-base": "^1.1.0",
62
- "@release-it/conventional-changelog": "^5.0.0",
63
57
  "@semantic-release/changelog": "^6.0.1",
64
58
  "@semantic-release/commit-analyzer": "^9.0.2",
65
59
  "@semantic-release/git": "^10.0.1",
@@ -77,10 +71,9 @@
77
71
  "eslint-plugin-security": "^1.5.0",
78
72
  "husky": "^8.0.1",
79
73
  "install-deps-postmerge": "^2.0.1",
74
+ "is-ci": "^3.0.1",
80
75
  "mock-cwd": "^1.0.0",
81
- "node-jq": "^2.3.3",
82
76
  "semantic-release": "^19.0.3",
83
- "standard-version": "^9.3.2",
84
77
  "ts-node": "^10.8.1",
85
78
  "typescript": "^4.4.4",
86
79
  "uuid": "^8.3.2",
@@ -90,5 +83,8 @@
90
83
  "repository": {
91
84
  "type": "git",
92
85
  "url": "https://github.com/meza/adr-tools.git"
86
+ },
87
+ "publishConfig": {
88
+ "access": "public"
93
89
  }
94
90
  }
package/src/lib/adr.ts CHANGED
@@ -144,7 +144,7 @@ export const generateToc = async (options?: {prefix?: string}) => {
144
144
 
145
145
  const titles = toc.map(async (file) => {
146
146
  const title = getTitleFrom(await fs.readFile(path.join(adrDir, file), 'utf8'));
147
- return `[${title}](${options?.prefix || ''}${file})`;
147
+ return `- [${title}](${options?.prefix || ''}${file})`;
148
148
  });
149
149
 
150
150
  const resolvedTitles = await Promise.all(titles);
package/src/version.ts CHANGED
@@ -1,2 +1,2 @@
1
- export const LIB_VERSION = '1.0.3';
1
+ export const LIB_VERSION = '0.0.0-development';
2
2
 
@@ -49,6 +49,6 @@ What becomes easier or more difficult to do and any risks introduced by the chan
49
49
  exports[`New Adrs > should create a table of contents upon creation 1`] = `
50
50
  "# Table of Contents
51
51
 
52
- [1. Record architecture decisions](0001-record-architecture-decisions.md)
53
- [2. Example ADR](0002-example-adr.md)"
52
+ - [1. Record architecture decisions](0001-record-architecture-decisions.md)
53
+ - [2. Example ADR](0002-example-adr.md)"
54
54
  `;
@@ -3,7 +3,7 @@
3
3
  exports[`Generating TOC > should add a path prefix to the toc when there is one supplied 1`] = `
4
4
  "# Table of Contents
5
5
 
6
- [1. First Record](foo/doc/adr/0001-first-record.md)
7
- [2. Second Record](foo/doc/adr/0002-second-record.md)
8
- [3. Third Record](foo/doc/adr/0003-third-record.md)"
6
+ - [1. First Record](foo/doc/adr/0001-first-record.md)
7
+ - [2. Second Record](foo/doc/adr/0002-second-record.md)
8
+ - [3. Third Record](foo/doc/adr/0003-third-record.md)"
9
9
  `;
package/dist/index.js DELETED
@@ -1,135 +0,0 @@
1
- #!/usr/bin/env node
2
- "use strict";
3
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
- if (k2 === undefined) k2 = k;
5
- var desc = Object.getOwnPropertyDescriptor(m, k);
6
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
- desc = { enumerable: true, get: function() { return m[k]; } };
8
- }
9
- Object.defineProperty(o, k2, desc);
10
- }) : (function(o, m, k, k2) {
11
- if (k2 === undefined) k2 = k;
12
- o[k2] = m[k];
13
- }));
14
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
- Object.defineProperty(o, "default", { enumerable: true, value: v });
16
- }) : function(o, v) {
17
- o["default"] = v;
18
- });
19
- var __importStar = (this && this.__importStar) || function (mod) {
20
- if (mod && mod.__esModule) return mod;
21
- var result = {};
22
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
23
- __setModuleDefault(result, mod);
24
- return result;
25
- };
26
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
27
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
28
- return new (P || (P = Promise))(function (resolve, reject) {
29
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
30
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
31
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
32
- step((generator = generator.apply(thisArg, _arguments || [])).next());
33
- });
34
- };
35
- var __importDefault = (this && this.__importDefault) || function (mod) {
36
- return (mod && mod.__esModule) ? mod : { "default": mod };
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- const commander_1 = require("commander");
40
- const version_1 = require("./version");
41
- const adr_1 = require("./lib/adr");
42
- const chalk_1 = __importDefault(require("chalk"));
43
- const config_1 = require("./lib/config");
44
- const path = __importStar(require("path"));
45
- const manipulator_1 = require("./lib/manipulator");
46
- const promises_1 = __importDefault(require("fs/promises"));
47
- const program = new commander_1.Command();
48
- const collectLinks = (val, memo) => {
49
- memo.push(val);
50
- return memo;
51
- };
52
- const collectSupersedes = (val, memo) => {
53
- memo.push(val);
54
- return memo;
55
- };
56
- const generateGraph = (options) => __awaiter(void 0, void 0, void 0, function* () {
57
- let text = 'digraph {\n';
58
- text += ' node [shape=plaintext];\n';
59
- text += ' subgraph {\n';
60
- const adrs = yield (0, adr_1.listAdrs)();
61
- for (let i = 0; i < adrs.length; i++) {
62
- const n = i + 1;
63
- const adrPath = adrs[i];
64
- const contents = yield promises_1.default.readFile(adrPath, 'utf8');
65
- const title = (0, manipulator_1.getTitleFrom)(contents);
66
- text += ` _${n} [label="${title}"; URL="${(options === null || options === void 0 ? void 0 : options.prefix) || ''}${path.basename(adrPath, '.md')}${options === null || options === void 0 ? void 0 : options.extension}"];\n`;
67
- if (n > 1) {
68
- text += ` _${n - 1} -> _${n} [style="dotted", weight=1];\n`;
69
- }
70
- }
71
- text += ' }\n';
72
- for (let i = 0; i < adrs.length; i++) {
73
- const n = i + 1;
74
- const adrPath = adrs[i];
75
- const contents = yield promises_1.default.readFile(adrPath, 'utf8');
76
- const linksInADR = (0, manipulator_1.getLinksFrom)(contents);
77
- for (let j = 0; j < linksInADR.length; j++) {
78
- if (!linksInADR[j].label.endsWith('by')) {
79
- text += ` _${n} -> _${linksInADR[j].targetNumber} [label="${linksInADR[j].label}", weight=0]\n`;
80
- }
81
- }
82
- }
83
- text += '}\n';
84
- console.log(text);
85
- });
86
- program.name('adr').version(version_1.LIB_VERSION).description('Manage Architecture Decision Logs');
87
- program.command('new')
88
- .argument('<title...>', 'The title of the decision')
89
- .option('-q, --quiet', 'Do not ask for clarification. If multiple files match the search pattern, an error will be thrown.')
90
- .option('-s, --supersede <SUPERSEDE>', 'A reference (number or partial filename) of a previous decision that the new decision supercedes.\n'
91
- + 'A Markdown link to the superceded ADR is inserted into the Status section.\n'
92
- + 'The status of the superceded ADR is changed to record that it has been superceded by the new ADR.', collectSupersedes, [])
93
- .option('-l, --link "<TARGET:LINK:REVERSE-LINK>"', 'Links the new ADR to a previous ADR.\n'
94
- + `${chalk_1.default.bold('TARGET')} is a reference (number or partial filename) of a previous decision.\n`
95
- + `${chalk_1.default.bold('LINK')} is the description of the link created in the new ADR.\n`
96
- + `${chalk_1.default.bold('REVERSE-LINK')} is the description of the link created in the existing ADR that will refer to the new ADR`, collectLinks, [])
97
- .action((title, options) => __awaiter(void 0, void 0, void 0, function* () {
98
- try {
99
- yield (0, adr_1.newAdr)(title.join(' '), {
100
- supersedes: options.supersede,
101
- date: process.env.ADR_DATE,
102
- suppressPrompts: options.quiet || false,
103
- links: options.link
104
- });
105
- }
106
- catch (e) {
107
- program.error(chalk_1.default.red(e.message), { exitCode: 1 });
108
- }
109
- }));
110
- const generate = program.command('generate');
111
- generate.command('toc')
112
- .option('-p, --prefix <PREFIX>', 'The prefix to use for each file link in the generated TOC.')
113
- .action((options) => (0, adr_1.generateToc)(options));
114
- generate.command('graph')
115
- .option('-p, --prefix <PREFIX>', 'Prefix each decision file link with PREFIX.')
116
- .option('-e, --extension <EXTENSION>', 'the file extension of the documents to which generated links refer. Defaults to .html', '.html')
117
- .action((options) => __awaiter(void 0, void 0, void 0, function* () {
118
- yield generateGraph(options);
119
- }));
120
- program.command('link')
121
- .argument('<SOURCE>', 'Full or Partial reference number to an ADR')
122
- .argument('<LINK>', 'The description of the link created in the SOURCE')
123
- .argument('<TARGET>', 'Full or Partial reference number to an ADR')
124
- .argument('<REVERSE-LINK>', 'The description of the link created in the TARGET')
125
- .option('-q, --quiet', 'Do not ask for clarification. If multiple files match the search pattern, an error will be thrown.')
126
- .action(adr_1.link);
127
- program.command('init').argument('[directory]', 'Initialize a new ADR directory').action((directory) => __awaiter(void 0, void 0, void 0, function* () {
128
- yield (0, adr_1.init)(directory);
129
- }));
130
- program.command('list').action(() => __awaiter(void 0, void 0, void 0, function* () {
131
- const adrs = yield (0, adr_1.listAdrs)();
132
- console.log(adrs.map(adr => path.relative((0, config_1.workingDir)(), adr)).join('\n'));
133
- }));
134
- program.parse();
135
- //# sourceMappingURL=index.js.map
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"src/","sources":["index.ts"],"names":[],"mappings":"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"}
package/dist/lib/adr.js DELETED
@@ -1,203 +0,0 @@
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
- exports.listAdrs = exports.link = exports.init = exports.newAdr = exports.generateToc = void 0;
16
- const numbering_1 = require("./numbering");
17
- const template_1 = require("./template");
18
- const promises_1 = __importDefault(require("fs/promises"));
19
- const path_1 = __importDefault(require("path"));
20
- const config_1 = require("./config");
21
- const inquirer_1 = require("inquirer");
22
- const chalk_1 = __importDefault(require("chalk"));
23
- const manipulator_1 = require("./manipulator");
24
- const links_1 = require("./links");
25
- const node_child_process_1 = __importDefault(require("node:child_process"));
26
- const askForClarification = (searchString, matches) => __awaiter(void 0, void 0, void 0, function* () {
27
- const selection = yield (0, inquirer_1.prompt)([
28
- {
29
- type: 'list',
30
- name: 'target',
31
- message: `Which file do you want to link to for ${chalk_1.default.blue(searchString)}?`,
32
- choices: matches
33
- }
34
- ]);
35
- return selection.target;
36
- });
37
- // eslint-disable-next-line no-unused-vars
38
- var LinkType;
39
- (function (LinkType) {
40
- // eslint-disable-next-line no-unused-vars
41
- LinkType["LINK"] = "link";
42
- // eslint-disable-next-line no-unused-vars
43
- LinkType["SUPERSEDE"] = "supersede";
44
- })(LinkType || (LinkType = {}));
45
- const actuallyLink = (task) => __awaiter(void 0, void 0, void 0, function* () {
46
- const linkedFile = path_1.default.join(yield (0, config_1.getDir)(), task.targetPath);
47
- const newAdrContent = yield promises_1.default.readFile(task.sourcePath, 'utf8');
48
- const oldAdrContent = yield promises_1.default.readFile(linkedFile, 'utf8');
49
- const oldTitle = (0, manipulator_1.getTitleFrom)(oldAdrContent);
50
- const newTitle = (0, manipulator_1.getTitleFrom)(newAdrContent);
51
- let dirtyOld = '', dirtyNew = '';
52
- switch (task.type) {
53
- case LinkType.LINK:
54
- dirtyOld = (0, manipulator_1.injectLink)(oldAdrContent, `${task.reverseLink} [${newTitle}](${path_1.default.relative(yield (0, config_1.getDir)(), task.sourcePath)})`);
55
- dirtyNew = (0, manipulator_1.injectLink)(newAdrContent, `${task.link} [${oldTitle}](${task.targetPath})`);
56
- break;
57
- case LinkType.SUPERSEDE:
58
- dirtyOld = (0, manipulator_1.supersede)(oldAdrContent, `${task.reverseLink} [${newTitle}](${path_1.default.relative(yield (0, config_1.getDir)(), task.sourcePath)})`);
59
- dirtyNew = (0, manipulator_1.injectLink)(newAdrContent, `${task.link} [${oldTitle}](${task.targetPath})`);
60
- break;
61
- default:
62
- break;
63
- }
64
- yield promises_1.default.writeFile(linkedFile, dirtyOld);
65
- yield promises_1.default.writeFile(task.sourcePath, dirtyNew);
66
- });
67
- const processSupersedes = (sourcePath, supersedes = [], suppressPrompts = false) => __awaiter(void 0, void 0, void 0, function* () {
68
- if (supersedes.length === 0) {
69
- return;
70
- }
71
- const supersedeStrings = yield Promise.all(supersedes.map((link) => (0, links_1.getLinkDetails)(link, true)));
72
- for (const targetDetails of supersedeStrings) {
73
- const task = {
74
- type: LinkType.SUPERSEDE,
75
- sourcePath: sourcePath,
76
- link: targetDetails.link,
77
- reverseLink: targetDetails.reverseLink,
78
- targetPath: targetDetails.matches[0]
79
- };
80
- if (targetDetails.matches.length > 1) {
81
- if (suppressPrompts) {
82
- throw new Error(`Multiple files match the search pattern for "${targetDetails.original}".\n`
83
- + 'Please specify which file you want to targetDetails to more or remove the -q or --quiet options from the command line.');
84
- }
85
- else {
86
- task.targetPath = yield askForClarification(targetDetails.original, targetDetails.matches);
87
- }
88
- }
89
- yield actuallyLink(task);
90
- }
91
- });
92
- const injectLinksTo = (sourcePath, links = [], suppressPrompts = false) => __awaiter(void 0, void 0, void 0, function* () {
93
- if (links.length === 0) {
94
- return;
95
- }
96
- const linkStrings = yield Promise.all(links.map((link) => (0, links_1.getLinkDetails)(link)));
97
- for (const targetDetails of linkStrings) {
98
- const task = {
99
- type: LinkType.LINK,
100
- sourcePath: sourcePath,
101
- link: targetDetails.link,
102
- reverseLink: targetDetails.reverseLink,
103
- targetPath: targetDetails.matches[0]
104
- };
105
- if (targetDetails.matches.length > 1) {
106
- if (suppressPrompts) {
107
- throw new Error(`Multiple files match the search pattern for "${targetDetails.original}".\n`
108
- + 'Please specify which file you want to targetDetails to more or remove the -q or --quiet options from the command line.');
109
- }
110
- else {
111
- task.targetPath = yield askForClarification(targetDetails.original, targetDetails.matches);
112
- }
113
- }
114
- yield actuallyLink(task);
115
- }
116
- });
117
- //Generate a table of contents for the adr directory
118
- const generateToc = (options) => __awaiter(void 0, void 0, void 0, function* () {
119
- const adrDir = yield (0, config_1.getDir)();
120
- const files = yield promises_1.default.readdir(adrDir);
121
- const toc = files.filter((file) => file.match(/^\d{4}-.*\.md$/));
122
- const titles = toc.map((file) => __awaiter(void 0, void 0, void 0, function* () {
123
- const title = (0, manipulator_1.getTitleFrom)(yield promises_1.default.readFile(path_1.default.join(adrDir, file), 'utf8'));
124
- return `[${title}](${(options === null || options === void 0 ? void 0 : options.prefix) || ''}${file})`;
125
- }));
126
- const resolvedTitles = yield Promise.all(titles);
127
- const tocFile = path_1.default.resolve(path_1.default.join(adrDir, 'decisions.md'));
128
- yield promises_1.default.writeFile(tocFile, `# Table of Contents\n\n${resolvedTitles.join('\n')}`);
129
- });
130
- exports.generateToc = generateToc;
131
- const newAdr = (title, config) => __awaiter(void 0, void 0, void 0, function* () {
132
- const newNum = yield (0, numbering_1.newNumber)();
133
- const formattedDate = (config === null || config === void 0 ? void 0 : config.date) || new Date().toISOString().split('T')[0] || 'ERROR';
134
- const tpl = yield (0, template_1.template)(config === null || config === void 0 ? void 0 : config.template);
135
- const adr = tpl.replace('DATE', formattedDate).replace('TITLE', title).replace('NUMBER', newNum.toString()).replace('STATUS', 'Accepted');
136
- const paddedNumber = newNum.toString().padStart(4, '0');
137
- const cleansedTitle = title.toLowerCase().replace(/\W/g, '-').replace(/^(.*)\W$/, '$1').replace(/^\W(.*)$/, '$1');
138
- const fileName = `${paddedNumber}-${cleansedTitle}.md`;
139
- const adrDirectory = yield (0, config_1.getDir)();
140
- const adrPath = path_1.default.resolve(path_1.default.join(adrDirectory, fileName));
141
- yield promises_1.default.writeFile(adrPath, adr);
142
- yield promises_1.default.writeFile(path_1.default.resolve(adrDirectory, '.adr-sequence.lock'), newNum.toString());
143
- yield processSupersedes(adrPath, config === null || config === void 0 ? void 0 : config.supersedes, config === null || config === void 0 ? void 0 : config.suppressPrompts);
144
- yield injectLinksTo(adrPath, config === null || config === void 0 ? void 0 : config.links, config === null || config === void 0 ? void 0 : config.suppressPrompts);
145
- yield (0, exports.generateToc)();
146
- const newAdrPath = path_1.default.relative((0, config_1.workingDir)(), adrPath);
147
- if (process.env.VISUAL) {
148
- yield node_child_process_1.default.spawn(process.env.VISUAL, [adrPath], {
149
- stdio: 'inherit',
150
- shell: true
151
- });
152
- return;
153
- }
154
- if (process.env.EDITOR) {
155
- yield node_child_process_1.default.spawn(process.env.EDITOR, [adrPath], {
156
- stdio: 'inherit',
157
- shell: true
158
- });
159
- return;
160
- }
161
- console.log(newAdrPath);
162
- });
163
- exports.newAdr = newAdr;
164
- const init = (directory) => __awaiter(void 0, void 0, void 0, function* () {
165
- const dir = directory || (yield (0, config_1.getDir)());
166
- yield promises_1.default.mkdir(dir, { recursive: true });
167
- yield promises_1.default.writeFile(path_1.default.join((0, config_1.workingDir)(), '.adr-dir'), path_1.default.relative((0, config_1.workingDir)(), dir));
168
- yield (0, exports.newAdr)('Record Architecture Decisions', {
169
- date: process.env.ADR_DATE,
170
- template: path_1.default.resolve(path_1.default.dirname(__filename), '../templates/init.md')
171
- });
172
- });
173
- exports.init = init;
174
- const link = (source, link, target, reverseLink, options) => __awaiter(void 0, void 0, void 0, function* () {
175
- const getFor = (pattern) => __awaiter(void 0, void 0, void 0, function* () {
176
- const found = yield (0, links_1.findMatchingFilesFor)(pattern);
177
- if (found.length === 1) {
178
- return found[0];
179
- }
180
- if (options === null || options === void 0 ? void 0 : options.quiet) {
181
- throw new Error(`Multiple files match the search pattern for "${pattern}".\n`
182
- + 'Please specify which file you want to targetDetails to more or remove the -q or --quiet options from the command line.');
183
- }
184
- return askForClarification(pattern, found);
185
- });
186
- const sourceFile = yield getFor(source);
187
- yield injectLinksTo(path_1.default.resolve(yield (0, config_1.getDir)(), sourceFile), [`${target}:${link}:${reverseLink}`]);
188
- });
189
- exports.link = link;
190
- const listAdrs = () => __awaiter(void 0, void 0, void 0, function* () {
191
- const dir = yield (0, config_1.getDir)();
192
- const files = yield promises_1.default.readdir(dir);
193
- const toc = files.map(f => {
194
- const adrFile = f.match(/^0*(\d+)-.*$/);
195
- if (adrFile) {
196
- return path_1.default.resolve(dir, adrFile[0]);
197
- }
198
- return '';
199
- }).filter(f => f !== '');
200
- return toc;
201
- });
202
- exports.listAdrs = listAdrs;
203
- //# sourceMappingURL=adr.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"adr.js","sourceRoot":"src/","sources":["lib/adr.ts"],"names":[],"mappings":"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"}
@@ -1,50 +0,0 @@
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
- exports.getDir = exports.workingDir = void 0;
16
- const promises_1 = __importDefault(require("fs/promises"));
17
- const fs_1 = require("fs");
18
- const path_1 = __importDefault(require("path"));
19
- const workingDir = () => process.cwd();
20
- exports.workingDir = workingDir;
21
- const findTopLevelDir = (dir) => __awaiter(void 0, void 0, void 0, function* () {
22
- try {
23
- yield promises_1.default.access(path_1.default.join(dir, '.adr-dir'), fs_1.constants.F_OK);
24
- return dir;
25
- }
26
- catch (e) {
27
- if (dir === '/') {
28
- throw new Error('No ADR directory config found');
29
- }
30
- const newDir = path_1.default.join(dir, '..');
31
- return findTopLevelDir(newDir);
32
- }
33
- });
34
- const getDirPath = () => __awaiter(void 0, void 0, void 0, function* () {
35
- try {
36
- const configDir = yield findTopLevelDir((0, exports.workingDir)());
37
- const configFile = yield promises_1.default.readFile(path_1.default.join(configDir, '.adr-dir'), 'utf8');
38
- return path_1.default.relative((0, exports.workingDir)(), path_1.default.join(configDir, configFile.trim()));
39
- }
40
- catch (e) {
41
- return path_1.default.resolve(path_1.default.join((0, exports.workingDir)(), 'doc/adr'));
42
- }
43
- });
44
- const getDir = () => __awaiter(void 0, void 0, void 0, function* () {
45
- const dir = yield getDirPath();
46
- yield promises_1.default.mkdir(dir, { recursive: true });
47
- return dir;
48
- });
49
- exports.getDir = getDir;
50
- //# sourceMappingURL=config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.js","sourceRoot":"src/","sources":["lib/config.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2DAA6B;AAC7B,2BAA+B;AAC/B,gDAAwB;AAEjB,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;AAAjC,QAAA,UAAU,cAAuB;AAE9C,MAAM,eAAe,GAAG,CAAO,GAAW,EAAmB,EAAE;IAC7D,IAAI;QACF,MAAM,kBAAE,CAAC,MAAM,CAAC,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE,cAAS,CAAC,IAAI,CAAC,CAAC;QAC5D,OAAO,GAAG,CAAC;KACZ;IAAC,OAAO,CAAC,EAAE;QACV,IAAI,GAAG,KAAK,GAAG,EAAE;YACf,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;SAClD;QACD,MAAM,MAAM,GAAG,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACpC,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC;KAChC;AACH,CAAC,CAAA,CAAC;AAEF,MAAM,UAAU,GAAG,GAA0B,EAAE;IAC7C,IAAI;QACF,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,IAAA,kBAAU,GAAE,CAAC,CAAC;QACtD,MAAM,UAAU,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,CAAC;QAC/E,OAAO,cAAI,CAAC,QAAQ,CAAC,IAAA,kBAAU,GAAE,EAAE,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;KAC7E;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,cAAI,CAAC,OAAO,CAAC,cAAI,CAAC,IAAI,CAAC,IAAA,kBAAU,GAAE,EAAE,SAAS,CAAC,CAAC,CAAC;KACzD;AACH,CAAC,CAAA,CAAC;AAEK,MAAM,MAAM,GAAG,GAA0B,EAAE;IAChD,MAAM,GAAG,GAAG,MAAM,UAAU,EAAE,CAAC;IAC/B,MAAM,kBAAE,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzC,OAAO,GAAG,CAAC;AACb,CAAC,CAAA,CAAC;AAJW,QAAA,MAAM,UAIjB"}
package/dist/lib/links.js DELETED
@@ -1,42 +0,0 @@
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
- exports.getLinkDetails = exports.findMatchingFilesFor = void 0;
16
- const promises_1 = __importDefault(require("fs/promises"));
17
- const config_1 = require("./config");
18
- const findMatchingFilesFor = (pattern) => __awaiter(void 0, void 0, void 0, function* () {
19
- const files = yield promises_1.default.readdir(yield (0, config_1.getDir)());
20
- return files.filter(file => file.includes(pattern));
21
- });
22
- exports.findMatchingFilesFor = findMatchingFilesFor;
23
- const getLinkDetails = (linkString, isSupersede = false) => __awaiter(void 0, void 0, void 0, function* () {
24
- const parts = linkString.split(':');
25
- const pattern = parts[0];
26
- let link = 'Supersedes';
27
- let reverseLink = 'Superseded by';
28
- if (!isSupersede) {
29
- link = parts[1];
30
- reverseLink = parts[2];
31
- }
32
- const files = yield (0, exports.findMatchingFilesFor)(pattern);
33
- return {
34
- pattern: pattern,
35
- original: linkString,
36
- link: link,
37
- reverseLink: reverseLink,
38
- matches: files
39
- };
40
- });
41
- exports.getLinkDetails = getLinkDetails;
42
- //# sourceMappingURL=links.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"links.js","sourceRoot":"src/","sources":["lib/links.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2DAA6B;AAC7B,qCAAkC;AAU3B,MAAM,oBAAoB,GAAG,CAAO,OAAe,EAAE,EAAE;IAC5D,MAAM,KAAK,GAAG,MAAM,kBAAE,CAAC,OAAO,CAAC,MAAM,IAAA,eAAM,GAAE,CAAC,CAAC;IAC/C,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;AACtD,CAAC,CAAA,CAAC;AAHW,QAAA,oBAAoB,wBAG/B;AAEK,MAAM,cAAc,GAAG,CAAO,UAAkB,EAAE,cAAuB,KAAK,EAAwB,EAAE;IAC7G,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACpC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACzB,IAAI,IAAI,GAAG,YAAY,CAAC;IACxB,IAAI,WAAW,GAAG,eAAe,CAAC;IAClC,IAAI,CAAC,WAAW,EAAE;QAChB,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAChB,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;KACxB;IACD,MAAM,KAAK,GAAG,MAAM,IAAA,4BAAoB,EAAC,OAAO,CAAC,CAAC;IAClD,OAAO;QACL,OAAO,EAAE,OAAO;QAChB,QAAQ,EAAE,UAAU;QACpB,IAAI,EAAE,IAAI;QACV,WAAW,EAAE,WAAW;QACxB,OAAO,EAAE,KAAK;KACf,CAAC;AACJ,CAAC,CAAA,CAAC;AAjBW,QAAA,cAAc,kBAiBzB"}