@skmtc/core 0.0.787 → 0.0.789

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 (55) hide show
  1. package/esm/context/GenerateContext.d.ts +95 -0
  2. package/esm/context/GenerateContext.d.ts.map +1 -1
  3. package/esm/context/GenerateContext.js +95 -0
  4. package/esm/context/ParseContext.d.ts +178 -0
  5. package/esm/context/ParseContext.d.ts.map +1 -1
  6. package/esm/context/ParseContext.js +108 -0
  7. package/esm/dsl/Inserted.d.ts +240 -0
  8. package/esm/dsl/Inserted.d.ts.map +1 -1
  9. package/esm/dsl/Inserted.js +231 -0
  10. package/esm/dsl/JsonFile.d.ts +162 -0
  11. package/esm/dsl/JsonFile.d.ts.map +1 -1
  12. package/esm/dsl/JsonFile.js +157 -0
  13. package/esm/helpers/refFns.d.ts +160 -0
  14. package/esm/helpers/refFns.d.ts.map +1 -1
  15. package/esm/helpers/refFns.js +156 -0
  16. package/esm/oas/components/Components.d.ts +252 -2
  17. package/esm/oas/components/Components.d.ts.map +1 -1
  18. package/esm/oas/components/Components.js +241 -2
  19. package/esm/oas/operation/Operation.d.ts +107 -1
  20. package/esm/oas/operation/Operation.d.ts.map +1 -1
  21. package/esm/oas/operation/Operation.js +107 -1
  22. package/esm/oas/ref/Ref.d.ts +86 -0
  23. package/esm/oas/ref/Ref.d.ts.map +1 -1
  24. package/esm/oas/ref/Ref.js +86 -0
  25. package/esm/oas/union/Union.d.ts +119 -5
  26. package/esm/oas/union/Union.d.ts.map +1 -1
  27. package/esm/oas/union/Union.js +108 -5
  28. package/package.json +1 -1
  29. package/script/context/GenerateContext.d.ts +95 -0
  30. package/script/context/GenerateContext.d.ts.map +1 -1
  31. package/script/context/GenerateContext.js +95 -0
  32. package/script/context/ParseContext.d.ts +178 -0
  33. package/script/context/ParseContext.d.ts.map +1 -1
  34. package/script/context/ParseContext.js +108 -0
  35. package/script/dsl/Inserted.d.ts +240 -0
  36. package/script/dsl/Inserted.d.ts.map +1 -1
  37. package/script/dsl/Inserted.js +231 -0
  38. package/script/dsl/JsonFile.d.ts +162 -0
  39. package/script/dsl/JsonFile.d.ts.map +1 -1
  40. package/script/dsl/JsonFile.js +157 -0
  41. package/script/helpers/refFns.d.ts +160 -0
  42. package/script/helpers/refFns.d.ts.map +1 -1
  43. package/script/helpers/refFns.js +156 -0
  44. package/script/oas/components/Components.d.ts +252 -2
  45. package/script/oas/components/Components.d.ts.map +1 -1
  46. package/script/oas/components/Components.js +241 -2
  47. package/script/oas/operation/Operation.d.ts +107 -1
  48. package/script/oas/operation/Operation.d.ts.map +1 -1
  49. package/script/oas/operation/Operation.js +107 -1
  50. package/script/oas/ref/Ref.d.ts +86 -0
  51. package/script/oas/ref/Ref.d.ts.map +1 -1
  52. package/script/oas/ref/Ref.js +86 -0
  53. package/script/oas/union/Union.d.ts +119 -5
  54. package/script/oas/union/Union.d.ts.map +1 -1
  55. package/script/oas/union/Union.js +108 -5
@@ -114,6 +114,101 @@ type GenerateResult = {
114
114
  previews: Record<string, Record<string, Preview>>;
115
115
  mappings: Record<string, Record<string, Mapping>>;
116
116
  };
