@shadowcoderr/context-graph 0.3.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 (115) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +185 -0
  3. package/dist/analyzers/a11y-extractor.d.ts +15 -0
  4. package/dist/analyzers/a11y-extractor.d.ts.map +1 -0
  5. package/dist/analyzers/a11y-extractor.js +148 -0
  6. package/dist/analyzers/a11y-extractor.js.map +1 -0
  7. package/dist/analyzers/dom-analyzer.d.ts +20 -0
  8. package/dist/analyzers/dom-analyzer.d.ts.map +1 -0
  9. package/dist/analyzers/dom-analyzer.js +126 -0
  10. package/dist/analyzers/dom-analyzer.js.map +1 -0
  11. package/dist/analyzers/locator-generator.d.ts +13 -0
  12. package/dist/analyzers/locator-generator.d.ts.map +1 -0
  13. package/dist/analyzers/locator-generator.js +381 -0
  14. package/dist/analyzers/locator-generator.js.map +1 -0
  15. package/dist/analyzers/network-logger.d.ts +15 -0
  16. package/dist/analyzers/network-logger.d.ts.map +1 -0
  17. package/dist/analyzers/network-logger.js +71 -0
  18. package/dist/analyzers/network-logger.js.map +1 -0
  19. package/dist/cli/index.d.ts +2 -0
  20. package/dist/cli/index.d.ts.map +1 -0
  21. package/dist/cli/index.js +155 -0
  22. package/dist/cli/index.js.map +1 -0
  23. package/dist/config/defaults.d.ts +3 -0
  24. package/dist/config/defaults.d.ts.map +1 -0
  25. package/dist/config/defaults.js +54 -0
  26. package/dist/config/defaults.js.map +1 -0
  27. package/dist/config/loader.d.ts +3 -0
  28. package/dist/config/loader.d.ts.map +1 -0
  29. package/dist/config/loader.js +75 -0
  30. package/dist/config/loader.js.map +1 -0
  31. package/dist/config/schema.d.ts +168 -0
  32. package/dist/config/schema.d.ts.map +1 -0
  33. package/dist/config/schema.js +104 -0
  34. package/dist/config/schema.js.map +1 -0
  35. package/dist/core/browser-adapter.d.ts +24 -0
  36. package/dist/core/browser-adapter.d.ts.map +1 -0
  37. package/dist/core/browser-adapter.js +208 -0
  38. package/dist/core/browser-adapter.js.map +1 -0
  39. package/dist/core/capture-engine.d.ts +52 -0
  40. package/dist/core/capture-engine.d.ts.map +1 -0
  41. package/dist/core/capture-engine.js +593 -0
  42. package/dist/core/capture-engine.js.map +1 -0
  43. package/dist/core/runtime.d.ts +38 -0
  44. package/dist/core/runtime.d.ts.map +1 -0
  45. package/dist/core/runtime.js +648 -0
  46. package/dist/core/runtime.js.map +1 -0
  47. package/dist/prompts/init-prompt.d.ts +12 -0
  48. package/dist/prompts/init-prompt.d.ts.map +1 -0
  49. package/dist/prompts/init-prompt.js +128 -0
  50. package/dist/prompts/init-prompt.js.map +1 -0
  51. package/dist/registry/components-registry.d.ts +97 -0
  52. package/dist/registry/components-registry.d.ts.map +1 -0
  53. package/dist/registry/components-registry.js +469 -0
  54. package/dist/registry/components-registry.js.map +1 -0
  55. package/dist/registry/index.d.ts +2 -0
  56. package/dist/registry/index.d.ts.map +1 -0
  57. package/dist/registry/index.js +7 -0
  58. package/dist/registry/index.js.map +1 -0
  59. package/dist/security/patterns.d.ts +4 -0
  60. package/dist/security/patterns.d.ts.map +1 -0
  61. package/dist/security/patterns.js +65 -0
  62. package/dist/security/patterns.js.map +1 -0
  63. package/dist/security/redactor.d.ts +26 -0
  64. package/dist/security/redactor.d.ts.map +1 -0
  65. package/dist/security/redactor.js +128 -0
  66. package/dist/security/redactor.js.map +1 -0
  67. package/dist/security/validator.d.ts +11 -0
  68. package/dist/security/validator.d.ts.map +1 -0
  69. package/dist/security/validator.js +62 -0
  70. package/dist/security/validator.js.map +1 -0
  71. package/dist/storage/engine.d.ts +45 -0
  72. package/dist/storage/engine.d.ts.map +1 -0
  73. package/dist/storage/engine.js +479 -0
  74. package/dist/storage/engine.js.map +1 -0
  75. package/dist/storage/manifest.d.ts +10 -0
  76. package/dist/storage/manifest.d.ts.map +1 -0
  77. package/dist/storage/manifest.js +98 -0
  78. package/dist/storage/manifest.js.map +1 -0
  79. package/dist/storage/serializer.d.ts +9 -0
  80. package/dist/storage/serializer.d.ts.map +1 -0
  81. package/dist/storage/serializer.js +22 -0
  82. package/dist/storage/serializer.js.map +1 -0
  83. package/dist/types/capture.d.ts +206 -0
  84. package/dist/types/capture.d.ts.map +1 -0
  85. package/dist/types/capture.js +3 -0
  86. package/dist/types/capture.js.map +1 -0
  87. package/dist/types/config.d.ts +63 -0
  88. package/dist/types/config.d.ts.map +1 -0
  89. package/dist/types/config.js +3 -0
  90. package/dist/types/config.js.map +1 -0
  91. package/dist/types/registry.d.ts +94 -0
  92. package/dist/types/registry.d.ts.map +1 -0
  93. package/dist/types/registry.js +3 -0
  94. package/dist/types/registry.js.map +1 -0
  95. package/dist/types/storage.d.ts +57 -0
  96. package/dist/types/storage.d.ts.map +1 -0
  97. package/dist/types/storage.js +3 -0
  98. package/dist/types/storage.js.map +1 -0
  99. package/dist/utils/hash.d.ts +3 -0
  100. package/dist/utils/hash.d.ts.map +1 -0
  101. package/dist/utils/hash.js +26 -0
  102. package/dist/utils/hash.js.map +1 -0
  103. package/dist/utils/logger.d.ts +20 -0
  104. package/dist/utils/logger.d.ts.map +1 -0
  105. package/dist/utils/logger.js +86 -0
  106. package/dist/utils/logger.js.map +1 -0
  107. package/dist/utils/pom-generator.d.ts +12 -0
  108. package/dist/utils/pom-generator.d.ts.map +1 -0
  109. package/dist/utils/pom-generator.js +83 -0
  110. package/dist/utils/pom-generator.js.map +1 -0
  111. package/dist/utils/validators.d.ts +7 -0
  112. package/dist/utils/validators.d.ts.map +1 -0
  113. package/dist/utils/validators.js +51 -0
  114. package/dist/utils/validators.js.map +1 -0
  115. package/package.json +70 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serializer.js","sourceRoot":"","sources":["../../src/storage/serializer.ts"],"names":[],"mappings":";;;AAGA,MAAa,cAAc;IACzB,qBAAqB,CAAC,QAAsB;QAC1C,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC3C,CAAC;IAED,uBAAuB,CAAC,IAAY;QAClC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,iBAAiB,CAAC,QAAa;QAC7B,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC3C,CAAC;IAED,iBAAiB,CAAC,QAAa;QAC7B,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC3C,CAAC;IAED,0BAA0B,CAAC,IAAS;QAClC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACvC,CAAC;CACF;AApBD,wCAoBC"}
