@kky42/pievo-server 1.0.0

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 (197) hide show
  1. package/.output/nitro.json +17 -0
  2. package/.output/public/assets/CodeField-dOzyFQNH.js +34 -0
  3. package/.output/public/assets/LoopView-B4H9QibC.js +55 -0
  4. package/.output/public/assets/Modal-D33gNSgx.js +1 -0
  5. package/.output/public/assets/SignIn-SHuRRyOv.js +1 -0
  6. package/.output/public/assets/actionUi-ChGGALzg.js +1 -0
  7. package/.output/public/assets/app-DElSo_jy.css +2 -0
  8. package/.output/public/assets/artifactView-DFuubXLJ.js +66 -0
  9. package/.output/public/assets/index-DfpTWRSz.js +12 -0
  10. package/.output/public/assets/invite._token-DJtd-XE2.js +1 -0
  11. package/.output/public/assets/invite._token-T8oo4Qtw.js +1 -0
  12. package/.output/public/assets/jsx-runtime-BseJUIpC.js +1 -0
  13. package/.output/public/assets/lifecycleUi-DKkChdnU.js +1 -0
  14. package/.output/public/assets/loopApi-BM2nj71x.js +3 -0
  15. package/.output/public/assets/loops._loopId-B19Jw7jC.js +5 -0
  16. package/.output/public/assets/loops._loopId_.runs._runId-_CflHV38.js +3 -0
  17. package/.output/public/assets/notifyFns-DCubjpRy.js +1 -0
  18. package/.output/public/assets/preload-helper-CKUiEq3b.js +3 -0
  19. package/.output/public/assets/routes-B9tgli5f.js +1 -0
  20. package/.output/public/assets/routes-CTtlM_qt.js +1 -0
  21. package/.output/public/assets/t._teamId-Bm21mngW.js +1 -0
  22. package/.output/public/assets/t._teamId-gR7BVKkR.js +1 -0
  23. package/.output/public/assets/ui-Dp88qUWh.js +1 -0
  24. package/.output/public/assets/useRouter-DsjH8G0p.js +1 -0
  25. package/.output/public/favicon.svg +12 -0
  26. package/.output/public/fonts/GeistPixel-Square.woff2 +0 -0
  27. package/.output/server/_chunks/ssr-renderer.mjs +26 -0
  28. package/.output/server/_libs/@aws-crypto/crc32+[...].mjs +419 -0
  29. package/.output/server/_libs/@aws-sdk/checksums+[...].mjs +10732 -0
  30. package/.output/server/_libs/@aws-sdk/client-s3+[...].mjs +9475 -0
  31. package/.output/server/_libs/@aws-sdk/credential-provider-http+[...].mjs +137 -0
  32. package/.output/server/_libs/@aws-sdk/credential-provider-ini+[...].mjs +440 -0
  33. package/.output/server/_libs/@aws-sdk/credential-provider-process+[...].mjs +62 -0
  34. package/.output/server/_libs/@aws-sdk/credential-provider-sso+[...].mjs +818 -0
  35. package/.output/server/_libs/@aws-sdk/credential-provider-web-identity+[...].mjs +59 -0
  36. package/.output/server/_libs/@base-ui/react+[...].mjs +11125 -0
  37. package/.output/server/_libs/@codemirror/autocomplete+[...].mjs +19713 -0
  38. package/.output/server/_libs/@codemirror/lang-css+[...].mjs +2636 -0
  39. package/.output/server/_libs/@codemirror/lang-html+[...].mjs +2247 -0
  40. package/.output/server/_libs/@codemirror/lang-json+[...].mjs +79 -0
  41. package/.output/server/_libs/@reduxjs/toolkit+[...].mjs +1736 -0
  42. package/.output/server/_libs/@smithy/credential-provider-imds+[...].mjs +342 -0
  43. package/.output/server/_libs/@tanstack/react-router+[...].mjs +14300 -0
  44. package/.output/server/_libs/@uiw/codemirror-extensions-basic-setup+[...].mjs +76 -0
  45. package/.output/server/_libs/atomic-sleep.mjs +27 -0
  46. package/.output/server/_libs/aws-crypto__crc32c.mjs +314 -0
  47. package/.output/server/_libs/aws-sdk__nested-clients.mjs +2671 -0
  48. package/.output/server/_libs/babel__runtime.mjs +30 -0
  49. package/.output/server/_libs/clsx.mjs +16 -0
  50. package/.output/server/_libs/codemirror__commands.mjs +1725 -0
  51. package/.output/server/_libs/codemirror__lint.mjs +565 -0
  52. package/.output/server/_libs/codemirror__search.mjs +1138 -0
  53. package/.output/server/_libs/codemirror__theme-one-dark.mjs +161 -0
  54. package/.output/server/_libs/colorette.mjs +129 -0
  55. package/.output/server/_libs/croner.mjs +735 -0
  56. package/.output/server/_libs/d3-array.mjs +231 -0
  57. package/.output/server/_libs/d3-color.mjs +330 -0
  58. package/.output/server/_libs/d3-format.mjs +252 -0
  59. package/.output/server/_libs/d3-interpolate.mjs +163 -0
  60. package/.output/server/_libs/d3-path.mjs +77 -0
  61. package/.output/server/_libs/d3-scale+[...].mjs +1907 -0
  62. package/.output/server/_libs/d3-shape.mjs +689 -0
  63. package/.output/server/_libs/dateformat.mjs +341 -0
  64. package/.output/server/_libs/decimal.js-light.mjs +884 -0
  65. package/.output/server/_libs/diff.mjs +732 -0
  66. package/.output/server/_libs/dom-serializer+[...].mjs +708 -0
  67. package/.output/server/_libs/domhandler.mjs +461 -0
  68. package/.output/server/_libs/dompurify.mjs +2111 -0
  69. package/.output/server/_libs/domutils.mjs +868 -0
  70. package/.output/server/_libs/drizzle-orm+postgres.mjs +7689 -0
  71. package/.output/server/_libs/electric-sql__pglite.mjs +14674 -0
  72. package/.output/server/_libs/end-of-stream+once+wrappy.mjs +145 -0
  73. package/.output/server/_libs/es-toolkit.mjs +1737 -0
  74. package/.output/server/_libs/eventemitter3.mjs +236 -0
  75. package/.output/server/_libs/fast-copy.mjs +285 -0
  76. package/.output/server/_libs/fast-safe-stringify.mjs +172 -0
  77. package/.output/server/_libs/h3+rou3+srvx.mjs +1201 -0
  78. package/.output/server/_libs/html-dom-parser+htmlparser2.mjs +1560 -0
  79. package/.output/server/_libs/html-react-parser+[...].mjs +1360 -0
  80. package/.output/server/_libs/initdb.wasm +0 -0
  81. package/.output/server/_libs/marked.mjs +1548 -0
  82. package/.output/server/_libs/on-exit-leak-free.mjs +80 -0
  83. package/.output/server/_libs/pglite.data +37667 -8
  84. package/.output/server/_libs/pglite.wasm +0 -0
  85. package/.output/server/_libs/pino+[...].mjs +3196 -0
  86. package/.output/server/_libs/pino-abstract-transport+split2.mjs +194 -0
  87. package/.output/server/_libs/pino-pretty+[...].mjs +1623 -0
  88. package/.output/server/_libs/pinojs__redact.mjs +280 -0
  89. package/.output/server/_libs/react-redux+[...].mjs +205 -0
  90. package/.output/server/_libs/recharts+victory-vendor.mjs +15875 -0
  91. package/.output/server/_libs/tanstack__history.mjs +342 -0
  92. package/.output/server/_libs/ufo.mjs +64 -0
  93. package/.output/server/_libs/uiw__codemirror-themes.mjs +32 -0
  94. package/.output/server/_libs/uiw__react-codemirror.mjs +354 -0
  95. package/.output/server/_runtime.mjs +37 -0
  96. package/.output/server/_ssr/CodeField-tm4rr6G3.mjs +143 -0
  97. package/.output/server/_ssr/DashboardView-CC7htv28.mjs +2795 -0
  98. package/.output/server/_ssr/LoopPlaybook-BXH8mhiX.mjs +2105 -0
  99. package/.output/server/_ssr/LoopView-DCugEbHx.mjs +1106 -0
  100. package/.output/server/_ssr/Modal-DpKZHLZK.mjs +49 -0
  101. package/.output/server/_ssr/SignIn-dTndU6Hw.mjs +67 -0
  102. package/.output/server/_ssr/actionUi-CZbEixbf.mjs +119 -0
  103. package/.output/server/_ssr/adapters-BS8XosjF.mjs +130 -0
  104. package/.output/server/_ssr/artifactFiles-Cagtj7J0.mjs +61 -0
  105. package/.output/server/_ssr/artifactKind-BW0isV8L.mjs +37 -0
  106. package/.output/server/_ssr/artifactView-DS4O22wl.mjs +304 -0
  107. package/.output/server/_ssr/artifacts-DngKyW2u.mjs +2 -0
  108. package/.output/server/_ssr/auth-DY1DuYZd.mjs +38429 -0
  109. package/.output/server/_ssr/boot-BbtG0ImW.mjs +9010 -0
  110. package/.output/server/_ssr/boot-CMHTxQpJ.mjs +2 -0
  111. package/.output/server/_ssr/bun-sqlite-dialect-BW9W1_Ps-CU1Spd6z.mjs +162 -0
  112. package/.output/server/_ssr/core-RrmWoKne.mjs +5 -0
  113. package/.output/server/_ssr/createServerRpc-BD8Xn_0_.mjs +12 -0
  114. package/.output/server/_ssr/d1-sqlite-dialect-BLC8LXE6-DfG7tB8s.mjs +112 -0
  115. package/.output/server/_ssr/db-DWAuZq1o.mjs +2 -0
  116. package/.output/server/_ssr/dist-BIxFFVZg.mjs +342 -0
  117. package/.output/server/_ssr/empty-plugin-adapters-DKUlnwwl.mjs +5 -0
  118. package/.output/server/_ssr/factory-Blq0DYfT.mjs +6903 -0
  119. package/.output/server/_ssr/invite._token-BRCo9LGB.mjs +36 -0
  120. package/.output/server/_ssr/invite._token-DJxGLILJ.mjs +28 -0
  121. package/.output/server/_ssr/invite._token-NewFt27g.mjs +92 -0
  122. package/.output/server/_ssr/kysely-adapter-D3XTe64J.mjs +2 -0
  123. package/.output/server/_ssr/kysely-migration-tables-JkVUjPF_-bPAX9LR_.mjs +19 -0
  124. package/.output/server/_ssr/lifecycleUi-C9lg1r3r.mjs +38 -0
  125. package/.output/server/_ssr/logger-Dw82jNjH.mjs +2 -0
  126. package/.output/server/_ssr/loopApi-BtfkZQYK.mjs +532 -0
  127. package/.output/server/_ssr/loopApi-Cxe8WyOB.mjs +105 -0
  128. package/.output/server/_ssr/loops._loopId-7NQJPB9W.mjs +30 -0
  129. package/.output/server/_ssr/loops._loopId-DhnArGdL.mjs +1635 -0
  130. package/.output/server/_ssr/loops._loopId_.runs._runId-Bvuo2nki.mjs +29 -0
  131. package/.output/server/_ssr/loops._loopId_.runs._runId-Dip5Xk-q.mjs +674 -0
  132. package/.output/server/_ssr/machineFns-Dvr5ICUy.mjs +266 -0
  133. package/.output/server/_ssr/node-sqlite-dialect-DhyOpJTX.mjs +162 -0
  134. package/.output/server/_ssr/notifyFns-BcMRY5kP.mjs +118 -0
  135. package/.output/server/_ssr/notifyFns-Q458pZmE.mjs +580 -0
  136. package/.output/server/_ssr/router-J8KZ30xw.mjs +678 -0
  137. package/.output/server/_ssr/routes-Bcs4T1ox.mjs +28 -0
  138. package/.output/server/_ssr/routes-BoGrcf-b.mjs +43 -0
  139. package/.output/server/_ssr/routes-D4am3Zff.mjs +28 -0
  140. package/.output/server/_ssr/runDiff-CpEFqo7G.mjs +113 -0
  141. package/.output/server/_ssr/ssr.mjs +5837 -0
  142. package/.output/server/_ssr/start-4ifArtKx.mjs +4 -0
  143. package/.output/server/_ssr/store-b3JcQ08F.mjs +2 -0
  144. package/.output/server/_ssr/t._teamId-CeUhzgzT.mjs +32 -0
  145. package/.output/server/_ssr/t._teamId-DR-hQK7o.mjs +47 -0
  146. package/.output/server/_ssr/t._teamId-Dy_McbRt.mjs +31 -0
  147. package/.output/server/_ssr/teamCookie-B7hLOIie.mjs +10 -0
  148. package/.output/server/_ssr/teamFns-BIDnsg2A.mjs +473 -0
  149. package/.output/server/_ssr/teamFns-DA4ovI5g.mjs +33 -0
  150. package/.output/server/_ssr/tokens-ytd60FUt.mjs +2 -0
  151. package/.output/server/_ssr/ui-Dej2qjuS.mjs +267 -0
  152. package/.output/server/_tanstack-start-manifest_v-CVS6c7re.mjs +95 -0
  153. package/.output/server/drizzle/0000_round_marauders.sql +193 -0
  154. package/.output/server/drizzle/0001_naive_silver_fox.sql +25 -0
  155. package/.output/server/drizzle/0002_funny_sage.sql +12 -0
  156. package/.output/server/drizzle/0003_optimal_slapstick.sql +102 -0
  157. package/.output/server/drizzle/0004_remove_grok_agent.sql +5 -0
  158. package/.output/server/drizzle/0005_heavy_gauntlet.sql +8 -0
  159. package/.output/server/drizzle/0006_tranquil_sharon_carter.sql +1 -0
  160. package/.output/server/drizzle/0007_faulty_starbolt.sql +30 -0
  161. package/.output/server/drizzle/0008_durable_lifecycle_evidence.sql +15 -0
  162. package/.output/server/drizzle/meta/0000_snapshot.json +1333 -0
  163. package/.output/server/drizzle/meta/0001_snapshot.json +1498 -0
  164. package/.output/server/drizzle/meta/0002_snapshot.json +1576 -0
  165. package/.output/server/drizzle/meta/0003_snapshot.json +1666 -0
  166. package/.output/server/drizzle/meta/0005_snapshot.json +1666 -0
  167. package/.output/server/drizzle/meta/0006_snapshot.json +1672 -0
  168. package/.output/server/drizzle/meta/0007_snapshot.json +1787 -0
  169. package/.output/server/drizzle/meta/_journal.json +69 -0
  170. package/.output/server/index.mjs +464 -0
  171. package/.output/server/node_modules/tslib/modules/index.js +70 -0
  172. package/.output/server/node_modules/tslib/modules/package.json +3 -0
  173. package/.output/server/node_modules/tslib/package.json +47 -0
  174. package/.output/server/node_modules/tslib/tslib.js +484 -0
  175. package/.output/server/package.json +9 -0
  176. package/LICENSE +21 -0
  177. package/drizzle/0000_round_marauders.sql +193 -0
  178. package/drizzle/0001_naive_silver_fox.sql +25 -0
  179. package/drizzle/0002_funny_sage.sql +12 -0
  180. package/drizzle/0003_optimal_slapstick.sql +102 -0
  181. package/drizzle/0004_remove_grok_agent.sql +5 -0
  182. package/drizzle/0005_heavy_gauntlet.sql +8 -0
  183. package/drizzle/0006_tranquil_sharon_carter.sql +1 -0
  184. package/drizzle/0007_faulty_starbolt.sql +30 -0
  185. package/drizzle/0008_durable_lifecycle_evidence.sql +15 -0
  186. package/drizzle/meta/0000_snapshot.json +1333 -0
  187. package/drizzle/meta/0001_snapshot.json +1498 -0
  188. package/drizzle/meta/0002_snapshot.json +1576 -0
  189. package/drizzle/meta/0003_snapshot.json +1666 -0
  190. package/drizzle/meta/0005_snapshot.json +1666 -0
  191. package/drizzle/meta/0006_snapshot.json +1672 -0
  192. package/drizzle/meta/0007_snapshot.json +1787 -0
  193. package/drizzle/meta/_journal.json +69 -0
  194. package/package.json +84 -0
  195. package/scripts/pievo-server.mjs +390 -0
  196. package/scripts/prestart.mjs +66 -0
  197. package/scripts/server-cli-lib.mjs +451 -0