117
+ /**
118
+ * The generation context for the second phase of the SKMTC transformation pipeline.
119
+ *
120
+ * `GenerateContext` manages the transformation of parsed OAS (OpenAPI Schema) objects
121
+ * into code artifacts using pluggable generators. It provides APIs for model and operation
122
+ * generation, file management, dependency tracking, and artifact registration.
123
+ *
124
+ * ## Key Responsibilities
125
+ *
126
+ * - **Generator Orchestration**: Executes pluggable model and operation generators
127
+ * - **Schema Processing**: Provides utilities for working with OAS schemas and references
128
+ * - **File Management**: Handles file creation, imports, exports, and dependencies
129
+ * - **Artifact Registration**: Collects generated definitions and files for rendering
130
+ * - **Type System Integration**: Bridges OAS types with generator-specific type systems
131
+ * - **Settings Management**: Handles skipping logic and client customizations
132
+ *
133
+ * ## Generator Integration
134
+ *
135
+ * The context works with two main types of generators:
136
+ * - **Model Generators**: Transform schema definitions into type definitions
137
+ * - **Operation Generators**: Transform API operations into client functions
138
+ *
139
+ * @example Basic usage in a model generator
140
+ * ```typescript
141
+ * import { ModelBase } from '@skmtc/core';
142
+ *
143
+ * class TypeScriptInterface extends ModelBase {
144
+ * generate(): Definition {
145
+ * const schema = this.context.getSchema(this.refName);
146
+ *
147
+ * return new Definition({
148
+ * context: this.context,
149
+ * identifier: Identifier.createType(this.refName),
150
+ * description: schema.description,
151
+ * value: {
152
+ * generatorKey: this.generatorKey,
153
+ * content: this.generateInterfaceBody(schema)
154
+ * }
155
+ * });
156
+ * }
157
+ * }
158
+ * ```
159
+ *
160
+ * @example Operation generator usage
161
+ * ```typescript
162
+ * class ApiClientGenerator extends OperationBase {
163
+ * generate(): Definition {
164
+ * const operation = this.context.getOperation(this.path, this.method);
165
+ *
166
+ * const functionName = this.context.createOperationName(this.path, this.method);
167
+ *
168
+ * return new Definition({
169
+ * context: this.context,
170
+ * identifier: Identifier.createVariable(functionName),
171
+ * value: {
172
+ * generatorKey: this.generatorKey,
173
+ * content: this.generateClientFunction(operation)
174
+ * }
175
+ * });
176
+ * }
177
+ * }
178
+ * ```
179
+ *
180
+ * @example Schema and type system integration
181
+ * ```typescript
182
+ * class MyGenerator extends ModelBase {
183
+ * generate(): Definition {
184
+ * const schema = this.context.getSchema(this.refName);
185
+ *
186
+ * // Transform schema using type system
187
+ * const typeOutput = this.context.transformSchema(schema, {
188
+ * stringType: 'string',
189
+ * numberType: 'number',
190
+ * arrayType: (items) => `Array<${items}>`
191
+ * });
192
+ *
193
+ * // Register dependencies
194
+ * if (schema.hasReferences()) {
195
+ * this.context.addImportsToFile('./models/types.ts', {
196
+ * './common': ['BaseModel']
197
+ * });
198
+ * }
199
+ *
200
+ * return new Definition({
201
+ * context: this.context,
202
+ * identifier: Identifier.createType(this.refName),
203
+ * value: {
204
+ * generatorKey: this.generatorKey,
205
+ * content: typeOutput.content
206
+ * }
207
+ * });
208
+ * }
209
+ * }
210
+ * ```
211
+ */
117
212
  export declare class GenerateContext {
118
213
  #private;
119
214
  oasDocument: OasDocument;
@@ -1 +1 @@
1
- {"version":3,"file":"GenerateContext.d.ts","sourceRoot":"","sources":["../../src/context/GenerateContext.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GenerateContext.d.ts","sourceRoot":"","sources":["../../src/context/GenerateContext.ts"],"names":[],"mappings":"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"}
@@ -62,6 +62,101 @@ const File_js_1 = require("../dsl/File.js");
62
62
  const JsonFile_js_1 = require("../dsl/JsonFile.js");
63
63
  const tiny_invariant_1 = __importDefault(require("tiny-invariant"));
64
64
  const ts_pattern_1 = require("ts-pattern");
65
+ /**
66
+ * The generation context for the second phase of the SKMTC transformation pipeline.
67
+ *
68
+ * `GenerateContext` manages the transformation of parsed OAS (OpenAPI Schema) objects
69
+ * into code artifacts using pluggable generators. It provides APIs for model and operation
70
+ * generation, file management, dependency tracking, and artifact registration.
71
+ *
72
+ * ## Key Responsibilities
73
+ *
74
+ * - **Generator Orchestration**: Executes pluggable model and operation generators
75
+ * - **Schema Processing**: Provides utilities for working with OAS schemas and references
76
+ * - **File Management**: Handles file creation, imports, exports, and dependencies
77
+ * - **Artifact Registration**: Collects generated definitions and files for rendering
78
+ * - **Type System Integration**: Bridges OAS types with generator-specific type systems
79
+ * - **Settings Management**: Handles skipping logic and client customizations
80
+ *
81
+ * ## Generator Integration
82
+ *
83
+ * The context works with two main types of generators:
84
+ * - **Model Generators**: Transform schema definitions into type definitions
85
+ * - **Operation Generators**: Transform API operations into client functions
86
+ *
87
+ * @example Basic usage in a model generator
88
+ * ```typescript
89
+ * import { ModelBase } from '@skmtc/core';
90
+ *
91
+ * class TypeScriptInterface extends ModelBase {
92
+ * generate(): Definition {
93
+ * const schema = this.context.getSchema(this.refName);
94
+ *
95
+ * return new Definition({
96
+ * context: this.context,
97
+ * identifier: Identifier.createType(this.refName),
98
+ * description: schema.description,
99
+ * value: {
100
+ * generatorKey: this.generatorKey,
101
+ * content: this.generateInterfaceBody(schema)
102
+ * }
103
+ * });
104
+ * }
105
+ * }
106
+ * ```
107
+ *
108
+ * @example Operation generator usage
109
+ * ```typescript
110
+ * class ApiClientGenerator extends OperationBase {
111
+ * generate(): Definition {
112
+ * const operation = this.context.getOperation(this.path, this.method);
113
+ *
114
+ * const functionName = this.context.createOperationName(this.path, this.method);
115
+ *
116
+ * return new Definition({
117
+ * context: this.context,
118
+ * identifier: Identifier.createVariable(functionName),
119
+ * value: {
120
+ * generatorKey: this.generatorKey,
121
+ * content: this.generateClientFunction(operation)
122
+ * }
123
+ * });
124
+ * }
125
+ * }
126
+ * ```
127
+ *
128
+ * @example Schema and type system integration
129
+ * ```typescript
130
+ * class MyGenerator extends ModelBase {
131
+ * generate(): Definition {
132
+ * const schema = this.context.getSchema(this.refName);
133
+ *
134
+ * // Transform schema using type system
135
+ * const typeOutput = this.context.transformSchema(schema, {
136
+ * stringType: 'string',
137
+ * numberType: 'number',
138
+ * arrayType: (items) => `Array<${items}>`
139
+ * });
140
+ *
141
+ * // Register dependencies
142
+ * if (schema.hasReferences()) {
143
+ * this.context.addImportsToFile('./models/types.ts', {
144
+ * './common': ['BaseModel']
145
+ * });
146
+ * }
147
+ *
148
+ * return new Definition({
149
+ * context: this.context,
150
+ * identifier: Identifier.createType(this.refName),
151
+ * value: {
152
+ * generatorKey: this.generatorKey,
153
+ * content: typeOutput.content
154
+ * }
155
+ * });
156
+ * }
157
+ * }
158
+ * ```
159
+ */
65
160
  class GenerateContext {
66
161
  constructor({ oasDocument, settings, logger, captureCurrentResult, stackTrail, toGeneratorConfigMap }) {
67
162
  _GenerateContext_instances.add(this);
@@ -5,62 +5,240 @@ import type * as log from '../deps/jsr.io/@std/log/0.224.14/mod.js';
5
5
  import type { StackTrail } from './StackTrail.js';
6
6
  import * as v from 'valibot';
7
7
  import type { IssueType } from './types.js';
8
+ /**
9
+ * Constructor arguments for {@link ParseContext}.
10
+ */
8
11
  type ConstructorArgs = {
12
+ /** The OpenAPI v3 document to parse */
9
13
  documentObject: OpenAPIV3.Document;
14
+ /** Logger instance for debug information */
10
15
  logger: log.Logger;
16
+ /** Stack trail for distributed tracing */
11
17
  stackTrail: StackTrail;
18
+ /** Whether to suppress console output */
12
19
  silent: boolean;
13
20
  };
21
+ /**
22
+ * Return type for the parse operation.
23
+ */
14
24
  export type ParseReturn = {
25
+ /** The parsed OAS document */
15
26
  oasDocument: OasDocument;
27
+ /** Array of parsing issues encountered */
16
28
  issues: ParseIssue[];
17
29
  };
30
+ /**
31
+ * Base type for parse warning messages.
32
+ */
18
33
  type ParseWarningBase = {
34
+ /** Issue severity level */
19
35
  level: 'warning';
36
+ /** Warning message */
20
37
  message: string;
21
38
  };
39
+ /**
40
+ * Base type for parse error messages.
41
+ */
22
42
  type ParseErrorBase = {
43
+ /** Issue severity level */
23
44
  level: 'error';
45
+ /** The error that occurred */
24
46
  error: Error;
25
47
  };
48
+ /**
49
+ * Base union type for parse issues.
50
+ */
26
51
  type ParseIssueBase = ParseErrorBase | ParseWarningBase;
52
+ /**
53
+ * Arguments for logging issues with a specific key.
54
+ */
27
55
  export type LogIssueArgs = ParseIssueBase & {
56
+ /** The key where the issue occurred */
28
57
  key: string;
58
+ /** The parent object containing the issue */
29
59
  parent: unknown;
60
+ /** The type of issue for categorization */
30
61
  type: IssueType;
31
62
  };
63
+ /**
64
+ * Arguments for logging issues without a specific key.
65
+ */
32
66
  export type LogIssueNoKeyArgs = ParseIssueBase & {
67
+ /** The parent object containing the issue */
33
68
  parent: unknown;
69
+ /** The type of issue for categorization */
34
70
  type: IssueType;
35
71
  };
72
+ /**
73
+ * Arguments for provisional parsing with validation.
74
+ */
36
75
  export type ProvisionalParseArgs<T> = {
76
+ /** The key being parsed */
37
77
  key: string;
78
+ /** The value to validate */
38
79
  value: unknown;
80
+ /** The parent object context */
39
81
  parent: unknown;
82
+ /** Valibot schema for validation */
40
83
  schema: v.GenericSchema<T>;
84
+ /** Function to generate error messages */
41
85
  toMessage: (value: unknown) => string;
86
+ /** The type of issue for categorization */
42
87
  type: IssueType;
43
88
  };
89
+ /**
90
+ * Arguments for logging skipped values during parsing.
91
+ */
44
92
  export type LogSkippedValuesArgs = {
93
+ /** Record of skipped key-value pairs */
45
94
  skipped: Record<string, unknown>;
95
+ /** The parent object context */
46
96
  parent: unknown;
97
+ /** String description of the parent type */
47
98
  parentType: string;
48
99
  };
100
+ /**
101
+ * Represents a parsing error with location context.
102
+ */
49
103
  export type ParseError = {
104
+ /** Error severity level */
50
105
  level: 'error';
106
+ /** The error that occurred */
51
107
  error: Error;
108
+ /** Location string where the error occurred */
52
109
  location: string;
110
+ /** The parent object context */
53
111
  parent: unknown;
112
+ /** The type of issue for categorization */
54
113
  type: IssueType;
55
114
  };
115
+ /**
116
+ * Represents a parsing warning with location context.
117
+ */
56
118
  export type ParseWarning = {
119
+ /** Warning severity level */
57
120
  level: 'warning';
121
+ /** Warning message */
58
122
  message: string;
123
+ /** Location string where the warning occurred */
59
124
  location: string;
125
+ /** The parent object context */
60
126
  parent: unknown;
127
+ /** The type of issue for categorization */
61
128
  type: IssueType;
62
129
  };
130
+ /**
131
+ * Union type for all parsing issues.
132
+ */
63
133
  export type ParseIssue = ParseError | ParseWarning;
134
+ /**
135
+ * The parsing context for the first phase of the SKMTC transformation pipeline.
136
+ *
137
+ * `ParseContext` is responsible for converting OpenAPI v3 JSON documents into
138
+ * the internal OAS (OpenAPI Schema) object representation used by SKMTC. It
139
+ * provides comprehensive error handling, validation, and issue tracking during
140
+ * the parsing process.
141
+ *
142
+ * This context handles the complex task of transforming external OpenAPI
143
+ * specifications into type-safe internal representations while maintaining
144
+ * detailed information about any parsing issues or inconsistencies found.
145
+ *
146
+ * ## Key Features
147
+ *
148
+ * - **JSON to OAS Conversion**: Transforms OpenAPI JSON into typed OAS objects
149
+ * - **Validation & Error Handling**: Comprehensive validation with detailed error reporting
150
+ * - **Issue Tracking**: Collects warnings and errors with precise location information
151
+ * - **Reference Management**: Handles complex reference resolution and tracking
152
+ * - **Logging Integration**: Provides detailed logging and tracing capabilities
153
+ * - **Silent Mode**: Can suppress console output while maintaining error collection
154
+ *
155
+ * @example Basic parsing usage
156
+ * ```typescript
157
+ * import { ParseContext } from '@skmtc/core';
158
+ *
159
+ * const parseContext = new ParseContext({
160
+ * documentObject: openApiJsonDocument,
161
+ * logger: myLogger,
162
+ * stackTrail: traceStack,
163
+ * silent: false
164
+ * });
165
+ *
166
+ * const oasDocument = parseContext.parse();
167
+ *
168
+ * // Check for parsing issues
169
+ * if (parseContext.issues.length > 0) {
170
+ * console.log('Parsing issues found:');
171
+ * parseContext.issues.forEach(issue => {
172
+ * console.log(`${issue.level}: ${issue.location} - ${issue.message || issue.error?.message}`);
173
+ * });
174
+ * }
175
+ *
176
+ * // Use the parsed document
177
+ * console.log('Parsed schemas:', Object.keys(oasDocument.components?.schemas || {}));
178
+ * ```
179
+ *
180
+ * @example Error handling during parsing
181
+ * ```typescript
182
+ * const parseContext = new ParseContext({
183
+ * documentObject: malformedOpenApiDoc,
184
+ * logger: logger,
185
+ * stackTrail: stack,
186
+ * silent: true
187
+ * });
188
+ *
189
+ * try {
190
+ * const parsed = parseContext.parse();
191
+ *
192
+ * // Separate errors from warnings
193
+ * const errors = parseContext.issues.filter(issue => issue.level === 'error');
194
+ * const warnings = parseContext.issues.filter(issue => issue.level === 'warning');
195
+ *
196
+ * if (errors.length > 0) {
197
+ * console.error(`${errors.length} parsing errors found`);
198
+ * errors.forEach(error => {
199
+ * console.error(`Error at ${error.location}: ${error.error.message}`);
200
+ * });
201
+ * }
202
+ *
203
+ * if (warnings.length > 0) {
204
+ * console.warn(`${warnings.length} parsing warnings found`);
205
+ * warnings.forEach(warning => {
206
+ * console.warn(`Warning at ${warning.location}: ${warning.message}`);
207
+ * });
208
+ * }
209
+ * } catch (error) {
210
+ * console.error('Critical parsing failure:', error);
211
+ * }
212
+ * ```
213
+ *
214
+ * @example Integration with CoreContext
215
+ * ```typescript
216
+ * // Typically used within CoreContext.parse()
217
+ * class CustomCoreContext extends CoreContext {
218
+ * parseWithCustomValidation(document: OpenAPIV3.Document) {
219
+ * const parseContext = new ParseContext({
220
+ * documentObject: document,
221
+ * logger: this.logger,
222
+ * stackTrail: this.stackTrail,
223
+ * silent: this.silent
224
+ * });
225
+ *
226
+ * const parsed = parseContext.parse();
227
+ *
228
+ * // Custom post-processing based on issues
229
+ * const criticalErrors = parseContext.issues.filter(issue =>
230
+ * issue.level === 'error' && issue.type === 'schema-validation'
231
+ * );
232
+ *
233
+ * if (criticalErrors.length > 0) {
234
+ * throw new Error(`Schema validation failed: ${criticalErrors.length} critical errors`);
235
+ * }
236
+ *
237
+ * return parsed;
238
+ * }
239
+ * }
240
+ * ```
241
+ */
64
242
  export declare class ParseContext {
65
243
  #private;
66
244
  documentObject: OpenAPIV3.Document;
@@ -1 +1 @@
1
- {"version":3,"file":"ParseContext.d.ts","sourceRoot":"","sources":["../../src/context/ParseContext.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ParseContext.d.ts","sourceRoot":"","sources":["../../src/context/ParseContext.ts"],"names":[],"mappings":"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"}
@@ -52,6 +52,114 @@ const toDocumentFieldsV3_js_1 = require("../oas/document/toDocumentFieldsV3.js")
52
52
  const Document_js_1 = require("../oas/document/Document.js");
53
53
  const tracer_js_1 = require("../helpers/tracer.js");
54
54
  const v = __importStar(require("valibot"));
55
+ /**
56
+ * The parsing context for the first phase of the SKMTC transformation pipeline.
57
+ *
58
+ * `ParseContext` is responsible for converting OpenAPI v3 JSON documents into
59
+ * the internal OAS (OpenAPI Schema) object representation used by SKMTC. It
60
+ * provides comprehensive error handling, validation, and issue tracking during
61
+ * the parsing process.
62
+ *
63
+ * This context handles the complex task of transforming external OpenAPI
64
+ * specifications into type-safe internal representations while maintaining
65
+ * detailed information about any parsing issues or inconsistencies found.
66
+ *
67
+ * ## Key Features
68
+ *
69
+ * - **JSON to OAS Conversion**: Transforms OpenAPI JSON into typed OAS objects
70
+ * - **Validation & Error Handling**: Comprehensive validation with detailed error reporting
71
+ * - **Issue Tracking**: Collects warnings and errors with precise location information
72
+ * - **Reference Management**: Handles complex reference resolution and tracking
73
+ * - **Logging Integration**: Provides detailed logging and tracing capabilities
74
+ * - **Silent Mode**: Can suppress console output while maintaining error collection
75
+ *
76
+ * @example Basic parsing usage
77
+ * ```typescript
78
+ * import { ParseContext } from '@skmtc/core';
79
+ *
80
+ * const parseContext = new ParseContext({
81
+ * documentObject: openApiJsonDocument,
82
+ * logger: myLogger,
83
+ * stackTrail: traceStack,
84
+ * silent: false
85
+ * });
86
+ *
87
+ * const oasDocument = parseContext.parse();
88
+ *
89
+ * // Check for parsing issues
90
+ * if (parseContext.issues.length > 0) {
91
+ * console.log('Parsing issues found:');
92
+ * parseContext.issues.forEach(issue => {
93
+ * console.log(`${issue.level}: ${issue.location} - ${issue.message || issue.error?.message}`);
94
+ * });
95
+ * }
96
+ *
97
+ * // Use the parsed document
98
+ * console.log('Parsed schemas:', Object.keys(oasDocument.components?.schemas || {}));
99
+ * ```
100
+ *
101
+ * @example Error handling during parsing
102
+ * ```typescript
103
+ * const parseContext = new ParseContext({
104
+ * documentObject: malformedOpenApiDoc,
105
+ * logger: logger,
106
+ * stackTrail: stack,
107
+ * silent: true
108
+ * });
109
+ *
110
+ * try {
111
+ * const parsed = parseContext.parse();
112
+ *
113
+ * // Separate errors from warnings
114
+ * const errors = parseContext.issues.filter(issue => issue.level === 'error');
115
+ * const warnings = parseContext.issues.filter(issue => issue.level === 'warning');
116
+ *
117
+ * if (errors.length > 0) {
118
+ * console.error(`${errors.length} parsing errors found`);
119
+ * errors.forEach(error => {
120
+ * console.error(`Error at ${error.location}: ${error.error.message}`);
121
+ * });
122
+ * }
123
+ *
124
+ * if (warnings.length > 0) {
125
+ * console.warn(`${warnings.length} parsing warnings found`);
126
+ * warnings.forEach(warning => {
127
+ * console.warn(`Warning at ${warning.location}: ${warning.message}`);
128
+ * });
129
+ * }
130
+ * } catch (error) {
131
+ * console.error('Critical parsing failure:', error);
132
+ * }
133
+ * ```
134
+ *
135
+ * @example Integration with CoreContext
136
+ * ```typescript
137
+ * // Typically used within CoreContext.parse()
138
+ * class CustomCoreContext extends CoreContext {
139
+ * parseWithCustomValidation(document: OpenAPIV3.Document) {
140
+ * const parseContext = new ParseContext({
141
+ * documentObject: document,
142
+ * logger: this.logger,
143
+ * stackTrail: this.stackTrail,
144
+ * silent: this.silent
145
+ * });
146
+ *
147
+ * const parsed = parseContext.parse();
148
+ *
149
+ * // Custom post-processing based on issues
150
+ * const criticalErrors = parseContext.issues.filter(issue =>
151
+ * issue.level === 'error' && issue.type === 'schema-validation'
152
+ * );
153
+ *
154
+ * if (criticalErrors.length > 0) {
155
+ * throw new Error(`Schema validation failed: ${criticalErrors.length} critical errors`);
156
+ * }
157
+ *
158
+ * return parsed;
159
+ * }
160
+ * }
161
+ * ```
162
+ */
55
163
  class ParseContext {
56
164
  constructor({ documentObject, logger, stackTrail, silent = true }) {
57
165
  Object.defineProperty(this, "documentObject", {