@@ -0,0 +1,206 @@
1
+ export interface PageState {
2
+ scrollPosition: {
3
+ x: number;
4
+ y: number;
5
+ };
6
+ focusedElement?: string;
7
+ selectedText: string;
8
+ formData?: Record<string, any>;
9
+ localStorage?: Record<string, string>;
10
+ sessionStorage?: Record<string, string>;
11
+ }
12
+ export interface NetworkSummary {
13
+ totalRequests: number;
14
+ failedRequests: number;
15
+ requestTypes: {
16
+ xhr?: number;
17
+ fetch?: number;
18
+ document?: number;
19
+ stylesheet?: number;
20
+ script?: number;
21
+ image?: number;
22
+ font?: number;
23
+ other?: number;
24
+ };
25
+ apiEndpoints: string[];
26
+ }
27
+ export interface PageMetadata {
28
+ captureId: string;
29
+ timestamp: string;
30
+ mode: 'browser' | 'recorder';
31
+ url: string;
32
+ domain: string;
33
+ title: string;
34
+ pageName?: string;
35
+ contentHash?: string;
36
+ viewport: {
37
+ width: number;
38
+ height: number;
39
+ deviceScaleFactor: number;
40
+ };
41
+ timing: {
42
+ navigationStart: number;
43
+ domContentLoaded: number;
44
+ loadComplete: number;
45
+ networkIdle: number;
46
+ firstContentfulPaint?: number;
47
+ largestContentfulPaint?: number;
48
+ timeToInteractive?: number;
49
+ };
50
+ performance: {
51
+ domNodes: number;
52
+ scripts: number;
53
+ stylesheets: number;
54
+ images: number;
55
+ totalRequests: number;
56
+ };
57
+ userAgent: string;
58
+ cookies: string;
59
+ pageState?: PageState;
60
+ networkSummary?: NetworkSummary;
61
+ }
62
+ export interface AccessibilityTree {
63
+ role: string;
64
+ name: string;
65
+ children?: AccessibilityTree[];
66
+ value?: string;
67
+ required?: boolean;
68
+ disabled?: boolean;
69
+ focused?: boolean;
70
+ multiline?: boolean;
71
+ protected?: boolean;
72
+ checked?: boolean | 'mixed';
73
+ pressed?: boolean | 'mixed';
74
+ selected?: boolean;
75
+ expanded?: boolean;
76
+ level?: number;
77
+ }
78
+ export interface Locator {
79
+ strategy: 'role' | 'testid' | 'label' | 'placeholder' | 'text' | 'css';
80
+ value: string;
81
+ confidence: 'high' | 'medium' | 'low';
82
+ resilience: number;
83
+ matchCount?: number;
84
+ isUnique?: boolean;
85
+ }
86
+ export interface ElementStyles {
87
+ display: string;
88
+ visibility: string;
89
+ opacity: string;
90
+ zIndex: string;
91
+ position: string;
92
+ backgroundColor?: string;
93
+ color?: string;
94
+ fontSize?: string;
95
+ fontWeight?: string;
96
+ border?: string;
97
+ borderRadius?: string;
98
+ }
99
+ export interface ViewportElement {
100
+ elementId: string;
101
+ visible: boolean;
102
+ inViewport: boolean;
103
+ viewportPosition: {
104
+ x: number;
105
+ y: number;
106
+ };
107
+ }
108
+ export interface FormFieldDetails {
109
+ elementId: string;
110
+ fieldType: string;
111
+ label?: string;
112
+ placeholder?: string;
113
+ required: boolean;
114
+ pattern?: string;
115
+ maxLength?: number;
116
+ minLength?: number;
117
+ validationRules?: {
118
+ minLength?: number;
119
+ maxLength?: number;
120
+ pattern?: string;
121
+ required?: boolean;
122
+ };
123
+ }
124
+ export interface ElementLocator {
125
+ elementId: string;
126
+ tagName: string;
127
+ text?: string;
128
+ locators: Locator[];
129
+ attributes: Record<string, any>;
130
+ computedState: {
131
+ isVisible: boolean;
132
+ isEnabled: boolean;
133
+ isChecked: boolean | null;
134
+ isEditable: boolean;
135
+ isFocusable: boolean;
136
+ };
137
+ position: {
138
+ x: number;
139
+ y: number;
140
+ width: number;
141
+ height: number;
142
+ };
143
+ styles?: ElementStyles;
144
+ }
145
+ export interface LocatorsData {
146
+ elements: ElementLocator[];
147
+ viewportElements?: ViewportElement[];
148
+ formFields?: FormFieldDetails[];
149
+ }
150
+ export interface NetworkEvent {
151
+ timestamp: string;
152
+ type: 'request' | 'response';
153
+ method: string;
154
+ url: string;
155
+ resourceType: string;
156
+ status?: number;
157
+ headers: Record<string, string>;
158
+ body?: string;
159
+ timing: {
160
+ startTime: number;
161
+ endTime?: number;
162
+ duration?: number;
163
+ };
164
+ }
165
+ export interface ConsoleMessage {
166
+ timestamp: string;
167
+ type: 'log' | 'debug' | 'info' | 'error' | 'warn' | 'dir' | 'dirxml' | 'table' | 'trace' | 'clear' | 'startGroup' | 'startGroupCollapsed' | 'endGroup' | 'assert' | 'profile' | 'profileEnd' | 'count' | 'timeEnd' | 'verbose' | 'issue';
168
+ message: string;
169
+ location: {
170
+ url: string;
171
+ lineNumber: number;
172
+ columnNumber: number;
173
+ };
174
+ args: any[];
175
+ stack?: string;
176
+ }
177
+ export interface ConsoleErrors {
178
+ errors: Array<{
179
+ timestamp: string;
180
+ message: string;
181
+ source: string;
182
+ stack?: string;
183
+ }>;
184
+ warnings: Array<{
185
+ timestamp: string;
186
+ message: string;
187
+ source: string;
188
+ }>;
189
+ }
190
+ export interface FrameHierarchy {
191
+ url: string;
192
+ name: string;
193
+ children: FrameHierarchy[];
194
+ content?: string;
195
+ }
196
+ export interface PageSnapshot {
197
+ metadata: PageMetadata;
198
+ domSnapshot: string;
199
+ a11yTree: AccessibilityTree;
200
+ locators: LocatorsData;
201
+ frames: FrameHierarchy;
202
+ networkEvents: NetworkEvent[];
203
+ consoleMessages: ConsoleMessage[];
204
+ screenshotPaths: string[];
205
+ }
206
+ //# sourceMappingURL=capture.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capture.d.ts","sourceRoot":"","sources":["../../src/types/capture.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=capture.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capture.js","sourceRoot":"","sources":["../../src/types/capture.ts"],"names":[],"mappings":""}
@@ -0,0 +1,63 @@
1
+ export interface BrowserConfig {
2
+ channel: 'msedge' | 'chromium' | 'firefox';
3
+ headless: boolean;
4
+ viewport: {
5
+ width: number;
6
+ height: number;
7
+ };
8
+ slowMo: number;
9
+ devtools: boolean;
10
+ }
11
+ export interface LocatorConfig {
12
+ enabled: boolean;
13
+ maxElements: number;
14
+ maxCandidatesPerElement: number;
15
+ includeUniquenessChecks: boolean;
16
+ }
17
+ export interface ComponentsConfig {
18
+ enabled: boolean;
19
+ minOccurrences: number;
20
+ maxComponents: number;
21
+ }
22
+ export interface CaptureConfig {
23
+ screenshots: {
24
+ enabled: boolean;
25
+ fullPage: boolean;
26
+ elementTargeting: boolean;
27
+ };
28
+ network: {
29
+ enabled: boolean;
30
+ captureHeaders: boolean;
31
+ captureBody: boolean;
32
+ };
33
+ accessibility: {
34
+ enabled: boolean;
35
+ includeHidden: boolean;
36
+ };
37
+ locators: LocatorConfig;
38
+ components: ComponentsConfig;
39
+ forceCapture: boolean;
40
+ }
41
+ export interface SecurityConfig {
42
+ redactPatterns: string[];
43
+ redactHeaders: string[];
44
+ customPatterns: RedactionRule[];
45
+ }
46
+ export interface RedactionRule {
47
+ name: string;
48
+ pattern: RegExp;
49
+ replacement: string;
50
+ severity: 'critical' | 'high' | 'medium';
51
+ }
52
+ export interface StorageConfig {
53
+ outputDir: string;
54
+ compression: boolean;
55
+ prettyJson: boolean;
56
+ }
57
+ export interface Config {
58
+ browser: BrowserConfig;
59
+ capture: CaptureConfig;
60
+ security: SecurityConfig;
61
+ storage: StorageConfig;
62
+ }
63
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;IAC3C,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE;QACR,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,uBAAuB,EAAE,MAAM,CAAC;IAChC,uBAAuB,EAAE,OAAO,CAAC;CAClC;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE;QACX,OAAO,EAAE,OAAO,CAAC;QACjB,QAAQ,EAAE,OAAO,CAAC;QAClB,gBAAgB,EAAE,OAAO,CAAC;KAC3B,CAAC;IACF,OAAO,EAAE;QACP,OAAO,EAAE,OAAO,CAAC;QACjB,cAAc,EAAE,OAAO,CAAC;QACxB,WAAW,EAAE,OAAO,CAAC;KACtB,CAAC;IACF,aAAa,EAAE;QACb,OAAO,EAAE,OAAO,CAAC;QACjB,aAAa,EAAE,OAAO,CAAC;KACxB,CAAC;IACF,QAAQ,EAAE,aAAa,CAAC;IACxB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,cAAc,EAAE,aAAa,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,CAAC;CAC1C;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,MAAM;IACrB,OAAO,EAAE,aAAa,CAAC;IACvB,OAAO,EAAE,aAAa,CAAC;IACvB,QAAQ,EAAE,cAAc,CAAC;IACzB,OAAO,EAAE,aAAa,CAAC;CACxB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":""}
@@ -0,0 +1,94 @@
1
+ import { Locator } from './capture';
2
+ /**
3
+ * Represents a reusable UI component pattern identified across pages
4
+ */
5
+ export interface ComponentPattern {
6
+ componentId: string;
7
+ name: string;
8
+ type: ComponentType;
9
+ signature: ComponentSignature;
10
+ occurrences: ComponentOccurrence[];
11
+ bestLocators: Locator[];
12
+ metadata: ComponentMetadata;
13
+ }
14
+ /**
15
+ * Types of UI components
16
+ */
17
+ export type ComponentType = 'button' | 'link' | 'form' | 'input' | 'select' | 'navigation' | 'modal' | 'card' | 'list' | 'table' | 'header' | 'footer' | 'sidebar' | 'breadcrumb' | 'pagination' | 'search' | 'login' | 'custom';
18
+ /**
19
+ * Signature used to identify a component pattern
20
+ */
21
+ export interface ComponentSignature {
22
+ tagName?: string;
23
+ role?: string;
24
+ classes?: string[];
25
+ attributes?: Record<string, string>;
26
+ textPattern?: string;
27
+ structureHash?: string;
28
+ }
29
+ /**
30
+ * An occurrence of a component on a specific page
31
+ */
32
+ export interface ComponentOccurrence {
33
+ pageId: string;
34
+ pageUrl: string;
35
+ timestamp: string;
36
+ elementId: string;
37
+ locator: Locator;
38
+ context?: string;
39
+ }
40
+ /**
41
+ * Metadata about a component pattern
42
+ */
43
+ export interface ComponentMetadata {
44
+ firstSeen: string;
45
+ lastSeen: string;
46
+ totalOccurrences: number;
47
+ uniquePages: number;
48
+ avgStability: number;
49
+ tags: string[];
50
+ description?: string;
51
+ }
52
+ /**
53
+ * The complete components registry
54
+ */
55
+ export interface ComponentsRegistry {
56
+ version: string;
57
+ createdAt: string;
58
+ lastUpdated: string;
59
+ domain: string;
60
+ components: ComponentPattern[];
61
+ statistics: RegistryStatistics;
62
+ }
63
+ /**
64
+ * Aggregate statistics for the registry
65
+ */
66
+ export interface RegistryStatistics {
67
+ totalComponents: number;
68
+ totalOccurrences: number;
69
+ byType: Record<ComponentType, number>;
70
+ avgStability: number;
71
+ mostCommon: string[];
72
+ }
73
+ /**
74
+ * Options for component extraction
75
+ */
76
+ export interface ComponentExtractionOptions {
77
+ minOccurrences: number;
78
+ stabilityThreshold: number;
79
+ includeContext: boolean;
80
+ maxComponents: number;
81
+ }
82
+ /**
83
+ * Result of component extraction from a page
84
+ */
85
+ export interface ExtractedComponent {
86
+ elementId: string;
87
+ tagName: string;
88
+ role?: string;
89
+ text?: string;
90
+ locators: Locator[];
91
+ attributes: Record<string, string>;
92
+ signature: ComponentSignature;
93
+ }
94
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/types/registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,aAAa,CAAC;IACpB,SAAS,EAAE,kBAAkB,CAAC;IAC9B,WAAW,EAAE,mBAAmB,EAAE,CAAC;IACnC,YAAY,EAAE,OAAO,EAAE,CAAC;IACxB,QAAQ,EAAE,iBAAiB,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GACrB,QAAQ,GACR,MAAM,GACN,MAAM,GACN,OAAO,GACP,QAAQ,GACR,YAAY,GACZ,OAAO,GACP,MAAM,GACN,MAAM,GACN,OAAO,GACP,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,YAAY,GACZ,YAAY,GACZ,QAAQ,GACR,OAAO,GACP,QAAQ,CAAC;AAEb;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,gBAAgB,EAAE,CAAC;IAC/B,UAAU,EAAE,kBAAkB,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IACtC,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,SAAS,EAAE,kBAAkB,CAAC;CAC/B"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/types/registry.ts"],"names":[],"mappings":""}
@@ -0,0 +1,57 @@
1
+ export interface ManifestEntry {
2
+ captureId: string;
3
+ url: string;
4
+ title: string;
5
+ timestamp: string;
6
+ sessionId: string;
7
+ domain: string;
8
+ mode: 'browser' | 'recorder';
9
+ }
10
+ export interface SessionSummary {
11
+ sessionId: string;
12
+ mode: 'browser' | 'recorder';
13
+ startTime: string;
14
+ endTime: string;
15
+ domains: string[];
16
+ totalPages: number;
17
+ totalActions?: number;
18
+ }
19
+ export interface DomainSummary {
20
+ domain: string;
21
+ firstVisited: string;
22
+ lastVisited: string;
23
+ totalVisits: number;
24
+ pages: ManifestEntry[];
25
+ }
26
+ export interface GlobalManifest {
27
+ version: string;
28
+ createdAt: string;
29
+ lastUpdated: string;
30
+ sessions: SessionSummary[];
31
+ domains: DomainSummary[];
32
+ componentsRegistry?: {
33
+ path: string;
34
+ totalComponents: number;
35
+ lastUpdated: string;
36
+ };
37
+ statistics: {
38
+ totalSessions: number;
39
+ totalDomains: number;
40
+ totalPages: number;
41
+ totalNetworkRequests: number;
42
+ totalScreenshots: number;
43
+ storageSize: string;
44
+ totalComponents?: number;
45
+ };
46
+ }
47
+ export interface RedactionAuditEntry {
48
+ timestamp: string;
49
+ context: string;
50
+ url?: string;
51
+ redactions: Array<{
52
+ rule: string;
53
+ count: number;
54
+ field: string;
55
+ }>;
56
+ }
57
+ //# sourceMappingURL=storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/types/storage.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,SAAS,GAAG,UAAU,CAAC;CAC9B;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,SAAS,GAAG,UAAU,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,aAAa,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,kBAAkB,CAAC,EAAE;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,eAAe,EAAE,MAAM,CAAC;QACxB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,UAAU,EAAE;QACV,aAAa,EAAE,MAAM,CAAC;QACtB,YAAY,EAAE,MAAM,CAAC;QACrB,UAAU,EAAE,MAAM,CAAC;QACnB,oBAAoB,EAAE,MAAM,CAAC;QAC7B,gBAAgB,EAAE,MAAM,CAAC;QACzB,WAAW,EAAE,MAAM,CAAC;QACpB,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;CACH;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,KAAK,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;CACJ"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/types/storage.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export declare function generatePageId(url: string, timestamp: Date): string;
2
+ export declare function generateSessionId(timestamp: Date): string;
3
+ //# sourceMappingURL=hash.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hash.d.ts","sourceRoot":"","sources":["../../src/utils/hash.ts"],"names":[],"mappings":"AAGA,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,GAAG,MAAM,CAanE;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,IAAI,GAAG,MAAM,CAMzD"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generatePageId = generatePageId;
4
+ exports.generateSessionId = generateSessionId;
5
+ // Developer: Shadow Coderr, Architect
6
+ const crypto_1 = require("crypto");
7
+ function generatePageId(url, timestamp) {
8
+ const dateStr = timestamp
9
+ .toISOString()
10
+ .replace(/[-:]/g, '')
11
+ .replace('T', '_')
12
+ .split('.')[0]; // 20251213_103045
13
+ const urlHash = (0, crypto_1.createHash)('md5')
14
+ .update(url)
15
+ .digest('hex')
16
+ .substring(0, 7); // a4b8c2d
17
+ return `${dateStr}_${urlHash}`;
18
+ }
19
+ function generateSessionId(timestamp) {
20
+ return `session_${timestamp
21
+ .toISOString()
22
+ .replace(/[-:]/g, '')
23
+ .replace('T', '_')
24
+ .split('.')[0]}`;
25
+ }
26
+ //# sourceMappingURL=hash.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hash.js","sourceRoot":"","sources":["../../src/utils/hash.ts"],"names":[],"mappings":";;AAGA,wCAaC;AAED,8CAMC;AAxBD,sCAAsC;AACtC,mCAAoC;AAEpC,SAAgB,cAAc,CAAC,GAAW,EAAE,SAAe;IACzD,MAAM,OAAO,GAAG,SAAS;SACtB,WAAW,EAAE;SACb,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;SACpB,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;SACjB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB;IAEpC,MAAM,OAAO,GAAG,IAAA,mBAAU,EAAC,KAAK,CAAC;SAC9B,MAAM,CAAC,GAAG,CAAC;SACX,MAAM,CAAC,KAAK,CAAC;SACb,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU;IAE9B,OAAO,GAAG,OAAO,IAAI,OAAO,EAAE,CAAC;AACjC,CAAC;AAED,SAAgB,iBAAiB,CAAC,SAAe;IAC/C,OAAO,WAAW,SAAS;SACxB,WAAW,EAAE;SACb,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;SACpB,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;SACjB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACrB,CAAC"}
@@ -0,0 +1,20 @@
1
+ export declare enum LogLevel {
2
+ DEBUG = 0,
3
+ INFO = 1,
4
+ WARN = 2,
5
+ ERROR = 3
6
+ }
7
+ export declare class Logger {
8
+ private logLevel;
9
+ private logFile;
10
+ constructor(logLevel?: LogLevel, logFile?: string);
11
+ set level(level: LogLevel);
12
+ get level(): LogLevel;
13
+ debug(message: string, ...args: any[]): void;
14
+ info(message: string, ...args: any[]): void;
15
+ warn(message: string, ...args: any[]): void;
16
+ error(message: string, ...args: any[]): void;
17
+ private log;
18
+ }
19
+ export declare const logger: Logger;
20
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAGA,oBAAY,QAAQ;IAClB,KAAK,IAAI;IACT,IAAI,IAAI;IACR,IAAI,IAAI;IACR,KAAK,IAAI;CACV;AAED,qBAAa,MAAM;IACjB,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,OAAO,CAAqB;gBAExB,QAAQ,GAAE,QAAwB,EAAE,OAAO,CAAC,EAAE,MAAM;IAKhE,IAAI,KAAK,CAAC,KAAK,EAAE,QAAQ,EAExB;IAED,IAAI,KAAK,IAAI,QAAQ,CAEpB;IAED,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAI5C,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAI3C,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAI3C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAI5C,OAAO,CAAC,GAAG;CAcZ;AAED,eAAO,MAAM,MAAM,QAAe,CAAC"}
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.logger = exports.Logger = exports.LogLevel = void 0;
37
+ // Developer: Shadow Coderr, Architect
38
+ const fs = __importStar(require("fs-extra"));
39
+ var LogLevel;
40
+ (function (LogLevel) {
41
+ LogLevel[LogLevel["DEBUG"] = 0] = "DEBUG";
42
+ LogLevel[LogLevel["INFO"] = 1] = "INFO";
43
+ LogLevel[LogLevel["WARN"] = 2] = "WARN";
44
+ LogLevel[LogLevel["ERROR"] = 3] = "ERROR";
45
+ })(LogLevel || (exports.LogLevel = LogLevel = {}));
46
+ class Logger {
47
+ logLevel;
48
+ logFile;
49
+ constructor(logLevel = LogLevel.INFO, logFile) {
50
+ this.logLevel = logLevel;
51
+ this.logFile = logFile;
52
+ }
53
+ set level(level) {
54
+ this.logLevel = level;
55
+ }
56
+ get level() {
57
+ return this.logLevel;
58
+ }
59
+ debug(message, ...args) {
60
+ this.log(LogLevel.DEBUG, message, ...args);
61
+ }
62
+ info(message, ...args) {
63
+ this.log(LogLevel.INFO, message, ...args);
64
+ }
65
+ warn(message, ...args) {
66
+ this.log(LogLevel.WARN, message, ...args);
67
+ }
68
+ error(message, ...args) {
69
+ this.log(LogLevel.ERROR, message, ...args);
70
+ }
71
+ log(level, message, ...args) {
72
+ if (level < this.logLevel)
73
+ return;
74
+ const timestamp = new Date().toISOString();
75
+ const levelStr = LogLevel[level];
76
+ const formattedMessage = `[${timestamp}] ${levelStr}: ${message}`;
77
+ console.log(formattedMessage, ...args);
78
+ if (this.logFile) {
79
+ const logEntry = `${formattedMessage} ${args.length ? JSON.stringify(args) : ''}\n`;
80
+ fs.appendFileSync(this.logFile, logEntry);
81
+ }
82
+ }
83
+ }
84
+ exports.Logger = Logger;
85
+ exports.logger = new Logger();
86
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sCAAsC;AACtC,6CAA+B;AAE/B,IAAY,QAKX;AALD,WAAY,QAAQ;IAClB,yCAAS,CAAA;IACT,uCAAQ,CAAA;IACR,uCAAQ,CAAA;IACR,yCAAS,CAAA;AACX,CAAC,EALW,QAAQ,wBAAR,QAAQ,QAKnB;AAED,MAAa,MAAM;IACT,QAAQ,CAAW;IACnB,OAAO,CAAqB;IAEpC,YAAY,WAAqB,QAAQ,CAAC,IAAI,EAAE,OAAgB;QAC9D,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,IAAI,KAAK,CAAC,KAAe;QACvB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACxB,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,GAAG,IAAW;QACnC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED,IAAI,CAAC,OAAe,EAAE,GAAG,IAAW;QAClC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,CAAC,OAAe,EAAE,GAAG,IAAW;QAClC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,GAAG,IAAW;QACnC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IAC7C,CAAC;IAEO,GAAG,CAAC,KAAe,EAAE,OAAe,EAAE,GAAG,IAAW;QAC1D,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ;YAAE,OAAO;QAElC,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,gBAAgB,GAAG,IAAI,SAAS,KAAK,QAAQ,KAAK,OAAO,EAAE,CAAC;QAElE,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,GAAG,IAAI,CAAC,CAAC;QAEvC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,QAAQ,GAAG,GAAG,gBAAgB,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;YACpF,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;CACF;AA/CD,wBA+CC;AAEY,QAAA,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { PageSnapshot } from '../types/capture';
2
+ export declare class POMGenerator {
3
+ /**
4
+ * Generates a Playwright Page Object Model (POM) from a page snapshot
5
+ */
6
+ generate(snapshot: PageSnapshot): string;
7
+ private getElementName;
8
+ private filterUniqueLocators;
9
+ private toCamelCase;
10
+ private toPascalCase;
11
+ }
12
+ //# sourceMappingURL=pom-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pom-generator.d.ts","sourceRoot":"","sources":["../../src/utils/pom-generator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAkB,MAAM,kBAAkB,CAAC;AAEhE,qBAAa,YAAY;IACvB;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM;IAwDxC,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,oBAAoB;IAU5B,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,YAAY;CAIrB"}