axon-logger 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/README.md +0 -0
  2. package/dist/axon.browser.js +2 -0
  3. package/dist/axon.browser.js.map +1 -0
  4. package/dist/cli/axon-cli.d.ts +7 -0
  5. package/dist/cli/axon-cli.d.ts.map +1 -0
  6. package/dist/cli/axon-cli.js +179 -0
  7. package/dist/cli/axon-cli.js.map +1 -0
  8. package/dist/extractor/LogExtractor.d.ts +64 -0
  9. package/dist/extractor/LogExtractor.d.ts.map +1 -0
  10. package/dist/extractor/LogExtractor.js +237 -0
  11. package/dist/extractor/LogExtractor.js.map +1 -0
  12. package/dist/extractor/index.d.ts +2 -0
  13. package/dist/extractor/index.d.ts.map +1 -0
  14. package/dist/extractor/index.js +6 -0
  15. package/dist/extractor/index.js.map +1 -0
  16. package/dist/file-manager/BrowserFileManager.d.ts +102 -0
  17. package/dist/file-manager/BrowserFileManager.d.ts.map +1 -0
  18. package/dist/file-manager/BrowserFileManager.js +281 -0
  19. package/dist/file-manager/BrowserFileManager.js.map +1 -0
  20. package/dist/file-manager/FileManager.d.ts +103 -0
  21. package/dist/file-manager/FileManager.d.ts.map +1 -0
  22. package/dist/file-manager/FileManager.js +331 -0
  23. package/dist/file-manager/FileManager.js.map +1 -0
  24. package/dist/file-manager/index.d.ts +7 -0
  25. package/dist/file-manager/index.d.ts.map +1 -0
  26. package/dist/file-manager/index.js +11 -0
  27. package/dist/file-manager/index.js.map +1 -0
  28. package/dist/file-manager/types.d.ts +37 -0
  29. package/dist/file-manager/types.d.ts.map +1 -0
  30. package/dist/file-manager/types.js +6 -0
  31. package/dist/file-manager/types.js.map +1 -0
  32. package/dist/index.d.ts +11 -0
  33. package/dist/index.d.ts.map +1 -0
  34. package/dist/index.js +34 -0
  35. package/dist/index.js.map +1 -0
  36. package/dist/logger/ConfigLoader.d.ts +27 -0
  37. package/dist/logger/ConfigLoader.d.ts.map +1 -0
  38. package/dist/logger/ConfigLoader.js +210 -0
  39. package/dist/logger/ConfigLoader.js.map +1 -0
  40. package/dist/logger/Logger.d.ts +142 -0
  41. package/dist/logger/Logger.d.ts.map +1 -0
  42. package/dist/logger/Logger.js +511 -0
  43. package/dist/logger/Logger.js.map +1 -0
  44. package/dist/logger/index.d.ts +7 -0
  45. package/dist/logger/index.d.ts.map +1 -0
  46. package/dist/logger/index.js +17 -0
  47. package/dist/logger/index.js.map +1 -0
  48. package/dist/logger/types.d.ts +107 -0
  49. package/dist/logger/types.d.ts.map +1 -0
  50. package/dist/logger/types.js +57 -0
  51. package/dist/logger/types.js.map +1 -0
  52. package/dist/parser/StreamingParser.d.ts +21 -0
  53. package/dist/parser/StreamingParser.d.ts.map +1 -0
  54. package/dist/parser/StreamingParser.js +70 -0
  55. package/dist/parser/StreamingParser.js.map +1 -0
  56. package/dist/parser/TOONParser.d.ts +113 -0
  57. package/dist/parser/TOONParser.d.ts.map +1 -0
  58. package/dist/parser/TOONParser.js +386 -0
  59. package/dist/parser/TOONParser.js.map +1 -0
  60. package/dist/parser/index.d.ts +8 -0
  61. package/dist/parser/index.d.ts.map +1 -0
  62. package/dist/parser/index.js +13 -0
  63. package/dist/parser/index.js.map +1 -0
  64. package/dist/serializer/TOONSerializer.d.ts +232 -0
  65. package/dist/serializer/TOONSerializer.d.ts.map +1 -0
  66. package/dist/serializer/TOONSerializer.js +497 -0
  67. package/dist/serializer/TOONSerializer.js.map +1 -0
  68. package/dist/serializer/index.d.ts +7 -0
  69. package/dist/serializer/index.d.ts.map +1 -0
  70. package/dist/serializer/index.js +11 -0
  71. package/dist/serializer/index.js.map +1 -0
  72. package/dist/utils/TokenCounter.d.ts +31 -0
  73. package/dist/utils/TokenCounter.d.ts.map +1 -0
  74. package/dist/utils/TokenCounter.js +44 -0
  75. package/dist/utils/TokenCounter.js.map +1 -0
  76. package/dist/utils/index.d.ts +5 -0
  77. package/dist/utils/index.d.ts.map +1 -0
  78. package/dist/utils/index.js +9 -0
  79. package/dist/utils/index.js.map +1 -0
  80. package/docs/API.md +315 -0
  81. package/package.json +49 -0
  82. package/tsconfig.json +24 -0
