@peaske7/readit 0.3.0-rc.2 → 0.3.0-rc.5

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 (156) hide show
  1. package/dist/.vite/manifest.json +768 -801
  2. package/dist/assets/{arc-Ckg65iy8.js → arc-Bzj7kTAl.js} +1 -1
  3. package/dist/assets/architecture-7EHR7CIX-nXR9vjYB.js +1 -0
  4. package/dist/assets/architectureDiagram-3BPJPVTR-rIVwI_-S.js +36 -0
  5. package/dist/assets/blockDiagram-GPEHLZMM-CHN077_l.js +132 -0
  6. package/dist/assets/{c4Diagram-AHTNJAMY-sn3k2GND.js → c4Diagram-AAUBKEIU-DLg6EZe1.js} +6 -6
  7. package/dist/assets/channel-BKgR0h35.js +1 -0
  8. package/dist/assets/{chunk-EDXVE4YY-CSvKh9DT.js → chunk-2J33WTMH-Cq8o5aPE.js} +1 -1
  9. package/dist/assets/chunk-3OPIFGDE-BUIQAiXH.js +62 -0
  10. package/dist/assets/{chunk-4BX2VUAB-DRuTD7x5.js → chunk-4BX2VUAB-B7qyqXYL.js} +1 -1
  11. package/dist/assets/chunk-4EGX6M5U-Dm0Urt6c.js +1 -0
  12. package/dist/assets/{chunk-55IACEB6-BExiaAoD.js → chunk-55IACEB6-CswyqoM6.js} +1 -1
  13. package/dist/assets/chunk-5DO6E6H7-eFUPFW6j.js +1 -0
  14. package/dist/assets/chunk-5ZQYHXKU-DOIL87PB.js +2 -0
  15. package/dist/assets/chunk-727SXJPM-C8R8OZJ6.js +206 -0
  16. package/dist/assets/chunk-AQP2D5EJ-Dfqdnnhw.js +231 -0
  17. package/dist/assets/{chunk-LIHQZDEY-C2aANxt9.js → chunk-BR22UD5L-CAPtHiCF.js} +1 -1
  18. package/dist/assets/{chunk-BSJP7CBP-BK29yehL.js → chunk-BSJP7CBP-BBE2cIi4.js} +1 -1
  19. package/dist/assets/chunk-CSCIHK7Q-BQ66NI-3.js +123 -0
  20. package/dist/assets/chunk-FHYWG6QK-DYV7MBXV.js +1 -0
  21. package/dist/assets/{chunk-FMBD7UC4-2FWyCCAV.js → chunk-FMBD7UC4-YAE6ZCcA.js} +1 -1
  22. package/dist/assets/chunk-KSCS5N6A-k6XA5bxX.js +10 -0
  23. package/dist/assets/{chunk-ZZ45TVLE-DRIE_0bu.js → chunk-L5ZTLDWV-D4nr8JZf.js} +1 -1
  24. package/dist/assets/chunk-LZXEDZCA-DEPvcFv-.js +2 -0
  25. package/dist/assets/chunk-MPE355IW-Bn5Gex5z.js +1 -0
  26. package/dist/assets/chunk-MZUSXYTE-DkK02s8r.js +1 -0
  27. package/dist/assets/chunk-N66VUXT2-BxW6-FUi.js +1 -0
  28. package/dist/assets/{chunk-YZCP3GAM-HIMez9pG.js → chunk-ND2GUHAM-Ber8iVDI.js} +1 -1
  29. package/dist/assets/chunk-NNHCCRGN-D80gzfPm.js +159 -0
  30. package/dist/assets/{chunk-X2U36JSP-p8ehTP6s.js → chunk-NZK2D7GU-YRs0juOu.js} +1 -1
  31. package/dist/assets/{chunk-U2HBQHQK-BFYYQeuC.js → chunk-O5CBEL6O-BOnEDgka.js} +6 -6
  32. package/dist/assets/chunk-PUPMXCY4-C8RfbV9f.js +1 -0
  33. package/dist/assets/chunk-QZHKN3VN-Mu_veULH.js +1 -0
  34. package/dist/assets/chunk-UIBZB4QT-JbcSSk3W.js +1 -0
  35. package/dist/assets/chunk-WCWK7LTN-DnI1dFXp.js +1 -0
  36. package/dist/assets/chunk-WU5MYG2G-DeweLSOy.js +1 -0
  37. package/dist/assets/{chunk-XPW4576I-Bqbompq4.js → chunk-XPW4576I-Dz0Wtttq.js} +1 -1
  38. package/dist/assets/classDiagram-4FO5ZUOK-DazS6xut.js +1 -0
  39. package/dist/assets/classDiagram-v2-Q7XG4LA2-mu5rvbRK.js +1 -0
  40. package/dist/assets/cose-bilkent-S5V4N54A-BYeokd_o.js +1 -0
  41. package/dist/assets/dagre-BLlLfumR.js +1 -0
  42. package/dist/assets/dagre-BM42HDAG-Dd03c6Ls.js +4 -0
  43. package/dist/assets/{diagram-MMDJMWI5-D-0YgNhU.js → diagram-2AECGRRQ-D-O__aM4.js} +2 -2
  44. package/dist/assets/diagram-5GNKFQAL-CGwacUGV.js +10 -0
  45. package/dist/assets/diagram-KO2AKTUF-v4sWyTN5.js +3 -0
  46. package/dist/assets/diagram-LMA3HP47-BRbpRQIo.js +24 -0
  47. package/dist/assets/{diagram-G4DWMVQ6-Jv9Eefw4.js → diagram-OG6HWLK6-DtezJcdq.js} +11 -11
  48. package/dist/assets/dist-BIDVGHMn.js +1 -0
  49. package/dist/assets/{erDiagram-SMLLAGMA-BjZGGBJz.js → erDiagram-TEJ5UH35-Bytq_tJL.js} +6 -6
  50. package/dist/assets/eventmodeling-FCH6USID-C_CDGdeY.js +1 -0
  51. package/dist/assets/{flowDiagram-DWJPFMVM-CFbFUm_m.js → flowDiagram-I6XJVG4X-CvwNzBok.js} +9 -9
  52. package/dist/assets/ganttDiagram-6RSMTGT7-pY01b2vH.js +292 -0
  53. package/dist/assets/gitGraph-WXDBUCRP-GdVUV9HW.js +1 -0
  54. package/dist/assets/gitGraphDiagram-PVQCEYII-FYYqqMPt.js +106 -0
  55. package/dist/assets/graphlib-DkOQ9ah2.js +1 -0
  56. package/dist/assets/index-B-rZykFd.css +2 -0
  57. package/dist/assets/index-CBOdvugM.js +19 -0
  58. package/dist/assets/info-J43DQDTF-BWgpjD75.js +1 -0
  59. package/dist/assets/{infoDiagram-42DDH7IO-p-PXDra2.js → infoDiagram-5YYISTIA-DWXnrOiy.js} +1 -1
  60. package/dist/assets/{ishikawaDiagram-UXIWVN3A-BrIoEvtb.js → ishikawaDiagram-YF4QCWOH-CMXkx8dT.js} +6 -6
  61. package/dist/assets/{journeyDiagram-VCZTEJTY-aZpvKa9g.js → journeyDiagram-JHISSGLW-DbHzwLkq.js} +3 -3
  62. package/dist/assets/{kanban-definition-6JOO6SKY-CoOAY9ji.js → kanban-definition-UN3LZRKU-D5TOIiWG.js} +6 -6
  63. package/dist/assets/line-B1RaFc-s.js +1 -0
  64. package/dist/assets/{linear-CXMqTN8N.js → linear-CBB4B7tq.js} +1 -1
  65. package/dist/assets/mermaid-parser.core-DwyDdYna.js +4 -0
  66. package/dist/assets/mermaid.core-Dr68p3Jm.js +9 -0
  67. package/dist/assets/{mindmap-definition-QFDTVHPH-CsqUJCMn.js → mindmap-definition-RKZ34NQL-CCBDyMUY.js} +23 -23
  68. package/dist/assets/{ordinal-D7l-8DAO.js → ordinal-7rXhq2H9.js} +1 -1
  69. package/dist/assets/packet-YPE3B663-Dtmistlh.js +1 -0
  70. package/dist/assets/pie-LRSECV5Y-CRgiS3oB.js +1 -0
  71. package/dist/assets/pieDiagram-4H26LBE5-Cuv39r8i.js +30 -0
  72. package/dist/assets/quadrantDiagram-W4KKPZXB-glXKXw-o.js +7 -0
  73. package/dist/assets/radar-GUYGQ44K-CF2B6KbU.js +1 -0
  74. package/dist/assets/{requirementDiagram-MS252O5E-8ECT7dEs.js → requirementDiagram-4Y6WPE33-BnJbNvlJ.js} +7 -7
  75. package/dist/assets/{sankeyDiagram-XADWPNL6-CoKpeJJ0.js → sankeyDiagram-5OEKKPKP-iunWlLg8.js} +36 -6
  76. package/dist/assets/sequenceDiagram-3UESZ5HK-CwqFb6Ve.js +162 -0
  77. package/dist/assets/src-Gc0VHc7x.js +1 -0
  78. package/dist/assets/stateDiagram-AJRCARHV-B7Jy9MSf.js +1 -0
  79. package/dist/assets/stateDiagram-v2-BHNVJYJU-DEZOp3bU.js +1 -0
  80. package/dist/assets/{timeline-definition-GMOUNBTQ-Bes4B58n.js → timeline-definition-PNZ67QCA-CJagfVGw.js} +8 -8
  81. package/dist/assets/treeView-BLDUP644-Bdt69Bnk.js +1 -0
  82. package/dist/assets/treemap-LRROVOQU-BBya6zH4.js +1 -0
  83. package/dist/assets/vennDiagram-CIIHVFJN-Bq1ulRTN.js +34 -0
  84. package/dist/assets/wardley-L42UT6IY-B77cR16B.js +1 -0
  85. package/dist/assets/{wardleyDiagram-NUSXRM2D-DzViT1Yx.js → wardleyDiagram-YWT4CUSO-msFARUlw.js} +61 -3
  86. package/dist/assets/{xychartDiagram-5P7HB3ND-BO_dbU0r.js → xychartDiagram-2RQKCTM6-BwRGfm21.js} +6 -6
  87. package/dist/index.html +2 -2
  88. package/dist/index.js +209 -8
  89. package/package.json +7 -7
  90. package/dist/assets/_basePickBy-BMMA4Tou.js +0 -1
  91. package/dist/assets/_baseUniq-D40qku1I.js +0 -1
  92. package/dist/assets/architecture-YZFGNWBL-Dv3EY0zV.js +0 -1
  93. package/dist/assets/architectureDiagram-Q4EWVU46-DQnkwSaB.js +0 -36
  94. package/dist/assets/blockDiagram-DXYQGD6D-UB6_S1lm.js +0 -132
  95. package/dist/assets/channel-D9wPw2fQ.js +0 -1
  96. package/dist/assets/chunk-2KRD3SAO-DaFfaCGO.js +0 -1
  97. package/dist/assets/chunk-336JU56O-C8siO5Of.js +0 -2
  98. package/dist/assets/chunk-426QAEUC-BB478m3j.js +0 -1
  99. package/dist/assets/chunk-4TB4RGXK-_l6jvVAY.js +0 -206
  100. package/dist/assets/chunk-5FUZZQ4R-HOSFTxuG.js +0 -62
  101. package/dist/assets/chunk-5PVQY5BW-BRVNNRAX.js +0 -2
  102. package/dist/assets/chunk-67CJDMHE-DMt8LNEX.js +0 -1
  103. package/dist/assets/chunk-7N4EOEYR-CzLGefVf.js +0 -1
  104. package/dist/assets/chunk-AA7GKIK3-B6GFAk4U.js +0 -1
  105. package/dist/assets/chunk-CIAEETIT-D7hBXImP.js +0 -1
  106. package/dist/assets/chunk-Dlc7tRH4.js +0 -1
  107. package/dist/assets/chunk-ENJZ2VHE-QApb5cYr.js +0 -10
  108. package/dist/assets/chunk-FOC6F5B3-DKFHrt4K.js +0 -1
  109. package/dist/assets/chunk-ICPOFSXX-agBjBxsW.js +0 -122
  110. package/dist/assets/chunk-K5T4RW27-D51O7IkG.js +0 -94
  111. package/dist/assets/chunk-KGLVRYIC-DMHSCH4T.js +0 -1
  112. package/dist/assets/chunk-ORNJ4GCN-Db_37NRX.js +0 -1
  113. package/dist/assets/chunk-OYMX7WX6-HGUtT2Q9.js +0 -231
  114. package/dist/assets/chunk-QZHKN3VN-8Lcg9gti.js +0 -1
  115. package/dist/assets/classDiagram-6PBFFD2Q-BawhEeUl.js +0 -1
  116. package/dist/assets/classDiagram-v2-HSJHXN6E-CLNjgH9n.js +0 -1
  117. package/dist/assets/clone-BBjvuERA.js +0 -1
  118. package/dist/assets/cose-bilkent-S5V4N54A-q90QeGKv.js +0 -1
  119. package/dist/assets/dagre-Dxbob2Lr.js +0 -1
  120. package/dist/assets/dagre-KV5264BT-BuvpNxMw.js +0 -4
  121. package/dist/assets/diagram-5BDNPKRD-DQLsxwwt.js +0 -10
  122. package/dist/assets/diagram-TYMM5635-BHwO7zQG.js +0 -24
  123. package/dist/assets/dist-BNz65Ibc.js +0 -1
  124. package/dist/assets/ganttDiagram-T4ZO3ILL-CXk4TcBi.js +0 -292
  125. package/dist/assets/gitGraph-7Q5UKJZL-BGFRt2qs.js +0 -1
  126. package/dist/assets/gitGraphDiagram-UUTBAWPF-C8yZOxjo.js +0 -106
  127. package/dist/assets/graphlib-DGcD9J2L.js +0 -1
  128. package/dist/assets/index-D-m0LiFI.js +0 -14
  129. package/dist/assets/index-DANHO6J0.css +0 -2
  130. package/dist/assets/info-OMHHGYJF-DI6-Z9vh.js +0 -1
  131. package/dist/assets/isArrayLikeObject-69BLnVNM.js +0 -1
  132. package/dist/assets/isEmpty-DUS28g5f.js +0 -1
  133. package/dist/assets/line-4MF1lR4d.js +0 -1
  134. package/dist/assets/mermaid-parser.core-DREsY2u4.js +0 -4
  135. package/dist/assets/mermaid.core-8ysLpTJi.js +0 -11
  136. package/dist/assets/packet-4T2RLAQJ-DidW3JFc.js +0 -1
  137. package/dist/assets/pie-ZZUOXDRM-Bff2e5hg.js +0 -1
  138. package/dist/assets/pieDiagram-DEJITSTG-k0Br4NDS.js +0 -30
  139. package/dist/assets/quadrantDiagram-34T5L4WZ-Be9oCSza.js +0 -7
  140. package/dist/assets/radar-PYXPWWZC-CsdZBH3M.js +0 -1
  141. package/dist/assets/sequenceDiagram-FGHM5R23-BTT2fFxG.js +0 -157
  142. package/dist/assets/src-CrmkjRpa.js +0 -1
  143. package/dist/assets/stateDiagram-FHFEXIEX-CIF47NYe.js +0 -1
  144. package/dist/assets/stateDiagram-v2-QKLJ7IA2-Cy1rmPfG.js +0 -1
  145. package/dist/assets/treeView-SZITEDCU-DPKseaET.js +0 -1
  146. package/dist/assets/treemap-W4RFUUIX-DH-7GZe_.js +0 -1
  147. package/dist/assets/vennDiagram-DHZGUBPP-3wx2huKk.js +0 -34
  148. package/dist/assets/wardley-RL74JXVD-AgyXyBN5.js +0 -1
  149. /package/dist/assets/{array-Bjz-wYpJ.js → array-yLZkcI6Y.js} +0 -0
  150. /package/dist/assets/{cytoscape.esm-BfXff3fb.js → cytoscape.esm-CRY7Cppu.js} +0 -0
  151. /package/dist/assets/{defaultLocale-BwmRmqJp.js → defaultLocale-Bld4b7vH.js} +0 -0
  152. /package/dist/assets/{init-TPm5RB77.js → init-rddNFwID.js} +0 -0
  153. /package/dist/assets/{katex-5SGEXwpi.js → katex-C3qN7hq2.js} +0 -0
  154. /package/dist/assets/{mermaid-config-C8a4L22x.js → mermaid-config-D24hl3cp.js} +0 -0
  155. /package/dist/assets/{path-BVpCanzE.js → path-BJQEcSo7.js} +0 -0
  156. /package/dist/assets/{rough.esm-BoTisKeL.js → rough.esm-KjoEK0it.js} +0 -0
