@arkvenai/cli 0.5.1 → 0.6.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 (139) hide show
  1. package/README.md +80 -242
  2. package/dist/befehle.js +138 -77
  3. package/dist/index.js +63 -334
  4. package/dist/projekt.js +121 -0
  5. package/dist/ruf.js +45 -0
  6. package/dist/uebertragen.js +185 -0
  7. package/dist/zugang.js +114 -0
  8. package/package.json +7 -39
  9. package/CHANGELOG.md +0 -105
  10. package/dist/agents.d.ts +0 -11
  11. package/dist/agents.d.ts.map +0 -1
  12. package/dist/agents.js +0 -76
  13. package/dist/agents.js.map +0 -1
  14. package/dist/auftrag.d.ts +0 -3
  15. package/dist/auftrag.d.ts.map +0 -1
  16. package/dist/auftrag.js +0 -45
  17. package/dist/auftrag.js.map +0 -1
  18. package/dist/bauplan.d.ts +0 -15
  19. package/dist/bauplan.d.ts.map +0 -1
  20. package/dist/bauplan.js +0 -219
  21. package/dist/bauplan.js.map +0 -1
  22. package/dist/befehle.d.ts +0 -12
  23. package/dist/befehle.d.ts.map +0 -1
  24. package/dist/befehle.js.map +0 -1
  25. package/dist/befund.d.ts +0 -21
  26. package/dist/befund.d.ts.map +0 -1
  27. package/dist/befund.js +0 -107
  28. package/dist/befund.js.map +0 -1
  29. package/dist/codeAblage.d.ts +0 -31
  30. package/dist/codeAblage.d.ts.map +0 -1
  31. package/dist/codeAblage.js +0 -80
  32. package/dist/codeAblage.js.map +0 -1
  33. package/dist/deklaration.d.ts +0 -3
  34. package/dist/deklaration.d.ts.map +0 -1
  35. package/dist/deklaration.js +0 -14
  36. package/dist/deklaration.js.map +0 -1
  37. package/dist/diff.d.ts +0 -10
  38. package/dist/diff.d.ts.map +0 -1
  39. package/dist/diff.js +0 -72
  40. package/dist/diff.js.map +0 -1
  41. package/dist/erkennung.d.ts +0 -26
  42. package/dist/erkennung.d.ts.map +0 -1
  43. package/dist/erkennung.js +0 -174
  44. package/dist/erkennung.js.map +0 -1
  45. package/dist/fix.d.ts +0 -26
  46. package/dist/fix.d.ts.map +0 -1
  47. package/dist/fix.js +0 -101
  48. package/dist/fix.js.map +0 -1
  49. package/dist/geteilt/bauplan/form.d.ts +0 -100
  50. package/dist/geteilt/bauplan/form.d.ts.map +0 -1
  51. package/dist/geteilt/bauplan/form.js +0 -21
  52. package/dist/geteilt/bauplan/form.js.map +0 -1
  53. package/dist/geteilt/bauplan/index.d.ts +0 -4
  54. package/dist/geteilt/bauplan/index.d.ts.map +0 -1
  55. package/dist/geteilt/bauplan/index.js +0 -4
  56. package/dist/geteilt/bauplan/index.js.map +0 -1
  57. package/dist/geteilt/bauplan/lesen.d.ts +0 -6
  58. package/dist/geteilt/bauplan/lesen.d.ts.map +0 -1
  59. package/dist/geteilt/bauplan/lesen.js +0 -344
  60. package/dist/geteilt/bauplan/lesen.js.map +0 -1
  61. package/dist/geteilt/bauplan/schreiben.d.ts +0 -3
  62. package/dist/geteilt/bauplan/schreiben.d.ts.map +0 -1
  63. package/dist/geteilt/bauplan/schreiben.js +0 -80
  64. package/dist/geteilt/bauplan/schreiben.js.map +0 -1
  65. package/dist/index.d.ts +0 -3
  66. package/dist/index.d.ts.map +0 -1
  67. package/dist/index.js.map +0 -1
  68. package/dist/init.d.ts +0 -28
  69. package/dist/init.d.ts.map +0 -1
  70. package/dist/init.js +0 -324
  71. package/dist/init.js.map +0 -1
  72. package/dist/login.d.ts +0 -45
  73. package/dist/login.d.ts.map +0 -1
  74. package/dist/login.js +0 -162
  75. package/dist/login.js.map +0 -1
  76. package/dist/mcp.d.ts +0 -18
  77. package/dist/mcp.d.ts.map +0 -1
  78. package/dist/mcp.js +0 -115
  79. package/dist/mcp.js.map +0 -1
  80. package/dist/neu.d.ts +0 -17
  81. package/dist/neu.d.ts.map +0 -1
  82. package/dist/neu.js +0 -118
  83. package/dist/neu.js.map +0 -1
  84. package/dist/npmrc.d.ts +0 -9
  85. package/dist/npmrc.d.ts.map +0 -1
  86. package/dist/npmrc.js +0 -49
  87. package/dist/npmrc.js.map +0 -1
  88. package/dist/projekte.d.ts +0 -23
  89. package/dist/projekte.d.ts.map +0 -1
  90. package/dist/projekte.js +0 -82
  91. package/dist/projekte.js.map +0 -1
  92. package/dist/pull.d.ts +0 -15
  93. package/dist/pull.d.ts.map +0 -1
  94. package/dist/pull.js +0 -301
  95. package/dist/pull.js.map +0 -1
  96. package/dist/push/bericht.d.ts +0 -8
  97. package/dist/push/bericht.d.ts.map +0 -1
  98. package/dist/push/bericht.js +0 -85
  99. package/dist/push/bericht.js.map +0 -1
  100. package/dist/push/form.d.ts +0 -67
  101. package/dist/push/form.d.ts.map +0 -1
  102. package/dist/push/form.js +0 -6
  103. package/dist/push/form.js.map +0 -1
  104. package/dist/push/medien.d.ts +0 -7
  105. package/dist/push/medien.d.ts.map +0 -1
  106. package/dist/push/medien.js +0 -154
  107. package/dist/push/medien.js.map +0 -1
  108. package/dist/push/sammeln.d.ts +0 -34
  109. package/dist/push/sammeln.d.ts.map +0 -1
  110. package/dist/push/sammeln.js +0 -112
  111. package/dist/push/sammeln.js.map +0 -1
  112. package/dist/push/verzeichnisse.d.ts +0 -40
  113. package/dist/push/verzeichnisse.d.ts.map +0 -1
  114. package/dist/push/verzeichnisse.js +0 -158
  115. package/dist/push/verzeichnisse.js.map +0 -1
  116. package/dist/push.d.ts +0 -8
  117. package/dist/push.d.ts.map +0 -1
  118. package/dist/push.js +0 -306
  119. package/dist/push.js.map +0 -1
  120. package/dist/starter.d.ts +0 -4
  121. package/dist/starter.d.ts.map +0 -1
  122. package/dist/starter.js +0 -587
  123. package/dist/starter.js.map +0 -1
  124. package/dist/tiefpruefung.d.ts +0 -39
  125. package/dist/tiefpruefung.d.ts.map +0 -1
  126. package/dist/tiefpruefung.js +0 -56
  127. package/dist/tiefpruefung.js.map +0 -1
  128. package/dist/vertrag.d.ts +0 -6
  129. package/dist/vertrag.d.ts.map +0 -1
  130. package/dist/vertrag.js +0 -267
  131. package/dist/vertrag.js.map +0 -1
  132. package/dist/vertragSpaet.d.ts +0 -4
  133. package/dist/vertragSpaet.d.ts.map +0 -1
  134. package/dist/vertragSpaet.js +0 -158
  135. package/dist/vertragSpaet.js.map +0 -1
  136. package/dist/vorlagen.d.ts +0 -7
  137. package/dist/vorlagen.d.ts.map +0 -1
  138. package/dist/vorlagen.js +0 -83
  139. package/dist/vorlagen.js.map +0 -1