@@ -0,0 +1,210 @@
1
+ "use strict";
2
+ /**
3
+ * Configuration loader for AXON Logger
4
+ * Handles loading configuration from multiple sources with proper precedence
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || (function () {
23
+ var ownKeys = function(o) {
24
+ ownKeys = Object.getOwnPropertyNames || function (o) {
25
+ var ar = [];
26
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
27
+ return ar;
28
+ };
29
+ return ownKeys(o);
30
+ };
31
+ return function (mod) {
32
+ if (mod && mod.__esModule) return mod;
33
+ var result = {};
34
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
35
+ __setModuleDefault(result, mod);
36
+ return result;
37
+ };
38
+ })();
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ exports.loadFromEnvironment = loadFromEnvironment;
41
+ exports.loadFromFile = loadFromFile;
42
+ exports.mergeConfigurations = mergeConfigurations;
43
+ const fs = __importStar(require("fs"));
44
+ const path = __importStar(require("path"));
45
+ const types_1 = require("./types");
46
+ /**
47
+ * Loads configuration from environment variables
48
+ * Environment variables are prefixed with AXON_
49
+ * @returns Partial configuration from environment variables
50
+ */
51
+ function loadFromEnvironment() {
52
+ const config = {};
53
+ // Load log level from AXON_LOG_LEVEL
54
+ if (process.env.AXON_LOG_LEVEL) {
55
+ const levelStr = process.env.AXON_LOG_LEVEL.toUpperCase();
56
+ if (levelStr in types_1.LogLevel && isNaN(Number(levelStr))) {
57
+ config.level = types_1.LogLevel[levelStr];
58
+ }
59
+ }
60
+ // Load output path from AXON_OUTPUT_PATH
61
+ if (process.env.AXON_OUTPUT_PATH) {
62
+ config.outputPath = process.env.AXON_OUTPUT_PATH;
63
+ }
64
+ // Load max file size from AXON_MAX_FILE_SIZE
65
+ if (process.env.AXON_MAX_FILE_SIZE) {
66
+ const size = parseInt(process.env.AXON_MAX_FILE_SIZE, 10);
67
+ if (!isNaN(size) && size > 0) {
68
+ config.maxFileSize = size;
69
+ }
70
+ }
71
+ // Load rotation interval from AXON_ROTATION_INTERVAL
72
+ if (process.env.AXON_ROTATION_INTERVAL) {
73
+ const interval = process.env.AXON_ROTATION_INTERVAL.toLowerCase();
74
+ if (['hourly', 'daily', 'weekly', 'none'].includes(interval)) {
75
+ config.rotationInterval = interval;
76
+ }
77
+ }
78
+ // Load buffer size from AXON_BUFFER_SIZE
79
+ if (process.env.AXON_BUFFER_SIZE) {
80
+ const size = parseInt(process.env.AXON_BUFFER_SIZE, 10);
81
+ if (!isNaN(size) && size > 0) {
82
+ config.bufferSize = size;
83
+ }
84
+ }
85
+ // Load flush interval from AXON_FLUSH_INTERVAL
86
+ if (process.env.AXON_FLUSH_INTERVAL) {
87
+ const interval = parseInt(process.env.AXON_FLUSH_INTERVAL, 10);
88
+ if (!isNaN(interval) && interval >= 0) {
89
+ config.flushInterval = interval;
90
+ }
91
+ }
92
+ // Load delimiter from AXON_DELIMITER
93
+ if (process.env.AXON_DELIMITER) {
94
+ const delimiter = process.env.AXON_DELIMITER;
95
+ if (delimiter === ',' || delimiter === '\t' || delimiter === '|' || delimiter === 'tab' || delimiter === 'pipe') {
96
+ config.delimiter = delimiter === 'tab' ? '\t' : delimiter === 'pipe' ? '|' : delimiter;
97
+ }
98
+ }
99
+ // Load omit null values from AXON_OMIT_NULL_VALUES
100
+ if (process.env.AXON_OMIT_NULL_VALUES) {
101
+ const value = process.env.AXON_OMIT_NULL_VALUES.toLowerCase();
102
+ if (value === 'true' || value === 'false') {
103
+ config.omitNullValues = value === 'true';
104
+ }
105
+ }
106
+ return config;
107
+ }
108
+ /**
109
+ * Loads configuration from a .axonrc.json file
110
+ * Searches for the file in the current directory and parent directories
111
+ * @param startDir - Directory to start searching from (defaults to current working directory)
112
+ * @returns Partial configuration from file, or empty object if file not found
113
+ */
114
+ function loadFromFile(startDir) {
115
+ const searchDir = startDir || process.cwd();
116
+ const configFileName = '.axonrc.json';
117
+ try {
118
+ // Search for config file in current directory and parent directories
119
+ let currentDir = searchDir;
120
+ let configPath = null;
121
+ // Search up to 10 levels up
122
+ for (let i = 0; i < 10; i++) {
123
+ const candidatePath = path.join(currentDir, configFileName);
124
+ if (fs.existsSync(candidatePath)) {
125
+ configPath = candidatePath;
126
+ break;
127
+ }
128
+ const parentDir = path.dirname(currentDir);
129
+ if (parentDir === currentDir) {
130
+ // Reached root directory
131
+ break;
132
+ }
133
+ currentDir = parentDir;
134
+ }
135
+ if (!configPath) {
136
+ return {};
137
+ }
138
+ // Read and parse the config file
139
+ const fileContent = fs.readFileSync(configPath, 'utf-8');
140
+ const config = JSON.parse(fileContent);
141
+ // Validate that it's an object
142
+ if (typeof config !== 'object' || config === null) {
143
+ console.warn(`AXON: Invalid config file at ${configPath}: must be a JSON object`);
144
+ return {};
145
+ }
146
+ // Convert string log level to enum if present
147
+ if (config.level && typeof config.level === 'string') {
148
+ const levelStr = config.level.toUpperCase();
149
+ if (levelStr in types_1.LogLevel && isNaN(Number(levelStr))) {
150
+ config.level = types_1.LogLevel[levelStr];
151
+ }
152
+ }
153
+ return config;
154
+ }
155
+ catch (error) {
156
+ // Silently ignore file read/parse errors
157
+ if (error instanceof Error && error.message.includes('JSON')) {
158
+ console.warn(`AXON: Failed to parse config file: ${error.message}`);
159
+ }
160
+ return {};
161
+ }
162
+ }
163
+ /**
164
+ * Merges configuration from multiple sources with proper precedence
165
+ * Precedence order (highest to lowest): constructor > environment > file > defaults
166
+ * @param constructorConfig - Configuration passed to Logger constructor
167
+ * @param startDir - Directory to start searching for config file (optional)
168
+ * @returns Fully resolved configuration with all fields populated
169
+ */
170
+ function mergeConfigurations(constructorConfig, startDir) {
171
+ // Load from all sources
172
+ const fileConfig = loadFromFile(startDir);
173
+ const envConfig = loadFromEnvironment();
174
+ // Merge with precedence: constructor > env > file > defaults
175
+ const merged = {
176
+ ...types_1.DEFAULT_CONFIG,
177
+ ...fileConfig,
178
+ ...envConfig,
179
+ ...constructorConfig,
180
+ // Handle nested objects specially - only merge if they are valid objects
181
+ fieldAliases: (() => {
182
+ // If constructor provides fieldAliases, use it (even if invalid - validation will catch it)
183
+ if (constructorConfig.fieldAliases !== undefined) {
184
+ // If it's a valid object, merge with defaults
185
+ if (typeof constructorConfig.fieldAliases === 'object' &&
186
+ constructorConfig.fieldAliases !== null &&
187
+ !Array.isArray(constructorConfig.fieldAliases)) {
188
+ return {
189
+ ...types_1.DEFAULT_CONFIG.fieldAliases,
190
+ ...(fileConfig.fieldAliases && typeof fileConfig.fieldAliases === 'object' ? fileConfig.fieldAliases : {}),
191
+ ...(envConfig.fieldAliases && typeof envConfig.fieldAliases === 'object' ? envConfig.fieldAliases : {}),
192
+ ...constructorConfig.fieldAliases
193
+ };
194
+ }
195
+ // Return invalid value as-is for validation to catch
196
+ return constructorConfig.fieldAliases;
197
+ }
198
+ // Otherwise merge from other sources
199
+ return {
200
+ ...types_1.DEFAULT_CONFIG.fieldAliases,
201
+ ...(fileConfig.fieldAliases && typeof fileConfig.fieldAliases === 'object' ? fileConfig.fieldAliases : {}),
202
+ ...(envConfig.fieldAliases && typeof envConfig.fieldAliases === 'object' ? envConfig.fieldAliases : {})
203
+ };
204
+ })(),
205
+ // Ensure environment is always set
206
+ environment: (0, types_1.detectEnvironment)()
207
+ };
208
+ return merged;
209
+ }
210
+ //# sourceMappingURL=ConfigLoader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConfigLoader.js","sourceRoot":"","sources":["../../src/logger/ConfigLoader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,142 @@
1
+ /**
2
+ * Logger class
3
+ * Main logging interface for AXON framework
4
+ */
5
+ import { LogLevel, LogEntry, LoggerConfig, ResolvedConfig } from './types';
6
+ import { FileManager } from '../file-manager/FileManager';
7
+ import { BrowserFileManager } from '../file-manager/BrowserFileManager';
8
+ /**
9
+ * Logger class
10
+ * Provides methods for logging at different severity levels with metadata support
11
+ */
12
+ export declare class Logger {
13
+ private config;
14
+ private globalMetadata;
15
+ private serializer;
16
+ private fileManager;
17
+ private buffer;
18
+ /**
19
+ * Creates a new Logger instance
20
+ * @param config - Configuration options for the logger
21
+ * @throws Error if configuration values are invalid
22
+ */
23
+ constructor(config: LoggerConfig);
24
+ /**
25
+ * Logs a debug message
26
+ * @param message - The log message
27
+ * @param metadata - Optional metadata to attach to the log entry
28
+ */
29
+ debug(message: string, metadata?: Record<string, any>): void;
30
+ /**
31
+ * Logs an info message
32
+ * @param message - The log message
33
+ * @param metadata - Optional metadata to attach to the log entry
34
+ */
35
+ info(message: string, metadata?: Record<string, any>): void;
36
+ /**
37
+ * Logs a warning message
38
+ * @param message - The log message
39
+ * @param metadata - Optional metadata to attach to the log entry
40
+ */
41
+ warn(message: string, metadata?: Record<string, any>): void;
42
+ /**
43
+ * Logs an error message
44
+ * @param message - The log message
45
+ * @param metadata - Optional metadata to attach to the log entry
46
+ */
47
+ error(message: string, metadata?: Record<string, any>): void;
48
+ /**
49
+ * Logs a fatal error message
50
+ * @param message - The log message
51
+ * @param metadata - Optional metadata to attach to the log entry
52
+ */
53
+ fatal(message: string, metadata?: Record<string, any>): void;
54
+ /**
55
+ * Internal log method that handles log level filtering and entry creation
56
+ * @param level - The log level
57
+ * @param message - The log message
58
+ * @param metadata - Optional metadata to attach to the log entry
59
+ */
60
+ private log;
61
+ /**
62
+ * Applies metadata filtering based on configured patterns
63
+ * @param metadata - Metadata object to filter
64
+ * @returns Filtered metadata object
65
+ * @private
66
+ */
67
+ private applyMetadataFilter;
68
+ /**
69
+ * Sets global metadata that will be included in all subsequent log entries
70
+ * @param metadata - Metadata object to set as global
71
+ */
72
+ setGlobalMetadata(metadata: Record<string, any>): void;
73
+ /**
74
+ * Clears all global metadata
75
+ */
76
+ clearGlobalMetadata(): void;
77
+ /**
78
+ * Inserts a section marker into the log
79
+ * Section markers help identify and extract specific sections of logs
80
+ * @param label - The label for the section marker
81
+ */
82
+ mark(label: string): void;
83
+ /**
84
+ * Flushes buffered log entries to storage
85
+ * Forces immediate write of all pending entries
86
+ */
87
+ flush(): Promise<void>;
88
+ /**
89
+ * Closes the logger
90
+ * Flushes remaining entries and releases resources
91
+ */
92
+ close(): Promise<void>;
93
+ /**
94
+ * Gets the current configuration
95
+ * @returns The resolved configuration object
96
+ */
97
+ getConfig(): Readonly<ResolvedConfig>;
98
+ /**
99
+ * Gets the file manager (for testing purposes)
100
+ * @returns The file manager instance
101
+ */
102
+ getFileManager(): FileManager | BrowserFileManager;
103
+ /**
104
+ * Gets the current global metadata (for testing purposes)
105
+ * @returns Copy of the current global metadata
106
+ */
107
+ getGlobalMetadata(): Readonly<Record<string, any>>;
108
+ /**
109
+ * Gets the current buffer (for testing purposes)
110
+ * @returns Copy of the current buffer
111
+ */
112
+ getBuffer(): ReadonlyArray<string | LogEntry>;
113
+ /**
114
+ * Sets the log level at runtime
115
+ * @param level - The new log level
116
+ * @throws Error if the log level is invalid
117
+ */
118
+ setLevel(level: LogLevel): void;
119
+ /**
120
+ * Updates configuration at runtime
121
+ * Only non-critical settings can be updated (level, bufferSize, flushInterval, fieldAliases, omitNullValues, delimiter)
122
+ * Critical settings like outputPath, maxFileSize, and rotationInterval cannot be changed at runtime
123
+ * @param partial - Partial configuration to update
124
+ * @throws Error if trying to update critical settings or if validation fails
125
+ */
126
+ updateConfig(partial: Partial<LoggerConfig>): void;
127
+ /**
128
+ * Logs a fatal error message synchronously (bypasses buffering)
129
+ * Use for critical errors that must be written immediately
130
+ * @param message - The log message
131
+ * @param metadata - Optional metadata to attach to the log entry
132
+ */
133
+ fatalSync(message: string, metadata?: Record<string, any>): Promise<void>;
134
+ /**
135
+ * Logs an error message synchronously (bypasses buffering)
136
+ * Use for critical errors that must be written immediately
137
+ * @param message - The log message
138
+ * @param metadata - Optional metadata to attach to the log entry
139
+ */
140
+ errorSync(message: string, metadata?: Record<string, any>): Promise<void>;
141
+ }
142
+ //# sourceMappingURL=Logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Logger.d.ts","sourceRoot":"","sources":["../../src/logger/Logger.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAG3E,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AA+FxE;;;GAGG;AACH,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,cAAc,CAA2B;IACjD,OAAO,CAAC,UAAU,CAAiB;IACnC,OAAO,CAAC,WAAW,CAAmC;IACtD,OAAO,CAAC,MAAM,CAA6B;IAE3C;;;;OAIG;gBACS,MAAM,EAAE,YAAY;IAiChC;;;;OAIG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAI5D;;;;OAIG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAI3D;;;;OAIG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAI3D;;;;OAIG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAI5D;;;;OAIG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAI5D;;;;;OAKG;IACH,OAAO,CAAC,GAAG;IAsDX;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;IAoC3B;;;OAGG;IACH,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAItD;;OAEG;IACH,mBAAmB,IAAI,IAAI;IAI3B;;;;OAIG;IACH,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAMzB;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA8B5B;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B;;;OAGG;IACH,SAAS,IAAI,QAAQ,CAAC,cAAc,CAAC;IAIrC;;;OAGG;IACH,cAAc,IAAI,WAAW,GAAG,kBAAkB;IAIlD;;;OAGG;IACH,iBAAiB,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAIlD;;;OAGG;IACH,SAAS,IAAI,aAAa,CAAC,MAAM,GAAG,QAAQ,CAAC;IAI7C;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAQ/B;;;;;;OAMG;IACH,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI;IAmDlD;;;;;OAKG;IACG,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IA+C/E;;;;;OAKG;IACG,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;CA8ChF"}