package/dist/index.js CHANGED
@@ -16,6 +16,81 @@ import * as os3 from "os";
16
16
  import { join as join4, resolve as resolve3 } from "path";
17
17
  import { Command } from "commander";
18
18
  import open2 from "open";
19
+ // package.json
20
+ var package_default = {
21
+ name: "@peaske7/readit",
22
+ version: "0.3.0-rc.5",
23
+ description: "A CLI tool to review Markdown documents with inline comments",
24
+ author: "Jay Shimada <peaske@pm.me>",
25
+ license: "MIT",
26
+ keywords: [
27
+ "markdown",
28
+ "review",
29
+ "cli",
30
+ "comments",
31
+ "documentation"
32
+ ],
33
+ type: "module",
34
+ main: "./dist/index.js",
35
+ bin: {
36
+ readit: "./dist/index.js"
37
+ },
38
+ files: [
39
+ "dist",
40
+ "shell"
41
+ ],
42
+ publishConfig: {
43
+ access: "public"
44
+ },
45
+ scripts: {
46
+ dev: "NODE_ENV=development bun --watch src/cli.ts --",
47
+ "dev:client": "bunx vite",
48
+ build: "bunx vite build && bun run build:cli",
49
+ "build:cli": "NODE_ENV=production bun build src/cli.ts --outfile dist/index.js --target bun --format esm --packages external",
50
+ start: "bun run build && bun dist/index.js",
51
+ test: "vitest run",
52
+ bench: "vitest bench",
53
+ "test:watch": "vitest",
54
+ "test:e2e": "playwright test --project=chromium",
55
+ "test:e2e:ui": "playwright test --project=chromium --ui",
56
+ "test:perf": "PERF_SETUP=1 playwright test --project=perf",
57
+ check: "biome check .",
58
+ "check:fix": "biome check --write .",
59
+ format: "biome format --write .",
60
+ lint: "biome lint .",
61
+ typecheck: "tsc --noEmit",
62
+ prepack: "bun run build",
63
+ prepare: "lefthook install || true"
64
+ },
65
+ dependencies: {
66
+ clsx: "^2.1.1",
67
+ commander: "^14.0.3",
68
+ "lucide-svelte": "^0.577.0",
69
+ "markdown-it": "^14.1.1",
70
+ mermaid: "^11.15.0",
71
+ open: "^11.0.0",
72
+ jsdom: "^28.1.0",
73
+ shiki: "^4.0.2",
74
+ "tailwind-merge": "^3.6.0"
75
+ },
76
+ devDependencies: {
77
+ "@biomejs/biome": "^2.4.15",
78
+ "@playwright/test": "^1.60.0",
79
+ "@sveltejs/vite-plugin-svelte": "^5.1.1",
80
+ "@tailwindcss/vite": "^4.3.0",
81
+ "@testing-library/jest-dom": "^6.9.1",
82
+ "@types/bun": "^1.3.13",
83
+ "@types/jsdom": "^28.0.2",
84
+ "@types/markdown-it": "^14.1.2",
85
+ "@types/node": "^25.7.0",
86
+ lefthook: "^2.1.6",
87
+ svelte: "^5.55.5",
88
+ tailwindcss: "^4.3.0",
89
+ typescript: "^5.9.3",
90
+ vite: "^8.0.12",
91
+ vitest: "^4.1.6"
92
+ }
93
+ };
19
94
 
