@meza/adr-tools 2.0.1 → 2.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/.github/renovate.json +1 -3
  2. package/.github/workflows/ci-pr.yml +29 -8
  3. package/.github/workflows/ci.yml +14 -12
  4. package/.github/workflows/security.yml +49 -0
  5. package/.releaserc.json +10 -4
  6. package/.yarnrc.yml +8 -0
  7. package/CHANGELOG.md +7 -0
  8. package/biome.json +2 -1
  9. package/dist/index.js +8 -1
  10. package/dist/index.js.map +1 -1
  11. package/dist/index.test.js +31 -1
  12. package/dist/index.test.js.map +1 -1
  13. package/dist/lib/adr.js +1 -1
  14. package/dist/lib/adr.js.map +1 -1
  15. package/dist/lib/adr.test.js +14 -3
  16. package/dist/lib/adr.test.js.map +1 -1
  17. package/dist/lib/config.js +3 -2
  18. package/dist/lib/config.js.map +1 -1
  19. package/dist/lib/links.js.map +1 -1
  20. package/dist/lib/manipulator.js.map +1 -1
  21. package/dist/lib/prompt.js +1 -1
  22. package/dist/lib/prompt.js.map +1 -1
  23. package/dist/lib/prompt.test.js +1 -1
  24. package/dist/lib/prompt.test.js.map +1 -1
  25. package/dist/lib/template.js.map +1 -1
  26. package/dist/types/index.d.ts.map +1 -1
  27. package/dist/types/lib/adr.d.ts.map +1 -1
  28. package/dist/types/lib/config.d.ts.map +1 -1
  29. package/dist/types/lib/links.d.ts.map +1 -1
  30. package/dist/types/lib/manipulator.d.ts.map +1 -1
  31. package/dist/types/lib/prompt.d.ts +1 -1
  32. package/dist/types/lib/prompt.d.ts.map +1 -1
  33. package/dist/types/lib/template.d.ts.map +1 -1
  34. package/dist/types/version.d.ts +1 -1
  35. package/dist/version.js +1 -1
  36. package/package.json +37 -38
  37. package/src/index.test.ts +36 -1
  38. package/src/index.ts +7 -1
  39. package/src/lib/adr.test.ts +16 -3
  40. package/src/lib/adr.ts +7 -6
  41. package/src/lib/config.ts +3 -2
  42. package/src/lib/manipulator.ts +6 -6
  43. package/src/lib/prompt.test.ts +3 -3
  44. package/src/lib/prompt.ts +2 -2
  45. package/src/version.ts +1 -1
  46. package/tests/fake-editor +3 -1
  47. package/tests/fake-editor.cmd +3 -1
  48. package/tests/fake-visual +3 -1
  49. package/tests/fake-visual.cmd +3 -1
  50. package/tsconfig.json +34 -2
  51. package/vitest.config.e2e.ts +3 -5
  52. package/vitest.config.ts +1 -6