@@ -0,0 +1,565 @@
1
+ import { $ as getPanel, Dt as combineConfig, J as WidgetType, K as EditorView, St as StateField, W as Decoration, Y as activateHover, bt as RangeSetBuilder, dt as crelt, rt as hoverTooltip, ut as showPanel, vt as Facet, xt as StateEffect } from "./@codemirror/autocomplete+[...].mjs";
2
+ //#region ../../node_modules/.pnpm/@codemirror+lint@6.9.7/node_modules/@codemirror/lint/dist/index.js
3
+ var SelectedDiagnostic = class {
4
+ constructor(from, to, diagnostic) {
5
+ this.from = from;
6
+ this.to = to;
7
+ this.diagnostic = diagnostic;
8
+ }
9
+ };
10
+ var LintState = class LintState {
11
+ constructor(diagnostics, panel, selected) {
12
+ this.diagnostics = diagnostics;
13
+ this.panel = panel;
14
+ this.selected = selected;
15
+ }
16
+ static init(diagnostics, panel, state) {
17
+ let diagnosticFilter = state.facet(lintConfig).markerFilter;
18
+ if (diagnosticFilter) diagnostics = diagnosticFilter(diagnostics, state);
19
+ let sorted = diagnostics.slice().sort((a, b) => a.from - b.from || a.to - b.to);
20
+ let deco = new RangeSetBuilder(), active = [], pos = 0;
21
+ let scan = state.doc.iter(), scanPos = 0, docLen = state.doc.length;
22
+ for (let i = 0;;) {
23
+ let next = i == sorted.length ? null : sorted[i];
24
+ if (!next && !active.length) break;
25
+ let from, to;
26
+ if (active.length) {
27
+ from = pos;
28
+ to = active.reduce((p, d) => Math.min(p, d.to), next && next.from > from ? next.from : 1e8);
29
+ } else {
30
+ from = next.from;
31
+ if (from > docLen) break;
32
+ to = next.to;
33
+ active.push(next);
34
+ i++;
35
+ }
36
+ while (i < sorted.length) {
37
+ let next = sorted[i];
38
+ if (next.from == from && (next.to > next.from || next.to == from)) {
39
+ active.push(next);
40
+ i++;
41
+ to = Math.min(next.to, to);
42
+ } else {
43
+ to = Math.min(next.from, to);
44
+ break;
45
+ }
46
+ }
47
+ to = Math.min(to, docLen);
48
+ let widget = false;
49
+ if (active.some((d) => d.from == from && (d.to == to || to == docLen))) {
50
+ widget = from == to;
51
+ if (!widget && to - from < 10) {
52
+ let behind = from - (scanPos + scan.value.length);
53
+ if (behind > 0) {
54
+ scan.next(behind);
55
+ scanPos = from;
56
+ }
57
+ for (let check = from;;) {
58
+ if (check >= to) {
59
+ widget = true;
60
+ break;
61
+ }
62
+ if (!scan.lineBreak && scanPos + scan.value.length > check) break;
63
+ check = scanPos + scan.value.length;
64
+ scanPos += scan.value.length;
65
+ scan.next();
66
+ }
67
+ }
68
+ }
69
+ let sev = maxSeverity(active);
70
+ if (widget) deco.add(from, from, Decoration.widget({
71
+ widget: new DiagnosticWidget(sev),
72
+ diagnostics: active.slice()
73
+ }));
74
+ else {
75
+ let markClass = active.reduce((c, d) => d.markClass ? c + " " + d.markClass : c, "");
76
+ deco.add(from, to, Decoration.mark({
77
+ class: "cm-lintRange cm-lintRange-" + sev + markClass,
78
+ diagnostics: active.slice(),
79
+ inclusiveEnd: active.some((a) => a.to > to)
80
+ }));
81
+ }
82
+ pos = to;
83
+ if (pos == docLen) break;
84
+ for (let i = 0; i < active.length; i++) if (active[i].to <= pos) active.splice(i--, 1);
85
+ }
86
+ let set = deco.finish();
87
+ return new LintState(set, panel, findDiagnostic(set));
88
+ }
89
+ };
90
+ function findDiagnostic(diagnostics, diagnostic = null, after = 0) {
91
+ let found = null;
92
+ diagnostics.between(after, 1e9, (from, to, { spec }) => {
93
+ if (diagnostic && spec.diagnostics.indexOf(diagnostic) < 0) return;
94
+ if (!found) found = new SelectedDiagnostic(from, to, diagnostic || spec.diagnostics[0]);
95
+ else if (spec.diagnostics.indexOf(found.diagnostic) < 0) return false;
96
+ else found = new SelectedDiagnostic(found.from, to, found.diagnostic);
97
+ });
98
+ return found;
99
+ }
100
+ function hideTooltip(tr, tooltip) {
101
+ let from = tooltip.pos, to = tooltip.end || from;
102
+ let result = tr.state.facet(lintConfig).hideOn(tr, from, to);
103
+ if (result != null) return result;
104
+ let line = tr.startState.doc.lineAt(tooltip.pos);
105
+ return !!(tr.effects.some((e) => e.is(setDiagnosticsEffect)) || tr.changes.touchesRange(line.from, Math.max(line.to, to)));
106
+ }
107
+ function maybeEnableLint(state, effects) {
108
+ return state.field(lintState, false) ? effects : effects.concat(StateEffect.appendConfig.of(lintExtensions));
109
+ }
110
+ /**
111
+ The state effect that updates the set of active diagnostics. Can
112
+ be useful when writing an extension that needs to track these.
113
+ */
114
+ var setDiagnosticsEffect = /*@__PURE__*/ StateEffect.define();
115
+ var togglePanel = /*@__PURE__*/ StateEffect.define();
116
+ var movePanelSelection = /*@__PURE__*/ StateEffect.define();
117
+ var lintState = /*@__PURE__*/ StateField.define({
118
+ create() {
119
+ return new LintState(Decoration.none, null, null);
120
+ },
121
+ update(value, tr) {
122
+ if (tr.docChanged && value.diagnostics.size) {
123
+ let mapped = value.diagnostics.map(tr.changes), selected = null, panel = value.panel;
124
+ if (value.selected) {
125
+ let selPos = tr.changes.mapPos(value.selected.from, 1);
126
+ selected = findDiagnostic(mapped, value.selected.diagnostic, selPos) || findDiagnostic(mapped, null, selPos);
127
+ }
128
+ if (!mapped.size && panel && tr.state.facet(lintConfig).autoPanel) panel = null;
129
+ value = new LintState(mapped, panel, selected);
130
+ }
131
+ for (let effect of tr.effects) if (effect.is(setDiagnosticsEffect)) {
132
+ let panel = !tr.state.facet(lintConfig).autoPanel ? value.panel : effect.value.length ? LintPanel.open : null;
133
+ value = LintState.init(effect.value, panel, tr.state);
134
+ } else if (effect.is(togglePanel)) value = new LintState(value.diagnostics, effect.value ? LintPanel.open : null, value.selected);
135
+ else if (effect.is(movePanelSelection)) value = new LintState(value.diagnostics, value.panel, effect.value);
136
+ return value;
137
+ },
138
+ provide: (f) => [showPanel.from(f, (val) => val.panel), EditorView.decorations.from(f, (s) => s.diagnostics)]
139
+ });
140
+ var activeMark = /*@__PURE__*/ Decoration.mark({ class: "cm-lintRange cm-lintRange-active" });
141
+ function lintTooltip(view, pos, side) {
142
+ let { diagnostics } = view.state.field(lintState);
143
+ let found, start = -1, end = -1;
144
+ diagnostics.between(pos - (side < 0 ? 1 : 0), pos + (side > 0 ? 1 : 0), (from, to, { spec }) => {
145
+ if (pos >= from && pos <= to && (from == to || (pos > from || side > 0) && (pos < to || side < 0))) {
146
+ found = spec.diagnostics;
147
+ start = from;
148
+ end = to;
149
+ return false;
150
+ }
151
+ });
152
+ let diagnosticFilter = view.state.facet(lintConfig).tooltipFilter;
153
+ if (found && diagnosticFilter) found = diagnosticFilter(found, view.state);
154
+ if (!found) return null;
155
+ return {
156
+ pos: start,
157
+ end,
158
+ above: true,
159
+ create() {
160
+ return { dom: diagnosticsTooltip(view, found) };
161
+ }
162
+ };
163
+ }
164
+ function diagnosticsTooltip(view, diagnostics) {
165
+ return crelt("ul", { class: "cm-tooltip-lint" }, diagnostics.map((d) => renderDiagnostic(view, d, false)));
166
+ }
167
+ /**
168
+ Command to open and focus the lint panel.
169
+ */
170
+ var openLintPanel = (view) => {
171
+ let field = view.state.field(lintState, false);
172
+ if (!field || !field.panel) view.dispatch({ effects: maybeEnableLint(view.state, [togglePanel.of(true)]) });
173
+ let panel = getPanel(view, LintPanel.open);
174
+ if (panel) panel.dom.querySelector(".cm-panel-lint ul").focus();
175
+ return true;
176
+ };
177
+ /**
178
+ Command to close the lint panel, when open.
179
+ */
180
+ var closeLintPanel = (view) => {
181
+ let field = view.state.field(lintState, false);
182
+ if (!field || !field.panel) return false;
183
+ view.dispatch({ effects: togglePanel.of(false) });
184
+ return true;
185
+ };
186
+ /**
187
+ Move the selection to the next diagnostic.
188
+ */
189
+ var nextDiagnostic = (view) => {
190
+ let field = view.state.field(lintState, false);
191
+ if (!field) return false;
192
+ let sel = view.state.selection.main, next = findDiagnostic(field.diagnostics, null, sel.to + 1);
193
+ if (!next) {
194
+ next = findDiagnostic(field.diagnostics, null, 0);
195
+ if (!next || next.from == sel.from && next.to == sel.to) return false;
196
+ }
197
+ view.dispatch({
198
+ selection: {
199
+ anchor: next.from,
200
+ head: next.to
201
+ },
202
+ scrollIntoView: true
203
+ });
204
+ activateHover(view, next.from, 1, {
205
+ tooltip: lintHover,
206
+ until: (tr) => tr.docChanged || tr.newSelection.main.head < next.from || tr.newSelection.main.head > next.to
207
+ });
208
+ return true;
209
+ };
210
+ /**
211
+ A set of default key bindings for the lint functionality.
212
+
213
+ - Ctrl-Shift-m (Cmd-Shift-m on macOS): [`openLintPanel`](https://codemirror.net/6/docs/ref/#lint.openLintPanel)
214
+ - F8: [`nextDiagnostic`](https://codemirror.net/6/docs/ref/#lint.nextDiagnostic)
215
+ */
216
+ var lintKeymap = [{
217
+ key: "Mod-Shift-m",
218
+ run: openLintPanel,
219
+ preventDefault: true
220
+ }, {
221
+ key: "F8",
222
+ run: nextDiagnostic
223
+ }];
224
+ var lintConfig = /*@__PURE__*/ Facet.define({ combine(input) {
225
+ return {
226
+ sources: input.map((i) => i.source).filter((x) => x != null),
227
+ ...combineConfig(input.map((i) => i.config), {
228
+ delay: 750,
229
+ markerFilter: null,
230
+ tooltipFilter: null,
231
+ needsRefresh: null,
232
+ hideOn: () => null
233
+ }, {
234
+ delay: Math.max,
235
+ markerFilter: combineFilter,
236
+ tooltipFilter: combineFilter,
237
+ needsRefresh: (a, b) => !a ? b : !b ? a : (u) => a(u) || b(u),
238
+ hideOn: (a, b) => !a ? b : !b ? a : (t, x, y) => a(t, x, y) || b(t, x, y),
239
+ autoPanel: (a, b) => a || b
240
+ })
241
+ };
242
+ } });
243
+ function combineFilter(a, b) {
244
+ return !a ? b : !b ? a : (d, s) => b(a(d, s), s);
245
+ }
246
+ function assignKeys(actions) {
247
+ let assigned = [];
248
+ if (actions) actions: for (let { name } of actions) {
249
+ for (let i = 0; i < name.length; i++) {
250
+ let ch = name[i];
251
+ if (/[a-zA-Z]/.test(ch) && !assigned.some((c) => c.toLowerCase() == ch.toLowerCase())) {
252
+ assigned.push(ch);
253
+ continue actions;
254
+ }
255
+ }
256
+ assigned.push("");
257
+ }
258
+ return assigned;
259
+ }
260
+ function renderDiagnostic(view, diagnostic, inPanel) {
261
+ var _a;
262
+ let keys = inPanel ? assignKeys(diagnostic.actions) : [];
263
+ return crelt("li", { class: "cm-diagnostic cm-diagnostic-" + diagnostic.severity }, crelt("span", { class: "cm-diagnosticText" }, diagnostic.renderMessage ? diagnostic.renderMessage(view) : diagnostic.message), (_a = diagnostic.actions) === null || _a === void 0 ? void 0 : _a.map((action, i) => {
264
+ let fired = false, click = (e) => {
265
+ e.preventDefault();
266
+ if (fired) return;
267
+ fired = true;
268
+ let found = findDiagnostic(view.state.field(lintState).diagnostics, diagnostic);
269
+ if (found) action.apply(view, found.from, found.to);
270
+ };
271
+ let { name } = action, keyIndex = keys[i] ? name.indexOf(keys[i]) : -1;
272
+ let nameElt = keyIndex < 0 ? name : [
273
+ name.slice(0, keyIndex),
274
+ crelt("u", name.slice(keyIndex, keyIndex + 1)),
275
+ name.slice(keyIndex + 1)
276
+ ];
277
+ return crelt("button", {
278
+ type: "button",
279
+ class: "cm-diagnosticAction" + (action.markClass ? " " + action.markClass : ""),
280
+ onclick: click,
281
+ onmousedown: click,
282
+ "aria-label": ` Action: ${name}${keyIndex < 0 ? "" : ` (access key "${keys[i]})"`}.`
283
+ }, nameElt);
284
+ }), diagnostic.source && crelt("div", { class: "cm-diagnosticSource" }, diagnostic.source));
285
+ }
286
+ var DiagnosticWidget = class extends WidgetType {
287
+ constructor(sev) {
288
+ super();
289
+ this.sev = sev;
290
+ }
291
+ eq(other) {
292
+ return other.sev == this.sev;
293
+ }
294
+ toDOM() {
295
+ return crelt("span", { class: "cm-lintPoint cm-lintPoint-" + this.sev });
296
+ }
297
+ };
298
+ var PanelItem = class {
299
+ constructor(view, diagnostic) {
300
+ this.diagnostic = diagnostic;
301
+ this.id = "item_" + Math.floor(Math.random() * 4294967295).toString(16);
302
+ this.dom = renderDiagnostic(view, diagnostic, true);
303
+ this.dom.id = this.id;
304
+ this.dom.setAttribute("role", "option");
305
+ }
306
+ };
307
+ var LintPanel = class LintPanel {
308
+ constructor(view) {
309
+ this.view = view;
310
+ this.items = [];
311
+ let onkeydown = (event) => {
312
+ if (event.ctrlKey || event.altKey || event.metaKey) return;
313
+ if (event.keyCode == 27) {
314
+ closeLintPanel(this.view);
315
+ this.view.focus();
316
+ } else if (event.keyCode == 38 || event.keyCode == 33) this.moveSelection((this.selectedIndex - 1 + this.items.length) % this.items.length);
317
+ else if (event.keyCode == 40 || event.keyCode == 34) this.moveSelection((this.selectedIndex + 1) % this.items.length);
318
+ else if (event.keyCode == 36) this.moveSelection(0);
319
+ else if (event.keyCode == 35) this.moveSelection(this.items.length - 1);
320
+ else if (event.keyCode == 13) this.view.focus();
321
+ else if (event.keyCode >= 65 && event.keyCode <= 90 && this.selectedIndex >= 0) {
322
+ let { diagnostic } = this.items[this.selectedIndex], keys = assignKeys(diagnostic.actions);
323
+ for (let i = 0; i < keys.length; i++) if (keys[i].toUpperCase().charCodeAt(0) == event.keyCode) {
324
+ let found = findDiagnostic(this.view.state.field(lintState).diagnostics, diagnostic);
325
+ if (found) diagnostic.actions[i].apply(view, found.from, found.to);
326
+ }
327
+ } else return;
328
+ event.preventDefault();
329
+ };
330
+ let onclick = (event) => {
331
+ for (let i = 0; i < this.items.length; i++) if (this.items[i].dom.contains(event.target)) this.moveSelection(i);
332
+ };
333
+ this.list = crelt("ul", {
334
+ tabIndex: 0,
335
+ role: "listbox",
336
+ "aria-label": this.view.state.phrase("Diagnostics"),
337
+ onkeydown,
338
+ onclick
339
+ });
340
+ this.dom = crelt("div", { class: "cm-panel-lint" }, this.list, crelt("button", {
341
+ type: "button",
342
+ name: "close",
343
+ "aria-label": this.view.state.phrase("close"),
344
+ onclick: () => closeLintPanel(this.view)
345
+ }, "×"));
346
+ this.update();
347
+ }
348
+ get selectedIndex() {
349
+ let selected = this.view.state.field(lintState).selected;
350
+ if (!selected) return -1;
351
+ for (let i = 0; i < this.items.length; i++) if (this.items[i].diagnostic == selected.diagnostic) return i;
352
+ return -1;
353
+ }
354
+ update() {
355
+ let { diagnostics, selected } = this.view.state.field(lintState);
356
+ let i = 0, needsSync = false, newSelectedItem = null;
357
+ let seen = /* @__PURE__ */ new Set();
358
+ diagnostics.between(0, this.view.state.doc.length, (_start, _end, { spec }) => {
359
+ for (let diagnostic of spec.diagnostics) {
360
+ if (seen.has(diagnostic)) continue;
361
+ seen.add(diagnostic);
362
+ let found = -1, item;
363
+ for (let j = i; j < this.items.length; j++) if (this.items[j].diagnostic == diagnostic) {
364
+ found = j;
365
+ break;
366
+ }
367
+ if (found < 0) {
368
+ item = new PanelItem(this.view, diagnostic);
369
+ this.items.splice(i, 0, item);
370
+ needsSync = true;
371
+ } else {
372
+ item = this.items[found];
373
+ if (found > i) {
374
+ this.items.splice(i, found - i);
375
+ needsSync = true;
376
+ }
377
+ }
378
+ if (selected && item.diagnostic == selected.diagnostic) {
379
+ if (!item.dom.hasAttribute("aria-selected")) {
380
+ item.dom.setAttribute("aria-selected", "true");
381
+ newSelectedItem = item;
382
+ }
383
+ } else if (item.dom.hasAttribute("aria-selected")) item.dom.removeAttribute("aria-selected");
384
+ i++;
385
+ }
386
+ });
387
+ while (i < this.items.length && !(this.items.length == 1 && this.items[0].diagnostic.from < 0)) {
388
+ needsSync = true;
389
+ this.items.pop();
390
+ }
391
+ if (this.items.length == 0) {
392
+ this.items.push(new PanelItem(this.view, {
393
+ from: -1,
394
+ to: -1,
395
+ severity: "info",
396
+ message: this.view.state.phrase("No diagnostics")
397
+ }));
398
+ needsSync = true;
399
+ }
400
+ if (newSelectedItem) {
401
+ this.list.setAttribute("aria-activedescendant", newSelectedItem.id);
402
+ this.view.requestMeasure({
403
+ key: this,
404
+ read: () => ({
405
+ sel: newSelectedItem.dom.getBoundingClientRect(),
406
+ panel: this.list.getBoundingClientRect()
407
+ }),
408
+ write: ({ sel, panel }) => {
409
+ let scaleY = panel.height / this.list.offsetHeight;
410
+ if (sel.top < panel.top) this.list.scrollTop -= (panel.top - sel.top) / scaleY;
411
+ else if (sel.bottom > panel.bottom) this.list.scrollTop += (sel.bottom - panel.bottom) / scaleY;
412
+ }
413
+ });
414
+ } else if (this.selectedIndex < 0) this.list.removeAttribute("aria-activedescendant");
415
+ if (needsSync) this.sync();
416
+ }
417
+ sync() {
418
+ let domPos = this.list.firstChild;
419
+ function rm() {
420
+ let prev = domPos;
421
+ domPos = prev.nextSibling;
422
+ prev.remove();
423
+ }
424
+ for (let item of this.items) if (item.dom.parentNode == this.list) {
425
+ while (domPos != item.dom) rm();
426
+ domPos = item.dom.nextSibling;
427
+ } else this.list.insertBefore(item.dom, domPos);
428
+ while (domPos) rm();
429
+ }
430
+ moveSelection(selectedIndex) {
431
+ if (this.selectedIndex < 0) return;
432
+ let selection = findDiagnostic(this.view.state.field(lintState).diagnostics, this.items[selectedIndex].diagnostic);
433
+ if (!selection) return;
434
+ this.view.dispatch({
435
+ selection: {
436
+ anchor: selection.from,
437
+ head: selection.to
438
+ },
439
+ scrollIntoView: true,
440
+ effects: movePanelSelection.of(selection)
441
+ });
442
+ }
443
+ static open(view) {
444
+ return new LintPanel(view);
445
+ }
446
+ };
447
+ function svg(content, attrs = `viewBox="0 0 40 40"`) {
448
+ return `url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" ${attrs}>${encodeURIComponent(content)}</svg>')`;
449
+ }
450
+ function underline(color) {
451
+ return svg(`<path d="m0 2.5 l2 -1.5 l1 0 l2 1.5 l1 0" stroke="${color}" fill="none" stroke-width=".7"/>`, `width="6" height="3"`);
452
+ }
453
+ var baseTheme = /*@__PURE__*/ EditorView.baseTheme({
454
+ ".cm-diagnostic": {
455
+ padding: "3px 6px 3px 8px",
456
+ marginLeft: "-1px",
457
+ display: "block",
458
+ whiteSpace: "pre-wrap"
459
+ },
460
+ ".cm-diagnostic-error": { borderLeft: "5px solid #d11" },
461
+ ".cm-diagnostic-warning": { borderLeft: "5px solid orange" },
462
+ ".cm-diagnostic-info": { borderLeft: "5px solid #999" },
463
+ ".cm-diagnostic-hint": { borderLeft: "5px solid #66d" },
464
+ ".cm-diagnosticAction": {
465
+ font: "inherit",
466
+ border: "none",
467
+ padding: "2px 4px",
468
+ backgroundColor: "#444",
469
+ color: "white",
470
+ borderRadius: "3px",
471
+ marginLeft: "8px",
472
+ cursor: "pointer"
473
+ },
474
+ ".cm-diagnosticSource": {
475
+ fontSize: "70%",
476
+ opacity: .7
477
+ },
478
+ ".cm-lintRange": {
479
+ backgroundPosition: "left bottom",
480
+ backgroundRepeat: "repeat-x",
481
+ paddingBottom: "0.7px"
482
+ },
483
+ ".cm-lintRange-error": { backgroundImage: /*@__PURE__*/ underline("#f11") },
484
+ ".cm-lintRange-warning": { backgroundImage: /*@__PURE__*/ underline("orange") },
485
+ ".cm-lintRange-info": { backgroundImage: /*@__PURE__*/ underline("#999") },
486
+ ".cm-lintRange-hint": { backgroundImage: /*@__PURE__*/ underline("#66d") },
487
+ ".cm-lintRange-active": { backgroundColor: "#ffdd9980" },
488
+ ".cm-tooltip-lint": {
489
+ padding: 0,
490
+ margin: 0
491
+ },
492
+ ".cm-lintPoint": {
493
+ position: "relative",
494
+ "&:after": {
495
+ content: "\"\"",
496
+ position: "absolute",
497
+ bottom: 0,
498
+ left: "-2px",
499
+ borderLeft: "3px solid transparent",
500
+ borderRight: "3px solid transparent",
501
+ borderBottom: "4px solid #d11"
502
+ }
503
+ },
504
+ ".cm-lintPoint-warning": { "&:after": { borderBottomColor: "orange" } },
505
+ ".cm-lintPoint-info": { "&:after": { borderBottomColor: "#999" } },
506
+ ".cm-lintPoint-hint": { "&:after": { borderBottomColor: "#66d" } },
507
+ ".cm-panel.cm-panel-lint": {
508
+ position: "relative",
509
+ "& ul": {
510
+ maxHeight: "100px",
511
+ overflowY: "auto",
512
+ "& [aria-selected]": {
513
+ backgroundColor: "#ddd",
514
+ "& u": { textDecoration: "underline" }
515
+ },
516
+ "&:focus [aria-selected]": {
517
+ background_fallback: "#bdf",
518
+ backgroundColor: "Highlight",
519
+ color_fallback: "white",
520
+ color: "HighlightText"
521
+ },
522
+ "& u": { textDecoration: "none" },
523
+ padding: 0,
524
+ margin: 0
525
+ },
526
+ "& [name=close]": {
527
+ position: "absolute",
528
+ top: "0",
529
+ right: "2px",
530
+ background: "inherit",
531
+ border: "none",
532
+ font: "inherit",
533
+ padding: 0,
534
+ margin: 0
535
+ }
536
+ },
537
+ "&dark .cm-lintRange-active": { backgroundColor: "#86714a80" },
538
+ "&dark .cm-panel.cm-panel-lint ul": { "& [aria-selected]": { backgroundColor: "#2e343e" } }
539
+ });
540
+ function severityWeight(sev) {
541
+ return sev == "error" ? 4 : sev == "warning" ? 3 : sev == "info" ? 2 : 1;
542
+ }
543
+ function maxSeverity(diagnostics) {
544
+ let sev = "hint", weight = 1;
545
+ for (let d of diagnostics) {
546
+ let w = severityWeight(d.severity);
547
+ if (w > weight) {
548
+ weight = w;
549
+ sev = d.severity;
550
+ }
551
+ }
552
+ return sev;
553
+ }
554
+ var lintHover = /*@__PURE__*/ hoverTooltip(lintTooltip, { hideOn: hideTooltip });
555
+ var lintExtensions = [
556
+ lintState,
557
+ /*@__PURE__*/ EditorView.decorations.compute([lintState], (state) => {
558
+ let { selected, panel } = state.field(lintState);
559
+ return !selected || !panel || selected.from == selected.to ? Decoration.none : Decoration.set([activeMark.range(selected.from, selected.to)]);
560
+ }),
561
+ lintHover,
562
+ baseTheme
563
+ ];
564
+ //#endregion
565
+ export { lintKeymap as t };