20
95
  // src/lib/comment-storage.ts
21
96
  import * as crypto from "crypto";
@@ -976,6 +1051,95 @@ async function renderMarkdown(content) {
976
1051
  return { html, headings };
977
1052
  }
978
1053
 
1054
+ // src/lib/shortcut-registry.ts
1055
+ var IS_MAC = typeof navigator !== "undefined" && navigator.platform.includes("Mac");
1056
+ var ShortcutActions = {
1057
+ COPY_ALL: "copyAll",
1058
+ COPY_ALL_RAW: "copyAllRaw",
1059
+ NAVIGATE_NEXT: "navigateNext",
1060
+ NAVIGATE_PREVIOUS: "navigatePrevious",
1061
+ COPY_SELECTION_RAW: "copySelectionRaw",
1062
+ COPY_SELECTION_LLM: "copySelectionLLM",
1063
+ CLEAR_SELECTION: "clearSelection"
1064
+ };
1065
+ var DEFAULT_SHORTCUTS = [
1066
+ {
1067
+ id: ShortcutActions.COPY_ALL,
1068
+ label: "shortcut.copyAll.label",
1069
+ description: "shortcut.copyAll.description",
1070
+ defaultBinding: { key: "c", alt: true },
1071
+ binding: { key: "c", alt: true },
1072
+ enabled: true
1073
+ },
1074
+ {
1075
+ id: ShortcutActions.COPY_ALL_RAW,
1076
+ label: "shortcut.copyAllRaw.label",
1077
+ description: "shortcut.copyAllRaw.description",
1078
+ defaultBinding: { key: "c", alt: true, shift: true },
1079
+ binding: { key: "c", alt: true, shift: true },
1080
+ enabled: true
1081
+ },
1082
+ {
1083
+ id: ShortcutActions.NAVIGATE_NEXT,
1084
+ label: "shortcut.navigateNext.label",
1085
+ description: "shortcut.navigateNext.description",
1086
+ defaultBinding: { key: "ArrowDown", alt: true },
1087
+ binding: { key: "ArrowDown", alt: true },
1088
+ enabled: true
1089
+ },
1090
+ {
1091
+ id: ShortcutActions.NAVIGATE_PREVIOUS,
1092
+ label: "shortcut.navigatePrevious.label",
1093
+ description: "shortcut.navigatePrevious.description",
1094
+ defaultBinding: { key: "ArrowUp", alt: true },
1095
+ binding: { key: "ArrowUp", alt: true },
1096
+ enabled: true
1097
+ },
1098
+ {
1099
+ id: ShortcutActions.COPY_SELECTION_RAW,
1100
+ label: "shortcut.copySelectionRaw.label",
1101
+ description: "shortcut.copySelectionRaw.description",
1102
+ defaultBinding: IS_MAC ? { key: "c", meta: true, shift: true } : { key: "c", ctrl: true, shift: true },
1103
+ binding: IS_MAC ? { key: "c", meta: true, shift: true } : { key: "c", ctrl: true, shift: true },
1104
+ enabled: true
1105
+ },
1106
+ {
1107
+ id: ShortcutActions.COPY_SELECTION_LLM,
1108
+ label: "shortcut.copySelectionLLM.label",
1109
+ description: "shortcut.copySelectionLLM.description",
1110
+ defaultBinding: IS_MAC ? { key: "c", meta: true, alt: true } : { key: "c", ctrl: true, alt: true },
1111
+ binding: IS_MAC ? { key: "c", meta: true, alt: true } : { key: "c", ctrl: true, alt: true },
1112
+ enabled: true
1113
+ },
1114
+ {
1115
+ id: ShortcutActions.CLEAR_SELECTION,
1116
+ label: "shortcut.clearSelection.label",
1117
+ description: "shortcut.clearSelection.description",
1118
+ defaultBinding: { key: "Escape" },
1119
+ binding: { key: "Escape" },
1120
+ enabled: true
1121
+ }
1122
+ ];
1123
+ var SHORTCUT_GROUPS = [
1124
+ {
1125
+ label: "shortcutGroup.copy",
1126
+ ids: [
1127
+ ShortcutActions.COPY_ALL,
1128
+ ShortcutActions.COPY_ALL_RAW,
1129
+ ShortcutActions.COPY_SELECTION_RAW,
1130
+ ShortcutActions.COPY_SELECTION_LLM
1131
+ ]
1132
+ },
1133
+ {
1134
+ label: "shortcutGroup.navigate",
1135
+ ids: [ShortcutActions.NAVIGATE_NEXT, ShortcutActions.NAVIGATE_PREVIOUS]
1136
+ },
1137
+ {
1138
+ label: "shortcutGroup.other",
1139
+ ids: [ShortcutActions.CLEAR_SELECTION]
1140
+ }
1141
+ ];
1142
+
979
1143
  // src/template.ts
