adr-kit 0.2.2 → 0.2.4
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/README.md +30 -9
- package/README.zh.md +25 -8
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +7 -2
- package/dist/cli.js.map +1 -1
- package/dist/commands/accept.d.ts.map +1 -1
- package/dist/commands/accept.js +3 -4
- package/dist/commands/accept.js.map +1 -1
- package/dist/commands/decide.d.ts.map +1 -1
- package/dist/commands/decide.js +4 -5
- package/dist/commands/decide.js.map +1 -1
- package/dist/commands/list.js +1 -1
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/propose.d.ts.map +1 -1
- package/dist/commands/propose.js +4 -3
- package/dist/commands/propose.js.map +1 -1
- package/dist/commands/reject.d.ts.map +1 -1
- package/dist/commands/reject.js +2 -3
- package/dist/commands/reject.js.map +1 -1
- package/dist/commands/supersede.d.ts.map +1 -1
- package/dist/commands/supersede.js +6 -6
- package/dist/commands/supersede.js.map +1 -1
- package/dist/commands/validate.d.ts.map +1 -1
- package/dist/commands/validate.js +14 -3
- package/dist/commands/validate.js.map +1 -1
- package/dist/core/adr.d.ts +19 -2
- package/dist/core/adr.d.ts.map +1 -1
- package/dist/core/adr.js +38 -8
- package/dist/core/adr.js.map +1 -1
- package/dist/core/repository.d.ts +0 -1
- package/dist/core/repository.d.ts.map +1 -1
- package/dist/core/repository.js +59 -22
- package/dist/core/repository.js.map +1 -1
- package/dist/core/templates.d.ts +11 -2
- package/dist/core/templates.d.ts.map +1 -1
- package/dist/core/templates.js +42 -8
- package/dist/core/templates.js.map +1 -1
- package/dist/core/tool-integrations.js +7 -7
- package/dist/core/validate.d.ts +7 -0
- package/dist/core/validate.d.ts.map +1 -1
- package/dist/core/validate.js +57 -26
- package/dist/core/validate.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
</p>
|
|
15
15
|
|
|
16
16
|
<p>
|
|
17
|
-
<img src="https://raw.githubusercontent.com/luochang212/adr-kit/main/assets/social-preview.png" alt="ADR Kit
|
|
17
|
+
<img src="https://raw.githubusercontent.com/luochang212/adr-kit/main/assets/social-preview.png" alt="ADR Kit" width="100%" />
|
|
18
18
|
</p>
|
|
19
19
|
|
|
20
20
|
ADR Kit turns architecture decisions into plain Markdown files with a
|
|
@@ -45,7 +45,7 @@ adrkit propose "Use SQLite for session storage"
|
|
|
45
45
|
adr/
|
|
46
46
|
├── config.yaml # project context and per-status rules
|
|
47
47
|
├── README.md # repository conventions
|
|
48
|
-
├── decisions/ # accepted decisions, numbered
|
|
48
|
+
├── decisions/ # accepted decisions, numbered N
|
|
49
49
|
├── proposed/ # proposals waiting for a decision
|
|
50
50
|
└── rejected/ # rejected proposals, frozen
|
|
51
51
|
```
|
|
@@ -64,7 +64,7 @@ adrkit list
|
|
|
64
64
|
adrkit init [path] [--tools <list>] Initialize an ADR Kit repository
|
|
65
65
|
adrkit propose <title> Create a proposed decision
|
|
66
66
|
adrkit decide <title> Record an already-accepted decision
|
|
67
|
-
adrkit accept <name> Accept a proposal (assigns
|
|
67
|
+
adrkit accept <name> Accept a proposal (assigns N)
|
|
68
68
|
adrkit reject <name> --reason <text> Reject a proposal
|
|
69
69
|
adrkit supersede <name> --by <name> Mark an accepted decision as superseded
|
|
70
70
|
adrkit list [--json] List all records
|
|
@@ -78,7 +78,7 @@ adrkit completion <bash|zsh|fish> Print a shell completion script
|
|
|
78
78
|
adrkit version Print the version
|
|
79
79
|
```
|
|
80
80
|
|
|
81
|
-
`<name>` resolves by title, file name, or decision number (`
|
|
81
|
+
`<name>` resolves by title, file name, or decision number (`1`).
|
|
82
82
|
|
|
83
83
|
## Docs
|
|
84
84
|
|
|
@@ -91,16 +91,21 @@ adrkit version Print the version
|
|
|
91
91
|
|
|
92
92
|
## Record format
|
|
93
93
|
|
|
94
|
-
Every record is plain Markdown with a
|
|
94
|
+
Every record is plain Markdown with a four-line header:
|
|
95
95
|
|
|
96
96
|
```markdown
|
|
97
97
|
# ADR: Use SQLite for session storage
|
|
98
98
|
Status: proposed
|
|
99
|
+
Date: 2026-08-19
|
|
99
100
|
|
|
100
101
|
## Problem
|
|
101
102
|
...
|
|
102
103
|
```
|
|
103
104
|
|
|
105
|
+
The `Date:` line records when the current status was reached; the CLI
|
|
106
|
+
stamps it at every lifecycle move (propose, decide, accept, reject,
|
|
107
|
+
supersede), so the record stays truthful without manual date entry.
|
|
108
|
+
|
|
104
109
|
- **Proposed** records require `Problem`, `Proposal`, `Alternatives
|
|
105
110
|
considered`, `Acceptance criteria`, and `Risks`.
|
|
106
111
|
- **Accepted** decisions require `Problem`, `Decision`, `Alternatives
|
|
@@ -109,14 +114,29 @@ Status: proposed
|
|
|
109
114
|
- **Rejected** proposals are frozen with the reason on the status line:
|
|
110
115
|
`Status: rejected — <reason>`.
|
|
111
116
|
- **Superseded** decisions stay in `adr/decisions/` as history, with the
|
|
112
|
-
replacing decision on the status line: `Status: superseded by
|
|
117
|
+
replacing decision on the status line: `Status: superseded by N`.
|
|
113
118
|
`adrkit supersede <old> --by <new>` performs the rewrite; `validate`
|
|
114
|
-
checks that `
|
|
119
|
+
checks that `N` exists and is not itself superseded.
|
|
115
120
|
|
|
116
121
|
`adrkit accept` performs the mechanical rewrite a lifecycle move always
|
|
117
122
|
owed: `## Proposal` becomes `## Decision`, and `Acceptance criteria` plus
|
|
118
123
|
`Risks` are folded into `## Consequences`.
|
|
119
124
|
|
|
125
|
+
## Compatibility with other tools
|
|
126
|
+
|
|
127
|
+
ADR Kit owns one directory - `adr/` - and reads and validates only its own
|
|
128
|
+
files, so it can share a repository with any tool that does not collide
|
|
129
|
+
with that layout. Its agent skills are namespaced per tool (`adrkit-*`),
|
|
130
|
+
and `adrkit update` only rewrites its own integrations.
|
|
131
|
+
|
|
132
|
+
| Tool | Role | Relationship |
|
|
133
|
+
|---|---|---|
|
|
134
|
+
| [OpenSpec](https://github.com/Fission-AI/OpenSpec) | Forward-looking: specifies what to build | Complementary - specs vs records |
|
|
135
|
+
| [Changesets](https://changesets.dev) | Release tooling: versions and changelog | Orthogonal - cite the ADR number in the changeset body |
|
|
136
|
+
|
|
137
|
+
When a change makes an architectural decision that should outlive the
|
|
138
|
+
change, record it as an ADR.
|
|
139
|
+
|
|
120
140
|
## Sources of Inspiration
|
|
121
141
|
|
|
122
142
|
ADR Kit stands on two projects, in two different roles:
|
|
@@ -135,7 +155,7 @@ ADR Kit stands on two projects, in two different roles:
|
|
|
135
155
|
`Consequences` skeleton: that is the direct ancestor of the ADR Kit record
|
|
136
156
|
format.
|
|
137
157
|
|
|
138
|
-
Adapted, not copied. Accepted records carry a `
|
|
158
|
+
Adapted, not copied. Accepted records carry a `N` number, `supersede`
|
|
139
159
|
retires a decision in place, and `accept` mechanically rewrites a proposal
|
|
140
160
|
into a decision. Records are immutable once accepted: a decision record is
|
|
141
161
|
history, and current facts live in code, not in the record.
|
|
@@ -151,7 +171,8 @@ history, and current facts live in code, not in the record.
|
|
|
151
171
|
supersede is a command, and `validate` enforces the resulting
|
|
152
172
|
shape.
|
|
153
173
|
- **Agents are first-class users.** The format is plain Markdown, paths are
|
|
154
|
-
predictable, and
|
|
174
|
+
predictable, and agent-facing commands print machine-readable `--json`
|
|
175
|
+
output; the rest reject the flag instead of silently ignoring it.
|
|
155
176
|
|
|
156
177
|
## Development
|
|
157
178
|
|
package/README.zh.md
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
</p>
|
|
15
15
|
|
|
16
16
|
<p>
|
|
17
|
-
<img src="https://raw.githubusercontent.com/luochang212/adr-kit/main/assets/social-preview.png" alt="ADR Kit
|
|
17
|
+
<img src="https://raw.githubusercontent.com/luochang212/adr-kit/main/assets/social-preview.png" alt="ADR Kit" width="100%" />
|
|
18
18
|
</p>
|
|
19
19
|
|
|
20
20
|
ADR Kit 把架构决策变成纯 Markdown 文件,并带有机检的生命周期:
|
|
@@ -45,7 +45,7 @@ adrkit propose "使用 SQLite 存储会话"
|
|
|
45
45
|
adr/
|
|
46
46
|
├── config.yaml # 项目上下文与分状态规则
|
|
47
47
|
├── README.md # 仓库约定
|
|
48
|
-
├── decisions/ # 已接受决策,按
|
|
48
|
+
├── decisions/ # 已接受决策,按 N 编号
|
|
49
49
|
├── proposed/ # 待决策提案
|
|
50
50
|
└── rejected/ # 已拒绝提案,冻结保存
|
|
51
51
|
```
|
|
@@ -64,7 +64,7 @@ adrkit list
|
|
|
64
64
|
adrkit init [path] [--tools <list>] 初始化 ADR Kit 仓库
|
|
65
65
|
adrkit propose <title> 创建提案
|
|
66
66
|
adrkit decide <title> 直接记录已接受的决策
|
|
67
|
-
adrkit accept <name> 接受提案(分配
|
|
67
|
+
adrkit accept <name> 接受提案(分配 N 编号)
|
|
68
68
|
adrkit reject <name> --reason <text> 拒绝提案
|
|
69
69
|
adrkit supersede <name> --by <name> 标记已接受决策被新决策取代
|
|
70
70
|
adrkit list [--json] 列出所有记录
|
|
@@ -78,7 +78,7 @@ adrkit completion <bash|zsh|fish> 打印 shell 补全脚本
|
|
|
78
78
|
adrkit version 查看版本
|
|
79
79
|
```
|
|
80
80
|
|
|
81
|
-
`<name>` 支持按标题、文件名或决策编号(`
|
|
81
|
+
`<name>` 支持按标题、文件名或决策编号(`1`)查找。
|
|
82
82
|
|
|
83
83
|
## 文档
|
|
84
84
|
|
|
@@ -91,28 +91,45 @@ adrkit version 查看版本
|
|
|
91
91
|
|
|
92
92
|
## 记录格式
|
|
93
93
|
|
|
94
|
-
每条记录都是纯 Markdown
|
|
94
|
+
每条记录都是纯 Markdown,头部固定四行:
|
|
95
95
|
|
|
96
96
|
```markdown
|
|
97
97
|
# ADR: 使用 SQLite 存储会话
|
|
98
98
|
Status: proposed
|
|
99
|
+
Date: 2026-08-19
|
|
99
100
|
|
|
100
101
|
## Problem
|
|
101
102
|
...
|
|
102
103
|
```
|
|
103
104
|
|
|
105
|
+
`Date:` 行记录当前状态达成的日期;CLI 在每次生命周期迁移时自动盖章
|
|
106
|
+
(propose、decide、accept、reject、supersede),无需手动填写日期。
|
|
107
|
+
|
|
104
108
|
- **Proposed** 需要 `Problem`、`Proposal`、`Alternatives considered`、
|
|
105
109
|
`Acceptance criteria`、`Risks`。
|
|
106
110
|
- **Accepted** 需要 `Problem`、`Decision`、`Alternatives considered`、
|
|
107
111
|
`Consequences`;`validate` 会拒绝提案时代的标题出现在已接受决策中。
|
|
108
112
|
- **Rejected** 冻结提案,拒绝原因写在状态行:`Status: rejected — <reason>`。
|
|
109
113
|
- **Superseded** 决策保留在 `adr/decisions/` 作为历史,状态行指向取代它的决策:
|
|
110
|
-
`Status: superseded by
|
|
111
|
-
`validate` 校验 `
|
|
114
|
+
`Status: superseded by N`。`adrkit supersede <旧> --by <新>` 完成改写;
|
|
115
|
+
`validate` 校验 `N` 存在且自身未被取代。
|
|
112
116
|
|
|
113
117
|
`adrkit accept` 会自动完成生命周期迁移所要求的改写:`## Proposal` 改为
|
|
114
118
|
`## Decision`,`Acceptance criteria` 与 `Risks` 合并进 `## Consequences`。
|
|
115
119
|
|
|
120
|
+
## 工具兼容性
|
|
121
|
+
|
|
122
|
+
ADR Kit 只拥有一个目录——`adr/`——并且只读取和校验自己的文件,因此可以
|
|
123
|
+
与任何不占用该布局的工具共处于一个仓库。它的 agent skills 按工具命名空间
|
|
124
|
+
隔离(`adrkit-*`),`adrkit update` 只重写自己的集成文件。
|
|
125
|
+
|
|
126
|
+
| 工具 | 角色 | 与 ADR Kit 的关系 |
|
|
127
|
+
|---|---|---|
|
|
128
|
+
| [OpenSpec](https://github.com/Fission-AI/OpenSpec) | 前瞻:规定要构建什么 | 互补——规格与记录各司其职 |
|
|
129
|
+
| [Changesets](https://changesets.dev) | 发布:版本号与 changelog | 正交——changeset 正文引用 ADR 编号 |
|
|
130
|
+
|
|
131
|
+
当某个变更做出了应比变更本身更长命的架构决策时,把它记成一条 ADR。
|
|
132
|
+
|
|
116
133
|
## 灵感来源
|
|
117
134
|
|
|
118
135
|
ADR Kit 站在两个项目之上,两者角色不同:
|
|
@@ -129,7 +146,7 @@ ADR Kit 站在两个项目之上,两者角色不同:
|
|
|
129
146
|
`Alternatives considered` / `Consequences` 骨架,是 ADR Kit 记录格式的
|
|
130
147
|
直接祖先。
|
|
131
148
|
|
|
132
|
-
是改编,不是照抄。已接受记录带 `
|
|
149
|
+
是改编,不是照抄。已接受记录带 `N` 编号,`supersede` 原地退役一条决策,
|
|
133
150
|
`accept` 机械地把提案改写成决策。记录一旦接受就不可变:决策记录是历史,
|
|
134
151
|
当前事实以代码为准,不在记录里。
|
|
135
152
|
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AA4CA,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAkIzC"}
|
package/dist/cli.js
CHANGED
|
@@ -15,13 +15,13 @@ import { statusCommand } from './commands/status.js';
|
|
|
15
15
|
import { supersedeCommand } from './commands/supersede.js';
|
|
16
16
|
import { updateCommand } from './commands/update.js';
|
|
17
17
|
import { validateCommand } from './commands/validate.js';
|
|
18
|
-
const HELP = `adrkit ${VERSION} -
|
|
18
|
+
const HELP = `adrkit ${VERSION} - A lightweight ADR workflow for humans and agents
|
|
19
19
|
|
|
20
20
|
Usage:
|
|
21
21
|
adrkit init [path] [--tools <list>] Initialize an ADR Kit repository
|
|
22
22
|
adrkit propose <title> Create a proposed decision
|
|
23
23
|
adrkit decide <title> Create an accepted decision draft
|
|
24
|
-
adrkit accept <name> Accept a proposal (assigns
|
|
24
|
+
adrkit accept <name> Accept a proposal (assigns the next number)
|
|
25
25
|
adrkit reject <name> --reason <reason> Reject a proposal
|
|
26
26
|
adrkit supersede <name> --by <name> Mark an accepted decision as superseded
|
|
27
27
|
adrkit list [--json] List all decision records
|
|
@@ -38,6 +38,7 @@ Usage:
|
|
|
38
38
|
|
|
39
39
|
Run from anywhere inside the project; commands discover the nearest adr/ directory.
|
|
40
40
|
`;
|
|
41
|
+
const JSON_COMMANDS = new Set(['list', 'status', 'instructions', 'validate', 'config']);
|
|
41
42
|
export function main(argv) {
|
|
42
43
|
const { values, positionals } = parseArgs({
|
|
43
44
|
args: argv,
|
|
@@ -63,6 +64,10 @@ export function main(argv) {
|
|
|
63
64
|
const command = positionals[0] ?? '';
|
|
64
65
|
const rest = positionals.slice(1);
|
|
65
66
|
try {
|
|
67
|
+
// Commands without JSON output reject --json instead of ignoring it.
|
|
68
|
+
if (values.json && command.length > 0 && !JSON_COMMANDS.has(command)) {
|
|
69
|
+
throw new Error(`adrkit ${command} does not support --json`);
|
|
70
|
+
}
|
|
66
71
|
switch (command) {
|
|
67
72
|
case '': {
|
|
68
73
|
console.error(HELP);
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accept.d.ts","sourceRoot":"","sources":["../../src/commands/accept.ts"],"names":[],"mappings":"AAaA,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"accept.d.ts","sourceRoot":"","sources":["../../src/commands/accept.ts"],"names":[],"mappings":"AAaA,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAkChE"}
|
package/dist/commands/accept.js
CHANGED
|
@@ -10,17 +10,16 @@ export function acceptCommand(query, cwd) {
|
|
|
10
10
|
if (record.folder !== 'proposed') {
|
|
11
11
|
throw new Error(`"${query}" is not a proposal (it is in ${record.folder})`);
|
|
12
12
|
}
|
|
13
|
-
if (/^\d
|
|
14
|
-
throw new Error('proposal title must not start with a
|
|
13
|
+
if (/^\d+\s+/.test(record.title)) {
|
|
14
|
+
throw new Error('proposal title must not start with a number; ADR Kit assigns decision numbers');
|
|
15
15
|
}
|
|
16
16
|
const issues = validateRecord(root, record);
|
|
17
17
|
if (issues.length > 0) {
|
|
18
18
|
throw new Error(`proposal is not valid; fix it before accepting:\n${formatIssues(issues)}`);
|
|
19
19
|
}
|
|
20
20
|
const number = nextDecisionNumber(root);
|
|
21
|
-
const padded = String(number).padStart(4, '0');
|
|
22
21
|
const slug = record.fileName.replace(/^\d{4}-\d{2}-\d{2}-/, '').replace(/\.md$/, '');
|
|
23
|
-
const fileName = `${
|
|
22
|
+
const fileName = `${number}-${slug}.md`;
|
|
24
23
|
const path = join(folderPath(root, 'decisions'), fileName);
|
|
25
24
|
if (existsSync(path)) {
|
|
26
25
|
throw new Error(`decision already exists: adr/decisions/${fileName}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accept.js","sourceRoot":"","sources":["../../src/commands/accept.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,YAAY,EACZ,aAAa,EACb,WAAW,GACZ,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAEnE,MAAM,UAAU,aAAa,CAAC,KAAa,EAAE,GAAW;IACtD,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IAC9B,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC1C,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,iCAAiC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IAC9E,CAAC;IACD,IAAI,
|
|
1
|
+
{"version":3,"file":"accept.js","sourceRoot":"","sources":["../../src/commands/accept.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,YAAY,EACZ,aAAa,EACb,WAAW,GACZ,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAEnE,MAAM,UAAU,aAAa,CAAC,KAAa,EAAE,GAAW;IACtD,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IAC9B,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC1C,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,iCAAiC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IAC9E,CAAC;IACD,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,+EAA+E,CAAC,CAAC;IACnG,CAAC;IAED,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC5C,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,oDAAoD,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC9F,CAAC;IAED,MAAM,MAAM,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACrF,MAAM,QAAQ,GAAG,GAAG,MAAM,IAAI,IAAI,KAAK,CAAC;IACxC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC3D,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,0CAA0C,QAAQ,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,MAAM,OAAO,GAAG,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnD,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAClD,YAAY,CAAC,MAAM,CAAC,CAAC;IACrB,IAAI,MAAM,GAAG,yBAAyB,MAAM,CAAC,QAAQ,qBAAqB,QAAQ,EAAE,CAAC;IACrF,MAAM,OAAO,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IACxC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,wEAAwE,OAAO;aACtF,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,OAAO,EAAE,CAAC;aACjC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAClB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decide.d.ts","sourceRoot":"","sources":["../../src/commands/decide.ts"],"names":[],"mappings":"AAOA,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"decide.d.ts","sourceRoot":"","sources":["../../src/commands/decide.ts"],"names":[],"mappings":"AAOA,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAkBhE"}
|
package/dist/commands/decide.js
CHANGED
|
@@ -9,19 +9,18 @@ export function decideCommand(title, cwd) {
|
|
|
9
9
|
if (trimmed.length === 0) {
|
|
10
10
|
throw new Error('title must not be empty');
|
|
11
11
|
}
|
|
12
|
-
if (/^\d
|
|
13
|
-
throw new Error('title must not start with a
|
|
12
|
+
if (/^\d+\s+/.test(trimmed)) {
|
|
13
|
+
throw new Error('title must not start with a number; ADR Kit assigns decision numbers');
|
|
14
14
|
}
|
|
15
15
|
const root = requireRoot(cwd);
|
|
16
16
|
const number = nextDecisionNumber(root);
|
|
17
|
-
const
|
|
18
|
-
const fileName = `${padded}-${slugify(trimmed)}.md`;
|
|
17
|
+
const fileName = `${number}-${slugify(trimmed)}.md`;
|
|
19
18
|
const path = join(folderPath(root, 'decisions'), fileName);
|
|
20
19
|
if (existsSync(path)) {
|
|
21
20
|
throw new Error(`decision already exists: adr/decisions/${fileName}`);
|
|
22
21
|
}
|
|
23
22
|
const content = decisionTemplate(number, trimmed, readConfig(root).context);
|
|
24
23
|
writeRecord(root, 'decisions', fileName, content);
|
|
25
|
-
return `created adr/decisions/${fileName}\n\nfill in the draft and validate it with:\n adrkit validate ${
|
|
24
|
+
return `created adr/decisions/${fileName}\n\nfill in the draft and validate it with:\n adrkit validate ${number}`;
|
|
26
25
|
}
|
|
27
26
|
//# sourceMappingURL=decide.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decide.js","sourceRoot":"","sources":["../../src/commands/decide.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpF,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,MAAM,UAAU,aAAa,CAAC,KAAa,EAAE,GAAW;IACtD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IACD,IAAI,
|
|
1
|
+
{"version":3,"file":"decide.js","sourceRoot":"","sources":["../../src/commands/decide.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpF,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,MAAM,UAAU,aAAa,CAAC,KAAa,EAAE,GAAW;IACtD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IACD,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;IAC1F,CAAC;IACD,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IAC9B,MAAM,MAAM,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,GAAG,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;IACpD,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC3D,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,0CAA0C,QAAQ,EAAE,CAAC,CAAC;IACxE,CAAC;IACD,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;IAC5E,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAClD,OAAO,yBAAyB,QAAQ,kEAAkE,MAAM,EAAE,CAAC;AACrH,CAAC"}
|
package/dist/commands/list.js
CHANGED
|
@@ -32,7 +32,7 @@ export function listCommand(cwd, asJson = false) {
|
|
|
32
32
|
lines.push(labels[folder] ?? folder, '');
|
|
33
33
|
for (const record of group) {
|
|
34
34
|
const supersededNote = record.status === 'superseded' && record.supersededBy !== undefined
|
|
35
|
-
? ` [superseded by ${
|
|
35
|
+
? ` [superseded by ${record.supersededBy}]`
|
|
36
36
|
: '';
|
|
37
37
|
lines.push(` ${displayName(record)}${supersededNote} (${relativePath(record)})`);
|
|
38
38
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE/E,MAAM,UAAU,WAAW,CAAC,GAAW,EAAE,MAAM,GAAG,KAAK;IACrD,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IAC9B,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAElC,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YACvC,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC;YAC1B,eAAe,EAAE,MAAM,CAAC,eAAe;YACvC,YAAY,EAAE,MAAM,CAAC,YAAY;SAClC,CAAC,CAAC,CAAC;QACJ,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,iFAAiF,CAAC;IAC3F,CAAC;IAED,MAAM,MAAM,GAA2B;QACrC,SAAS,EAAE,UAAU;QACrB,QAAQ,EAAE,UAAU;QACpB,QAAQ,EAAE,UAAU;KACrB,CAAC;IACF,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,MAAM,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,UAAU,CAAU,EAAE,CAAC;QACpE,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;QACnE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QACjC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,MAAM,EAAE,EAAE,CAAC,CAAC;QACzC,KAAK,MAAM,MAAM,IAAI,KAAK,EAAE,CAAC;YAC3B,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,KAAK,YAAY,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS;gBACxF,CAAC,CAAC,oBAAoB,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE/E,MAAM,UAAU,WAAW,CAAC,GAAW,EAAE,MAAM,GAAG,KAAK;IACrD,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IAC9B,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAElC,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YACvC,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC;YAC1B,eAAe,EAAE,MAAM,CAAC,eAAe;YACvC,YAAY,EAAE,MAAM,CAAC,YAAY;SAClC,CAAC,CAAC,CAAC;QACJ,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,iFAAiF,CAAC;IAC3F,CAAC;IAED,MAAM,MAAM,GAA2B;QACrC,SAAS,EAAE,UAAU;QACrB,QAAQ,EAAE,UAAU;QACpB,QAAQ,EAAE,UAAU;KACrB,CAAC;IACF,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,MAAM,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,UAAU,CAAU,EAAE,CAAC;QACpE,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;QACnE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QACjC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,MAAM,EAAE,EAAE,CAAC,CAAC;QACzC,KAAK,MAAM,MAAM,IAAI,KAAK,EAAE,CAAC;YAC3B,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,KAAK,YAAY,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS;gBACxF,CAAC,CAAC,oBAAoB,MAAM,CAAC,YAAY,GAAG;gBAC5C,CAAC,CAAC,EAAE,CAAC;YACP,KAAK,CAAC,IAAI,CAAC,KAAK,WAAW,CAAC,MAAM,CAAC,GAAG,cAAc,MAAM,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACrF,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;AACpC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"propose.d.ts","sourceRoot":"","sources":["../../src/commands/propose.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"propose.d.ts","sourceRoot":"","sources":["../../src/commands/propose.ts"],"names":[],"mappings":"AAQA,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAkBjE"}
|
package/dist/commands/propose.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { existsSync } from 'node:fs';
|
|
2
2
|
import { join } from 'node:path';
|
|
3
3
|
import { readConfig, requireRoot } from '../core/config.js';
|
|
4
|
-
import { folderPath,
|
|
4
|
+
import { folderPath, writeRecord } from '../core/repository.js';
|
|
5
|
+
import { todayStamp } from '../core/adr.js';
|
|
5
6
|
import { proposalTemplate } from '../core/templates.js';
|
|
6
7
|
import { slugify } from '../core/slug.js';
|
|
7
8
|
export function proposeCommand(title, cwd) {
|
|
@@ -9,8 +10,8 @@ export function proposeCommand(title, cwd) {
|
|
|
9
10
|
if (trimmed.length === 0) {
|
|
10
11
|
throw new Error('title must not be empty');
|
|
11
12
|
}
|
|
12
|
-
if (/^\d
|
|
13
|
-
throw new Error('title must not start with a
|
|
13
|
+
if (/^\d+\s+/.test(trimmed)) {
|
|
14
|
+
throw new Error('title must not start with a number; ADR Kit assigns decision numbers');
|
|
14
15
|
}
|
|
15
16
|
const root = requireRoot(cwd);
|
|
16
17
|
const slug = slugify(trimmed);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"propose.js","sourceRoot":"","sources":["../../src/commands/propose.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"propose.js","sourceRoot":"","sources":["../../src/commands/propose.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,MAAM,UAAU,cAAc,CAAC,KAAa,EAAE,GAAW;IACvD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IACD,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;IAC1F,CAAC;IACD,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IAC9B,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9B,MAAM,QAAQ,GAAG,GAAG,UAAU,EAAE,IAAI,IAAI,KAAK,CAAC;IAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC1D,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,yCAAyC,QAAQ,EAAE,CAAC,CAAC;IACvE,CAAC;IACD,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;IACpE,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IACjD,OAAO,wBAAwB,QAAQ,4CAA4C,QAAQ,EAAE,CAAC;AAChG,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reject.d.ts","sourceRoot":"","sources":["../../src/commands/reject.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"reject.d.ts","sourceRoot":"","sources":["../../src/commands/reject.ts"],"names":[],"mappings":"AAMA,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAyBhF"}
|
package/dist/commands/reject.js
CHANGED
|
@@ -2,6 +2,7 @@ import { existsSync } from 'node:fs';
|
|
|
2
2
|
import { join } from 'node:path';
|
|
3
3
|
import { requireRoot } from '../core/config.js';
|
|
4
4
|
import { folderPath, readRecord, removeRecord, resolveRecord, writeRecord } from '../core/repository.js';
|
|
5
|
+
import { stampLifecycleMove } from '../core/templates.js';
|
|
5
6
|
export function rejectCommand(query, reason, cwd) {
|
|
6
7
|
const root = requireRoot(cwd);
|
|
7
8
|
const record = resolveRecord(root, query);
|
|
@@ -17,9 +18,7 @@ export function rejectCommand(query, reason, cwd) {
|
|
|
17
18
|
throw new Error(`rejected record already exists: adr/rejected/${record.fileName}`);
|
|
18
19
|
}
|
|
19
20
|
const original = readRecord(record);
|
|
20
|
-
|
|
21
|
-
lines[1] = `Status: rejected — ${trimmedReason}`;
|
|
22
|
-
writeRecord(root, 'rejected', record.fileName, lines.join('\n'));
|
|
21
|
+
writeRecord(root, 'rejected', record.fileName, stampLifecycleMove(original, `Status: rejected — ${trimmedReason}`));
|
|
23
22
|
removeRecord(record);
|
|
24
23
|
return `rejected adr/proposed/${record.fileName} as adr/rejected/${record.fileName}`;
|
|
25
24
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reject.js","sourceRoot":"","sources":["../../src/commands/reject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"reject.js","sourceRoot":"","sources":["../../src/commands/reject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzG,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,MAAM,UAAU,aAAa,CAAC,KAAa,EAAE,MAAc,EAAE,GAAW;IACtE,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IAC9B,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC1C,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,iCAAiC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IAC9E,CAAC;IACD,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IACpC,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;IACzF,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IACjE,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,gDAAgD,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IACrF,CAAC;IAED,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IACpC,WAAW,CACT,IAAI,EACJ,UAAU,EACV,MAAM,CAAC,QAAQ,EACf,kBAAkB,CAAC,QAAQ,EAAE,sBAAsB,aAAa,EAAE,CAAC,CACpE,CAAC;IACF,YAAY,CAAC,MAAM,CAAC,CAAC;IACrB,OAAO,yBAAyB,MAAM,CAAC,QAAQ,oBAAoB,MAAM,CAAC,QAAQ,EAAE,CAAC;AACvF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"supersede.d.ts","sourceRoot":"","sources":["../../src/commands/supersede.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"supersede.d.ts","sourceRoot":"","sources":["../../src/commands/supersede.ts"],"names":[],"mappings":"AAIA,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAuCpF"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { requireRoot } from '../core/config.js';
|
|
2
2
|
import { readRecord, resolveRecord, writeRecord } from '../core/repository.js';
|
|
3
|
+
import { stampLifecycleMove } from '../core/templates.js';
|
|
3
4
|
export function supersedeCommand(query, byQuery, cwd) {
|
|
4
5
|
const root = requireRoot(cwd);
|
|
5
6
|
const record = resolveRecord(root, query);
|
|
@@ -7,7 +8,7 @@ export function supersedeCommand(query, byQuery, cwd) {
|
|
|
7
8
|
throw new Error(`"${query}" is not an accepted decision (it is in ${record.folder})`);
|
|
8
9
|
}
|
|
9
10
|
if (record.status === 'superseded') {
|
|
10
|
-
const current =
|
|
11
|
+
const current = record.supersededBy ?? 0;
|
|
11
12
|
throw new Error(`"${query}" is already superseded by ${current}; supersede that decision instead if it is now outdated`);
|
|
12
13
|
}
|
|
13
14
|
const replacement = resolveRecord(root, byQuery);
|
|
@@ -24,12 +25,11 @@ export function supersedeCommand(query, byQuery, cwd) {
|
|
|
24
25
|
throw new Error(`"--by ${byQuery}" has no decision number`);
|
|
25
26
|
}
|
|
26
27
|
const original = readRecord(record);
|
|
27
|
-
const
|
|
28
|
-
if (
|
|
29
|
-
throw new Error(`unexpected status line "${
|
|
28
|
+
const currentStatus = original.split(/\r?\n/)[1];
|
|
29
|
+
if (currentStatus !== 'Status: accepted') {
|
|
30
|
+
throw new Error(`unexpected status line "${currentStatus ?? ''}" in ${record.fileName}`);
|
|
30
31
|
}
|
|
31
|
-
|
|
32
|
-
writeRecord(root, 'decisions', record.fileName, lines.join('\n'));
|
|
32
|
+
writeRecord(root, 'decisions', record.fileName, stampLifecycleMove(original, `Status: superseded by ${replacement.number}`));
|
|
33
33
|
return `superseded adr/decisions/${record.fileName} by adr/decisions/${replacement.fileName}`;
|
|
34
34
|
}
|
|
35
35
|
//# sourceMappingURL=supersede.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"supersede.js","sourceRoot":"","sources":["../../src/commands/supersede.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"supersede.js","sourceRoot":"","sources":["../../src/commands/supersede.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAC/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,MAAM,UAAU,gBAAgB,CAAC,KAAa,EAAE,OAAe,EAAE,GAAW;IAC1E,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IAC9B,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC1C,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,2CAA2C,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IACxF,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY,IAAI,CAAC,CAAC;QACzC,MAAM,IAAI,KAAK,CACb,IAAI,KAAK,8BAA8B,OAAO,yDAAyD,CACxG,CAAC;IACJ,CAAC;IAED,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACjD,IAAI,WAAW,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,SAAS,OAAO,2CAA2C,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;IACpG,CAAC;IACD,IAAI,WAAW,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACxD,CAAC;IACD,IAAI,WAAW,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,SAAS,OAAO,2EAA2E,CAAC,CAAC;IAC/G,CAAC;IACD,IAAI,WAAW,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,SAAS,OAAO,0BAA0B,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IACpC,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACjD,IAAI,aAAa,KAAK,kBAAkB,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,2BAA2B,aAAa,IAAI,EAAE,QAAQ,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC3F,CAAC;IACD,WAAW,CACT,IAAI,EACJ,WAAW,EACX,MAAM,CAAC,QAAQ,EACf,kBAAkB,CAAC,QAAQ,EAAE,yBAAyB,WAAW,CAAC,MAAM,EAAE,CAAC,CAC5E,CAAC;IACF,OAAO,4BAA4B,MAAM,CAAC,QAAQ,qBAAqB,WAAW,CAAC,QAAQ,EAAE,CAAC;AAChG,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,UAAQ,GAAG,cAAc,
|
|
1
|
+
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,UAAQ,GAAG,cAAc,CA4C3F"}
|
|
@@ -1,11 +1,22 @@
|
|
|
1
|
-
import { requireRoot } from '../core/config.js';
|
|
2
|
-
import { relativePath, resolveRecord } from '../core/repository.js';
|
|
3
|
-
import { formatIssues, validateRecord, validateRepository } from '../core/validate.js';
|
|
1
|
+
import { ADR_DIR, requireRoot } from '../core/config.js';
|
|
2
|
+
import { listRecords, relativePath, resolveRecord } from '../core/repository.js';
|
|
3
|
+
import { formatIssues, validateRecord, validateRecordReferences, validateRepository } from '../core/validate.js';
|
|
4
4
|
export function validateCommand(cwd, query, asJson = false) {
|
|
5
5
|
const root = requireRoot(cwd);
|
|
6
6
|
if (query !== undefined && query.trim().length > 0) {
|
|
7
7
|
const record = resolveRecord(root, query);
|
|
8
8
|
const issues = validateRecord(root, record);
|
|
9
|
+
try {
|
|
10
|
+
issues.push(...validateRecordReferences(root, record, listRecords(root)));
|
|
11
|
+
}
|
|
12
|
+
catch (error) {
|
|
13
|
+
// An unparseable sibling must not crash single-record validation;
|
|
14
|
+
// report it like the repository-wide check does.
|
|
15
|
+
issues.push({
|
|
16
|
+
path: ADR_DIR,
|
|
17
|
+
message: error instanceof Error ? error.message : String(error),
|
|
18
|
+
});
|
|
19
|
+
}
|
|
9
20
|
if (asJson) {
|
|
10
21
|
return {
|
|
11
22
|
valid: issues.length === 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACjF,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAOjH,MAAM,UAAU,eAAe,CAAC,GAAW,EAAE,KAAc,EAAE,MAAM,GAAG,KAAK;IACzE,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IAC9B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnD,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC1C,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,GAAG,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC5E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,kEAAkE;YAClE,iDAAiD;YACjD,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAChE,CAAC,CAAC;QACL,CAAC;QACD,IAAI,MAAM,EAAE,CAAC;YACX,OAAO;gBACL,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;gBAC1B,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC;oBACrB,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC;oBAC1B,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;oBAC1B,MAAM;iBACP,EAAE,IAAI,EAAE,CAAC,CAAC;aACZ,CAAC;QACJ,CAAC;QACD,OAAO;YACL,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;YAC1B,MAAM,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;gBACzB,CAAC,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM;gBAC/B,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC;SACzB,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,MAAM,EAAE,CAAC;QACX,OAAO;YACL,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;YAC1B,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;SACxE,CAAC;IACJ,CAAC;IACD,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;QAC1B,MAAM,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC;KAC1D,CAAC;AACJ,CAAC"}
|
package/dist/core/adr.d.ts
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
export type AdrStatus = 'proposed' | 'accepted' | 'rejected' | 'superseded';
|
|
2
2
|
export type AdrFolder = 'proposed' | 'decisions' | 'rejected';
|
|
3
|
+
/** Sections that only make sense during the proposal era and must not appear in an accepted decision. */
|
|
4
|
+
export declare const PROPOSAL_ERA_HEADINGS: string[];
|
|
5
|
+
/** A `YYYY-MM-DD` date value. Shared by the parser (format) and validate (calendar validity). */
|
|
6
|
+
export declare const DATE_PATTERN: RegExp;
|
|
7
|
+
/**
|
|
8
|
+
* Today's date as `YYYY-MM-DD` in local time. The single source of the date:
|
|
9
|
+
* it feeds the `Date:` header line that every record carries and the
|
|
10
|
+
* `YYYY-MM-DD-` prefix of proposal file names, so the two always agree.
|
|
11
|
+
*/
|
|
12
|
+
export declare function todayStamp(): string;
|
|
3
13
|
export interface AdrSection {
|
|
4
14
|
heading: string;
|
|
5
15
|
body: string;
|
|
@@ -10,6 +20,8 @@ export interface AdrRecord {
|
|
|
10
20
|
fileName: string;
|
|
11
21
|
title: string;
|
|
12
22
|
status: AdrStatus;
|
|
23
|
+
/** Date the current status was recorded, `YYYY-MM-DD` in local time. */
|
|
24
|
+
date: string;
|
|
13
25
|
rejectionReason?: string;
|
|
14
26
|
/** For superseded decisions: the number of the decision that replaced this one. */
|
|
15
27
|
supersededBy?: number;
|
|
@@ -29,11 +41,16 @@ export declare function hasMeaningfulBody(body: string | undefined): boolean;
|
|
|
29
41
|
*
|
|
30
42
|
* The format is deliberately plain Markdown, with no front matter:
|
|
31
43
|
*
|
|
32
|
-
* # ADR: <title or "
|
|
33
|
-
* Status: proposed | accepted | rejected — <reason>
|
|
44
|
+
* # ADR: <title or "N Title">
|
|
45
|
+
* Status: proposed | accepted | rejected — <reason> | superseded by N
|
|
46
|
+
* Date: YYYY-MM-DD
|
|
34
47
|
* <blank line>
|
|
35
48
|
* ## Problem
|
|
36
49
|
* ...
|
|
50
|
+
*
|
|
51
|
+
* The `Date:` line records the date the current status was reached and is
|
|
52
|
+
* stamped by the CLI at every lifecycle move (propose, decide, accept,
|
|
53
|
+
* reject, supersede).
|
|
37
54
|
*/
|
|
38
55
|
export declare function parseAdrFile(filePath: string): AdrRecord;
|
|
39
56
|
//# sourceMappingURL=adr.d.ts.map
|
package/dist/core/adr.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adr.d.ts","sourceRoot":"","sources":["../../src/core/adr.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,YAAY,CAAC;AAC5E,MAAM,MAAM,SAAS,GAAG,UAAU,GAAG,WAAW,GAAG,UAAU,CAAC;AAE9D,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,SAAS,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,SAAS,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mFAAmF;IACnF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,UAAU,EAAE,CAAC;CACxB;AAED,qBAAa,cAAe,SAAQ,KAAK;aAGrB,IAAI,EAAE,MAAM;gBAD5B,OAAO,EAAE,MAAM,EACC,IAAI,EAAE,MAAM;CAK/B;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,CAS5D;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,CAU5D;AAED,wBAAgB,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE9E;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAInE;AAED
|
|
1
|
+
{"version":3,"file":"adr.d.ts","sourceRoot":"","sources":["../../src/core/adr.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,YAAY,CAAC;AAC5E,MAAM,MAAM,SAAS,GAAG,UAAU,GAAG,WAAW,GAAG,UAAU,CAAC;AAE9D,yGAAyG;AACzG,eAAO,MAAM,qBAAqB,UAAyE,CAAC;AAE5G,iGAAiG;AACjG,eAAO,MAAM,YAAY,QAA8B,CAAC;AAExD;;;;GAIG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAMnC;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,SAAS,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,SAAS,CAAC;IAClB,wEAAwE;IACxE,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mFAAmF;IACnF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,UAAU,EAAE,CAAC;CACxB;AAED,qBAAa,cAAe,SAAQ,KAAK;aAGrB,IAAI,EAAE,MAAM;gBAD5B,OAAO,EAAE,MAAM,EACC,IAAI,EAAE,MAAM;CAK/B;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,CAS5D;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,CAU5D;AAED,wBAAgB,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE9E;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAInE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAuFxD"}
|