@@ -1 +1 @@
1
- {"version":3,"file":"links.js","sourceRoot":"src/","sources":["lib/links.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAUrC,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EAAE,OAAe,EAAE,EAAE;IAC5D,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,MAAM,EAAE,CAAC,CAAC;IAC/C,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;AACxD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EAAE,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,CAAC;QACjB,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAChB,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,oBAAoB,CAAC,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,CAAC"}
1
+ {"version":3,"file":"links.js","sourceRoot":"src/","sources":["lib/links.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAUrC,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EAAE,OAAe,EAAE,EAAE;IAC5D,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,MAAM,EAAE,CAAC,CAAC;IAC/C,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;AACxD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EAAE,UAAkB,EAAE,WAAW,GAAY,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,CAAC;QACjB,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAChB,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,oBAAoB,CAAC,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,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"manipulator.js","sourceRoot":"src/","sources":["lib/manipulator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,MAAM,WAAW,GAAG,CAAC,MAAsB,EAAE,EAAE;IAC7C,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACnD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,QAAgB,EAAE,EAAE;IAC/C,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACtC,MAAM,SAAS,GAAG,IAAI,MAAM,CAAC,0BAA0B,CAAC,CAAC;IACzD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAEjG,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACxB,MAAM,SAAS,GAAG,IAA+B,CAAC;QAClD,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACpD,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CAAC,8BAA8B,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC;QACnE,CAAC;QACD,OAAO;YACL,YAAY,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACtE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC;YACrB,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;YACpB,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;YACpB,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC;SACpB,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,GAAW,EAAE,EAAE;IAC1C,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC;IACvF,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAC3C,CAAC;IACD,OAAQ,QAAkC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;AACzD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,QAAgB,EAAE,IAAY,EAAE,EAAE;IAC1D,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACtC,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,CAAC;IACnH,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACnD,CAAC;IACD,MAAM,WAAW,GAAI,MAAM,CAAC,WAAW,CAA2B,CAAC,KAAK,CAAC;IACzE,MAAM,qBAAqB,GAAG,MAAM,CAAC,SAAS,CAC5C,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,KAAK,KAAK,WAAW,IAAI,KAAK,GAAG,WAAW,CACjG,CAAC;IACF,MAAM,uBAAuB,GAAG,MAAM,CAAC,SAAS,CAC9C,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,KAAK,GAAG,WAAW,IAAI,KAAK,GAAG,qBAAqB,CACrG,CAAC;IAEF,IAAI,uBAAuB,GAAG,qBAAqB,IAAI,uBAAuB,KAAK,CAAC,CAAC,EAAE,CAAC;QACtF,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;IACnF,CAAC;IAED,MAAM,CAAC,uBAAuB,CAAC,GAAG;QAChC,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,IAAI;QACT,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,MAAM;gBACZ,GAAG,EAAE,IAAI;gBACT,IAAI,EAAE,IAAI;aACX;SACF;KACF,CAAC;IACF,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC;AAC7B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,QAAgB,EAAE,IAAY,EAAE,EAAE;IAC3D,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACtC,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,CAAC;IACnH,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,WAAW,GAAI,MAAM,CAAC,WAAW,CAA2B,CAAC,KAAK,CAAC;IACzE,IAAI,qBAAqB,GAAG,MAAM,CAAC,SAAS,CAC1C,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,KAAK,KAAK,WAAW,IAAI,KAAK,GAAG,WAAW,CACjG,CAAC;IACF,IAAI,qBAAqB,GAAG,CAAC,EAAE,CAAC;QAC9B,qBAAqB,GAAG,MAAM,CAAC,MAAM,CAAC;IACxC,CAAC;IACD,MAAM,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC,EAAE;QACtC,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,IAAI;QACT,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,MAAM;gBACZ,GAAG,EAAE,IAAI;gBACT,IAAI,EAAE,IAAI;aACX;SACF;KACF,CAAC,CAAC;IACH,MAAM,CAAC,MAAM,CAAC,qBAAqB,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;IAC5E,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC;AAC7B,CAAC,CAAC"}
1
+ {"version":3,"file":"manipulator.js","sourceRoot":"src/","sources":["lib/manipulator.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ export const askForClarification = async (searchString, matches) => {
3
3
  const { default: inquirer } = await import('inquirer');
4
4
  const selection = await inquirer.prompt([
5
5
  {
6
- type: 'list',
6
+ type: 'select',
7
7
  name: 'target',
8
8
  message: `Which file do you want to link to for ${chalk.blue(searchString)}?`,
9
9
  choices: matches
@@ -1 +1 @@
1
- {"version":3,"file":"prompt.js","sourceRoot":"src/","sources":["lib/prompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EAAE,YAAoB,EAAE,OAAiB,EAAE,EAAE;IACnF,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;IACvD,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;QACtC;YACE,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,yCAAyC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG;YAC7E,OAAO,EAAE,OAAO;SACjB;KACF,CAAC,CAAC;IACH,OAAO,SAAS,CAAC,MAAM,CAAC;AAC1B,CAAC,CAAC"}
1
+ {"version":3,"file":"prompt.js","sourceRoot":"src/","sources":["lib/prompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EAAE,YAAoB,EAAE,OAAiB,EAAE,EAAE;IACnF,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;IACvD,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAqB;QAC1D;YACE,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,yCAAyC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG;YAC7E,OAAO,EAAE,OAAO;SACjB;KACF,CAAC,CAAC;IACH,OAAO,SAAS,CAAC,MAAM,CAAC;AAC1B,CAAC,CAAC"}
@@ -18,7 +18,7 @@ describe('The prompt helper', () => {
18
18
  await askForClarification('this is the search string', randomChoices);
19
19
  expect(prompt).toHaveBeenCalledOnce();
20
20
  const calledWith = prompt.mock.calls[0][0];
21
- expect(calledWith[0].type).toEqual('list');
21
+ expect(calledWith[0].type).toEqual('select');
22
22
  expect(calledWith[0].choices).toEqual(randomChoices);
23
23
  expect(calledWith[0].message).toMatchInlineSnapshot('"Which file do you want to link to for BLUE[this is the search string]?"');
24
24
  });
@@ -1 +1 @@
1
- {"version":3,"file":"prompt.test.js","sourceRoot":"src/","sources":["lib/prompt.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,QAAoC,MAAM,UAAU,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACpB,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;IACtB,OAAO,EAAE;QACP,IAAI,EAAE,CAAC,GAAW,EAAE,EAAE;YACpB,OAAO,QAAQ,GAAG,GAAG,CAAC;QACxB,CAAC;KACF;CACF,CAAC,CAAC,CAAC;AACJ,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,EAAE,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;QACxC,MAAM,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC1C,MAAM,CAAC,qBAAqB,CAAC,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC,CAAC;QAE5D,MAAM,aAAa,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QAClG,MAAM,mBAAmB,CAAC,2BAA2B,EAAE,aAAa,CAAC,CAAC;QAEtE,MAAM,CAAC,MAAM,CAAC,CAAC,oBAAoB,EAAE,CAAC;QACtC,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAe,CAAC;QACzD,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,CAAE,UAAU,CAAC,CAAC,CAAkB,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QACvE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,qBAAqB,CACjD,0EAA0E,CAC3E,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;QAC3C,MAAM,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAE1C,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QAE7C,MAAM,CAAC,qBAAqB,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;QAEvD,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,2BAA2B,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAE3F,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"prompt.test.js","sourceRoot":"src/","sources":["lib/prompt.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,QAAsB,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACpB,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;IACtB,OAAO,EAAE;QACP,IAAI,EAAE,CAAC,GAAW,EAAE,EAAE;YACpB,OAAO,QAAQ,GAAG,GAAG,CAAC;QACxB,CAAC;KACF;CACF,CAAC,CAAC,CAAC;AACJ,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,EAAE,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;QACxC,MAAM,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC1C,MAAM,CAAC,qBAAqB,CAAC,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC,CAAC;QAE5D,MAAM,aAAa,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QAClG,MAAM,mBAAmB,CAAC,2BAA2B,EAAE,aAAa,CAAC,CAAC;QAEtE,MAAM,CAAC,MAAM,CAAC,CAAC,oBAAoB,EAAE,CAAC;QACtC,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAe,CAAC;QACzD,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC7C,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QACrD,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,qBAAqB,CACjD,0EAA0E,CAC3E,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;QAC3C,MAAM,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAE1C,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QAE7C,MAAM,CAAC,qBAAqB,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;QAEvD,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,2BAA2B,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAE3F,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"template.js","sourceRoot":"src/","sources":["lib/template.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAE3C,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,EAAE,YAAqB,EAAmB,EAAE;IACvE,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,CAAC;IAC/D,CAAC;IACD,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QAC7B,OAAO,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,CAAC;IAC3E,CAAC;IAED,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,MAAM,EAAE,EAAE,uBAAuB,CAAC,EAAE,MAAM,CAAC,CAAC;IACvF,CAAC;IAAC,OAAO,EAAE,EAAE,CAAC;QACZ,OAAO,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,0BAA0B,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACnG,CAAC;AACH,CAAC,CAAC"}
1
+ {"version":3,"file":"template.js","sourceRoot":"src/","sources":["lib/template.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAE3C,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,EAAE,YAAqB,EAAmB,EAAE;IACvE,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,CAAC;IAC/D,CAAC;IACD,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QAC7B,OAAO,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,CAAC;IAC3E,CAAC;IAED,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,MAAM,EAAE,EAAE,uBAAuB,CAAC,EAAE,MAAM,CAAC,CAAC;IACvF,CAAC;IAAC,OAAO,EAAE,EAAE,CAAC;QACZ,OAAO,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,0BAA0B,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACnG,CAAC;AACH,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"src/","sources":["index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAIlC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAalE,KAAK,WAAW,GAAG;IACjB,WAAW,EAAE,OAAO,WAAW,CAAC;IAChC,IAAI,EAAE,OAAO,IAAI,CAAC;IAClB,IAAI,EAAE,OAAO,IAAI,CAAC;IAClB,QAAQ,EAAE,OAAO,QAAQ,CAAC;IAC1B,MAAM,EAAE,OAAO,MAAM,CAAC;IACtB,UAAU,EAAE,OAAO,UAAU,CAAC;IAC9B,QAAQ,EAAE,OAAO,EAAE,CAAC,QAAQ,CAAC;IAC7B,YAAY,EAAE,OAAO,YAAY,CAAC;IAClC,YAAY,EAAE,OAAO,YAAY,CAAC;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAClD,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,SAAS,OAAO,EAAE,OAAO,KAAK,UAE5D,CAAC;AAwGF,eAAO,MAAM,YAAY,GAAI,OAAM,WAAyB,YA4F3D,CAAC;AAEF,eAAO,MAAM,GAAG,GAAU,eAAmB,EAAE,OAAM,WAAyB,qBAI7E,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,eAAmB,EAAE,kBAA2B,YAK3E,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,eAAmB,EAAE,OAAO,WAAW,YAO/D,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"src/","sources":["index.ts"],"names":[],"mappings":";AAGA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAIlC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAalE,KAAK,WAAW,GAAG;IACjB,WAAW,EAAE,OAAO,WAAW,CAAC;IAChC,IAAI,EAAE,OAAO,IAAI,CAAC;IAClB,IAAI,EAAE,OAAO,IAAI,CAAC;IAClB,QAAQ,EAAE,OAAO,QAAQ,CAAC;IAC1B,MAAM,EAAE,OAAO,MAAM,CAAC;IACtB,UAAU,EAAE,OAAO,UAAU,CAAC;IAC9B,QAAQ,EAAE,OAAO,EAAE,CAAC,QAAQ,CAAC;IAC7B,YAAY,EAAE,OAAO,YAAY,CAAC;IAClC,YAAY,EAAE,OAAO,YAAY,CAAC;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAClD,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC,CAAC;AAEF,eAAO,MAAM,cAAc,YAAa,OAAO,SAAS,KAAK,UAE5D,CAAC;AAwGF,eAAO,MAAM,YAAY,UAAU,WAAW,YA4F7C,CAAC;AAEF,eAAO,MAAM,GAAG,2BAAqC,WAAW,qBAI/D,CAAC;AAEF,eAAO,MAAM,WAAW,kDAUvB,CAAC;AAEF,eAAO,MAAM,QAAQ,2BAAgC,WAAW,YAO/D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"adr.d.ts","sourceRoot":"src/","sources":["lib/adr.ts"],"names":[],"mappings":"AAuEA,KAAK,QAAQ,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAsEvG,eAAO,MAAM,cAAc,GAAI,UAAU;IAAE,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,KAAG,QAyBhF,CAAC;AAEF,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;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AA2GD,eAAO,MAAM,WAAW,GAAU,UAAU;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,kBAc9D,CAAC;AAEF,eAAO,MAAM,MAAM,GAAU,OAAO,MAAM,EAAE,SAAS,UAAU,kBAyB9D,CAAC;AAEF,eAAO,MAAM,IAAI,GAAU,YAAY,MAAM,kBAQ5C,CAAC;AAEF,eAAO,MAAM,IAAI,GACf,QAAQ,MAAM,EACd,MAAM,MAAM,EACZ,QAAQ,MAAM,EACd,aAAa,MAAM,EACnB,UAAU;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,kBAqB9B,CAAC;AAEF,eAAO,MAAM,QAAQ,yBAkBpB,CAAC"}
1
+ {"version":3,"file":"adr.d.ts","sourceRoot":"src/","sources":["lib/adr.ts"],"names":[],"mappings":"AAwEA,KAAK,QAAQ,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAsEvG,eAAO,MAAM,cAAc,aAAc;IAAE,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,KAAG,QAyBhF,CAAC;AAEF,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;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AA2GD,eAAO,MAAM,WAAW,aAAoB;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,kBAc9D,CAAC;AAEF,eAAO,MAAM,MAAM,UAAiB,MAAM,WAAW,UAAU,kBAyB9D,CAAC;AAEF,eAAO,MAAM,IAAI,eAAsB,MAAM,kBAQ5C,CAAC;AAEF,eAAO,MAAM,IAAI,WACP,MAAM,QACR,MAAM,UACJ,MAAM,eACD,MAAM,YACT;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,kBAqB9B,CAAC;AAEF,eAAO,MAAM,QAAQ,yBAkBpB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"src/","sources":["lib/config.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,UAAU,cAAsB,CAAC;AA0B9C,eAAO,MAAM,MAAM,QAAa,OAAO,CAAC,MAAM,CAI7C,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"src/","sources":["lib/config.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,UAAU,cAAsB,CAAC;AA2B9C,eAAO,MAAM,MAAM,QAAa,OAAO,CAAC,MAAM,CAI7C,CAAC"}
@@ -1 +1 @@
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,GAAU,SAAS,MAAM,sBAGzD,CAAC;AAEF,eAAO,MAAM,cAAc,GAAU,YAAY,MAAM,EAAE,cAAa,OAAe,KAAG,OAAO,CAAC,WAAW,CAiB1G,CAAC"}
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,OAAO,CAAC,WAAW,CAiB1G,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"manipulator.d.ts","sourceRoot":"src/","sources":["lib/manipulator.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,YAAY,GAAI,UAAU,MAAM;;;;;;GAmB5C,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,KAAK,MAAM,WAOvC,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,UAAU,MAAM,EAAE,MAAM,MAAM,WA+BvD,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,UAAU,MAAM,EAAE,MAAM,MAAM,WA4BxD,CAAC"}
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,WA+BvD,CAAC;AAEF,eAAO,MAAM,UAAU,aAAc,MAAM,QAAQ,MAAM,WA4BxD,CAAC"}
@@ -1,2 +1,2 @@
1
- export declare const askForClarification: (searchString: string, matches: string[]) => Promise<any>;
1
+ export declare const askForClarification: (searchString: string, matches: string[]) => Promise<string>;
2
2
  //# sourceMappingURL=prompt.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompt.d.ts","sourceRoot":"src/","sources":["lib/prompt.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,mBAAmB,GAAU,cAAc,MAAM,EAAE,SAAS,MAAM,EAAE,iBAWhF,CAAC"}
1
+ {"version":3,"file":"prompt.d.ts","sourceRoot":"src/","sources":["lib/prompt.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,mBAAmB,iBAAwB,MAAM,WAAW,MAAM,EAAE,oBAWhF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"template.d.ts","sourceRoot":"src/","sources":["lib/template.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,QAAQ,GAAU,eAAe,MAAM,KAAG,OAAO,CAAC,MAAM,CAapE,CAAC"}
1
+ {"version":3,"file":"template.d.ts","sourceRoot":"src/","sources":["lib/template.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,QAAQ,kBAAyB,MAAM,KAAG,OAAO,CAAC,MAAM,CAapE,CAAC"}
@@ -1,2 +1,2 @@
1
- export declare const LIB_VERSION = "2.0.1";
1
+ export declare const LIB_VERSION = "2.0.3";
2
2
  //# sourceMappingURL=version.d.ts.map
package/dist/version.js CHANGED
@@ -1,2 +1,2 @@
1
- export const LIB_VERSION = '2.0.1';
1
+ export const LIB_VERSION = '2.0.3';
2
2
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@meza/adr-tools",
3
- "version": "2.0.1",
3
+ "version": "2.0.3",
4
4
  "exports": {
5
5
  ".": {
6
6
  "import": {
@@ -15,7 +15,7 @@
15
15
  "license": "GPL-3.0",
16
16
  "type": "module",
17
17
  "types": "dist/index.d.ts",
18
- "private": false,
18
+ "packageManager": "yarn@4.17.1",
19
19
  "scripts": {
20
20
  "prebuild": "node ./scripts/inject-version.mjs ./src/version.ts",
21
21
  "prepack": "node ./scripts/inject-version.mjs ./src/version.ts && tsc && yarn copy ",
@@ -41,14 +41,14 @@
41
41
  "release": "semantic-release"
42
42
  },
43
43
  "dependencies": {
44
- "@types/inquirer": "9.0.8",
45
- "@types/node": "22.15.21",
46
- "chalk": "5.4.1",
47
- "commander": "12.1.0",
48
- "core-js": "3.42.0",
49
- "inquirer": "9.3.7",
50
- "marked": "4.3.0",
51
- "open": "9.1.0"
44
+ "@types/inquirer": "9.0.10",
45
+ "@types/node": "24.13.3",
46
+ "chalk": "5.6.2",
47
+ "commander": "15.0.0",
48
+ "core-js": "3.49.0",
49
+ "inquirer": "14.0.2",
50
+ "marked": "18.0.6",
51
+ "open": "11.0.0"
52
52
  },
53
53
  "commitlint": {
54
54
  "extends": [
@@ -56,41 +56,40 @@
56
56
  ]
57
57
  },
58
58
  "devDependencies": {
59
- "@biomejs/biome": "2.3.11",
60
- "@commitlint/cli": "19.8.1",
61
- "@commitlint/config-conventional": "19.8.1",
62
- "@commitlint/prompt-cli": "19.8.1",
63
- "@faker-js/faker": "9.8.0",
64
- "@meza/adr-tools": "1.0.10",
65
- "@meza/biome": "^1.1.3",
66
- "@meza/tsconfig-base": "1.1.0",
59
+ "@biomejs/biome": "2.5.3",
60
+ "@commitlint/cli": "21.2.1",
61
+ "@commitlint/config-conventional": "21.2.0",
62
+ "@commitlint/prompt-cli": "21.2.0",
63
+ "@faker-js/faker": "10.5.0",
64
+ "@meza/biome": "1.1.3",
65
+ "@meza/mezas-conventional-changelog": "1.1.0",
67
66
  "@ryansonshine/commitizen": "4.2.8",
68
67
  "@ryansonshine/cz-conventional-changelog": "3.3.4",
69
- "@semantic-release/changelog": "^6.0.3",
70
- "@semantic-release/commit-analyzer": "^13.0.1",
71
- "@semantic-release/git": "^10.0.1",
72
- "@semantic-release/github": "^12.0.2",
73
- "@semantic-release/npm": "^13.1.3",
74
- "@semantic-release/release-notes-generator": "^14.1.0",
75
- "@types/uuid": "10.0.0",
76
- "@vitest/coverage-v8": "3.1.4",
77
- "@vitest/ui": "3.1.4",
78
- "conventional-changelog-conventionalcommits": "^9.1.0",
68
+ "@semantic-release/changelog": "6.0.3",
69
+ "@semantic-release/commit-analyzer": "13.0.1",
70
+ "@semantic-release/git": "10.0.1",
71
+ "@semantic-release/github": "12.0.9",
72
+ "@semantic-release/npm": "13.1.5",
73
+ "@semantic-release/release-notes-generator": "14.1.1",
74
+ "@vitest/coverage-v8": "4.1.10",
75
+ "@vitest/ui": "4.1.10",
76
+ "conventional-changelog-conventionalcommits": "10.2.1",
79
77
  "copyfiles": "2.4.1",
80
- "cross-env": "7.0.3",
78
+ "cross-env": "10.1.0",
81
79
  "install-deps-postmerge": "2.0.1",
82
80
  "is-ci": "4.1.0",
83
- "lefthook": "2.0.13",
84
- "lint-staged": "16.0.0",
81
+ "lefthook": "2.1.10",
82
+ "lint-staged": "17.0.8",
85
83
  "mock-cwd": "1.0.0",
86
- "npm-run-all2": "8.0.3",
87
- "rimraf": "6.0.1",
88
- "semantic-release": "^25.0.2",
84
+ "npm-run-all2": "9.0.2",
85
+ "rimraf": "6.1.3",
86
+ "semantic-release": "25.0.5",
87
+ "semantic-release-export-data": "1.2.0",
89
88
  "ts-node": "10.9.2",
90
- "tsx": "^4.21.0",
91
- "typescript": "5.8.3",
92
- "uuid": "11.1.0",
93
- "vitest": "3.1.4",
89
+ "tsx": "4.23.0",
90
+ "typescript": "7.0.2",
91
+ "uuid": "14.0.1",
92
+ "vitest": "4.1.10",
94
93
  "yarn": "1.22.22"
95
94
  },
96
95
  "repository": {
package/src/index.test.ts CHANGED
@@ -1,8 +1,10 @@
1
+ import { mkdirSync, mkdtempSync, rmSync, symlinkSync, writeFileSync } from 'node:fs';
2
+ import { tmpdir } from 'node:os';
1
3
  import path from 'node:path';
2
4
  import { pathToFileURL } from 'node:url';
3
5
  import chalk from 'chalk';
4
6
  import type { Command } from 'commander';
5
- import { describe, expect, it, vi } from 'vitest';
7
+ import { afterEach, describe, expect, it, vi } from 'vitest';
6
8
  import { buildProgram, defaultOnError, isDirectRun, maybeRun, run } from './index.js';
7
9
 
8
10
  const createDeps = () => {
@@ -26,6 +28,14 @@ const createDeps = () => {
26
28
  };
27
29
 
28
30
  describe('adr CLI', () => {
31
+ const tempDirs: string[] = [];
32
+
33
+ afterEach(() => {
34
+ for (const tempDir of tempDirs.splice(0)) {
35
+ rmSync(tempDir, { recursive: true, force: true });
36
+ }
37
+ });
38
+
29
39
  it('wires program metadata', () => {
30
40
  const deps = createDeps();
31
41
  const program = buildProgram(deps);
@@ -190,6 +200,21 @@ describe('adr CLI', () => {
190
200
  expect(isDirectRun(['node'], moduleUrl)).toBe(false);
191
201
  });
192
202
 
203
+ it('returns true when argv[1] is a symlink to the module (npm .bin link)', () => {
204
+ const tempDir = mkdtempSync(path.join(tmpdir(), 'adr-tools-'));
205
+ tempDirs.push(tempDir);
206
+ const distDir = path.join(tempDir, 'dist');
207
+ const binDir = path.join(tempDir, '.bin');
208
+ mkdirSync(distDir, { recursive: true });
209
+ mkdirSync(binDir, { recursive: true });
210
+ const targetPath = path.join(distDir, 'index.js');
211
+ const linkPath = path.join(binDir, 'adr');
212
+ writeFileSync(targetPath, 'export {};\n');
213
+ symlinkSync(targetPath, linkPath);
214
+ const moduleUrl = pathToFileURL(targetPath).href;
215
+ expect(isDirectRun(['node', linkPath], moduleUrl)).toBe(true);
216
+ });
217
+
193
218
  it('returns false when maybeRun is not direct', () => {
194
219
  const deps = createDeps();
195
220
  expect(maybeRun(['node', '/other/entry'], deps)).toBe(false);
@@ -203,6 +228,16 @@ describe('adr CLI', () => {
203
228
  expect(deps.listAdrs).toHaveBeenCalled();
204
229
  });
205
230
 
231
+ it('handles rejected direct runs without an unhandled rejection', async () => {
232
+ const deps = createDeps();
233
+ deps.listAdrs.mockRejectedValueOnce(new Error('boom'));
234
+ const indexPath = path.resolve(process.cwd(), 'src/index.ts');
235
+
236
+ expect(maybeRun(['node', indexPath, 'list'], deps)).toBe(true);
237
+ await vi.waitFor(() => expect(deps.listAdrs).toHaveBeenCalled());
238
+ await new Promise<void>((resolve) => setImmediate(resolve));
239
+ });
240
+
206
241
  it('formats errors with the default handler', () => {
207
242
  const errorHandler = vi.fn();
208
243
  const program = { error: errorHandler } as unknown as Command;
package/src/index.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
 
3
+ import { realpathSync } from 'node:fs';
3
4
  import fs from 'node:fs/promises';
4
5
  import * as path from 'node:path';
5
6
  import { fileURLToPath } from 'node:url';
@@ -246,7 +247,12 @@ export const isDirectRun = (argv = process.argv, moduleUrl = import.meta.url) =>
246
247
  if (!argv[1]) {
247
248
  return false;
248
249
  }
249
- return path.resolve(argv[1]) === fileURLToPath(moduleUrl);
250
+ const modulePath = fileURLToPath(moduleUrl);
251
+ try {
252
+ return realpathSync(path.resolve(argv[1])) === modulePath;
253
+ } catch {
254
+ return path.resolve(argv[1]) === modulePath;
255
+ }
250
256
  };
251
257
 
252
258
  export const maybeRun = (argv = process.argv, deps?: ProgramDeps) => {
@@ -2,7 +2,7 @@ import fs from 'fs/promises';
2
2
  import open from 'open';
3
3
  import path from 'path';
4
4
  import { afterEach, describe, expect, it, vi } from 'vitest';
5
- import { generateToc, init, link, listAdrs, newAdr } from './adr.js';
5
+ import { chooseOpenPlan, generateToc, init, link, listAdrs, newAdr } from './adr.js';
6
6
  import { getDir, workingDir } from './config.js';
7
7
  import { findMatchingFilesFor, getLinkDetails } from './links.js';
8
8
  import { getTitleFrom, injectLink, supersede } from './manipulator.js';
@@ -52,6 +52,19 @@ describe('adr helpers', () => {
52
52
  vi.unstubAllEnvs();
53
53
  });
54
54
 
55
+ it('preserves non-escape backslashes in quoted editor arguments', () => {
56
+ expect(chooseOpenPlan({ openWith: String.raw`code "C:\temp\record.md"` })).toEqual({
57
+ type: 'app',
58
+ name: 'code',
59
+ args: [String.raw`C:\temp\record.md`]
60
+ });
61
+ });
62
+
63
+ it('falls back to the default opener for an incomplete editor quote', () => {
64
+ vi.stubEnv('EDITOR', '"');
65
+ expect(chooseOpenPlan({ open: true })).toEqual({ type: 'default' });
66
+ });
67
+
55
68
  it('generates the toc from adr files', async () => {
56
69
  vi.mocked(getDir).mockResolvedValueOnce('/repo/doc/adr');
57
70
  mockReaddir.mockResolvedValueOnce(['0001-first.md', 'notes.txt']);
@@ -143,7 +156,7 @@ describe('adr helpers', () => {
143
156
  const adrPath = path.resolve('/repo/doc/adr', '0001-example-adr.md');
144
157
  expect(open).toHaveBeenCalledWith(adrPath, {
145
158
  app: { name: 'code', arguments: ['--wait'] },
146
- wait: false
159
+ wait: process.platform === 'win32'
147
160
  });
148
161
  });
149
162
 
@@ -169,7 +182,7 @@ describe('adr helpers', () => {
169
182
  await newAdr('Example ADR', { openWith: 'code --wait' });
170
183
  expect(open).toHaveBeenCalledWith(path.resolve('/repo/doc/adr', '0001-example-adr.md'), {
171
184
  app: { name: 'code', arguments: ['--wait'] },
172
- wait: false
185
+ wait: true
173
186
  });
174
187
  } finally {
175
188
  Object.defineProperty(process, 'platform', { value: originalPlatform });
package/src/lib/adr.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import path from 'node:path';
2
2
  import { fileURLToPath } from 'node:url';
3
3
  import fs from 'fs/promises';
4
+ import type { Options as OpenOptions } from 'open';
4
5
  import { getDir, workingDir } from './config.js';
5
6
  import { findMatchingFilesFor, getLinkDetails } from './links.js';
6
7
  import { getTitleFrom, injectLink, supersede } from './manipulator.js';
@@ -71,11 +72,7 @@ const splitCommandLine = (commandLine: string): string[] => {
71
72
 
72
73
  type OpenPlan = { type: 'none' } | { type: 'default' } | { type: 'app'; name: string; args: string[] };
73
74
 
74
- const openAdr = async (
75
- adrPath: string,
76
- options: { app?: { name: string; arguments: string[] }; wait: false },
77
- openPromise: Promise<typeof import('open')>
78
- ) => {
75
+ const openAdr = async (adrPath: string, options: OpenOptions, openPromise: Promise<typeof import('open')>) => {
79
76
  const { default: open } = await openPromise;
80
77
  await open(adrPath, options);
81
78
  };
@@ -103,7 +100,11 @@ const openNewAdr = async (openPlan: OpenPlan, adrPath: string, openPromise?: Pro
103
100
  return;
104
101
  }
105
102
 
106
- await openAdr(adrPath, { app: { name: openPlan.name, arguments: openPlan.args }, wait: false }, openPromise!);
103
+ await openAdr(
104
+ adrPath,
105
+ { app: { name: openPlan.name, arguments: openPlan.args }, wait: process.platform === 'win32' },
106
+ openPromise!
107
+ );
107
108
  };
108
109
 
109
110
  const equalsIgnoreCase = (a: string, b: string) => a.toLowerCase() === b.toLowerCase();
package/src/lib/config.ts CHANGED
@@ -7,13 +7,14 @@ const rootDir = path.parse(process.cwd()).root;
7
7
 
8
8
  const findTopLevelDir = async (dir: string): Promise<string> => {
9
9
  try {
10
- await fs.access(path.join(dir, '.adr-dir'), constants.F_OK);
10
+ // CLI paths may point anywhere the invoking user can access; OS permissions are the security boundary.
11
+ await fs.access(path.join(dir, '.adr-dir'), constants.F_OK); // nosemgrep: javascript.lang.security.audit.path-traversal.path-join-resolve-traversal.path-join-resolve-traversal
11
12
  return dir;
12
13
  } catch (_e) {
13
14
  if (dir === rootDir) {
14
15
  throw new Error('No ADR directory config found');
15
16
  }
16
- const newDir = path.join(dir, '..');
17
+ const newDir = path.join(dir, '..'); // nosemgrep: javascript.lang.security.audit.path-traversal.path-join-resolve-traversal.path-join-resolve-traversal
17
18
  return findTopLevelDir(newDir);
18
19
  }
19
20
  };
@@ -1,6 +1,6 @@
1
- import { marked } from 'marked';
1
+ import { marked, type Token, type Tokens } from 'marked';
2
2
 
3
- const convertToMd = (tokens: marked.Token[]) => {
3
+ const convertToMd = (tokens: Token[]) => {
4
4
  return tokens.map((token) => token.raw).join('');
5
5
  };
6
6
 
@@ -10,7 +10,7 @@ export const getLinksFrom = (markdown: string) => {
10
10
  const links = tokens.filter((token) => token.type === 'paragraph' && linkRegex.test(token.text));
11
11
 
12
12
  return links.map((link) => {
13
- const linkToken = link as marked.Tokens.Paragraph;
13
+ const linkToken = link as Tokens.Paragraph;
14
14
  const linkMatches = linkToken.text.match(linkRegex);
15
15
  if (!linkMatches || linkMatches.length < 3) {
16
16
  throw new Error(`Could not parse link from "${linkToken.text}"`);
@@ -31,7 +31,7 @@ export const getTitleFrom = (adr: string) => {
31
31
  if (!mainHead) {
32
32
  throw new Error('No main heading found');
33
33
  }
34
- return (mainHead as marked.Tokens.Heading).text.trim();
34
+ return (mainHead as Tokens.Heading).text.trim();
35
35
  };
36
36
 
37
37
  export const supersede = (markdown: string, link: string) => {
@@ -40,7 +40,7 @@ export const supersede = (markdown: string, link: string) => {
40
40
  if (statusIndex < 0) {
41
41
  throw new Error('Could not find status section');
42
42
  }
43
- const statusDepth = (tokens[statusIndex] as marked.Tokens.Heading).depth;
43
+ const statusDepth = (tokens[statusIndex] as Tokens.Heading).depth;
44
44
  const followingHeadingIndex = tokens.findIndex(
45
45
  (token, index) => token.type === 'heading' && token.depth === statusDepth && index > statusIndex
46
46
  );
@@ -74,7 +74,7 @@ export const injectLink = (markdown: string, link: string) => {
74
74
  throw new Error('Could not find status section');
75
75
  }
76
76
 
77
- const statusDepth = (tokens[statusIndex] as marked.Tokens.Heading).depth;
77
+ const statusDepth = (tokens[statusIndex] as Tokens.Heading).depth;
78
78
  let followingHeadingIndex = tokens.findIndex(
79
79
  (token, index) => token.type === 'heading' && token.depth === statusDepth && index > statusIndex
80
80
  );
@@ -1,5 +1,5 @@
1
1
  import { faker } from '@faker-js/faker';
2
- import inquirer, { ListQuestion, Question } from 'inquirer';
2
+ import inquirer, { Question } from 'inquirer';
3
3
  import { describe, expect, it, vi } from 'vitest';
4
4
  import { askForClarification } from './prompt.js';
5
5
 
@@ -21,8 +21,8 @@ describe('The prompt helper', () => {
21
21
 
22
22
  expect(prompt).toHaveBeenCalledOnce();
23
23
  const calledWith = prompt.mock.calls[0][0] as Question[];
24
- expect(calledWith[0].type).toEqual('list');
25
- expect((calledWith[0] as ListQuestion).choices).toEqual(randomChoices);
24
+ expect(calledWith[0].type).toEqual('select');
25
+ expect(calledWith[0].choices).toEqual(randomChoices);
26
26
  expect(calledWith[0].message).toMatchInlineSnapshot(
27
27
  '"Which file do you want to link to for BLUE[this is the search string]?"'
28
28
  );
package/src/lib/prompt.ts CHANGED
@@ -2,9 +2,9 @@ import chalk from 'chalk';
2
2
 
3
3
  export const askForClarification = async (searchString: string, matches: string[]) => {
4
4
  const { default: inquirer } = await import('inquirer');
5
- const selection = await inquirer.prompt([
5
+ const selection = await inquirer.prompt<{ target: string }>([
6
6
  {
7
- type: 'list',
7
+ type: 'select',
8
8
  name: 'target',
9
9
  message: `Which file do you want to link to for ${chalk.blue(searchString)}?`,
10
10
  choices: matches
package/src/version.ts CHANGED
@@ -1 +1 @@
1
- export const LIB_VERSION = '2.0.1';
1
+ export const LIB_VERSION = '2.0.3';
package/tests/fake-editor CHANGED
@@ -1,3 +1,5 @@
1
1
  #!/bin/bash
2
2
 
3
- echo EDITOR "$@" > editor.out
3
+ output="$PWD/editor.out"
4
+ cd "${TMPDIR:-/tmp}"
5
+ echo EDITOR "$@" > "$output"
@@ -1,2 +1,4 @@
1
1
  @echo off
2
- echo EDITOR %~1 > editor.out
2
+ set "OUTPUT=%CD%\editor.out"
3
+ cd /d "%TEMP%"
4
+ echo EDITOR %~1 > "%OUTPUT%"
package/tests/fake-visual CHANGED
@@ -1,3 +1,5 @@
1
1
  #!/bin/bash
2
2
 
3
- echo VISUAL "$@" > visual.out
3
+ output="$PWD/visual.out"
4
+ cd "${TMPDIR:-/tmp}"
5
+ echo VISUAL "$@" > "$output"
@@ -1,2 +1,4 @@
1
1
  @echo off
2
- echo VISUAL %~1 > visual.out
2
+ set "OUTPUT=%CD%\visual.out"
3
+ cd /d "%TEMP%"
4
+ echo VISUAL %~1 > "%OUTPUT%"
package/tsconfig.json CHANGED
@@ -1,18 +1,50 @@
1
1
  {
2
- "extends": "@meza/tsconfig-base",
3
2
  "compilerOptions": {
4
3
  "target": "ES2020",
5
4
  "module": "NodeNext",
6
5
  "moduleResolution": "NodeNext",
6
+ "sourceMap": true,
7
+ "incremental": true,
8
+ "allowUnreachableCode": false,
9
+ "allowUnusedLabels": false,
10
+ "strict": true,
11
+ "exactOptionalPropertyTypes": true,
12
+ "noFallthroughCasesInSwitch": true,
13
+ "noImplicitAny": true,
14
+ "noImplicitOverride": true,
15
+ "noImplicitReturns": true,
16
+ "noImplicitThis": true,
17
+ "noPropertyAccessFromIndexSignature": true,
18
+ "noUncheckedIndexedAccess": false,
19
+ "noUnusedLocals": true,
20
+ "noUnusedParameters": true,
21
+ "strictBindCallApply": true,
22
+ "strictFunctionTypes": true,
23
+ "strictNullChecks": true,
24
+ "strictPropertyInitialization": true,
25
+ "useUnknownInCatchVariables": true,
26
+ "allowUmdGlobalAccess": false,
27
+ "resolveJsonModule": true,
28
+ "allowJs": false,
29
+ "checkJs": false,
30
+ "allowSyntheticDefaultImports": true,
7
31
  "esModuleInterop": true,
32
+ "forceConsistentCasingInFileNames": true,
33
+ "emitDecoratorMetadata": false,
34
+ "experimentalDecorators": false,
8
35
  "emitDeclarationOnly": false,
36
+ "declaration": true,
37
+ "declarationMap": true,
9
38
  "skipDefaultLibCheck": true,
10
39
  "skipLibCheck": true,
40
+ "preserveSymlinks": true,
11
41
  "outDir": "./dist",
42
+ "rootDir": "./src",
12
43
  "declarationDir": "./dist/types",
13
44
  "isolatedModules": true,
14
45
  "sourceRoot": "src",
15
- "typeRoots": ["./node_modules/@types", "./src/types"]
46
+ "typeRoots": ["./node_modules/@types", "./src/types"],
47
+ "types": ["node"]
16
48
  },
17
49
  "include": ["src/**/*"],
18
50
  "exclude": ["node_modules", "tests/**/*"],
@@ -6,11 +6,9 @@ export default defineConfig({
6
6
  testTimeout: 30000,
7
7
  hookTimeout: 30000,
8
8
  pool: 'threads',
9
- poolOptions: {
10
- threads: {
11
- singleThread: true
12
- }
13
- },
9
+ fileParallelism: false,
10
+ maxWorkers: 1,
11
+ minWorkers: 1,
14
12
  watch: false,
15
13
  coverage: {
16
14
  reportsDirectory: './reports/coverage/e2e',