980
1144
  function safeJsonStringify(data) {
981
1145
  return JSON.stringify(data).replace(/</g, "\\u003c");
@@ -1042,6 +1206,7 @@ function invalidateResolvedComments(filePath) {
1042
1206
  }
1043
1207
  var withCommentLock = createKeyLock("comments");
1044
1208
  var withSourceLock = createKeyLock("source");
1209
+ var withSettingsLock = createKeyLock("settings");
1045
1210
  async function canonicalPath(filePath) {
1046
1211
  return fs.realpath(path2.resolve(filePath));
1047
1212
  }
@@ -1154,6 +1319,35 @@ async function writeSettings(settings) {
1154
1319
  function isValidFontFamily(value) {
1155
1320
  return value === FontFamilies.SERIF || value === FontFamilies.SANS_SERIF;
1156
1321
  }
1322
+ var KNOWN_SHORTCUT_IDS = new Set(Object.values(ShortcutActions));
1323
+ function isOptionalBool(value) {
1324
+ return value === undefined || typeof value === "boolean";
1325
+ }
1326
+ function isValidShortcutBinding(value) {
1327
+ if (!value || typeof value !== "object")
1328
+ return false;
1329
+ const b = value;
1330
+ if (typeof b.key !== "string" || b.key.length === 0)
1331
+ return false;
1332
+ return isOptionalBool(b.alt) && isOptionalBool(b.ctrl) && isOptionalBool(b.meta) && isOptionalBool(b.shift);
1333
+ }
1334
+ function isValidKeybindings(value) {
1335
+ if (!Array.isArray(value))
1336
+ return false;
1337
+ for (const entry of value) {
1338
+ if (!entry || typeof entry !== "object")
1339
+ return false;
1340
+ const o = entry;
1341
+ if (typeof o.id !== "string" || !KNOWN_SHORTCUT_IDS.has(o.id))
1342
+ return false;
1343
+ if (typeof o.enabled !== "boolean")
1344
+ return false;
1345
+ if (o.binding !== undefined && !isValidShortcutBinding(o.binding)) {
1346
+ return false;
1347
+ }
1348
+ }
1349
+ return true;
1350
+ }
1157
1351
  var SERVER_INFO_PATH = path2.join(os2.homedir(), ".readit", "server.json");
1158
1352
  async function writeServerInfo(port) {
1159
1353
  await fs.mkdir(path2.dirname(SERVER_INFO_PATH), { recursive: true });
@@ -1328,16 +1522,23 @@ async function getSettingsRoute() {
1328
1522
  async function updateSettingsRoute(req) {
1329
1523
  try {
1330
1524
  const body = await req.json();
1331
- const { fontFamily } = body;
1525
+ const { fontFamily, keybindings } = body;
1332
1526
  if (fontFamily !== undefined && !isValidFontFamily(fontFamily)) {
1333
1527
  return errorResponse("Invalid font family", 400);
1334
1528
  }
1335
- const current = await readSettings();
1336
- const settings = {
1337
- ...current,
1338
- ...fontFamily !== undefined && { fontFamily }
1339
- };
1340
- await writeSettings(settings);
1529
+ if (keybindings !== undefined && !isValidKeybindings(keybindings)) {
1530
+ return errorResponse("Invalid keybindings format", 400);
1531
+ }
1532
+ const settings = await withSettingsLock(SETTINGS_PATH, async () => {
1533
+ const current = await readSettings();
1534
+ const merged = {
1535
+ ...current,
1536
+ ...fontFamily !== undefined && { fontFamily },
1537
+ ...keybindings !== undefined && { keybindings }
1538
+ };
1539
+ await writeSettings(merged);
1540
+ return merged;
1541
+ });
1341
1542
  return json(settings);
1342
1543
  } catch (err) {
1343
1544
  console.error("Failed to save settings:", err);
@@ -2280,7 +2481,7 @@ readit document.md --clean
2280
2481
  Go ahead and add a few comments to this document. When you're done, export them and see the output. That's the entire workflow \u2014 simple, transparent, and designed for reviewing AI-generated content.
2281
2482
  `;
2282
2483
  var WELCOME_PATH = join4(os3.homedir(), ".readit", "welcome.md");
2283
- program.name("readit").description("Review Markdown documents with inline comments").version("0.2.0");
2484
+ program.name("readit").description("Review Markdown documents with inline comments").version(package_default.version);
2284
2485
  program.command("list").description("List all files with comments").action(async () => {
2285
2486
  const readitDir = join4(os3.homedir(), ".readit", "comments");
2286
2487
  if (!existsSync(readitDir)) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@peaske7/readit",
3
- "version": "0.3.0-rc.2",
3
+ "version": "0.3.0-rc.5",
4
4
  "description": "A CLI tool to review Markdown documents with inline comments",
5
5
  "author": "Jay Shimada <peaske@pm.me>",
6
6
  "license": "MIT",
@@ -48,7 +48,7 @@
48
48
  "commander": "^14.0.3",
49
49
  "lucide-svelte": "^0.577.0",
50
50
  "markdown-it": "^14.1.1",
51
- "mermaid": "^11.14.0",
51
+ "mermaid": "^11.15.0",
52
52
  "open": "^11.0.0",
53
53
  "jsdom": "^28.1.0",
54
54
  "shiki": "^4.0.2",
@@ -56,19 +56,19 @@
56
56
  },
57
57
  "devDependencies": {
58
58
  "@biomejs/biome": "^2.4.15",
59
- "@playwright/test": "^1.59.1",
59
+ "@playwright/test": "^1.60.0",
60
60
  "@sveltejs/vite-plugin-svelte": "^5.1.1",
61
61
  "@tailwindcss/vite": "^4.3.0",
62
62
  "@testing-library/jest-dom": "^6.9.1",
63
63
  "@types/bun": "^1.3.13",
64
- "@types/jsdom": "^28.0.1",
64
+ "@types/jsdom": "^28.0.2",
65
65
  "@types/markdown-it": "^14.1.2",
66
- "@types/node": "^25.6.2",
66
+ "@types/node": "^25.7.0",
67
67
  "lefthook": "^2.1.6",
68
68
  "svelte": "^5.55.5",
69
69
  "tailwindcss": "^4.3.0",
70
70
  "typescript": "^5.9.3",
71
- "vite": "^8.0.11",
72
- "vitest": "^4.1.5"
71
+ "vite": "^8.0.12",
72
+ "vitest": "^4.1.6"
73
73
  }
74
74
  }
@@ -1 +0,0 @@
1
- import{A as e,B as t,C as n,E as r,H as i,M as a,U as o,V as s,k as c,p as l,w as u,z as d}from"./isArrayLikeObject-69BLnVNM.js";import{A as f,C as p,D as m,M as h,N as g,S as _,T as v,f as y,h as b,u as x,w as S}from"./_baseUniq-D40qku1I.js";var C=/\s/;function w(e){for(var t=e.length;t--&&C.test(e.charAt(t)););return t}var ee=/^\s+/;function T(e){return e&&e.slice(0,w(e)+1).replace(ee,``)}var E=NaN,D=/^[-+]0x[0-9a-f]+$/i,O=/^0b[01]+$/i,k=/^0o[0-7]+$/i,A=parseInt;function j(e){if(typeof e==`number`)return e;if(g(e))return E;if(t(e)){var n=typeof e.valueOf==`function`?e.valueOf():e;e=t(n)?n+``:n}if(typeof e!=`string`)return e===0?e:+e;e=T(e);var r=O.test(e);return r||k.test(e)?A(e.slice(2),r?2:8):D.test(e)?E:+e}var M=1/0,N=17976931348623157e292;function P(e){return e?(e=j(e),e===M||e===-M?(e<0?-1:1)*N:e===e?e:0):e===0?e:0}function F(e){var t=P(e),n=t%1;return t===t?n?t-n:t:0}function I(e){return e!=null&&e.length?_(e,1):[]}var L=Object.prototype,R=L.hasOwnProperty,z=r(function(t,r){t=Object(t);var i=-1,a=r.length,o=a>2?r[2]:void 0;for(o&&n(r[0],r[1],o)&&(a=1);++i<a;)for(var s=r[i],c=l(s),u=-1,d=c.length;++u<d;){var f=c[u],p=t[f];(p===void 0||e(p,L[f])&&!R.call(t,f))&&(t[f]=s[f])}return t});function B(e){var t=e==null?0:e.length;return t?e[t-1]:void 0}function V(e){return function(t,n,r){var i=Object(t);if(!u(t)){var a=y(n,3);t=m(t),n=function(e){return a(i[e],e,i)}}var o=e(t,n,r);return o>-1?i[a?t[o]:o]:void 0}}var H=Math.max;function U(e,t,n){var r=e==null?0:e.length;if(!r)return-1;var i=n==null?0:F(n);return i<0&&(i=H(r+i,0)),f(e,y(t,3),i)}var W=V(U);function G(e,t){var n=-1,r=u(e)?Array(e.length):[];return x(e,function(e,i,a){r[++n]=t(e,i,a)}),r}function K(e,t){return(s(e)?h:G)(e,y(t,3))}var q=Object.prototype.hasOwnProperty;function J(e,t){return e!=null&&q.call(e,t)}function Y(e,t){return e!=null&&b(e,t,J)}var X=`[object String]`;function Z(e){return typeof e==`string`||!s(e)&&i(e)&&o(e)==X}function Q(e,t){return e<t}function $(e,t,n){for(var r=-1,i=e.length;++r<i;){var a=e[r],o=t(a);if(o!=null&&(s===void 0?o===o&&!g(o):n(o,s)))var s=o,c=a}return c}function te(e){return e&&e.length?$(e,d,Q):void 0}function ne(e,n,r,i){if(!t(e))return e;n=v(n,e);for(var o=-1,s=n.length,l=s-1,u=e;u!=null&&++o<s;){var d=S(n[o]),f=r;if(d===`__proto__`||d===`constructor`||d===`prototype`)return e;if(o!=l){var p=u[d];f=i?i(p,d,u):void 0,f===void 0&&(f=t(p)?p:a(n[o+1])?[]:{})}c(u,d,f),u=u[d]}return e}function re(e,t,n){for(var r=-1,i=t.length,a={};++r<i;){var o=t[r],s=p(e,o);n(s,o)&&ne(a,v(o,e),s)}return a}export{Z as a,G as c,z as d,I as f,Q as i,W as l,P as m,te as n,Y as o,F as p,$ as r,K as s,re as t,B as u};
@@ -1 +0,0 @@
1
- import{A as e,B as t,F as n,H as r,M as i,O as a,T as o,U as s,V as c,W as l,_ as u,a as d,b as f,c as p,d as m,g as h,h as g,i as _,k as v,l as y,n as ee,o as b,p as x,r as te,s as ne,u as re,v as ie,w as S,y as C,z as w}from"./isArrayLikeObject-69BLnVNM.js";import{i as ae,n as T,r as E}from"./isEmpty-DUS28g5f.js";var oe=`[object Symbol]`;function D(e){return typeof e==`symbol`||r(e)&&s(e)==oe}function O(e,t){for(var n=-1,r=e==null?0:e.length,i=Array(r);++n<r;)i[n]=t(e[n],n,e);return i}var se=1/0,ce=l?l.prototype:void 0,le=ce?ce.toString:void 0;function ue(e){if(typeof e==`string`)return e;if(c(e))return O(e,ue)+``;if(D(e))return le?le.call(e):``;var t=e+``;return t==`0`&&1/e==-se?`-0`:t}function de(){}function fe(e,t){for(var n=-1,r=e==null?0:e.length;++n<r&&t(e[n],n,e)!==!1;);return e}function pe(e,t,n,r){for(var i=e.length,a=n+(r?1:-1);r?a--:++a<i;)if(t(e[a],a,e))return a;return-1}function me(e){return e!==e}function he(e,t,n){for(var r=n-1,i=e.length;++r<i;)if(e[r]===t)return r;return-1}function ge(e,t,n){return t===t?he(e,t,n):pe(e,me,n)}function _e(e,t){return!!(e!=null&&e.length)&&ge(e,t,0)>-1}function k(e){return S(e)?g(e):ae(e)}var ve=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,ye=/^\w*$/;function A(e,t){if(c(e))return!1;var n=typeof e;return n==`number`||n==`symbol`||n==`boolean`||e==null||D(e)?!0:ye.test(e)||!ve.test(e)||t!=null&&e in Object(t)}var be=500;function xe(e){var t=re(e,function(e){return n.size===be&&n.clear(),e}),n=t.cache;return t}var Se=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Ce=/\\(\\)?/g,we=xe(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(``),e.replace(Se,function(e,n,r,i){t.push(r?i.replace(Ce,`$1`):n||e)}),t});function j(e){return e==null?``:ue(e)}function M(e,t){return c(e)?e:A(e,t)?[e]:we(j(e))}var Te=1/0;function N(e){if(typeof e==`string`||D(e))return e;var t=e+``;return t==`0`&&1/e==-Te?`-0`:t}function P(e,t){t=M(t,e);for(var n=0,r=t.length;e!=null&&n<r;)e=e[N(t[n++])];return n&&n==r?e:void 0}function Ee(e,t,n){var r=e==null?void 0:P(e,t);return r===void 0?n:r}function F(e,t){for(var n=-1,r=t.length,i=e.length;++n<r;)e[i+n]=t[n];return e}var I=l?l.isConcatSpreadable:void 0;function De(e){return c(e)||f(e)||!!(I&&e&&e[I])}function L(e,t,n,r,i){var a=-1,o=e.length;for(n||=De,i||=[];++a<o;){var s=e[a];t>0&&n(s)?t>1?L(s,t-1,n,r,i):F(i,s):r||(i[i.length]=s)}return i}function Oe(e,t,n,r){var i=-1,a=e==null?0:e.length;for(r&&a&&(n=e[++i]);++i<a;)n=t(n,e[i],i,e);return n}function ke(e,t){return e&&a(t,k(t),e)}function Ae(e,t){return e&&a(t,x(t),e)}function R(e,t){for(var n=-1,r=e==null?0:e.length,i=0,a=[];++n<r;){var o=e[n];t(o,n,e)&&(a[i++]=o)}return a}function z(){return[]}var je=Object.prototype.propertyIsEnumerable,B=Object.getOwnPropertySymbols,V=B?function(e){return e==null?[]:(e=Object(e),R(B(e),function(t){return je.call(e,t)}))}:z;function Me(e,t){return a(e,V(e),t)}var Ne=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)F(t,V(e)),e=y(e);return t}:z;function Pe(e,t){return a(e,Ne(e),t)}function Fe(e,t,n){var r=t(e);return c(e)?r:F(r,n(e))}function H(e){return Fe(e,k,V)}function Ie(e){return Fe(e,x,Ne)}var Le=Object.prototype.hasOwnProperty;function Re(e){var t=e.length,n=new e.constructor(t);return t&&typeof e[0]==`string`&&Le.call(e,`index`)&&(n.index=e.index,n.input=e.input),n}function ze(e,t){var n=t?d(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}var Be=/\w*$/;function Ve(e){var t=new e.constructor(e.source,Be.exec(e));return t.lastIndex=e.lastIndex,t}var He=l?l.prototype:void 0,Ue=He?He.valueOf:void 0;function We(e){return Ue?Object(Ue.call(e)):{}}var Ge=`[object Boolean]`,Ke=`[object Date]`,qe=`[object Map]`,Je=`[object Number]`,Ye=`[object RegExp]`,Xe=`[object Set]`,Ze=`[object String]`,Qe=`[object Symbol]`,$e=`[object ArrayBuffer]`,et=`[object DataView]`,tt=`[object Float32Array]`,nt=`[object Float64Array]`,rt=`[object Int8Array]`,it=`[object Int16Array]`,at=`[object Int32Array]`,ot=`[object Uint8Array]`,st=`[object Uint8ClampedArray]`,ct=`[object Uint16Array]`,lt=`[object Uint32Array]`;function ut(e,t,n){var r=e.constructor;switch(t){case $e:return d(e);case Ge:case Ke:return new r(+e);case et:return ze(e,n);case tt:case nt:case rt:case it:case at:case ot:case st:case ct:case lt:return _(e,n);case qe:return new r;case Je:case Ze:return new r(e);case Ye:return Ve(e);case Xe:return new r;case Qe:return We(e)}}var dt=`[object Map]`;function ft(e){return r(e)&&T(e)==dt}var pt=u&&u.isMap,mt=pt?ie(pt):ft,ht=`[object Set]`;function gt(e){return r(e)&&T(e)==ht}var _t=u&&u.isSet,vt=_t?ie(_t):gt,yt=1,bt=2,xt=4,St=`[object Arguments]`,Ct=`[object Array]`,wt=`[object Boolean]`,Tt=`[object Date]`,Et=`[object Error]`,Dt=`[object Function]`,Ot=`[object GeneratorFunction]`,kt=`[object Map]`,At=`[object Number]`,jt=`[object Object]`,Mt=`[object RegExp]`,Nt=`[object Set]`,Pt=`[object String]`,Ft=`[object Symbol]`,It=`[object WeakMap]`,Lt=`[object ArrayBuffer]`,Rt=`[object DataView]`,zt=`[object Float32Array]`,Bt=`[object Float64Array]`,Vt=`[object Int8Array]`,Ht=`[object Int16Array]`,Ut=`[object Int32Array]`,Wt=`[object Uint8Array]`,Gt=`[object Uint8ClampedArray]`,Kt=`[object Uint16Array]`,qt=`[object Uint32Array]`,U={};U[St]=U[Ct]=U[Lt]=U[Rt]=U[wt]=U[Tt]=U[zt]=U[Bt]=U[Vt]=U[Ht]=U[Ut]=U[kt]=U[At]=U[jt]=U[Mt]=U[Nt]=U[Pt]=U[Ft]=U[Wt]=U[Gt]=U[Kt]=U[qt]=!0,U[Et]=U[Dt]=U[It]=!1;function W(e,r,i,a,o,s){var l,u=r&yt,d=r&bt,f=r&xt;if(i&&(l=o?i(e,a,o,s):i(e)),l!==void 0)return l;if(!t(e))return e;var m=c(e);if(m){if(l=Re(e),!u)return n(e,l)}else{var h=T(e),g=h==Dt||h==Ot;if(C(e))return ne(e,u);if(h==jt||h==St||g&&!o){if(l=d||g?{}:te(e),!u)return d?Pe(e,Ae(l,e)):Me(e,ke(l,e))}else{if(!U[h])return o?e:{};l=ut(e,h,u)}}s||=new p;var _=s.get(e);if(_)return _;s.set(e,l),vt(e)?e.forEach(function(t){l.add(W(t,r,i,t,e,s))}):mt(e)&&e.forEach(function(t,n){l.set(n,W(t,r,i,n,e,s))});var y=m?void 0:(f?d?Ie:H:d?x:k)(e);return fe(y||e,function(t,n){y&&(n=t,t=e[n]),v(l,n,W(t,r,i,n,e,s))}),l}var Jt=`__lodash_hash_undefined__`;function Yt(e){return this.__data__.set(e,Jt),this}function Xt(e){return this.__data__.has(e)}function G(e){var t=-1,n=e==null?0:e.length;for(this.__data__=new m;++t<n;)this.add(e[t])}G.prototype.add=G.prototype.push=Yt,G.prototype.has=Xt;function Zt(e,t){for(var n=-1,r=e==null?0:e.length;++n<r;)if(t(e[n],n,e))return!0;return!1}function K(e,t){return e.has(t)}var Qt=1,$t=2;function en(e,t,n,r,i,a){var o=n&Qt,s=e.length,c=t.length;if(s!=c&&!(o&&c>s))return!1;var l=a.get(e),u=a.get(t);if(l&&u)return l==t&&u==e;var d=-1,f=!0,p=n&$t?new G:void 0;for(a.set(e,t),a.set(t,e);++d<s;){var m=e[d],h=t[d];if(r)var g=o?r(h,m,d,t,e,a):r(m,h,d,e,t,a);if(g!==void 0){if(g)continue;f=!1;break}if(p){if(!Zt(t,function(e,t){if(!K(p,t)&&(m===e||i(m,e,n,r,a)))return p.push(t)})){f=!1;break}}else if(!(m===h||i(m,h,n,r,a))){f=!1;break}}return a.delete(e),a.delete(t),f}function tn(e){var t=-1,n=Array(e.size);return e.forEach(function(e,r){n[++t]=[r,e]}),n}function q(e){var t=-1,n=Array(e.size);return e.forEach(function(e){n[++t]=e}),n}var nn=1,rn=2,an=`[object Boolean]`,on=`[object Date]`,sn=`[object Error]`,cn=`[object Map]`,ln=`[object Number]`,un=`[object RegExp]`,dn=`[object Set]`,fn=`[object String]`,pn=`[object Symbol]`,mn=`[object ArrayBuffer]`,hn=`[object DataView]`,gn=l?l.prototype:void 0,J=gn?gn.valueOf:void 0;function _n(t,n,r,i,a,o,s){switch(r){case hn:if(t.byteLength!=n.byteLength||t.byteOffset!=n.byteOffset)return!1;t=t.buffer,n=n.buffer;case mn:return!(t.byteLength!=n.byteLength||!o(new b(t),new b(n)));case an:case on:case ln:return e(+t,+n);case sn:return t.name==n.name&&t.message==n.message;case un:case fn:return t==n+``;case cn:var c=tn;case dn:var l=i&nn;if(c||=q,t.size!=n.size&&!l)return!1;var u=s.get(t);if(u)return u==n;i|=rn,s.set(t,n);var d=en(c(t),c(n),i,a,o,s);return s.delete(t),d;case pn:if(J)return J.call(t)==J.call(n)}return!1}var vn=1,yn=Object.prototype.hasOwnProperty;function bn(e,t,n,r,i,a){var o=n&vn,s=H(e),c=s.length;if(c!=H(t).length&&!o)return!1;for(var l=c;l--;){var u=s[l];if(!(o?u in t:yn.call(t,u)))return!1}var d=a.get(e),f=a.get(t);if(d&&f)return d==t&&f==e;var p=!0;a.set(e,t),a.set(t,e);for(var m=o;++l<c;){u=s[l];var h=e[u],g=t[u];if(r)var _=o?r(g,h,u,t,e,a):r(h,g,u,e,t,a);if(!(_===void 0?h===g||i(h,g,n,r,a):_)){p=!1;break}m||=u==`constructor`}if(p&&!m){var v=e.constructor,y=t.constructor;v!=y&&`constructor`in e&&`constructor`in t&&!(typeof v==`function`&&v instanceof v&&typeof y==`function`&&y instanceof y)&&(p=!1)}return a.delete(e),a.delete(t),p}var xn=1,Sn=`[object Arguments]`,Cn=`[object Array]`,Y=`[object Object]`,wn=Object.prototype.hasOwnProperty;function Tn(e,t,n,r,i,a){var o=c(e),s=c(t),l=o?Cn:T(e),u=s?Cn:T(t);l=l==Sn?Y:l,u=u==Sn?Y:u;var d=l==Y,f=u==Y,m=l==u;if(m&&C(e)){if(!C(t))return!1;o=!0,d=!1}if(m&&!d)return a||=new p,o||h(e)?en(e,t,n,r,i,a):_n(e,t,l,n,r,i,a);if(!(n&xn)){var g=d&&wn.call(e,`__wrapped__`),_=f&&wn.call(t,`__wrapped__`);if(g||_){var v=g?e.value():e,y=_?t.value():t;return a||=new p,i(v,y,n,r,a)}}return m?(a||=new p,bn(e,t,n,r,i,a)):!1}function X(e,t,n,i,a){return e===t?!0:e==null||t==null||!r(e)&&!r(t)?e!==e&&t!==t:Tn(e,t,n,i,X,a)}var En=1,Dn=2;function On(e,t,n,r){var i=n.length,a=i,o=!r;if(e==null)return!a;for(e=Object(e);i--;){var s=n[i];if(o&&s[2]?s[1]!==e[s[0]]:!(s[0]in e))return!1}for(;++i<a;){s=n[i];var c=s[0],l=e[c],u=s[1];if(o&&s[2]){if(l===void 0&&!(c in e))return!1}else{var d=new p;if(r)var f=r(l,u,c,e,t,d);if(!(f===void 0?X(u,l,En|Dn,r,d):f))return!1}}return!0}function kn(e){return e===e&&!t(e)}function An(e){for(var t=k(e),n=t.length;n--;){var r=t[n],i=e[r];t[n]=[r,i,kn(i)]}return t}function Z(e,t){return function(n){return n==null?!1:n[e]===t&&(t!==void 0||e in Object(n))}}function jn(e){var t=An(e);return t.length==1&&t[0][2]?Z(t[0][0],t[0][1]):function(n){return n===e||On(n,e,t)}}function Mn(e,t){return e!=null&&t in Object(e)}function Nn(e,t,n){t=M(t,e);for(var r=-1,a=t.length,s=!1;++r<a;){var l=N(t[r]);if(!(s=e!=null&&n(e,l)))break;e=e[l]}return s||++r!=a?s:(a=e==null?0:e.length,!!a&&o(a)&&i(l,a)&&(c(e)||f(e)))}function Pn(e,t){return e!=null&&Nn(e,t,Mn)}var Fn=1,In=2;function Ln(e,t){return A(e)&&kn(t)?Z(N(e),t):function(n){var r=Ee(n,e);return r===void 0&&r===t?Pn(n,e):X(t,r,Fn|In)}}function Rn(e){return function(t){return t?.[e]}}function zn(e){return function(t){return P(t,e)}}function Bn(e){return A(e)?Rn(N(e)):zn(e)}function Q(e){return typeof e==`function`?e:e==null?w:typeof e==`object`?c(e)?Ln(e[0],e[1]):jn(e):Bn(e)}function Vn(e,t){return e&&ee(e,t,k)}function Hn(e,t){return function(n,r){if(n==null)return n;if(!S(n))return e(n,r);for(var i=n.length,a=t?i:-1,o=Object(n);(t?a--:++a<i)&&r(o[a],a,o)!==!1;);return n}}var $=Hn(Vn);function Un(e,t,n){for(var r=-1,i=e==null?0:e.length;++r<i;)if(n(t,e[r]))return!0;return!1}function Wn(e){return typeof e==`function`?e:w}function Gn(e,t){return(c(e)?fe:$)(e,Wn(t))}function Kn(e,t){var n=[];return $(e,function(e,r,i){t(e,r,i)&&n.push(e)}),n}function qn(e,t){return(c(e)?R:Kn)(e,Q(t,3))}function Jn(e,t){return O(t,function(t){return e[t]})}function Yn(e){return e==null?[]:Jn(e,k(e))}function Xn(e){return e===void 0}function Zn(e,t,n,r,i){return i(e,function(e,i,a){n=r?(r=!1,e):t(n,e,i,a)}),n}function Qn(e,t,n){var r=c(e)?Oe:Zn,i=arguments.length<3;return r(e,Q(t,4),n,i,$)}var $n=E&&1/q(new E([,-0]))[1]==1/0?function(e){return new E(e)}:de,er=200;function tr(e,t,n){var r=-1,i=_e,a=e.length,o=!0,s=[],c=s;if(n)o=!1,i=Un;else if(a>=er){var l=t?null:$n(e);if(l)return q(l);o=!1,i=K,c=new G}else c=t?[]:s;outer:for(;++r<a;){var u=e[r],d=t?t(u):u;if(u=n||u!==0?u:0,o&&d===d){for(var f=c.length;f--;)if(c[f]===d)continue outer;t&&c.push(d),s.push(u)}else i(c,d,n)||(c!==s&&c.push(d),s.push(u))}return s}export{pe as A,P as C,k as D,j as E,O as M,D as N,_e as O,L as S,M as T,Zt as _,qn as a,Ie as b,Wn as c,Vn as d,Q as f,K as g,Nn as h,Yn as i,de as j,ge as k,Un as l,Pn as m,Qn as n,Kn as o,Rn as p,Xn as r,Gn as s,tr as t,$ as u,G as v,N as w,R as x,W as y};
@@ -1 +0,0 @@
1
- import"./chunk-K5T4RW27-D51O7IkG.js";import{n as e}from"./chunk-7N4EOEYR-CzLGefVf.js";export{e as createArchitectureServices};