@meza/adr-tools 1.0.2 → 1.0.7
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.
- package/.releaserc.json +12 -2
- package/CHANGELOG.md +23 -0
- package/package.json +7 -11
- package/src/version.ts +1 -1
- package/dist/index.js +0 -135
- package/dist/index.js.map +0 -1
- package/dist/lib/adr.js +0 -203
- package/dist/lib/adr.js.map +0 -1
- package/dist/lib/config.js +0 -50
- package/dist/lib/config.js.map +0 -1
- package/dist/lib/links.js +0 -42
- package/dist/lib/links.js.map +0 -1
- package/dist/lib/links.test.js +0 -94
- package/dist/lib/links.test.js.map +0 -1
- package/dist/lib/manipulator.js +0 -85
- package/dist/lib/manipulator.js.map +0 -1
- package/dist/lib/manipulator.test.js +0 -80
- package/dist/lib/manipulator.test.js.map +0 -1
- package/dist/lib/numbering.js +0 -64
- package/dist/lib/numbering.js.map +0 -1
- package/dist/lib/numbering.test.js +0 -49
- package/dist/lib/numbering.test.js.map +0 -1
- package/dist/lib/template.js +0 -34
- package/dist/lib/template.js.map +0 -1
- package/dist/types/index.d.ts +0 -3
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/lib/adr.d.ts +0 -18
- package/dist/types/lib/adr.d.ts.map +0 -1
- package/dist/types/lib/config.d.ts +0 -3
- package/dist/types/lib/config.d.ts.map +0 -1
- package/dist/types/lib/links.d.ts +0 -10
- package/dist/types/lib/links.d.ts.map +0 -1
- package/dist/types/lib/links.test.d.ts +0 -2
- package/dist/types/lib/links.test.d.ts.map +0 -1
- package/dist/types/lib/manipulator.d.ts +0 -11
- package/dist/types/lib/manipulator.d.ts.map +0 -1
- package/dist/types/lib/manipulator.test.d.ts +0 -2
- package/dist/types/lib/manipulator.test.d.ts.map +0 -1
- package/dist/types/lib/numbering.d.ts +0 -2
- package/dist/types/lib/numbering.d.ts.map +0 -1
- package/dist/types/lib/numbering.test.d.ts +0 -2
- package/dist/types/lib/numbering.test.d.ts.map +0 -1
- package/dist/types/lib/template.d.ts +0 -2
- package/dist/types/lib/template.d.ts.map +0 -1
- package/dist/types/version.d.ts +0 -2
- package/dist/types/version.d.ts.map +0 -1
- package/dist/version.js +0 -5
- package/dist/version.js.map +0 -1
- package/docs/CHANGELOG.md +0 -7
package/.releaserc.json
CHANGED
|
@@ -18,7 +18,8 @@
|
|
|
18
18
|
[
|
|
19
19
|
"@semantic-release/changelog",
|
|
20
20
|
{
|
|
21
|
-
"
|
|
21
|
+
"changelogTitle": "# ADR Tools Changelog",
|
|
22
|
+
"changelogFile": "CHANGELOG.md"
|
|
22
23
|
}
|
|
23
24
|
],
|
|
24
25
|
"@semantic-release/npm",
|
|
@@ -28,7 +29,6 @@
|
|
|
28
29
|
"assets": [
|
|
29
30
|
{
|
|
30
31
|
"path": [
|
|
31
|
-
"dist/**",
|
|
32
32
|
"CHANGELOG.md"
|
|
33
33
|
],
|
|
34
34
|
"name": "adr-tools-${nextRelease.gitTag}.zip",
|
|
@@ -36,6 +36,16 @@
|
|
|
36
36
|
}
|
|
37
37
|
]
|
|
38
38
|
}
|
|
39
|
+
],
|
|
40
|
+
[
|
|
41
|
+
"@semantic-release/git",
|
|
42
|
+
{
|
|
43
|
+
"message": "chore(release): ${nextRelease.version} as ${branch.channel} [skip ci]\n\n${nextRelease.notes}",
|
|
44
|
+
"assets": [
|
|
45
|
+
"package.json",
|
|
46
|
+
"CHANGELOG.md"
|
|
47
|
+
]
|
|
48
|
+
}
|
|
39
49
|
]
|
|
40
50
|
]
|
|
41
51
|
}
|
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# ADR Tools Changelog
|
|
2
|
+
|
|
3
|
+
## [1.0.7](https://github.com/meza/adr-tools/compare/v1.0.6...v1.0.7) (2022-06-27)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
* fixed the regression of the restricted releases ([303c19f](https://github.com/meza/adr-tools/commit/303c19fd40a31dd586feb01fd0c8209c92423898))
|
|
9
|
+
|
|
10
|
+
## [1.0.6](https://github.com/meza/adr-tools/compare/v1.0.5...v1.0.6) (2022-06-27)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Bug Fixes
|
|
14
|
+
|
|
15
|
+
* fixed the changelog title ([0f3f4d2](https://github.com/meza/adr-tools/commit/0f3f4d2b75ef6b93ce6e55c9527318e11867e28b))
|
|
16
|
+
|
|
17
|
+
## [1.0.5](https://github.com/meza/adr-tools/compare/v1.0.4...v1.0.5) (2022-06-27)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Bug Fixes
|
|
21
|
+
|
|
22
|
+
* no git push on release ([51d520e](https://github.com/meza/adr-tools/commit/51d520ee07f3c638ac59dae35c74e47b397db6b7))
|
|
23
|
+
* 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
|
+
"version": "1.0.7",
|
|
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
|
-
"
|
|
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/version.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const LIB_VERSION = '
|
|
1
|
+
export const LIB_VERSION = '0.0.0-development';
|
|
2
2
|
|
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,yCAAoC;AACpC,uCAAwC;AACxC,mCAAsE;AACtE,kDAA0B;AAC1B,yCAA0C;AAC1C,2CAA6B;AAC7B,mDAA+D;AAC/D,2DAA6B;AAE7B,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,MAAM,YAAY,GAAG,CAAC,GAAW,EAAE,IAAc,EAAE,EAAE;IACnD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACf,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,GAAW,EAAE,IAAc,EAAE,EAAE;IACxD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACf,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAO,OAA6C,EAAE,EAAE;IAC5E,IAAI,IAAI,GAAG,aAAa,CAAC;IACzB,IAAI,IAAI,6BAA6B,CAAC;IACtC,IAAI,IAAI,gBAAgB,CAAC;IAEzB,MAAM,IAAI,GAAG,MAAM,IAAA,cAAQ,GAAE,CAAC;IAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACpC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAChB,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACxB,MAAM,QAAQ,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACpD,MAAM,KAAK,GAAG,IAAA,0BAAY,EAAC,QAAQ,CAAC,CAAC;QACrC,IAAI,IAAI,QAAQ,CAAC,YAAY,KAAK,WAAW,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,KAAI,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,OAAO,CAAC;QAC/H,IAAI,CAAC,GAAG,CAAC,EAAE;YACT,IAAI,IAAI,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,gCAAgC,CAAC;SAChE;KACF;IACD,IAAI,IAAI,OAAO,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACpC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAChB,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACxB,MAAM,QAAQ,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACpD,MAAM,UAAU,GAAG,IAAA,0BAAY,EAAC,QAAQ,CAAC,CAAC;QAE1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC1C,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;gBACvC,IAAI,IAAI,MAAM,CAAC,QAAQ,UAAU,CAAC,CAAC,CAAC,CAAC,YAAY,YAAY,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,gBAAgB,CAAC;aAClG;SACF;KAEF;IAED,IAAI,IAAI,KAAK,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACpB,CAAC,CAAA,CAAC;AAEF,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,qBAAW,CAAC,CAAC,WAAW,CAAC,mCAAmC,CAAC,CAAC;AAE1F,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;KACnB,QAAQ,CAAC,YAAY,EAAE,2BAA2B,CAAC;KACnD,MAAM,CAAC,aAAa,EAAE,oGAAoG,CAAC;KAC3H,MAAM,CAAC,6BAA6B,EAAE,qGAAqG;MACxI,8EAA8E;MAC9E,mGAAmG,EAAE,iBAAiB,EAAE,EAAE,CAAC;KAC9H,MAAM,CAAC,yCAAyC,EAAE,wCAAwC;MACvF,GAAG,eAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,wEAAwE;MAC/F,GAAG,eAAK,CAAC,IAAI,CAAC,MAAM,CAAC,2DAA2D;MAChF,GAAG,eAAK,CAAC,IAAI,CAAC,cAAc,CAAC,4FAA4F,EAAE,YAAY,EAAE,EAAE,CAAC;KAC/I,MAAM,CAAC,CAAO,KAAe,EAAE,OAAO,EAAE,EAAE;IACzC,IAAI;QACF,MAAM,IAAA,YAAM,EAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YAC5B,UAAU,EAAE,OAAO,CAAC,SAAS;YAC7B,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ;YAC1B,eAAe,EAAE,OAAO,CAAC,KAAK,IAAI,KAAK;YACvC,KAAK,EAAE,OAAO,CAAC,IAAI;SACpB,CAAC,CAAC;KACJ;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAE,CAAW,CAAC,OAAO,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;KACjE;AACH,CAAC,CAAA,CAAC,CAAC;AAEL,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAE7C,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;KACpB,MAAM,CAAC,uBAAuB,EAAE,4DAA4D,CAAC;KAC7F,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAA,iBAAW,EAAC,OAAO,CAAC,CAAC,CAAC;AAE7C,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC;KACtB,MAAM,CAAC,uBAAuB,EAAE,6CAA6C,CAAC;KAC9E,MAAM,CAAC,6BAA6B,EAAE,uFAAuF,EAAE,OAAO,CAAC;KACvI,MAAM,CAAC,CAAO,OAAO,EAAE,EAAE;IACxB,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;AAC/B,CAAC,CAAA,CAAC,CAAC;AAEL,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;KACpB,QAAQ,CAAC,UAAU,EAAE,4CAA4C,CAAC;KAClE,QAAQ,CAAC,QAAQ,EAAE,mDAAmD,CAAC;KACvE,QAAQ,CAAC,UAAU,EAAE,4CAA4C,CAAC;KAClE,QAAQ,CAAC,gBAAgB,EAAE,mDAAmD,CAAC;KAC/E,MAAM,CAAC,aAAa,EAAE,oGAAoG,CAAC;KAC3H,MAAM,CAAC,UAAI,CAAC,CAAC;AAEhB,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,gCAAgC,CAAC,CAAC,MAAM,CAAC,CAAO,SAAkB,EAAE,EAAE;IACpH,MAAM,IAAA,UAAI,EAAC,SAAS,CAAC,CAAC;AACxB,CAAC,CAAA,CAAC,CAAC;AAEH,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,GAAS,EAAE;IACxC,MAAM,IAAI,GAAG,MAAM,IAAA,cAAQ,GAAE,CAAC;IAC9B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAA,mBAAU,GAAE,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5E,CAAC,CAAA,CAAC,CAAC;AAEH,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
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
|
package/dist/lib/adr.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"adr.js","sourceRoot":"src/","sources":["lib/adr.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/config.js
DELETED
|
@@ -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
|
package/dist/lib/config.js.map
DELETED
|
@@ -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
|
package/dist/lib/links.js.map
DELETED
|
@@ -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"}
|
package/dist/lib/links.test.js
DELETED
|
@@ -1,94 +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
|
-
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([]);
|
|
28
|
-
const linkString = '1:overrides:overriden by';
|
|
29
|
-
const response = yield (0, links_1.getLinkDetails)(linkString);
|
|
30
|
-
(0, vitest_1.expect)(response).toEqual({
|
|
31
|
-
pattern: '1',
|
|
32
|
-
original: '1:overrides:overriden by',
|
|
33
|
-
link: 'overrides',
|
|
34
|
-
reverseLink: 'overriden by',
|
|
35
|
-
matches: []
|
|
36
|
-
});
|
|
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
|
-
]);
|
|
45
|
-
const linkString = '1:overrides:overriden by';
|
|
46
|
-
const response = yield (0, links_1.getLinkDetails)(linkString);
|
|
47
|
-
(0, vitest_1.expect)(response).toEqual({
|
|
48
|
-
pattern: '1',
|
|
49
|
-
original: '1:overrides:overriden by',
|
|
50
|
-
link: 'overrides',
|
|
51
|
-
reverseLink: 'overriden by',
|
|
52
|
-
matches: [
|
|
53
|
-
'1-one',
|
|
54
|
-
'1-two',
|
|
55
|
-
'1-three'
|
|
56
|
-
]
|
|
57
|
-
});
|
|
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
|
-
]);
|
|
66
|
-
const linkString = '1:overrides:overriden by';
|
|
67
|
-
const response = yield (0, links_1.getLinkDetails)(linkString);
|
|
68
|
-
(0, vitest_1.expect)(response).toEqual({
|
|
69
|
-
pattern: '1',
|
|
70
|
-
original: '1:overrides:overriden by',
|
|
71
|
-
link: 'overrides',
|
|
72
|
-
reverseLink: 'overriden by',
|
|
73
|
-
matches: [
|
|
74
|
-
'on1e',
|
|
75
|
-
'1-two'
|
|
76
|
-
]
|
|
77
|
-
});
|
|
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([]);
|
|
82
|
-
const linkString = '1';
|
|
83
|
-
const supersede = true;
|
|
84
|
-
const response = yield (0, links_1.getLinkDetails)(linkString, supersede);
|
|
85
|
-
(0, vitest_1.expect)(response).toEqual({
|
|
86
|
-
pattern: '1',
|
|
87
|
-
original: '1',
|
|
88
|
-
link: 'Supersedes',
|
|
89
|
-
reverseLink: 'Superseded by',
|
|
90
|
-
matches: []
|
|
91
|
-
});
|
|
92
|
-
}));
|
|
93
|
-
});
|
|
94
|
-
//# sourceMappingURL=links.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"links.test.js","sourceRoot":"src/","sources":["lib/links.test.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/manipulator.js
DELETED
|
@@ -1,85 +0,0 @@
|
|
|
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");
|
|
5
|
-
const convertToMd = (tokens) => {
|
|
6
|
-
return tokens.map(token => token.raw).join('');
|
|
7
|
-
};
|
|
8
|
-
const getLinksFrom = (markdown) => {
|
|
9
|
-
const tokens = marked_1.marked.lexer(markdown);
|
|
10
|
-
const linkRegex = new RegExp(/^(.*)\s\[(.*)\]\((.*)\)$/);
|
|
11
|
-
const links = tokens.filter(token => token.type === 'paragraph' && linkRegex.test(token.text));
|
|
12
|
-
return links.map((link) => {
|
|
13
|
-
const linkToken = link;
|
|
14
|
-
const linkMatches = linkToken.text.match(linkRegex);
|
|
15
|
-
if (!linkMatches || linkMatches.length < 3) {
|
|
16
|
-
throw new Error(`Could not parse link from "${linkToken.text}"`);
|
|
17
|
-
}
|
|
18
|
-
return {
|
|
19
|
-
targetNumber: linkMatches[2].substring(0, linkMatches[2].indexOf('.')),
|
|
20
|
-
label: linkMatches[1],
|
|
21
|
-
href: linkMatches[3],
|
|
22
|
-
text: linkMatches[2],
|
|
23
|
-
raw: linkMatches[0]
|
|
24
|
-
};
|
|
25
|
-
});
|
|
26
|
-
};
|
|
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);
|
|
31
|
-
if (!mainHead) {
|
|
32
|
-
throw new Error('No main heading found');
|
|
33
|
-
}
|
|
34
|
-
return mainHead.text.trim();
|
|
35
|
-
};
|
|
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');
|
|
40
|
-
if (statusIndex < 0) {
|
|
41
|
-
throw new Error('Could not find status section');
|
|
42
|
-
}
|
|
43
|
-
const statusDepth = tokens[statusIndex].depth;
|
|
44
|
-
const followingHeadingIndex = tokens.findIndex((token, index) => token.type === 'heading' && token.depth === statusDepth && index > statusIndex);
|
|
45
|
-
const followingParagraphIndex = tokens.findIndex((token, index) => token.type === 'paragraph' && index > statusIndex && index < followingHeadingIndex);
|
|
46
|
-
if (followingParagraphIndex > followingHeadingIndex || followingParagraphIndex === -1) {
|
|
47
|
-
throw new Error('There is no status paragraph. Please format your adr properly');
|
|
48
|
-
}
|
|
49
|
-
tokens[followingParagraphIndex] = {
|
|
50
|
-
type: 'paragraph', text: link, raw: link, tokens: [
|
|
51
|
-
{
|
|
52
|
-
type: 'text',
|
|
53
|
-
raw: link,
|
|
54
|
-
text: link
|
|
55
|
-
}
|
|
56
|
-
]
|
|
57
|
-
};
|
|
58
|
-
return convertToMd(tokens);
|
|
59
|
-
};
|
|
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');
|
|
64
|
-
if (statusIndex < 0) {
|
|
65
|
-
throw new Error('Could not find status section');
|
|
66
|
-
}
|
|
67
|
-
const statusDepth = tokens[statusIndex].depth;
|
|
68
|
-
let followingHeadingIndex = tokens.findIndex((token, index) => token.type === 'heading' && token.depth === statusDepth && index > statusIndex);
|
|
69
|
-
if (followingHeadingIndex < 0) {
|
|
70
|
-
followingHeadingIndex = tokens.length;
|
|
71
|
-
}
|
|
72
|
-
tokens.splice(followingHeadingIndex, 0, {
|
|
73
|
-
type: 'paragraph', text: link, raw: link, tokens: [
|
|
74
|
-
{
|
|
75
|
-
type: 'text',
|
|
76
|
-
raw: link,
|
|
77
|
-
text: link
|
|
78
|
-
}
|
|
79
|
-
]
|
|
80
|
-
});
|
|
81
|
-
tokens.splice(followingHeadingIndex + 1, 0, { type: 'space', raw: '\n\n' });
|
|
82
|
-
return convertToMd(tokens);
|
|
83
|
-
};
|
|
84
|
-
exports.injectLink = injectLink;
|
|
85
|
-
//# sourceMappingURL=manipulator.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"manipulator.js","sourceRoot":"src/","sources":["lib/manipulator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,80 +0,0 @@
|
|
|
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);
|
|
49
|
-
});
|
|
50
|
-
(0, vitest_1.it)('throws an error when status cannot be found', () => {
|
|
51
|
-
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');
|
|
54
|
-
});
|
|
55
|
-
(0, vitest_1.it)('adds to the status section even when there are no following headers', () => {
|
|
56
|
-
const noFollowingHeaders = '## STATUS\nACCEPTED\n\n';
|
|
57
|
-
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);
|
|
60
|
-
});
|
|
61
|
-
(0, vitest_1.it)('can return the title and number', () => {
|
|
62
|
-
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');
|
|
65
|
-
});
|
|
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({
|
|
72
|
-
label: 'Superseded by',
|
|
73
|
-
targetNumber: '3',
|
|
74
|
-
text: '3. title here',
|
|
75
|
-
href: 'and-a-link-here.md',
|
|
76
|
-
raw: 'Superseded by [3. title here](and-a-link-here.md)'
|
|
77
|
-
});
|
|
78
|
-
});
|
|
79
|
-
});
|
|
80
|
-
//# sourceMappingURL=manipulator.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
package/dist/lib/numbering.js
DELETED
|
@@ -1,64 +0,0 @@
|
|
|
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* () {
|
|
43
|
-
try {
|
|
44
|
-
const lockfile = yield promises_1.default.readFile(path.resolve(yield (0, config_1.getDir)(), '.adr-sequence.lock'));
|
|
45
|
-
return parseInt(lockfile.toString().trim(), 10) + 1;
|
|
46
|
-
}
|
|
47
|
-
catch (e) {
|
|
48
|
-
// This is for backward compatibility. If someone upgrades from an older tool without a lockfile,
|
|
49
|
-
// we create one.
|
|
50
|
-
const filePattern = /^0*(\d+)-.*$/;
|
|
51
|
-
const files = yield promises_1.default.readdir(yield (0, config_1.getDir)());
|
|
52
|
-
const numbers = files.map(f => {
|
|
53
|
-
const adrFile = f.match(filePattern);
|
|
54
|
-
if (adrFile) {
|
|
55
|
-
return parseInt(adrFile[1], 10);
|
|
56
|
-
}
|
|
57
|
-
return 0;
|
|
58
|
-
});
|
|
59
|
-
const largestNumber = numbers.reduce((a, b) => Math.max(a, b), 0);
|
|
60
|
-
return largestNumber + 1;
|
|
61
|
-
}
|
|
62
|
-
});
|
|
63
|
-
exports.newNumber = newNumber;
|
|
64
|
-
//# sourceMappingURL=numbering.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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,49 +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
|
-
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('/')
|
|
21
|
-
}));
|
|
22
|
-
(0, vitest_1.describe)('The numbering logic', () => {
|
|
23
|
-
(0, vitest_1.afterAll)(() => {
|
|
24
|
-
vitest_1.vi.resetAllMocks();
|
|
25
|
-
});
|
|
26
|
-
(0, vitest_1.it)('can read from the sequence file', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
27
|
-
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
|
-
}));
|
|
48
|
-
});
|
|
49
|
-
//# sourceMappingURL=numbering.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
package/dist/lib/template.js
DELETED
|
@@ -1,34 +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.template = void 0;
|
|
16
|
-
const promises_1 = __importDefault(require("fs/promises"));
|
|
17
|
-
const path_1 = __importDefault(require("path"));
|
|
18
|
-
const config_1 = require("./config");
|
|
19
|
-
const template = (templateFile) => __awaiter(void 0, void 0, void 0, function* () {
|
|
20
|
-
if (templateFile) {
|
|
21
|
-
return yield promises_1.default.readFile(path_1.default.resolve(templateFile), 'utf8');
|
|
22
|
-
}
|
|
23
|
-
if (process.env.ADR_TEMPLATE) {
|
|
24
|
-
return yield promises_1.default.readFile(path_1.default.resolve(process.env.ADR_TEMPLATE), 'utf8');
|
|
25
|
-
}
|
|
26
|
-
try {
|
|
27
|
-
return yield promises_1.default.readFile(path_1.default.join(yield (0, config_1.getDir)(), 'templates/template.md'), 'utf8');
|
|
28
|
-
}
|
|
29
|
-
catch (e) {
|
|
30
|
-
return yield promises_1.default.readFile(path_1.default.resolve(path_1.default.join(__dirname, '../templates/template.md')), 'utf8');
|
|
31
|
-
}
|
|
32
|
-
});
|
|
33
|
-
exports.template = template;
|
|
34
|
-
//# sourceMappingURL=template.js.map
|
package/dist/lib/template.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"template.js","sourceRoot":"src/","sources":["lib/template.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2DAA6B;AAC7B,gDAAwB;AACxB,qCAAkC;AAE3B,MAAM,QAAQ,GAAG,CAAO,YAAqB,EAAmB,EAAE;IACvE,IAAI,YAAY,EAAE;QAChB,OAAO,MAAM,kBAAE,CAAC,QAAQ,CAAC,cAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,CAAC;KAC9D;IACD,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE;QAC5B,OAAO,MAAM,kBAAE,CAAC,QAAQ,CAAC,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,CAAC;KAC1E;IAED,IAAI;QACF,OAAO,MAAM,kBAAE,CAAC,QAAQ,CAAC,cAAI,CAAC,IAAI,CAAC,MAAM,IAAA,eAAM,GAAE,EAAE,uBAAuB,CAAC,EAAE,MAAM,CAAC,CAAC;KACtF;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,MAAM,kBAAE,CAAC,QAAQ,CAAC,cAAI,CAAC,OAAO,CAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,0BAA0B,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;KAClG;AACH,CAAC,CAAA,CAAC;AAbW,QAAA,QAAQ,YAanB"}
|
package/dist/types/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"src/","sources":["index.ts"],"names":[],"mappings":""}
|
package/dist/types/lib/adr.d.ts
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
interface NewOptions {
|
|
2
|
-
supersedes?: string[];
|
|
3
|
-
date?: string | undefined;
|
|
4
|
-
suppressPrompts?: boolean;
|
|
5
|
-
template?: string;
|
|
6
|
-
links?: string[];
|
|
7
|
-
}
|
|
8
|
-
export declare const generateToc: (options?: {
|
|
9
|
-
prefix?: string;
|
|
10
|
-
}) => Promise<void>;
|
|
11
|
-
export declare const newAdr: (title: string, config?: NewOptions) => Promise<void>;
|
|
12
|
-
export declare const init: (directory?: string) => Promise<void>;
|
|
13
|
-
export declare const link: (source: string, link: string, target: string, reverseLink: string, options?: {
|
|
14
|
-
quiet?: boolean;
|
|
15
|
-
}) => Promise<void>;
|
|
16
|
-
export declare const listAdrs: () => Promise<string[]>;
|
|
17
|
-
export {};
|
|
18
|
-
//# sourceMappingURL=adr.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"adr.d.ts","sourceRoot":"src/","sources":["lib/adr.ts"],"names":[],"mappings":"AAWA,UAAU,UAAU;IAClB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAyHD,eAAO,MAAM,WAAW,aAAoB;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAC,kBAe5D,CAAC;AAEF,eAAO,MAAM,MAAM,UAAiB,MAAM,WAAW,UAAU,kBA0C9D,CAAC;AAEF,eAAO,MAAM,IAAI,eAAsB,MAAM,kBAQ5C,CAAC;AAEF,eAAO,MAAM,IAAI,WAAkB,MAAM,QAAQ,MAAM,UAAU,MAAM,eAAe,MAAM,YAAY;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAC,kBAmBxH,CAAC;AAEF,eAAO,MAAM,QAAQ,yBAWpB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"src/","sources":["lib/config.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,UAAU,cAAsB,CAAC;AAyB9C,eAAO,MAAM,MAAM,QAAa,QAAQ,MAAM,CAI7C,CAAC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export interface LinkDetails {
|
|
2
|
-
pattern: string;
|
|
3
|
-
original: string;
|
|
4
|
-
link: string;
|
|
5
|
-
reverseLink: string;
|
|
6
|
-
matches: string[];
|
|
7
|
-
}
|
|
8
|
-
export declare const findMatchingFilesFor: (pattern: string) => Promise<string[]>;
|
|
9
|
-
export declare const getLinkDetails: (linkString: string, isSupersede?: boolean) => Promise<LinkDetails>;
|
|
10
|
-
//# sourceMappingURL=links.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"links.d.ts","sourceRoot":"src/","sources":["lib/links.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,eAAO,MAAM,oBAAoB,YAAmB,MAAM,sBAGzD,CAAC;AAEF,eAAO,MAAM,cAAc,eAAsB,MAAM,gBAAe,OAAO,KAAW,QAAQ,WAAW,CAiB1G,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"links.test.d.ts","sourceRoot":"src/","sources":["lib/links.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
export declare const getLinksFrom: (markdown: string) => {
|
|
2
|
-
targetNumber: string;
|
|
3
|
-
label: string;
|
|
4
|
-
href: string;
|
|
5
|
-
text: string;
|
|
6
|
-
raw: string;
|
|
7
|
-
}[];
|
|
8
|
-
export declare const getTitleFrom: (adr: string) => string;
|
|
9
|
-
export declare const supersede: (markdown: string, link: string) => string;
|
|
10
|
-
export declare const injectLink: (markdown: string, link: string) => string;
|
|
11
|
-
//# sourceMappingURL=manipulator.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"manipulator.d.ts","sourceRoot":"src/","sources":["lib/manipulator.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,YAAY,aAAc,MAAM;;;;;;GAmB5C,CAAC;AAEF,eAAO,MAAM,YAAY,QAAS,MAAM,WAOvC,CAAC;AAEF,eAAO,MAAM,SAAS,aAAc,MAAM,QAAQ,MAAM,WAwBvD,CAAC;AAEF,eAAO,MAAM,UAAU,aAAc,MAAM,QAAQ,MAAM,WAuBxD,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"manipulator.test.d.ts","sourceRoot":"src/","sources":["lib/manipulator.test.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"numbering.d.ts","sourceRoot":"src/","sources":["lib/numbering.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,SAAS,uBAqBrB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"numbering.test.d.ts","sourceRoot":"src/","sources":["lib/numbering.test.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"template.d.ts","sourceRoot":"src/","sources":["lib/template.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,QAAQ,kBAAyB,MAAM,KAAG,QAAQ,MAAM,CAapE,CAAC"}
|
package/dist/types/version.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"version.d.ts","sourceRoot":"src/","sources":["version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,UAAU,CAAC"}
|
package/dist/version.js
DELETED
package/dist/version.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"src/","sources":["version.ts"],"names":[],"mappings":";;;AAAa,QAAA,WAAW,GAAG,OAAO,CAAC"}
|
package/docs/CHANGELOG.md
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
## [1.0.2](https://github.com/meza/adr-tools/compare/v1.0.1...v1.0.2) (2022-06-27)
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
### Bug Fixes
|
|
5
|
-
|
|
6
|
-
* fixed versioning ([7a3b3b5](https://github.com/meza/adr-tools/commit/7a3b3b57424c1413a07f7fd34d0feb2d815c1192))
|
|
7
|
-
* fixing the release flow ([1520e9f](https://github.com/meza/adr-tools/commit/1520e9f138e041ee2eaa59a86acc779cc5179751))
|