durable-map 0.1.1

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 (62) hide show
  1. package/README.md +137 -0
  2. package/dist/analyzer/annotationParser.d.ts +4 -0
  3. package/dist/analyzer/annotationParser.d.ts.map +1 -0
  4. package/dist/analyzer/annotationParser.js +34 -0
  5. package/dist/analyzer/annotationParser.js.map +1 -0
  6. package/dist/analyzer/callGraphBuilder.d.ts +4 -0
  7. package/dist/analyzer/callGraphBuilder.d.ts.map +1 -0
  8. package/dist/analyzer/callGraphBuilder.js +84 -0
  9. package/dist/analyzer/callGraphBuilder.js.map +1 -0
  10. package/dist/analyzer/functionAnalyzer.d.ts +3 -0
  11. package/dist/analyzer/functionAnalyzer.d.ts.map +1 -0
  12. package/dist/analyzer/functionAnalyzer.js +17 -0
  13. package/dist/analyzer/functionAnalyzer.js.map +1 -0
  14. package/dist/analyzer/types.d.ts +85 -0
  15. package/dist/analyzer/types.d.ts.map +1 -0
  16. package/dist/analyzer/types.js +2 -0
  17. package/dist/analyzer/types.js.map +1 -0
  18. package/dist/cli.d.ts +3 -0
  19. package/dist/cli.d.ts.map +1 -0
  20. package/dist/cli.js +71 -0
  21. package/dist/cli.js.map +1 -0
  22. package/dist/generator/htmlGenerator.d.ts +6 -0
  23. package/dist/generator/htmlGenerator.d.ts.map +1 -0
  24. package/dist/generator/htmlGenerator.js +178 -0
  25. package/dist/generator/htmlGenerator.js.map +1 -0
  26. package/dist/generator/jsonGenerator.d.ts +6 -0
  27. package/dist/generator/jsonGenerator.d.ts.map +1 -0
  28. package/dist/generator/jsonGenerator.js +19 -0
  29. package/dist/generator/jsonGenerator.js.map +1 -0
  30. package/dist/generator/markdownGenerator.d.ts +7 -0
  31. package/dist/generator/markdownGenerator.d.ts.map +1 -0
  32. package/dist/generator/markdownGenerator.js +115 -0
  33. package/dist/generator/markdownGenerator.js.map +1 -0
  34. package/dist/generator/mermaidGenerator.d.ts +6 -0
  35. package/dist/generator/mermaidGenerator.d.ts.map +1 -0
  36. package/dist/generator/mermaidGenerator.js +102 -0
  37. package/dist/generator/mermaidGenerator.js.map +1 -0
  38. package/dist/index.d.ts +3 -0
  39. package/dist/index.d.ts.map +1 -0
  40. package/dist/index.js +4 -0
  41. package/dist/index.js.map +1 -0
  42. package/dist/scanner/csharpParser.d.ts +7 -0
  43. package/dist/scanner/csharpParser.d.ts.map +1 -0
  44. package/dist/scanner/csharpParser.js +344 -0
  45. package/dist/scanner/csharpParser.js.map +1 -0
  46. package/dist/scanner/fileScanner.d.ts +6 -0
  47. package/dist/scanner/fileScanner.d.ts.map +1 -0
  48. package/dist/scanner/fileScanner.js +26 -0
  49. package/dist/scanner/fileScanner.js.map +1 -0
  50. package/dist/scanner/parserRegistry.d.ts +5 -0
  51. package/dist/scanner/parserRegistry.d.ts.map +1 -0
  52. package/dist/scanner/parserRegistry.js +15 -0
  53. package/dist/scanner/parserRegistry.js.map +1 -0
  54. package/dist/scanner/patterns.d.ts +20 -0
  55. package/dist/scanner/patterns.d.ts.map +1 -0
  56. package/dist/scanner/patterns.js +20 -0
  57. package/dist/scanner/patterns.js.map +1 -0
  58. package/dist/utils/logger.d.ts +7 -0
  59. package/dist/utils/logger.d.ts.map +1 -0
  60. package/dist/utils/logger.js +23 -0
  61. package/dist/utils/logger.js.map +1 -0
  62. package/package.json +37 -0