package/dist/bauplan.js DELETED
@@ -1,219 +0,0 @@
1
- import fs from 'node:fs';
2
- import path from 'node:path';
3
- import { pruefeBauplan as pruefeGeteilt, BAUPLAN_DATEI, AUFTRAG_DATEI } from './geteilt/bauplan/index.js';
4
- export { BAUPLAN_DATEI, AUFTRAG_DATEI };
5
- export function pruefeBauplan(wurzel) {
6
- const pfad = path.join(wurzel, BAUPLAN_DATEI);
7
- let roh;
8
- try {
9
- roh = fs.readFileSync(pfad, 'utf8');
10
- }
11
- catch {
12
- return [];
13
- }
14
- let geparst;
15
- try {
16
- geparst = JSON.parse(roh);
17
- }
18
- catch (e) {
19
- return [{
20
- regel: 'arkven/bauplan-json',
21
- schwere: 'hinweis',
22
- titel: `${BAUPLAN_DATEI} ist kein gültiges JSON.`,
23
- ort: BAUPLAN_DATEI,
24
- ausweg: `Meist fehlt ein Komma oder eine Klammer. Der Parser sagt: ${String(e?.message ?? e)}`,
25
- }];
26
- }
27
- return pruefeGeteilt(geparst).map((b) => ({
28
- regel: b.regel,
29
- schwere: 'hinweis',
30
- titel: b.text,
31
- ort: BAUPLAN_DATEI,
32
- ausweg: b.ausweg,
33
- }));
34
- }
35
- const DIENST_VARIABLEN = {
36
- mail: ['ARKVEN_MAIL_GATEWAY_URL', 'ARKVEN_MAIL_TOKEN'],
37
- ki: ['ARKVEN_AI_GATEWAY_URL', 'ARKVEN_AI_TOKEN'],
38
- zahlungen: ['STRIPE_SECRET', 'STRIPE_SECRET_KEY'],
39
- karten: ['GOOGLE_MAPS_API_KEY', 'GOOGLE_MAPS_BROWSER_KEY'],
40
- einbettungen: ['ARKVEN_EMBED_GATEWAY_URL'],
41
- };
42
- const DIENST_NAME = {
43
- mail: 'E-Mail-Versand',
44
- ki: 'KI-Antworten',
45
- zahlungen: 'Zahlungen (Stripe)',
46
- karten: 'Karten und Adressen (Google Maps)',
47
- einbettungen: 'Textsuche (Einbettungen)',
48
- };
49
- function quelltext(wurzel, unter) {
50
- const teile = [];
51
- const lauf = (dir, tiefe) => {
52
- if (tiefe > 10)
53
- return;
54
- let eintraege;
55
- try {
56
- eintraege = fs.readdirSync(dir, { withFileTypes: true });
57
- }
58
- catch {
59
- return;
60
- }
61
- for (const e of eintraege) {
62
- if (e.name.startsWith('.') || e.name === 'node_modules' || e.name === 'dist')
63
- continue;
64
- const voll = path.join(dir, e.name);
65
- if (e.isDirectory()) {
66
- lauf(voll, tiefe + 1);
67
- continue;
68
- }
69
- if (!/\.(ts|tsx|js|jsx|mjs|cjs|json|env|yml|yaml)$/i.test(e.name))
70
- continue;
71
- try {
72
- teile.push(fs.readFileSync(voll, 'utf8'));
73
- }
74
- catch {
75
- /* unlesbar = nicht gelesen */
76
- }
77
- }
78
- };
79
- for (const u of unter)
80
- lauf(path.join(wurzel, u), 0);
81
- return teile.join(String.fromCharCode(10));
82
- }
83
- export function pruefeBraucht(wurzel, braucht, teile) {
84
- const namen = Object.keys(braucht).filter((k) => braucht[k]);
85
- if (namen.length === 0)
86
- return [];
87
- const text = quelltext(wurzel, teile.length > 0 ? teile : ['']);
88
- const befunde = [];
89
- for (const dienst of namen) {
90
- const variablen = DIENST_VARIABLEN[dienst];
91
- if (!variablen)
92
- continue;
93
- const belegt = variablen.some((v) => new RegExp(`\\b${v}\\b`).test(text));
94
- if (belegt)
95
- continue;
96
- befunde.push({
97
- regel: 'arkven/braucht-ohne-beleg',
98
- schwere: 'hinweis',
99
- titel: `\`braucht.${dienst}\` ist gesetzt, aber kein Code liest ${variablen[0]}.`,
100
- ort: 'arkven.json',
101
- ausweg: `Arkven richtet ${DIENST_NAME[dienst] ?? dienst} trotzdem ein. Das ist richtig, wenn der Code noch kommt. ` +
102
- `Braucht das Projekt den Dienst nicht, nimm die Zeile heraus.`,
103
- });
104
- }
105
- return befunde;
106
- }
107
- function naechsterSchluessel(key, arten) {
108
- const abstand = (a, b) => {
109
- let zeile = Array.from({ length: b.length + 1 }, (_, i) => i);
110
- for (let i = 1; i <= a.length; i++) {
111
- const naechste = new Array(b.length + 1);
112
- naechste[0] = i;
113
- for (let j = 1; j <= b.length; j++) {
114
- const loeschen = (zeile[j] ?? 0) + 1;
115
- const einfuegen = (naechste[j - 1] ?? 0) + 1;
116
- const ersetzen = (zeile[j - 1] ?? 0) + (a[i - 1] === b[j - 1] ? 0 : 1);
117
- naechste[j] = Math.min(loeschen, einfuegen, ersetzen);
118
- }
119
- zeile = naechste;
120
- }
121
- return zeile[b.length] ?? Number.MAX_SAFE_INTEGER;
122
- };
123
- let bester;
124
- let bestwert = 3;
125
- for (const k of arten) {
126
- const d = abstand(key, k);
127
- if (d < bestwert) {
128
- bestwert = d;
129
- bester = k;
130
- }
131
- }
132
- return bester;
133
- }
134
- export function pruefeMailArten(wurzel, arten) {
135
- if (arten.length === 0)
136
- return [];
137
- const bekannt = new Set(arten);
138
- const ordner = path.join(wurzel, 'arkven', 'mails');
139
- let namen;
140
- try {
141
- namen = fs.readdirSync(ordner).filter((n) => n.endsWith('.md'));
142
- }
143
- catch {
144
- return [];
145
- }
146
- const befunde = [];
147
- for (const name of namen) {
148
- const key = name.slice(0, -'.md'.length);
149
- if (bekannt.has(key))
150
- continue;
151
- const nah = naechsterSchluessel(key, arten);
152
- befunde.push({
153
- regel: 'arkven/mail-unbekannt',
154
- schwere: 'hinweis',
155
- titel: `„${key}" ist keine Mail-Art, die Arkven kennt.`,
156
- ort: `arkven/mails/${name}`,
157
- ausweg: nah
158
- ? `Meintest du „${nah}"? Benenne die Datei um, sonst wird sie nie verschickt.`
159
- : `Bekannt sind: ${[...arten].sort().join(', ')}.`,
160
- });
161
- }
162
- return befunde;
163
- }
164
- export function pruefeAnker(dateien, screens) {
165
- if (screens.length === 0)
166
- return [];
167
- const gefunden = new Map();
168
- for (const d of dateien) {
169
- for (const m of d.inhalt.matchAll(/data-arkven-screen\s*=\s*["']([\w-]+)["']/g)) {
170
- const id = m[1];
171
- if (!id)
172
- continue;
173
- const orte = gefunden.get(id) ?? [];
174
- orte.push(d.pfad);
175
- gefunden.set(id, orte);
176
- }
177
- }
178
- const befunde = [];
179
- const bekannt = new Set(screens.map((s) => s.id));
180
- for (const s of screens) {
181
- const orte = gefunden.get(s.id);
182
- if (!orte || orte.length === 0) {
183
- befunde.push({
184
- regel: 'arkven/anker-fehlt',
185
- schwere: 'hinweis',
186
- titel: `Screen „${s.name}" hat keinen Anker im Code, er gilt damit als nicht gebaut.`,
187
- ...(s.slug ? { ort: s.slug } : {}),
188
- ausweg: `Setze auf das Wurzelelement der Komponente, die unter „${s.slug ? `/${s.slug}` : s.name}" ` +
189
- `gerendert wird: data-arkven-screen="${s.id}". Gibt die Komponente ein Fragment (<>) zurück, ` +
190
- `nimm <div data-arkven-screen="${s.id}" style={{ display: 'contents' }}>. Ein zusätzliches ` +
191
- 'div ohne display:contents bricht Flex- und Grid-Layouts.',
192
- });
193
- continue;
194
- }
195
- if (orte.length > 1) {
196
- befunde.push({
197
- regel: 'arkven/anker-doppelt',
198
- schwere: 'hinweis',
199
- titel: `Der Anker „${s.id}" (Screen „${s.name}") kommt ${orte.length}-mal vor.`,
200
- ort: orte[0],
201
- ausweg: `Je Screen genau einmal. Gefunden in: ${orte.join(', ')}.`,
202
- });
203
- }
204
- }
205
- for (const [id, orte] of gefunden) {
206
- if (bekannt.has(id))
207
- continue;
208
- befunde.push({
209
- regel: 'arkven/anker-unbekannt',
210
- schwere: 'hinweis',
211
- titel: `Der Anker „${id}" gehört zu keinem Screen des Bauplans.`,
212
- ort: orte[0],
213
- ausweg: `Bekannt sind: ${screens.map((s) => `${s.id} (${s.name})`).join(', ')}. ` +
214
- 'Entweder ist es ein Tippfehler, oder der Screen wurde aus dem Bauplan genommen und der Anker blieb stehen.',
215
- });
216
- }
217
- return befunde;
218
- }
219
- //# sourceMappingURL=bauplan.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bauplan.js","sourceRoot":"","sources":["../src/bauplan.ts"],"names":[],"mappings":"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"}
package/dist/befehle.d.ts DELETED
@@ -1,12 +0,0 @@
1
- export interface BefehlsSchalter {
2
- flagge: string;
3
- wirkung: string;
4
- }
5
- export interface Befehl {
6
- name: string;
7
- stelle: string;
8
- wirkung: string;
9
- schalter: readonly BefehlsSchalter[];
10
- }
11
- export declare const BEFEHLE: readonly Befehl[];
12
- //# sourceMappingURL=befehle.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"befehle.d.ts","sourceRoot":"","sources":["../src/befehle.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,eAAe;IAE9B,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,MAAM;IAErB,IAAI,EAAE,MAAM,CAAA;IAEZ,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,SAAS,eAAe,EAAE,CAAA;CACrC;AAED,eAAO,MAAM,OAAO,EAAE,SAAS,MAAM,EA6E3B,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"befehle.js","sourceRoot":"","sources":["../src/befehle.ts"],"names":[],"mappings":"AAgBA,MAAM,CAAC,MAAM,OAAO,GAAsB;IACxC;QACE,IAAI,EAAE,KAAK;QACX,MAAM,EAAE,QAAQ;QAChB,OAAO,EAAE,oEAAoE;QAC7E,QAAQ,EAAE,EAAE;KACb;IACD;QACE,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,eAAe;QACvB,OAAO,EAAE,8DAA8D;QACvE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,iDAAiD,EAAE,CAAC;KAC9F;IACD;QACE,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,eAAe;QACvB,OAAO,EAAE,+CAA+C;QACxD,QAAQ,EAAE;YACR,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,6DAA6D,EAAE;YAC5F,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,+CAA+C,EAAE;YAC9E,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,sDAAsD,EAAE;SACvF;KACF;IACD;QACE,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,eAAe;QACvB,OAAO,EAAE,kDAAkD;QAC3D,QAAQ,EAAE,EAAE;KACb;IACD;QACE,IAAI,EAAE,KAAK;QACX,MAAM,EAAE,eAAe;QACvB,OAAO,EAAE,8DAA8D;QACvE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,qCAAqC,EAAE,CAAC;KACrF;IACD;QACE,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,iDAAiD;QAC1D,QAAQ,EAAE;YACR,EAAE,MAAM,EAAE,oBAAoB,EAAE,OAAO,EAAE,yDAAyD,EAAE;YACpG,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,yFAAyF,EAAE;SAC9H;KACF;IACD;QACE,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,eAAe;QACvB,OAAO,EACL,wFAAwF;YACxF,qFAAqF;QACvF,QAAQ,EAAE;YACR,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,uCAAuC,EAAE;YACrE,EAAE,MAAM,EAAE,mBAAmB,EAAE,OAAO,EAAE,0DAA0D,EAAE;YACpG,EAAE,MAAM,EAAE,qBAAqB,EAAE,OAAO,EAAE,4EAA4E,EAAE;SACzH;KACF;IACD;QACE,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,eAAe;QACvB,OAAO,EAAE,4DAA4D;QACrE,QAAQ,EAAE;YACR,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,4DAA4D,EAAE;YAC1F,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,iDAAiD,EAAE;YAClF,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,uIAAuI,EAAE;YAC7K,EAAE,MAAM,EAAE,oBAAoB,EAAE,OAAO,EAAE,uBAAuB,EAAE;SACnE;KACF;IACD;QACE,IAAI,EAAE,KAAK;QACX,MAAM,EAAE,EAAE;QACV,OAAO,EACL,2FAA2F;YAC3F,4EAA4E;QAC9E,QAAQ,EAAE,EAAE;KACb;IACD,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC1E,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,EAAE,EAAE;CAC9D,CAAA"}
package/dist/befund.d.ts DELETED
@@ -1,21 +0,0 @@
1
- export type Schwere = 'vertrag' | 'hinweis' | 'ungeprueft';
2
- export interface Befund {
3
- regel: string;
4
- schwere: Schwere;
5
- titel: string;
6
- ort?: string;
7
- ausweg: string;
8
- verweis?: boolean;
9
- }
10
- export declare function fuerAgenten(befunde: Befund[]): Befund[];
11
- export declare function fuerAgentenZusaetzlich(befunde: Befund[]): Befund[];
12
- export interface Ergebnis {
13
- befunde: Befund[];
14
- gehalten: string[];
15
- projekt: string;
16
- }
17
- export declare function exitCode(e: Ergebnis): number;
18
- export declare function alsText(e: Ergebnis): string;
19
- export declare function alsJson(e: Ergebnis): string;
20
- export declare function alsSarif(e: Ergebnis, fassung?: string): string;
21
- //# sourceMappingURL=befund.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"befund.d.ts","sourceRoot":"","sources":["../src/befund.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,YAAY,CAAA;AAE1D,MAAM,WAAW,MAAM;IAErB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,OAAO,CAAA;IAEhB,KAAK,EAAE,MAAM,CAAA;IAEb,GAAG,CAAC,EAAE,MAAM,CAAA;IAEZ,MAAM,EAAE,MAAM,CAAA;IAEd,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAEvD;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAElE;AAED,MAAM,WAAW,QAAQ;IAEvB,OAAO,EAAE,MAAM,EAAE,CAAA;IAEjB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAElB,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,QAAQ,GAAG,MAAM,CAG5C;AAID,wBAAgB,OAAO,CAAC,CAAC,EAAE,QAAQ,GAAG,MAAM,CA2B3C;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,QAAQ,GAAG,MAAM,CAE3C;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CA2E9D"}
package/dist/befund.js DELETED
@@ -1,107 +0,0 @@
1
- export function fuerAgenten(befunde) {
2
- return befunde.filter((b) => b.schwere === 'vertrag' && !b.verweis);
3
- }
4
- export function fuerAgentenZusaetzlich(befunde) {
5
- return befunde.filter((b) => b.schwere === 'hinweis' && !b.verweis);
6
- }
7
- export function exitCode(e) {
8
- if (e.gehalten.length === 0 && e.befunde.every((b) => b.schwere === 'ungeprueft'))
9
- return 2;
10
- return e.befunde.some((b) => b.schwere === 'vertrag') ? 1 : 0;
11
- }
12
- const ZEICHEN = { vertrag: 'x', hinweis: '!', ungeprueft: '?' };
13
- export function alsText(e) {
14
- const z = [`Prüfe ${e.projekt}`, ''];
15
- if (e.befunde.length === 0) {
16
- z.push(`Alles gehalten. ${e.gehalten.length} Punkt(e) geprüft.`, '');
17
- z.push('Was dieser Lauf NICHT geprüft hat: die Gates der Plattform und die Verhaltens-Proben.');
18
- z.push('Sie laufen beim Veröffentlichen. Nächster Schritt: `arkven push --deploy`.');
19
- return z.join('\n');
20
- }
21
- for (const b of e.befunde) {
22
- z.push(`${ZEICHEN[b.schwere]} ${b.regel}${b.ort ? `\t${b.ort}` : ''}`);
23
- z.push(` ${b.titel}`);
24
- z.push(` So kommst du weiter: ${b.ausweg}`, '');
25
- }
26
- const vertrag = e.befunde.filter((b) => b.schwere === 'vertrag').length;
27
- const hinweise = e.befunde.filter((b) => b.schwere === 'hinweis').length;
28
- const offen = e.befunde.filter((b) => b.schwere === 'ungeprueft').length;
29
- z.push(`${e.gehalten.length} gehalten, ${vertrag} blockierend, ${hinweise} Hinweis(e), ${offen} nicht geprüft.`, '');
30
- z.push(vertrag > 0
31
- ? 'Die blockierenden Punkte zuerst: ohne sie startet der Container nicht. Danach erneut `arkven check`.'
32
- : 'Nichts blockiert. Nächster Schritt: `arkven push --deploy`.');
33
- return z.join('\n');
34
- }
35
- export function alsJson(e) {
36
- return JSON.stringify({ projekt: e.projekt, gehalten: e.gehalten, befunde: e.befunde }, null, 2);
37
- }
38
- export function alsSarif(e, fassung) {
39
- const stufe = { vertrag: 'error', hinweis: 'warning', ungeprueft: 'none' };
40
- const artDesUrteils = { vertrag: 'fail', hinweis: 'fail', ungeprueft: 'open' };
41
- const regeln = [];
42
- const platz = new Map();
43
- const merke = (regel, titel, ausweg, schwere) => {
44
- const da = platz.get(regel);
45
- if (da !== undefined)
46
- return da;
47
- platz.set(regel, regeln.length);
48
- regeln.push({ id: regel, titel, ausweg, schwere });
49
- return regeln.length - 1;
50
- };
51
- for (const b of e.befunde)
52
- merke(b.regel, b.titel, b.ausweg, b.schwere);
53
- for (const r of e.gehalten)
54
- merke(r, `${r} wird eingehalten.`, 'Nichts zu tun.', 'hinweis');
55
- const ortsAngabe = (ort) => {
56
- const m = /^(.*?):(\d+)$/.exec(ort);
57
- const datei = (m ? (m[1] ?? ort) : ort).replace(/^\.?\//, '');
58
- return {
59
- physicalLocation: {
60
- artifactLocation: { uri: datei },
61
- ...(m ? { region: { startLine: Number(m[2]) } } : {}),
62
- },
63
- };
64
- };
65
- const ergebnisse = [
66
- ...e.befunde.map((b) => ({
67
- ruleId: b.regel,
68
- ruleIndex: platz.get(b.regel) ?? 0,
69
- level: stufe[b.schwere],
70
- kind: artDesUrteils[b.schwere],
71
- message: { text: `${b.titel} So kommst du weiter: ${b.ausweg}` },
72
- ...(b.ort ? { locations: [ortsAngabe(b.ort)] } : {}),
73
- })),
74
- ...e.gehalten.map((r) => ({
75
- ruleId: r,
76
- ruleIndex: platz.get(r) ?? 0,
77
- level: 'none',
78
- kind: 'pass',
79
- message: { text: `${r} wird eingehalten.` },
80
- })),
81
- ];
82
- return JSON.stringify({
83
- $schema: 'https://json.schemastore.org/sarif-2.1.0.json',
84
- version: '2.1.0',
85
- runs: [
86
- {
87
- tool: {
88
- driver: {
89
- name: 'Arkven',
90
- informationUri: 'https://arkven.de',
91
- ...(fassung ? { version: fassung } : {}),
92
- rules: regeln.map((r) => ({
93
- id: r.id,
94
- name: r.id.replace(/^arkven\//, ''),
95
- shortDescription: { text: r.titel },
96
- help: { text: r.ausweg },
97
- defaultConfiguration: { level: stufe[r.schwere] },
98
- })),
99
- },
100
- },
101
- originalUriBaseIds: { PROJEKT: { uri: 'file:///' } },
102
- results: ergebnisse,
103
- },
104
- ],
105
- }, null, 2);
106
- }
107
- //# sourceMappingURL=befund.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"befund.js","sourceRoot":"","sources":["../src/befund.ts"],"names":[],"mappings":"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"}
@@ -1,31 +0,0 @@
1
- export interface CodeDatei {
2
- path: string;
3
- content: string;
4
- }
5
- export interface CodeAntwort {
6
- rev?: string | null;
7
- oberflaeche?: CodeDatei[];
8
- server?: CodeDatei[];
9
- grund?: string;
10
- }
11
- export interface Verzeichnisse {
12
- server?: string;
13
- frontend?: string;
14
- }
15
- export type Art = 'neu' | 'ueberschrieben' | 'unveraendert';
16
- export interface Vorhaben {
17
- rel: string;
18
- inhalt: string;
19
- art: Art;
20
- }
21
- export interface AblagePlan {
22
- schreiben: Vorhaben[];
23
- unveraendert: number;
24
- nurLokal: string[];
25
- }
26
- export declare function ausDerWurzel(rel: string): boolean;
27
- export declare function zielPfad(datei: CodeDatei, verzeichnisse: Verzeichnisse): string;
28
- export declare function planeAblage(wurzel: string, antwort: CodeAntwort, verzeichnisse: Verzeichnisse, vorhanden?: (abs: string) => string | undefined): AblagePlan;
29
- export declare function vorschauText(plan: AblagePlan, hoechstens?: number): string[];
30
- export declare function schreibeAblage(wurzel: string, plan: AblagePlan): number;
31
- //# sourceMappingURL=codeAblage.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"codeAblage.d.ts","sourceRoot":"","sources":["../src/codeAblage.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,WAAW,CAAC,EAAE,SAAS,EAAE,CAAA;IACzB,MAAM,CAAC,EAAE,SAAS,EAAE,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,MAAM,GAAG,GAAG,KAAK,GAAG,gBAAgB,GAAG,cAAc,CAAA;AAE3D,MAAM,WAAW,QAAQ;IAEvB,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,EAAE,GAAG,CAAA;CACT;AAED,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,QAAQ,EAAE,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;IAEpB,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB;AAMD,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAIjD;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,GAAG,MAAM,CAQ/E;AAUD,wBAAgB,WAAW,CACzB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,WAAW,EACpB,aAAa,EAAE,aAAa,EAC5B,SAAS,GAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,SAAqB,GACzD,UAAU,CAmBZ;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,SAAK,GAAG,MAAM,EAAE,CAyBxE;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,MAAM,CAOvE"}
@@ -1,80 +0,0 @@
1
- import fs from 'node:fs';
2
- import path from 'node:path';
3
- import { BEGLEIT_DATEIEN, MAIL_ORDNER } from './push/form.js';
4
- import { DATEI } from './push/sammeln.js';
5
- const OHNE_SERVER = (p) => p.replace(/^\/?server\//, '');
6
- const roh = (p) => p.replace(/^\/+/, '');
7
- export function ausDerWurzel(rel) {
8
- if (rel === DATEI)
9
- return true;
10
- if (BEGLEIT_DATEIEN.includes(rel))
11
- return true;
12
- return rel.startsWith(MAIL_ORDNER + '/') && rel.endsWith('.md');
13
- }
14
- export function zielPfad(datei, verzeichnisse) {
15
- const istServer = /^\/?server\//.test(datei.path);
16
- if (istServer) {
17
- return verzeichnisse.server ? `${verzeichnisse.server}/${OHNE_SERVER(datei.path)}` : roh(datei.path);
18
- }
19
- if (ausDerWurzel(roh(datei.path)))
20
- return roh(datei.path);
21
- return verzeichnisse.frontend ? `${verzeichnisse.frontend}/${roh(datei.path)}` : roh(datei.path);
22
- }
23
- function liesLokal(abs) {
24
- try {
25
- return fs.readFileSync(abs, 'utf8');
26
- }
27
- catch {
28
- return undefined;
29
- }
30
- }
31
- export function planeAblage(wurzel, antwort, verzeichnisse, vorhanden = liesLokal) {
32
- const dateien = [...(antwort.oberflaeche ?? []), ...(antwort.server ?? [])];
33
- const schreiben = [];
34
- let unveraendert = 0;
35
- const bekannt = new Set();
36
- for (const d of dateien) {
37
- const rel = zielPfad(d, verzeichnisse);
38
- bekannt.add(rel);
39
- const alt = vorhanden(path.join(wurzel, rel));
40
- if (alt === d.content) {
41
- unveraendert++;
42
- continue;
43
- }
44
- schreiben.push({ rel, inhalt: d.content, art: alt === undefined ? 'neu' : 'ueberschrieben' });
45
- }
46
- schreiben.sort((a, b) => a.rel.localeCompare(b.rel));
47
- return { schreiben, unveraendert, nurLokal: [] };
48
- }
49
- export function vorschauText(plan, hoechstens = 20) {
50
- const neu = plan.schreiben.filter((v) => v.art === 'neu');
51
- const drueber = plan.schreiben.filter((v) => v.art === 'ueberschrieben');
52
- const zeilen = [];
53
- if (plan.schreiben.length === 0) {
54
- zeilen.push('Dein Verzeichnis ist bereits auf diesem Stand. Es gibt nichts zu schreiben.');
55
- return zeilen;
56
- }
57
- zeilen.push(`${plan.schreiben.length} Datei(en) würden geschrieben: ${neu.length} neu, ${drueber.length} überschrieben.` +
58
- (plan.unveraendert > 0 ? ` ${plan.unveraendert} sind bereits gleich.` : ''));
59
- zeilen.push('');
60
- for (const v of drueber)
61
- zeilen.push(` ${v.rel} wird überschrieben`);
62
- if (drueber.length > 0 && neu.length > 0)
63
- zeilen.push('');
64
- const zeigen = neu.slice(0, hoechstens);
65
- for (const v of zeigen)
66
- zeilen.push(` ${v.rel} wird angelegt`);
67
- if (neu.length > zeigen.length) {
68
- zeilen.push(` … und ${neu.length - zeigen.length} weitere neue Datei(en), die ebenfalls angelegt werden`);
69
- }
70
- return zeilen;
71
- }
72
- export function schreibeAblage(wurzel, plan) {
73
- for (const v of plan.schreiben) {
74
- const abs = path.join(wurzel, v.rel);
75
- fs.mkdirSync(path.dirname(abs), { recursive: true });
76
- fs.writeFileSync(abs, v.inhalt, 'utf8');
77
- }
78
- return plan.schreiben.length;
79
- }
80
- //# sourceMappingURL=codeAblage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"codeAblage.js","sourceRoot":"","sources":["../src/codeAblage.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import type { Befund } from './befund.js';
2
- export declare function deklarationsBefunde(wurzel: string): Befund[];
3
- //# sourceMappingURL=deklaration.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"deklaration.d.ts","sourceRoot":"","sources":["../src/deklaration.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAIzC,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAU5D"}
@@ -1,14 +0,0 @@
1
- import { pruefeBauplan, pruefeBraucht } from './bauplan.js';
2
- import { leseArkvenDatei } from './push.js';
3
- export function deklarationsBefunde(wurzel) {
4
- const befunde = pruefeBauplan(wurzel);
5
- const datei = leseArkvenDatei(wurzel);
6
- const roh = datei['braucht'];
7
- const braucht = roh && typeof roh === 'object' && !Array.isArray(roh) ? roh : {};
8
- const v = datei['verzeichnisse'];
9
- const verz = v && typeof v === 'object' && !Array.isArray(v) ? v : {};
10
- const teile = [verz.server, verz.frontend].filter((x) => typeof x === 'string' && x.length > 0);
11
- befunde.push(...pruefeBraucht(wurzel, braucht, teile));
12
- return befunde;
13
- }
14
- //# sourceMappingURL=deklaration.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"deklaration.js","sourceRoot":"","sources":["../src/deklaration.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAE3C,MAAM,UAAU,mBAAmB,CAAC,MAAc;IAChD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;IACrC,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,CAAC,CAAA;IACrC,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC,CAAA;IAC5B,MAAM,OAAO,GAAG,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,GAA+B,CAAC,CAAC,CAAC,EAAE,CAAA;IAC7G,MAAM,CAAC,GAAG,KAAK,CAAC,eAAe,CAAC,CAAA;IAChC,MAAM,IAAI,GAAG,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAA6B,CAAC,CAAC,CAAC,EAAE,CAAA;IAClG,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IAC5G,OAAO,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAA;IACtD,OAAO,OAAO,CAAA;AAChB,CAAC"}
package/dist/diff.d.ts DELETED
@@ -1,10 +0,0 @@
1
- export interface DiffZeile {
2
- art: ' ' | '+' | '-';
3
- text: string;
4
- }
5
- export declare function vergleiche(vorherText: string, nachherText: string): DiffZeile[];
6
- export declare function alsZeilen(vorher: string, nachher: string, { kontext, hoechstens }?: {
7
- kontext?: number;
8
- hoechstens?: number;
9
- }): string[];
10
- //# sourceMappingURL=diff.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../src/diff.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAA;IACpB,IAAI,EAAE,MAAM,CAAA;CACb;AASD,wBAAgB,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,SAAS,EAAE,CAmC/E;AAED,wBAAgB,SAAS,CACvB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,EAAE,OAAW,EAAE,UAAe,EAAE,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAO,GAC/E,MAAM,EAAE,CA2BV"}
package/dist/diff.js DELETED
@@ -1,72 +0,0 @@
1
- function zeilen(text) {
2
- const z = text.replace(/\r\n/g, '\n').split('\n');
3
- if (z.length > 0 && z[z.length - 1] === '')
4
- z.pop();
5
- return z;
6
- }
7
- export function vergleiche(vorherText, nachherText) {
8
- const a = zeilen(vorherText);
9
- const b = zeilen(nachherText);
10
- if (a.length > 4000 || b.length > 4000) {
11
- return [{ art: ' ', text: `(${a.length} Zeilen vorher, ${b.length} Zeilen nachher, zu groß für eine Anzeige)` }];
12
- }
13
- const t = Array.from({ length: a.length + 1 }, () => new Array(b.length + 1).fill(0));
14
- for (let i = a.length - 1; i >= 0; i--) {
15
- const jetzt = t[i];
16
- const naechste = t[i + 1];
17
- for (let j = b.length - 1; j >= 0; j--) {
18
- jetzt[j] = a[i] === b[j] ? naechste[j + 1] + 1 : Math.max(naechste[j], jetzt[j + 1]);
19
- }
20
- }
21
- const raus = [];
22
- let i = 0;
23
- let j = 0;
24
- while (i < a.length && j < b.length) {
25
- if (a[i] === b[j]) {
26
- raus.push({ art: ' ', text: a[i] });
27
- i++;
28
- j++;
29
- }
30
- else if (t[i + 1][j] >= t[i][j + 1]) {
31
- raus.push({ art: '-', text: a[i] });
32
- i++;
33
- }
34
- else {
35
- raus.push({ art: '+', text: b[j] });
36
- j++;
37
- }
38
- }
39
- while (i < a.length)
40
- raus.push({ art: '-', text: a[i++] });
41
- while (j < b.length)
42
- raus.push({ art: '+', text: b[j++] });
43
- return raus;
44
- }
45
- export function alsZeilen(vorher, nachher, { kontext = 2, hoechstens = 14 } = {}) {
46
- const roh = vergleiche(vorher, nachher);
47
- const zeigen = roh.map((_, k) => roh.some((n, m) => n.art !== ' ' && Math.abs(m - k) <= kontext));
48
- const raus = [];
49
- let ausgelassen = 0;
50
- let luecke = false;
51
- for (let k = 0; k < roh.length; k++) {
52
- if (!zeigen[k]) {
53
- luecke = true;
54
- continue;
55
- }
56
- if (raus.length >= hoechstens) {
57
- ausgelassen++;
58
- continue;
59
- }
60
- if (luecke) {
61
- raus.push(' ...');
62
- luecke = false;
63
- }
64
- const z = roh[k];
65
- raus.push(` ${z.art} ${z.text}`);
66
- }
67
- if (ausgelassen > 0) {
68
- raus.push(` ... ${ausgelassen} weitere Zeile(n), die beim Übernehmen mitgeschrieben werden`);
69
- }
70
- return raus;
71
- }
72
- //# sourceMappingURL=diff.js.map