@@ -0,0 +1,344 @@
1
+ import * as patterns from "./patterns.js";
2
+ function resetRegex(re) {
3
+ return new RegExp(re.source, re.flags);
4
+ }
5
+ function lineNumberAt(content, index) {
6
+ let line = 1;
7
+ for (let i = 0; i < index && i < content.length; i++) {
8
+ if (content[i] === "\n")
9
+ line++;
10
+ }
11
+ return line;
12
+ }
13
+ function skipStringOrComment(content, i) {
14
+ if (content[i] === "@" && content[i + 1] === '"') {
15
+ i += 2;
16
+ while (i < content.length) {
17
+ if (content[i] === '"' && content[i + 1] === '"') {
18
+ i += 2;
19
+ }
20
+ else if (content[i] === '"') {
21
+ return i + 1;
22
+ }
23
+ else {
24
+ i++;
25
+ }
26
+ }
27
+ return i;
28
+ }
29
+ if (content[i] === '"') {
30
+ i++;
31
+ while (i < content.length) {
32
+ if (content[i] === "\\") {
33
+ i += 2;
34
+ }
35
+ else if (content[i] === '"') {
36
+ return i + 1;
37
+ }
38
+ else {
39
+ i++;
40
+ }
41
+ }
42
+ return i;
43
+ }
44
+ if (content[i] === "'") {
45
+ i++;
46
+ while (i < content.length) {
47
+ if (content[i] === "\\") {
48
+ i += 2;
49
+ }
50
+ else if (content[i] === "'") {
51
+ return i + 1;
52
+ }
53
+ else {
54
+ i++;
55
+ }
56
+ }
57
+ return i;
58
+ }
59
+ if (content[i] === "/" && content[i + 1] === "/") {
60
+ const eol = content.indexOf("\n", i);
61
+ return eol === -1 ? content.length : eol + 1;
62
+ }
63
+ if (content[i] === "/" && content[i + 1] === "*") {
64
+ const end = content.indexOf("*/", i + 2);
65
+ return end === -1 ? content.length : end + 2;
66
+ }
67
+ return -1;
68
+ }
69
+ function findMethodBody(content, searchFrom) {
70
+ let parenDepth = 0;
71
+ let inParens = false;
72
+ for (let i = searchFrom; i < content.length; i++) {
73
+ const skip = skipStringOrComment(content, i);
74
+ if (skip !== -1) {
75
+ i = skip - 1;
76
+ continue;
77
+ }
78
+ const ch = content[i];
79
+ if (ch === "(") {
80
+ parenDepth++;
81
+ inParens = true;
82
+ }
83
+ else if (ch === ")") {
84
+ parenDepth--;
85
+ }
86
+ else if (parenDepth === 0 && inParens) {
87
+ if (ch === "=" && content[i + 1] === ">") {
88
+ const exprStart = i + 2;
89
+ let semicolonIdx = -1;
90
+ for (let j = exprStart; j < content.length; j++) {
91
+ const sk = skipStringOrComment(content, j);
92
+ if (sk !== -1) {
93
+ j = sk - 1;
94
+ continue;
95
+ }
96
+ if (content[j] === ";") {
97
+ semicolonIdx = j;
98
+ break;
99
+ }
100
+ }
101
+ if (semicolonIdx === -1)
102
+ return null;
103
+ return {
104
+ kind: "expression",
105
+ signatureEnd: i,
106
+ bodyStart: exprStart,
107
+ bodyEnd: semicolonIdx,
108
+ };
109
+ }
110
+ if (ch === "{") {
111
+ const bodyEnd = findBlockEnd(content, i);
112
+ return {
113
+ kind: "block",
114
+ signatureEnd: i,
115
+ bodyStart: i,
116
+ bodyEnd,
117
+ };
118
+ }
119
+ }
120
+ }
121
+ return null;
122
+ }
123
+ function findBlockEnd(content, startIndex) {
124
+ let depth = 0;
125
+ for (let i = startIndex; i < content.length; i++) {
126
+ const skip = skipStringOrComment(content, i);
127
+ if (skip !== -1) {
128
+ i = skip - 1;
129
+ continue;
130
+ }
131
+ if (content[i] === "{") {
132
+ depth++;
133
+ }
134
+ else if (content[i] === "}") {
135
+ depth--;
136
+ if (depth === 0)
137
+ return i;
138
+ }
139
+ }
140
+ return content.length;
141
+ }
142
+ function parseTriggers(block) {
143
+ const triggers = [];
144
+ let re = resetRegex(patterns.HTTP_TRIGGER);
145
+ let m;
146
+ while ((m = re.exec(block)) !== null) {
147
+ const inner = m[1];
148
+ const trigger = { kind: "http", raw: m[0] };
149
+ const methodRe = resetRegex(patterns.HTTP_METHODS_PATTERN);
150
+ const methods = [];
151
+ let mm;
152
+ while ((mm = methodRe.exec(inner)) !== null) {
153
+ methods.push((mm[1] || mm[2]).toUpperCase());
154
+ }
155
+ if (methods.length > 0)
156
+ trigger.httpMethods = methods;
157
+ const routeMatch = patterns.ROUTE_PATTERN.exec(inner);
158
+ if (routeMatch)
159
+ trigger.route = routeMatch[1];
160
+ const authMatch = patterns.AUTH_LEVEL_PATTERN.exec(inner);
161
+ if (authMatch)
162
+ trigger.authLevel = authMatch[1];
163
+ triggers.push(trigger);
164
+ }
165
+ re = resetRegex(patterns.ORCHESTRATION_TRIGGER);
166
+ while ((m = re.exec(block)) !== null) {
167
+ triggers.push({ kind: "orchestration", raw: m[0] });
168
+ }
169
+ re = resetRegex(patterns.ACTIVITY_TRIGGER);
170
+ while ((m = re.exec(block)) !== null) {
171
+ triggers.push({ kind: "activity", raw: m[0] });
172
+ }
173
+ re = resetRegex(patterns.ENTITY_TRIGGER);
174
+ while ((m = re.exec(block)) !== null) {
175
+ triggers.push({ kind: "entity", raw: m[0] });
176
+ }
177
+ re = resetRegex(patterns.TIMER_TRIGGER);
178
+ while ((m = re.exec(block)) !== null) {
179
+ triggers.push({ kind: "timer", raw: m[0], schedule: m[1] });
180
+ }
181
+ re = resetRegex(patterns.QUEUE_TRIGGER);
182
+ while ((m = re.exec(block)) !== null) {
183
+ triggers.push({ kind: "queue", raw: m[0], queueName: m[1] });
184
+ }
185
+ re = resetRegex(patterns.BLOB_TRIGGER);
186
+ while ((m = re.exec(block)) !== null) {
187
+ triggers.push({ kind: "blob", raw: m[0], blobPath: m[1] });
188
+ }
189
+ re = resetRegex(patterns.DURABLE_CLIENT);
190
+ while ((m = re.exec(block)) !== null) {
191
+ triggers.push({ kind: "durableClient", raw: m[0] });
192
+ }
193
+ return triggers;
194
+ }
195
+ function parseCalls(body, bodyStartLine) {
196
+ const calls = [];
197
+ let re = resetRegex(patterns.CALL_ACTIVITY);
198
+ let m;
199
+ while ((m = re.exec(body)) !== null) {
200
+ calls.push({
201
+ kind: "callActivity",
202
+ targetName: m[2] || m[3],
203
+ returnType: m[1] || undefined,
204
+ raw: m[0],
205
+ line: bodyStartLine + lineNumberAt(body, m.index) - 1,
206
+ });
207
+ }
208
+ re = resetRegex(patterns.CALL_SUB_ORCHESTRATOR);
209
+ while ((m = re.exec(body)) !== null) {
210
+ calls.push({
211
+ kind: "callSubOrchestrator",
212
+ targetName: m[2] || m[3],
213
+ returnType: m[1] || undefined,
214
+ raw: m[0],
215
+ line: bodyStartLine + lineNumberAt(body, m.index) - 1,
216
+ });
217
+ }
218
+ re = resetRegex(patterns.SCHEDULE_ORCHESTRATION);
219
+ while ((m = re.exec(body)) !== null) {
220
+ calls.push({
221
+ kind: "scheduleOrchestration",
222
+ targetName: m[1] || m[2] || m[3],
223
+ raw: m[0],
224
+ line: bodyStartLine + lineNumberAt(body, m.index) - 1,
225
+ });
226
+ }
227
+ re = resetRegex(patterns.CALL_ENTITY);
228
+ while ((m = re.exec(body)) !== null) {
229
+ calls.push({
230
+ kind: "callEntity",
231
+ targetName: m[2] || m[3] || m[4] || m[5],
232
+ returnType: m[1] || undefined,
233
+ raw: m[0],
234
+ line: bodyStartLine + lineNumberAt(body, m.index) - 1,
235
+ });
236
+ }
237
+ return calls;
238
+ }
239
+ function determineRole(triggers, calls) {
240
+ for (const t of triggers) {
241
+ if (t.kind === "orchestration")
242
+ return "orchestrator";
243
+ if (t.kind === "activity")
244
+ return "activity";
245
+ if (t.kind === "entity")
246
+ return "entity";
247
+ if (t.kind === "durableClient")
248
+ return "client";
249
+ }
250
+ if (triggers.some((t) => t.kind === "http") && calls.length > 0)
251
+ return "client";
252
+ return "unknown";
253
+ }
254
+ function parseAttributeBasedFunctions(file) {
255
+ const functions = [];
256
+ const content = file.content;
257
+ const re = resetRegex(patterns.FUNCTION_ATTR);
258
+ let m;
259
+ while ((m = re.exec(content)) !== null) {
260
+ const funcName = m[1] || m[2];
261
+ const attrIndex = m.index;
262
+ const attrLine = lineNumberAt(content, attrIndex);
263
+ const methodBody = findMethodBody(content, attrIndex + m[0].length);
264
+ if (!methodBody)
265
+ continue;
266
+ const signatureBlock = content.substring(attrIndex, methodBody.signatureEnd);
267
+ const triggers = parseTriggers(signatureBlock);
268
+ const body = content.substring(methodBody.bodyStart, methodBody.bodyEnd + 1);
269
+ const bodyStartLine = lineNumberAt(content, methodBody.bodyStart);
270
+ const calls = parseCalls(body, bodyStartLine);
271
+ const role = determineRole(triggers, calls);
272
+ const bodyText = content.substring(methodBody.bodyStart, methodBody.bodyEnd + 1);
273
+ functions.push({
274
+ name: funcName,
275
+ style: "attribute",
276
+ role,
277
+ triggers,
278
+ calls,
279
+ infraUsages: [],
280
+ filePath: file.path,
281
+ line: attrLine,
282
+ bodyText,
283
+ });
284
+ }
285
+ return functions;
286
+ }
287
+ function parseClassBasedFunctions(file) {
288
+ const functions = [];
289
+ const content = file.content;
290
+ const classPatterns = [
291
+ { re: patterns.CLASS_ORCHESTRATOR, role: "orchestrator", triggerKind: "orchestration" },
292
+ { re: patterns.CLASS_ACTIVITY, role: "activity", triggerKind: "activity" },
293
+ { re: patterns.CLASS_ENTITY, role: "entity", triggerKind: "entity" },
294
+ ];
295
+ for (const { re, role, triggerKind } of classPatterns) {
296
+ const regex = resetRegex(re);
297
+ let m;
298
+ while ((m = regex.exec(content)) !== null) {
299
+ const className = m[1];
300
+ const line = lineNumberAt(content, m.index);
301
+ const braceIndex = content.indexOf("{", m.index + m[0].length);
302
+ if (braceIndex === -1)
303
+ continue;
304
+ const classEnd = findBlockEnd(content, braceIndex);
305
+ const classBody = content.substring(braceIndex, classEnd + 1);
306
+ const bodyStartLine = lineNumberAt(content, braceIndex);
307
+ const calls = parseCalls(classBody, bodyStartLine);
308
+ let funcName = className;
309
+ const funcAttrRe = resetRegex(patterns.FUNCTION_ATTR);
310
+ const funcMatch = funcAttrRe.exec(classBody);
311
+ if (funcMatch) {
312
+ funcName = funcMatch[1] || funcMatch[2];
313
+ }
314
+ functions.push({
315
+ name: funcName,
316
+ style: "class-based",
317
+ role,
318
+ triggers: [{ kind: triggerKind, raw: m[0] }],
319
+ calls,
320
+ infraUsages: [],
321
+ className,
322
+ filePath: file.path,
323
+ line,
324
+ bodyText: classBody,
325
+ });
326
+ }
327
+ }
328
+ return functions;
329
+ }
330
+ export class CSharpParser {
331
+ language = "csharp";
332
+ fileExtensions = [".cs"];
333
+ parseFunctions(file) {
334
+ const attrFunctions = parseAttributeBasedFunctions(file);
335
+ const classFunctions = parseClassBasedFunctions(file);
336
+ const attrNames = new Set(attrFunctions.map((f) => f.name));
337
+ const deduped = [
338
+ ...attrFunctions,
339
+ ...classFunctions.filter((f) => !attrNames.has(f.name)),
340
+ ];
341
+ return deduped;
342
+ }
343
+ }
344
+ //# sourceMappingURL=csharpParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"csharpParser.js","sourceRoot":"","sources":["../../src/scanner/csharpParser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { ScannedFile } from "../analyzer/types.js";
2
+ export interface ScanOptions {
3
+ exclude?: string[];
4
+ }
5
+ export declare function scanFiles(basePath: string, extensions: string[], options?: ScanOptions): Promise<ScannedFile[]>;
6
+ //# sourceMappingURL=fileScanner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fileScanner.d.ts","sourceRoot":"","sources":["../../src/scanner/fileScanner.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAIxD,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,wBAAsB,SAAS,CAC7B,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAAE,EACpB,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,WAAW,EAAE,CAAC,CAuBxB"}
@@ -0,0 +1,26 @@
1
+ import fg from "fast-glob";
2
+ import { readFile } from "node:fs/promises";
3
+ import { resolve } from "node:path";
4
+ const DEFAULT_IGNORE = ["**/bin/**", "**/obj/**", "**/node_modules/**"];
5
+ export async function scanFiles(basePath, extensions, options = {}) {
6
+ const patterns = extensions.map((ext) => `**/*${ext}`);
7
+ const ignore = [...DEFAULT_IGNORE, ...(options.exclude ?? [])];
8
+ const absBase = resolve(basePath);
9
+ const files = await fg(patterns, {
10
+ cwd: absBase,
11
+ ignore,
12
+ absolute: false,
13
+ });
14
+ const results = [];
15
+ for (const relativePath of files.sort()) {
16
+ const absolutePath = resolve(absBase, relativePath);
17
+ const content = await readFile(absolutePath, "utf-8");
18
+ results.push({
19
+ path: relativePath,
20
+ absolutePath,
21
+ content,
22
+ });
23
+ }
24
+ return results;
25
+ }
26
+ //# sourceMappingURL=fileScanner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fileScanner.js","sourceRoot":"","sources":["../../src/scanner/fileScanner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,WAAW,CAAC;AAC3B,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,MAAM,cAAc,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,oBAAoB,CAAC,CAAC;AAMxE,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,QAAgB,EAChB,UAAoB,EACpB,UAAuB,EAAE;IAEzB,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,CAAC,GAAG,cAAc,EAAE,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;IAE/D,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClC,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC/B,GAAG,EAAE,OAAO;QACZ,MAAM;QACN,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,MAAM,OAAO,GAAkB,EAAE,CAAC;IAClC,KAAK,MAAM,YAAY,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;QACxC,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QACpD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACtD,OAAO,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,YAAY;YAClB,YAAY;YACZ,OAAO;SACR,CAAC,CAAC;IACL,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { ILanguageParser } from "../analyzer/types.js";
2
+ export declare function registerParser(parser: ILanguageParser): void;
3
+ export declare function getParser(extension: string): ILanguageParser | undefined;
4
+ export declare function getRegisteredExtensions(): string[];
5
+ //# sourceMappingURL=parserRegistry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parserRegistry.d.ts","sourceRoot":"","sources":["../../src/scanner/parserRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAK5D,wBAAgB,cAAc,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI,CAI5D;AAED,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAExE;AAED,wBAAgB,uBAAuB,IAAI,MAAM,EAAE,CAElD"}
@@ -0,0 +1,15 @@
1
+ import { CSharpParser } from "./csharpParser.js";
2
+ const parsers = new Map();
3
+ export function registerParser(parser) {
4
+ for (const ext of parser.fileExtensions) {
5
+ parsers.set(ext, parser);
6
+ }
7
+ }
8
+ export function getParser(extension) {
9
+ return parsers.get(extension);
10
+ }
11
+ export function getRegisteredExtensions() {
12
+ return Array.from(parsers.keys());
13
+ }
14
+ registerParser(new CSharpParser());
15
+ //# sourceMappingURL=parserRegistry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parserRegistry.js","sourceRoot":"","sources":["../../src/scanner/parserRegistry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,OAAO,GAAiC,IAAI,GAAG,EAAE,CAAC;AAExD,MAAM,UAAU,cAAc,CAAC,MAAuB;IACpD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC3B,CAAC;AACH,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,SAAiB;IACzC,OAAO,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,uBAAuB;IACrC,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;AACpC,CAAC;AAED,cAAc,CAAC,IAAI,YAAY,EAAE,CAAC,CAAC"}
@@ -0,0 +1,20 @@
1
+ export declare const FUNCTION_ATTR: RegExp;
2
+ export declare const HTTP_TRIGGER: RegExp;
3
+ export declare const ORCHESTRATION_TRIGGER: RegExp;
4
+ export declare const ACTIVITY_TRIGGER: RegExp;
5
+ export declare const ENTITY_TRIGGER: RegExp;
6
+ export declare const TIMER_TRIGGER: RegExp;
7
+ export declare const QUEUE_TRIGGER: RegExp;
8
+ export declare const BLOB_TRIGGER: RegExp;
9
+ export declare const DURABLE_CLIENT: RegExp;
10
+ export declare const CLASS_ORCHESTRATOR: RegExp;
11
+ export declare const CLASS_ACTIVITY: RegExp;
12
+ export declare const CLASS_ENTITY: RegExp;
13
+ export declare const CALL_ACTIVITY: RegExp;
14
+ export declare const CALL_SUB_ORCHESTRATOR: RegExp;
15
+ export declare const SCHEDULE_ORCHESTRATION: RegExp;
16
+ export declare const CALL_ENTITY: RegExp;
17
+ export declare const HTTP_METHODS_PATTERN: RegExp;
18
+ export declare const ROUTE_PATTERN: RegExp;
19
+ export declare const AUTH_LEVEL_PATTERN: RegExp;
20
+ //# sourceMappingURL=patterns.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patterns.d.ts","sourceRoot":"","sources":["../../src/scanner/patterns.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,QACoC,CAAC;AAE/D,eAAO,MAAM,YAAY,QACM,CAAC;AAEhC,eAAO,MAAM,qBAAqB,QACL,CAAC;AAE9B,eAAO,MAAM,gBAAgB,QACL,CAAC;AAEzB,eAAO,MAAM,cAAc,QACL,CAAC;AAEvB,eAAO,MAAM,aAAa,QACc,CAAC;AAEzC,eAAO,MAAM,aAAa,QACc,CAAC;AAEzC,eAAO,MAAM,YAAY,QACc,CAAC;AAExC,eAAO,MAAM,cAAc,QACL,CAAC;AAEvB,eAAO,MAAM,kBAAkB,QACgC,CAAC;AAEhE,eAAO,MAAM,cAAc,QACgC,CAAC;AAE5D,eAAO,MAAM,YAAY,QACgC,CAAC;AAE1D,eAAO,MAAM,aAAa,QACiE,CAAC;AAE5F,eAAO,MAAM,qBAAqB,QACgE,CAAC;AAEnG,eAAO,MAAM,sBAAsB,QACuD,CAAC;AAE3F,eAAO,MAAM,WAAW,QAC0J,CAAC;AAEnL,eAAO,MAAM,oBAAoB,QACgD,CAAC;AAElF,eAAO,MAAM,aAAa,QACD,CAAC;AAE1B,eAAO,MAAM,kBAAkB,QACF,CAAC"}
@@ -0,0 +1,20 @@
1
+ export const FUNCTION_ATTR = /\[Function\(\s*(?:nameof\(\s*(\w+)\s*\)|"([^"]+)")\s*\)\]/g;
2
+ export const HTTP_TRIGGER = /\[HttpTrigger\(([^)]*)\)\]/g;
3
+ export const ORCHESTRATION_TRIGGER = /\[OrchestrationTrigger\]/g;
4
+ export const ACTIVITY_TRIGGER = /\[ActivityTrigger\]/g;
5
+ export const ENTITY_TRIGGER = /\[EntityTrigger\]/g;
6
+ export const TIMER_TRIGGER = /\[TimerTrigger\(\s*"([^"]+)"\s*\)\]/g;
7
+ export const QUEUE_TRIGGER = /\[QueueTrigger\(\s*"([^"]+)"\s*\)\]/g;
8
+ export const BLOB_TRIGGER = /\[BlobTrigger\(\s*"([^"]+)"\s*\)\]/g;
9
+ export const DURABLE_CLIENT = /\[DurableClient\]/g;
10
+ export const CLASS_ORCHESTRATOR = /class\s+(\w+)\s*:\s*TaskOrchestrator<((?:[^<>]|<[^>]*>)+)>/g;
11
+ export const CLASS_ACTIVITY = /class\s+(\w+)\s*:\s*TaskActivity<((?:[^<>]|<[^>]*>)+)>/g;
12
+ export const CLASS_ENTITY = /class\s+(\w+)\s*:\s*TaskEntity<((?:[^<>]|<[^>]*>)+)>/g;
13
+ export const CALL_ACTIVITY = /\.CallActivityAsync(?:<((?:[^<>]|<[^>]*>)+)>)?\(\s*(?:nameof\(\s*(\w+)\s*\)|"([^"]+)")/g;
14
+ export const CALL_SUB_ORCHESTRATOR = /\.CallSubOrchestratorAsync(?:<((?:[^<>]|<[^>]*>)+)>)?\(\s*(?:nameof\(\s*(\w+)\s*\)|"([^"]+)")/g;
15
+ export const SCHEDULE_ORCHESTRATION = /\.ScheduleNewOrchestrationInstanceAsync\(\s*(?:nameof\(\s*(\w+)\s*\)|"([^"]+)"|(\w+))/g;
16
+ export const CALL_ENTITY = /\.(?:CallEntityAsync|SignalEntityAsync)(?:<((?:[^<>]|<[^>]*>)+)>)?\(\s*(?:new\s+EntityInstanceId\(\s*(?:nameof\(\s*(\w+)\s*\)|"([^"]+)")|(?:nameof\(\s*(\w+)\s*\)|"([^"]+)"))/g;
17
+ export const HTTP_METHODS_PATTERN = /(?:nameof\(HttpMethods\.(\w+)\)|"(GET|POST|PUT|DELETE|PATCH|HEAD|OPTIONS)")/gi;
18
+ export const ROUTE_PATTERN = /Route\s*=\s*"([^"]+)"/;
19
+ export const AUTH_LEVEL_PATTERN = /AuthorizationLevel\.(\w+)/;
20
+ //# sourceMappingURL=patterns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patterns.js","sourceRoot":"","sources":["../../src/scanner/patterns.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GACxB,4DAA4D,CAAC;AAE/D,MAAM,CAAC,MAAM,YAAY,GACvB,6BAA6B,CAAC;AAEhC,MAAM,CAAC,MAAM,qBAAqB,GAChC,2BAA2B,CAAC;AAE9B,MAAM,CAAC,MAAM,gBAAgB,GAC3B,sBAAsB,CAAC;AAEzB,MAAM,CAAC,MAAM,cAAc,GACzB,oBAAoB,CAAC;AAEvB,MAAM,CAAC,MAAM,aAAa,GACxB,sCAAsC,CAAC;AAEzC,MAAM,CAAC,MAAM,aAAa,GACxB,sCAAsC,CAAC;AAEzC,MAAM,CAAC,MAAM,YAAY,GACvB,qCAAqC,CAAC;AAExC,MAAM,CAAC,MAAM,cAAc,GACzB,oBAAoB,CAAC;AAEvB,MAAM,CAAC,MAAM,kBAAkB,GAC7B,6DAA6D,CAAC;AAEhE,MAAM,CAAC,MAAM,cAAc,GACzB,yDAAyD,CAAC;AAE5D,MAAM,CAAC,MAAM,YAAY,GACvB,uDAAuD,CAAC;AAE1D,MAAM,CAAC,MAAM,aAAa,GACxB,yFAAyF,CAAC;AAE5F,MAAM,CAAC,MAAM,qBAAqB,GAChC,gGAAgG,CAAC;AAEnG,MAAM,CAAC,MAAM,sBAAsB,GACjC,wFAAwF,CAAC;AAE3F,MAAM,CAAC,MAAM,WAAW,GACtB,gLAAgL,CAAC;AAEnL,MAAM,CAAC,MAAM,oBAAoB,GAC/B,+EAA+E,CAAC;AAElF,MAAM,CAAC,MAAM,aAAa,GACxB,uBAAuB,CAAC;AAE1B,MAAM,CAAC,MAAM,kBAAkB,GAC7B,2BAA2B,CAAC"}
@@ -0,0 +1,7 @@
1
+ export declare function setVerbose(enabled: boolean): void;
2
+ export declare function info(message: string): void;
3
+ export declare function success(message: string): void;
4
+ export declare function warn(message: string): void;
5
+ export declare function error(message: string): void;
6
+ export declare function verbose(message: string): void;
7
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAIA,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAEjD;AAED,wBAAgB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE1C;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE7C;AAED,wBAAgB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE1C;AAED,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE3C;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAI7C"}
@@ -0,0 +1,23 @@
1
+ import chalk from "chalk";
2
+ let verboseMode = false;
3
+ export function setVerbose(enabled) {
4
+ verboseMode = enabled;
5
+ }
6
+ export function info(message) {
7
+ console.error(chalk.blue("ℹ"), message);
8
+ }
9
+ export function success(message) {
10
+ console.error(chalk.green("✔"), message);
11
+ }
12
+ export function warn(message) {
13
+ console.error(chalk.yellow("⚠"), message);
14
+ }
15
+ export function error(message) {
16
+ console.error(chalk.red("✖"), message);
17
+ }
18
+ export function verbose(message) {
19
+ if (verboseMode) {
20
+ console.error(chalk.gray(" →"), chalk.gray(message));
21
+ }
22
+ }
23
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,IAAI,WAAW,GAAG,KAAK,CAAC;AAExB,MAAM,UAAU,UAAU,CAAC,OAAgB;IACzC,WAAW,GAAG,OAAO,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,OAAe;IAClC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,OAAe;IACrC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,OAAe;IAClC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,OAAe;IACnC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,OAAe;IACrC,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACxD,CAAC;AACH,CAAC"}
package/package.json ADDED
@@ -0,0 +1,37 @@
1
+ {
2
+ "name": "durable-map",
3
+ "version": "0.1.1",
4
+ "description": "Azure Durable Functions の構成を Markdown + Mermaid で可視化する CLI ツール",
5
+ "type": "module",
6
+ "bin": {
7
+ "durable-map": "./dist/index.js"
8
+ },
9
+ "main": "./dist/index.js",
10
+ "files": [
11
+ "dist"
12
+ ],
13
+ "scripts": {
14
+ "build": "tsc",
15
+ "test": "vitest run",
16
+ "test:watch": "vitest",
17
+ "lint": "tsc --noEmit"
18
+ },
19
+ "keywords": [
20
+ "azure",
21
+ "durable-functions",
22
+ "visualization",
23
+ "mermaid"
24
+ ],
25
+ "license": "MIT",
26
+ "dependencies": {
27
+ "chalk": "^5.4.1",
28
+ "commander": "^13.1.0",
29
+ "fast-glob": "^3.3.3"
30
+ },
31
+ "devDependencies": {
32
+ "@types/node": "^22.13.5",
33
+ "tsx": "^4.21.0",
34
+ "typescript": "^5.7.3",
35
+ "vitest": "^3.0.7"
36
+ }
37
+ }