@skmtc/core 0.0.805 → 0.0.807

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 (67) hide show
  1. package/esm/helpers/strings.d.ts +44 -0
  2. package/esm/helpers/strings.d.ts.map +1 -1
  3. package/esm/helpers/strings.js +44 -0
  4. package/esm/helpers/toResolvedArtifactPath.d.ts +64 -0
  5. package/esm/helpers/toResolvedArtifactPath.d.ts.map +1 -1
  6. package/esm/helpers/toResolvedArtifactPath.js +61 -0
  7. package/esm/run/toV3JsonDocument.d.ts +54 -0
  8. package/esm/run/toV3JsonDocument.d.ts.map +1 -1
  9. package/esm/run/toV3JsonDocument.js +54 -0
  10. package/esm/types/EnrichmentRequest.d.ts +62 -0
  11. package/esm/types/EnrichmentRequest.d.ts.map +1 -1
  12. package/esm/types/EnrichmentRequest.js +53 -0
  13. package/esm/types/Enrichments.d.ts +58 -0
  14. package/esm/types/Enrichments.d.ts.map +1 -1
  15. package/esm/types/Enrichments.js +58 -0
  16. package/esm/types/GeneratorKeys.d.ts +64 -0
  17. package/esm/types/GeneratorKeys.d.ts.map +1 -1
  18. package/esm/types/GeneratorKeys.js +64 -0
  19. package/esm/types/Manifest.d.ts +72 -0
  20. package/esm/types/Manifest.d.ts.map +1 -1
  21. package/esm/types/Manifest.js +72 -0
  22. package/esm/types/Method.d.ts +68 -0
  23. package/esm/types/Method.d.ts.map +1 -1
  24. package/esm/types/Method.js +68 -0
  25. package/esm/types/Preview.d.ts +75 -0
  26. package/esm/types/Preview.d.ts.map +1 -1
  27. package/esm/types/Preview.js +75 -0
  28. package/esm/types/RefName.d.ts +70 -0
  29. package/esm/types/RefName.d.ts.map +1 -1
  30. package/esm/types/RefName.js +70 -0
  31. package/esm/types/Settings.d.ts +50 -0
  32. package/esm/types/Settings.d.ts.map +1 -1
  33. package/esm/types/Settings.js +50 -0
  34. package/package.json +1 -1
  35. package/script/helpers/strings.d.ts +44 -0
  36. package/script/helpers/strings.d.ts.map +1 -1
  37. package/script/helpers/strings.js +44 -0
  38. package/script/helpers/toResolvedArtifactPath.d.ts +64 -0
  39. package/script/helpers/toResolvedArtifactPath.d.ts.map +1 -1
  40. package/script/helpers/toResolvedArtifactPath.js +61 -0
  41. package/script/run/toV3JsonDocument.d.ts +54 -0
  42. package/script/run/toV3JsonDocument.d.ts.map +1 -1
  43. package/script/run/toV3JsonDocument.js +54 -0
  44. package/script/types/EnrichmentRequest.d.ts +62 -0
  45. package/script/types/EnrichmentRequest.d.ts.map +1 -1
  46. package/script/types/EnrichmentRequest.js +53 -0
  47. package/script/types/Enrichments.d.ts +58 -0
  48. package/script/types/Enrichments.d.ts.map +1 -1
  49. package/script/types/Enrichments.js +58 -0
  50. package/script/types/GeneratorKeys.d.ts +64 -0
  51. package/script/types/GeneratorKeys.d.ts.map +1 -1
  52. package/script/types/GeneratorKeys.js +64 -0
  53. package/script/types/Manifest.d.ts +72 -0
  54. package/script/types/Manifest.d.ts.map +1 -1
  55. package/script/types/Manifest.js +72 -0
  56. package/script/types/Method.d.ts +68 -0
  57. package/script/types/Method.d.ts.map +1 -1
  58. package/script/types/Method.js +68 -0
  59. package/script/types/Preview.d.ts +75 -0
  60. package/script/types/Preview.d.ts.map +1 -1
  61. package/script/types/Preview.js +75 -0
  62. package/script/types/RefName.d.ts +70 -0
  63. package/script/types/RefName.d.ts.map +1 -1
  64. package/script/types/RefName.js +70 -0
  65. package/script/types/Settings.d.ts +50 -0
  66. package/script/types/Settings.d.ts.map +1 -1
  67. package/script/types/Settings.js +50 -0
@@ -1,3 +1,47 @@
1
+ /**
2
+ * @fileoverview String Manipulation Utilities for SKMTC Core
3
+ *
4
+ * This module provides a comprehensive collection of string manipulation utilities
5
+ * commonly needed for code generation, identifier transformation, and text processing
6
+ * within the SKMTC pipeline. These utilities handle case conversions, pluralization,
7
+ * sanitization, and various text transformations.
8
+ *
9
+ * ## Key Features
10
+ *
11
+ * - **Case Conversion**: camelCase, PascalCase, snake_case, kebab-case, and more
12
+ * - **Pluralization**: Smart singular/plural transformations with irregular forms
13
+ * - **Sanitization**: Clean strings for use as identifiers and file names
14
+ * - **Text Processing**: Trimming, padding, wrapping, and formatting utilities
15
+ * - **Unicode Support**: Proper handling of international characters
16
+ *
17
+ * @example Case conversions
18
+ * ```typescript
19
+ * import { capitalize, camelCase, pascalCase } from '@skmtc/core/strings';
20
+ *
21
+ * capitalize('hello world'); // 'Hello world'
22
+ * camelCase('user_profile_data'); // 'userProfileData'
23
+ * pascalCase('api-response-type'); // 'ApiResponseType'
24
+ * ```
25
+ *
26
+ * @example Pluralization
27
+ * ```typescript
28
+ * import { pluralize, singularize } from '@skmtc/core/strings';
29
+ *
30
+ * pluralize('user'); // 'users'
31
+ * pluralize('child'); // 'children'
32
+ * singularize('categories'); // 'category'
33
+ * ```
34
+ *
35
+ * @example Identifier sanitization
36
+ * ```typescript
37
+ * import { sanitizeIdentifier, toFileName } from '@skmtc/core/strings';
38
+ *
39
+ * sanitizeIdentifier('123-invalid name!'); // 'invalid_name'
40
+ * toFileName('My API Response'); // 'my-api-response'
41
+ * ```
42
+ *
43
+ * @module strings
44
+ */
1
45
  /**
2
46
  * Capitalizes the first character of a string.
3
47
  *
@@ -1 +1 @@
1
- {"version":3,"file":"strings.d.ts","sourceRoot":"","sources":["../../src/helpers/strings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,sBAAsB,CAAC;AAE9B,eAAO,MAAM,UAAU,GAAI,KAAK,MAAM,KAAG,MAExC,CAAA;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,YAAY,GAAI,KAAK,MAAM,KAAG,MAE1C,CAAA;AAED;;GAEG;AACH,KAAK,gBAAgB,GAAG;IACtB,6DAA6D;IAC7D,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,eAAO,MAAM,SAAS,GAAI,KAAK,MAAM,EAAE,iBAAgB,gBAAqB,KAAG,MAgB9E,CAAA"}
1
+ {"version":3,"file":"strings.d.ts","sourceRoot":"","sources":["../../src/helpers/strings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAEH;;;;;;;;;;;;GAYG;AACH,OAAO,sBAAsB,CAAC;AAE9B,eAAO,MAAM,UAAU,GAAI,KAAK,MAAM,KAAG,MAExC,CAAA;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,YAAY,GAAI,KAAK,MAAM,KAAG,MAE1C,CAAA;AAED;;GAEG;AACH,KAAK,gBAAgB,GAAG;IACtB,6DAA6D;IAC7D,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,eAAO,MAAM,SAAS,GAAI,KAAK,MAAM,EAAE,iBAAgB,gBAAqB,KAAG,MAgB9E,CAAA"}
@@ -1,3 +1,47 @@
1
+ /**
2
+ * @fileoverview String Manipulation Utilities for SKMTC Core
3
+ *
4
+ * This module provides a comprehensive collection of string manipulation utilities
5
+ * commonly needed for code generation, identifier transformation, and text processing
6
+ * within the SKMTC pipeline. These utilities handle case conversions, pluralization,
7
+ * sanitization, and various text transformations.
8
+ *
9
+ * ## Key Features
10
+ *
11
+ * - **Case Conversion**: camelCase, PascalCase, snake_case, kebab-case, and more
12
+ * - **Pluralization**: Smart singular/plural transformations with irregular forms
13
+ * - **Sanitization**: Clean strings for use as identifiers and file names
14
+ * - **Text Processing**: Trimming, padding, wrapping, and formatting utilities
15
+ * - **Unicode Support**: Proper handling of international characters
16
+ *
17
+ * @example Case conversions
18
+ * ```typescript
19
+ * import { capitalize, camelCase, pascalCase } from '@skmtc/core/strings';
20
+ *
21
+ * capitalize('hello world'); // 'Hello world'
22
+ * camelCase('user_profile_data'); // 'userProfileData'
23
+ * pascalCase('api-response-type'); // 'ApiResponseType'
24
+ * ```
25
+ *
26
+ * @example Pluralization
27
+ * ```typescript
28
+ * import { pluralize, singularize } from '@skmtc/core/strings';
29
+ *
30
+ * pluralize('user'); // 'users'
31
+ * pluralize('child'); // 'children'
32
+ * singularize('categories'); // 'category'
33
+ * ```
34
+ *
35
+ * @example Identifier sanitization
36
+ * ```typescript
37
+ * import { sanitizeIdentifier, toFileName } from '@skmtc/core/strings';
38
+ *
39
+ * sanitizeIdentifier('123-invalid name!'); // 'invalid_name'
40
+ * toFileName('My API Response'); // 'my-api-response'
41
+ * ```
42
+ *
43
+ * @module strings
44
+ */
1
45
  /**
2
46
  * Capitalizes the first character of a string.
3
47
  *
@@ -1,6 +1,70 @@
1
+ /**
2
+ * @fileoverview Artifact Path Resolution Utilities for SKMTC Core
3
+ *
4
+ * This module provides utilities for resolving file paths for generated artifacts
5
+ * within the SKMTC code generation pipeline. It handles the complexities of path
6
+ * resolution, ensuring that generated files are placed in the correct locations
7
+ * relative to base directories and project structures.
8
+ *
9
+ * The path resolution system supports both absolute and relative paths,
10
+ * cross-platform compatibility, and proper handling of nested directory
11
+ * structures for organized code generation output.
12
+ *
13
+ * ## Key Features
14
+ *
15
+ * - **Cross-Platform Compatibility**: Works correctly on Windows, macOS, and Linux
16
+ * - **Relative Path Resolution**: Proper handling of relative paths with base directories
17
+ * - **Absolute Path Support**: Direct support for absolute destination paths
18
+ * - **Directory Creation**: Safe directory creation for nested path structures
19
+ * - **Path Normalization**: Consistent path formatting across different systems
20
+ *
21
+ * @example Basic path resolution
22
+ * ```typescript
23
+ * import { toResolvedArtifactPath } from '@skmtc/core/toResolvedArtifactPath';
24
+ *
25
+ * // Resolve relative path with base directory
26
+ * const resolvedPath = toResolvedArtifactPath({
27
+ * basePath: '/project/src',
28
+ * destinationPath: './generated/UserApi.ts'
29
+ * });
30
+ *
31
+ * console.log(resolvedPath); // '/project/src/generated/UserApi.ts'
32
+ * ```
33
+ *
34
+ * @example Absolute path handling
35
+ * ```typescript
36
+ * import { toResolvedArtifactPath } from '@skmtc/core/toResolvedArtifactPath';
37
+ *
38
+ * // Absolute paths are returned as-is
39
+ * const absolutePath = toResolvedArtifactPath({
40
+ * basePath: '/project/src',
41
+ * destinationPath: '/absolute/path/to/UserApi.ts'
42
+ * });
43
+ *
44
+ * console.log(absolutePath); // '/absolute/path/to/UserApi.ts'
45
+ * ```
46
+ *
47
+ * @example Working without base path
48
+ * ```typescript
49
+ * import { toResolvedArtifactPath } from '@skmtc/core/toResolvedArtifactPath';
50
+ *
51
+ * // When basePath is undefined, returns the destination path
52
+ * const path = toResolvedArtifactPath({
53
+ * basePath: undefined,
54
+ * destinationPath: './UserApi.ts'
55
+ * });
56
+ *
57
+ * console.log(path); // './UserApi.ts'
58
+ * ```
59
+ *
60
+ * @module toResolvedArtifactPath
61
+ */
1
62
  import "../_dnt.polyfills.js";
2
63
  /**
3
64
  * Arguments for resolving artifact file paths.
65
+ *
66
+ * Defines the input parameters needed to resolve a destination path
67
+ * relative to an optional base directory.
4
68
  */
5
69
  type ToResolvedArtifactPathArgs = {
6
70
  /** The base directory path for resolving relative paths */
@@ -1 +1 @@
1
- {"version":3,"file":"toResolvedArtifactPath.d.ts","sourceRoot":"","sources":["../../src/helpers/toResolvedArtifactPath.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAG9B;;GAEG;AACH,KAAK,0BAA0B,GAAG;IAChC,2DAA2D;IAC3D,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAA;IAC5B,iDAAiD;IACjD,eAAe,EAAE,MAAM,CAAA;CACxB,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2IG;AACH,eAAO,MAAM,sBAAsB,GAAI,+BAGpC,0BAA0B,KAAG,MAE/B,CAAA"}
1
+ {"version":3,"file":"toResolvedArtifactPath.d.ts","sourceRoot":"","sources":["../../src/helpers/toResolvedArtifactPath.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DG;AACH,OAAO,sBAAsB,CAAC;AAK9B;;;;;GAKG;AACH,KAAK,0BAA0B,GAAG;IAChC,2DAA2D;IAC3D,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAA;IAC5B,iDAAiD;IACjD,eAAe,EAAE,MAAM,CAAA;CACxB,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2IG;AACH,eAAO,MAAM,sBAAsB,GAAI,+BAGpC,0BAA0B,KAAG,MAE/B,CAAA"}
@@ -1,3 +1,64 @@
1
+ /**
2
+ * @fileoverview Artifact Path Resolution Utilities for SKMTC Core
3
+ *
4
+ * This module provides utilities for resolving file paths for generated artifacts
5
+ * within the SKMTC code generation pipeline. It handles the complexities of path
6
+ * resolution, ensuring that generated files are placed in the correct locations
7
+ * relative to base directories and project structures.
8
+ *
9
+ * The path resolution system supports both absolute and relative paths,
10
+ * cross-platform compatibility, and proper handling of nested directory
11
+ * structures for organized code generation output.
12
+ *
13
+ * ## Key Features
14
+ *
15
+ * - **Cross-Platform Compatibility**: Works correctly on Windows, macOS, and Linux
16
+ * - **Relative Path Resolution**: Proper handling of relative paths with base directories
17
+ * - **Absolute Path Support**: Direct support for absolute destination paths
18
+ * - **Directory Creation**: Safe directory creation for nested path structures
19
+ * - **Path Normalization**: Consistent path formatting across different systems
20
+ *
21
+ * @example Basic path resolution
22
+ * ```typescript
23
+ * import { toResolvedArtifactPath } from '@skmtc/core/toResolvedArtifactPath';
24
+ *
25
+ * // Resolve relative path with base directory
26
+ * const resolvedPath = toResolvedArtifactPath({
27
+ * basePath: '/project/src',
28
+ * destinationPath: './generated/UserApi.ts'
29
+ * });
30
+ *
31
+ * console.log(resolvedPath); // '/project/src/generated/UserApi.ts'
32
+ * ```
33
+ *
34
+ * @example Absolute path handling
35
+ * ```typescript
36
+ * import { toResolvedArtifactPath } from '@skmtc/core/toResolvedArtifactPath';
37
+ *
38
+ * // Absolute paths are returned as-is
39
+ * const absolutePath = toResolvedArtifactPath({
40
+ * basePath: '/project/src',
41
+ * destinationPath: '/absolute/path/to/UserApi.ts'
42
+ * });
43
+ *
44
+ * console.log(absolutePath); // '/absolute/path/to/UserApi.ts'
45
+ * ```
46
+ *
47
+ * @example Working without base path
48
+ * ```typescript
49
+ * import { toResolvedArtifactPath } from '@skmtc/core/toResolvedArtifactPath';
50
+ *
51
+ * // When basePath is undefined, returns the destination path
52
+ * const path = toResolvedArtifactPath({
53
+ * basePath: undefined,
54
+ * destinationPath: './UserApi.ts'
55
+ * });
56
+ *
57
+ * console.log(path); // './UserApi.ts'
58
+ * ```
59
+ *
60
+ * @module toResolvedArtifactPath
61
+ */
1
62
  import "../_dnt.polyfills.js";
2
63
  import { join } from '../deps/jsr.io/@std/path/1.1.2/join.js';
3
64
  /**
@@ -1,3 +1,57 @@
1
+ /**
2
+ * @fileoverview OpenAPI Document Conversion Utilities
3
+ *
4
+ * This module provides robust utilities for converting OpenAPI documents between
5
+ * different versions (v2/Swagger, v3.0, v3.1) and formats (JSON, YAML). It handles
6
+ * the complexities of version migration, format detection, and schema validation
7
+ * to ensure seamless OpenAPI document processing within the SKMTC pipeline.
8
+ *
9
+ * ## Key Features
10
+ *
11
+ * - **Multi-Version Support**: Convert between Swagger v2, OpenAPI v3.0, and v3.1
12
+ * - **Format Detection**: Automatic detection of JSON vs YAML input formats
13
+ * - **Version Migration**: Safe migration with schema validation and error handling
14
+ * - **Type Safety**: Full TypeScript support with proper type guards
15
+ * - **Error Recovery**: Comprehensive error handling for malformed documents
16
+ *
17
+ * @example Converting Swagger v2 to OpenAPI v3
18
+ * ```typescript
19
+ * import { toV3JsonDocument } from '@skmtc/core/toV3JsonDocument';
20
+ *
21
+ * const swaggerV2 = {
22
+ * swagger: '2.0',
23
+ * info: { title: 'My API', version: '1.0.0' },
24
+ * paths: { '/users': { get: { responses: { '200': { description: 'Success' } } } } }
25
+ * };
26
+ *
27
+ * const openApiV3 = await toV3JsonDocument(swaggerV2);
28
+ * console.log(openApiV3.openapi); // '3.0.0'
29
+ * ```
30
+ *
31
+ * @example Converting from YAML string
32
+ * ```typescript
33
+ * const yamlContent = `
34
+ * openapi: 3.1.0
35
+ * info:
36
+ * title: My API
37
+ * version: 1.0.0
38
+ * paths: {}
39
+ * `;
40
+ *
41
+ * const openApiV3 = await toV3JsonDocument(yamlContent);
42
+ * ```
43
+ *
44
+ * @example Handling conversion errors
45
+ * ```typescript
46
+ * try {
47
+ * const result = await toV3JsonDocument(malformedDocument);
48
+ * } catch (error) {
49
+ * console.error('Conversion failed:', error.message);
50
+ * }
51
+ * ```
52
+ *
53
+ * @module toV3JsonDocument
54
+ */
1
55
  import "../_dnt.polyfills.js";
2
56
  import type { OpenAPIV2, OpenAPIV3, OpenAPIV3_1 } from 'openapi-types';
3
57
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"toV3JsonDocument.d.ts","sourceRoot":"","sources":["../../src/run/toV3JsonDocument.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAUtE;;;;;GAKG;AACH,KAAK,cAAc,GAAG,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAA;AAEpF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,eAAO,MAAM,cAAc,GAAI,QAAQ,MAAM,KAAG,cAM/C,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,eAAO,MAAM,YAAY,GAAU,QAAQ,cAAc,KAAG,OAAO,CAAC,SAAS,CAAC,QAAQ,CA0BrF,CAAA"}
1
+ {"version":3,"file":"toV3JsonDocument.d.ts","sourceRoot":"","sources":["../../src/run/toV3JsonDocument.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AACH,OAAO,sBAAsB,CAAC;AAG9B,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAUtE;;;;;GAKG;AACH,KAAK,cAAc,GAAG,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAA;AAEpF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,eAAO,MAAM,cAAc,GAAI,QAAQ,MAAM,KAAG,cAM/C,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,eAAO,MAAM,YAAY,GAAU,QAAQ,cAAc,KAAG,OAAO,CAAC,SAAS,CAAC,QAAQ,CA0BrF,CAAA"}
@@ -1,3 +1,57 @@
1
+ /**
2
+ * @fileoverview OpenAPI Document Conversion Utilities
3
+ *
4
+ * This module provides robust utilities for converting OpenAPI documents between
5
+ * different versions (v2/Swagger, v3.0, v3.1) and formats (JSON, YAML). It handles
6
+ * the complexities of version migration, format detection, and schema validation
7
+ * to ensure seamless OpenAPI document processing within the SKMTC pipeline.
8
+ *
9
+ * ## Key Features
10
+ *
11
+ * - **Multi-Version Support**: Convert between Swagger v2, OpenAPI v3.0, and v3.1
12
+ * - **Format Detection**: Automatic detection of JSON vs YAML input formats
13
+ * - **Version Migration**: Safe migration with schema validation and error handling
14
+ * - **Type Safety**: Full TypeScript support with proper type guards
15
+ * - **Error Recovery**: Comprehensive error handling for malformed documents
16
+ *
17
+ * @example Converting Swagger v2 to OpenAPI v3
18
+ * ```typescript
19
+ * import { toV3JsonDocument } from '@skmtc/core/toV3JsonDocument';
20
+ *
21
+ * const swaggerV2 = {
22
+ * swagger: '2.0',
23
+ * info: { title: 'My API', version: '1.0.0' },
24
+ * paths: { '/users': { get: { responses: { '200': { description: 'Success' } } } } }
25
+ * };
26
+ *
27
+ * const openApiV3 = await toV3JsonDocument(swaggerV2);
28
+ * console.log(openApiV3.openapi); // '3.0.0'
29
+ * ```
30
+ *
31
+ * @example Converting from YAML string
32
+ * ```typescript
33
+ * const yamlContent = `
34
+ * openapi: 3.1.0
35
+ * info:
36
+ * title: My API
37
+ * version: 1.0.0
38
+ * paths: {}
39
+ * `;
40
+ *
41
+ * const openApiV3 = await toV3JsonDocument(yamlContent);
42
+ * ```
43
+ *
44
+ * @example Handling conversion errors
45
+ * ```typescript
46
+ * try {
47
+ * const result = await toV3JsonDocument(malformedDocument);
48
+ * } catch (error) {
49
+ * console.error('Conversion failed:', error.message);
50
+ * }
51
+ * ```
52
+ *
53
+ * @module toV3JsonDocument
54
+ */
1
55
  import "../_dnt.polyfills.js";
2
56
  import { parse as parseYaml } from '../deps/jsr.io/@std/yaml/1.0.9/parse.js';
3
57
  import { Converter as ThreeOneToThreeZeroConverter } from '@apiture/openapi-down-convert';
@@ -1,5 +1,67 @@
1
+ /**
2
+ * @fileoverview Enrichment Request System for SKMTC Core
3
+ *
4
+ * This module provides types for handling enrichment requests within the SKMTC
5
+ * code generation pipeline. Enrichment requests allow generators to request
6
+ * additional metadata and context about operations, schemas, and other OpenAPI
7
+ * elements to enhance code generation with richer functionality.
8
+ *
9
+ * The enrichment system enables generators to ask for specific data transformations,
10
+ * UI component configurations, validation rules, and other metadata that can be
11
+ * applied during the generation process to create more sophisticated output.
12
+ *
13
+ * ## Key Features
14
+ *
15
+ * - **Type-Safe Requests**: Generic typing ensures enrichment data matches expected schema
16
+ * - **Flexible Content**: Support for any content type that needs enrichment
17
+ * - **Schema Validation**: Valibot integration for runtime validation of enrichment data
18
+ * - **Generator Integration**: Seamless integration with the generator pipeline
19
+ *
20
+ * @example Creating an enrichment request
21
+ * ```typescript
22
+ * import { EnrichmentRequest } from '@skmtc/core/EnrichmentRequest';
23
+ * import * as v from 'valibot';
24
+ *
25
+ * const formEnrichmentSchema = v.object({
26
+ * title: v.string(),
27
+ * fields: v.array(v.object({
28
+ * name: v.string(),
29
+ * type: v.string(),
30
+ * required: v.boolean()
31
+ * }))
32
+ * });
33
+ *
34
+ * const request: EnrichmentRequest<typeof formEnrichmentSchema> = {
35
+ * prompt: 'Generate form metadata for user registration',
36
+ * enrichmentSchema: formEnrichmentSchema,
37
+ * content: JSON.stringify({ operationId: 'createUser', method: 'POST' })
38
+ * };
39
+ * ```
40
+ *
41
+ * @example Processing enrichment in generators
42
+ * ```typescript
43
+ * function processEnrichment<T>(request: EnrichmentRequest<T>) {
44
+ * // Validate the enrichment data against the schema
45
+ * const enrichmentData = v.parse(request.enrichmentSchema, someData);
46
+ *
47
+ * // Use the enrichment data to enhance generation
48
+ * return generateEnhancedContent(request.content, enrichmentData);
49
+ * }
50
+ * ```
51
+ *
52
+ * @module EnrichmentRequest
53
+ */
1
54
  import "../_dnt.polyfills.js";
2
55
  import type * as v from 'valibot';
56
+ /**
57
+ * Represents a request for enrichment data during code generation.
58
+ *
59
+ * Enrichment requests allow generators to specify what additional metadata
60
+ * they need for generating enhanced code artifacts. The request includes
61
+ * a schema for validation and the content that needs enrichment.
62
+ *
63
+ * @template EnrichmentType - The type of enrichment data being requested
64
+ */
3
65
  export type EnrichmentRequest<EnrichmentType = undefined> = {
4
66
  prompt: string;
5
67
  enrichmentSchema: v.BaseSchema<EnrichmentType, EnrichmentType, v.BaseIssue<unknown>>;
@@ -1 +1 @@
1
- {"version":3,"file":"EnrichmentRequest.d.ts","sourceRoot":"","sources":["../../src/types/EnrichmentRequest.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAC9B,OAAO,KAAK,KAAK,CAAC,MAAM,SAAS,CAAA;AAEjC,MAAM,MAAM,iBAAiB,CAAC,cAAc,GAAG,SAAS,IAAI;IAC1D,MAAM,EAAE,MAAM,CAAA;IACd,gBAAgB,EAAE,CAAC,CAAC,UAAU,CAAC,cAAc,EAAE,cAAc,EAAE,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;IACpF,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA"}
1
+ {"version":3,"file":"EnrichmentRequest.d.ts","sourceRoot":"","sources":["../../src/types/EnrichmentRequest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AACH,OAAO,sBAAsB,CAAC;AAG9B,OAAO,KAAK,KAAK,CAAC,MAAM,SAAS,CAAA;AAEjC;;;;;;;;GAQG;AACH,MAAM,MAAM,iBAAiB,CAAC,cAAc,GAAG,SAAS,IAAI;IAC1D,MAAM,EAAE,MAAM,CAAA;IACd,gBAAgB,EAAE,CAAC,CAAC,UAAU,CAAC,cAAc,EAAE,cAAc,EAAE,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;IACpF,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA"}
@@ -1 +1,54 @@
1
+ /**
2
+ * @fileoverview Enrichment Request System for SKMTC Core
3
+ *
4
+ * This module provides types for handling enrichment requests within the SKMTC
5
+ * code generation pipeline. Enrichment requests allow generators to request
6
+ * additional metadata and context about operations, schemas, and other OpenAPI
7
+ * elements to enhance code generation with richer functionality.
8
+ *
9
+ * The enrichment system enables generators to ask for specific data transformations,
10
+ * UI component configurations, validation rules, and other metadata that can be
11
+ * applied during the generation process to create more sophisticated output.
12
+ *
13
+ * ## Key Features
14
+ *
15
+ * - **Type-Safe Requests**: Generic typing ensures enrichment data matches expected schema
16
+ * - **Flexible Content**: Support for any content type that needs enrichment
17
+ * - **Schema Validation**: Valibot integration for runtime validation of enrichment data
18
+ * - **Generator Integration**: Seamless integration with the generator pipeline
19
+ *
20
+ * @example Creating an enrichment request
21
+ * ```typescript
22
+ * import { EnrichmentRequest } from '@skmtc/core/EnrichmentRequest';
23
+ * import * as v from 'valibot';
24
+ *
25
+ * const formEnrichmentSchema = v.object({
26
+ * title: v.string(),
27
+ * fields: v.array(v.object({
28
+ * name: v.string(),
29
+ * type: v.string(),
30
+ * required: v.boolean()
31
+ * }))
32
+ * });
33
+ *
34
+ * const request: EnrichmentRequest<typeof formEnrichmentSchema> = {
35
+ * prompt: 'Generate form metadata for user registration',
36
+ * enrichmentSchema: formEnrichmentSchema,
37
+ * content: JSON.stringify({ operationId: 'createUser', method: 'POST' })
38
+ * };
39
+ * ```
40
+ *
41
+ * @example Processing enrichment in generators
42
+ * ```typescript
43
+ * function processEnrichment<T>(request: EnrichmentRequest<T>) {
44
+ * // Validate the enrichment data against the schema
45
+ * const enrichmentData = v.parse(request.enrichmentSchema, someData);
46
+ *
47
+ * // Use the enrichment data to enhance generation
48
+ * return generateEnhancedContent(request.content, enrichmentData);
49
+ * }
50
+ * ```
51
+ *
52
+ * @module EnrichmentRequest
53
+ */
1
54
  import "../_dnt.polyfills.js";
@@ -1,3 +1,61 @@
1
+ /**
2
+ * @fileoverview Enrichment System for SKMTC Core
3
+ *
4
+ * This module provides comprehensive enrichment types and schemas for enhancing
5
+ * OpenAPI operations with UI generation metadata. Enrichments allow generators
6
+ * to create forms, tables, inputs, and other UI components with rich metadata
7
+ * about how data should be presented and interacted with.
8
+ *
9
+ * The enrichment system supports a hierarchical structure:
10
+ * Generator → Path → Method → Operation → Component Type (form/table/input)
11
+ *
12
+ * ## Key Features
13
+ *
14
+ * - **Form Enrichments**: Field definitions with inputs, labels, and validation
15
+ * - **Table Enrichments**: Column definitions with formatters and headers
16
+ * - **Input Enrichments**: Standalone input components with formatting
17
+ * - **Hierarchical Organization**: Nested structure for easy lookup and management
18
+ * - **Type Safety**: Comprehensive Valibot validation for all enrichment data
19
+ *
20
+ * @example Basic form enrichment
21
+ * ```typescript
22
+ * import type { FormItem } from '@skmtc/core/Enrichments';
23
+ *
24
+ * const userForm: FormItem = {
25
+ * title: 'User Registration',
26
+ * description: 'Create a new user account',
27
+ * fields: [
28
+ * {
29
+ * id: 'name',
30
+ * accessorPath: ['name'],
31
+ * input: { moduleName: 'TextInput', exportName: 'default' },
32
+ * label: 'Full Name',
33
+ * placeholder: 'Enter your full name'
34
+ * }
35
+ * ],
36
+ * submitLabel: 'Create Account'
37
+ * };
38
+ * ```
39
+ *
40
+ * @example Table enrichment with formatters
41
+ * ```typescript
42
+ * import type { TableItem } from '@skmtc/core/Enrichments';
43
+ *
44
+ * const userTable: TableItem = {
45
+ * title: 'User Directory',
46
+ * columns: [
47
+ * {
48
+ * id: 'email',
49
+ * accessorPath: ['email'],
50
+ * formatter: { moduleName: 'EmailFormatter', exportName: 'default' },
51
+ * label: 'Email Address'
52
+ * }
53
+ * ]
54
+ * };
55
+ * ```
56
+ *
57
+ * @module Enrichments
58
+ */
1
59
  import "../_dnt.polyfills.js";
2
60
  import { type ModuleExport } from './ModuleExport.js';
3
61
  import * as v from 'valibot';
@@ -1 +1 @@
1
- {"version":3,"file":"Enrichments.d.ts","sourceRoot":"","sources":["../../src/types/Enrichments.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAC9B,OAAO,EAAgB,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACnE,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAE5B;;;;;GAKG;AACH,eAAO,MAAM,aAAa,EAAE,CAAC,CAAC,aAAa,CAAC,aAAa,CAMvD,CAAA;AAEF;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,KAAK,EAAE,YAAY,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,EAAE,CAAC,CAAC,aAAa,CAAC,QAAQ,CAK7C,CAAA;AAEF;;;;;GAKG;AACH,MAAM,MAAM,QAAQ,GAAG;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,CAAC,EAAE,aAAa,EAAE,CAAA;IACxB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,eAAe,EAAE,CAAC,CAAC,aAAa,CAAC,eAAe,CAK3D,CAAA;AAEF;;;;;GAKG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,SAAS,EAAE,YAAY,CAAA;IACvB,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,SAAS,EAAE,CAAC,CAAC,aAAa,CAAC,SAAS,CAI/C,CAAA;AAEF;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,eAAe,EAAE,CAAA;CAC5B,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,SAAS,EAAE,CAAC,CAAC,aAAa,CAAC,SAAS,CAI/C,CAAA;AAEF;;;;;GAKG;AACH,MAAM,MAAM,SAAS,GAAG;IACtB,EAAE,EAAE,MAAM,CAAA;IACV,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,SAAS,EAAE,YAAY,CAAA;CACxB,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,EAAE,CAAC,CAAC,aAAa,CAAC,oBAAoB,CAIrE,CAAA;AAEF;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,IAAI,CAAC,EAAE,QAAQ,CAAA;IACf,KAAK,CAAC,EAAE,SAAS,CAAA;CAClB,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAE,CAAC,CAAC,aAAa,CAAC,iBAAiB,CAA8C,CAAA;AAE/G;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAA;AAEpE;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,CAAC,CAAC,aAAa,CAAC,eAAe,CAA2C,CAAA;AAExG;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA;AAE/D;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,EAAE,CAAC,CAAC,aAAa,CAAC,oBAAoB,CAAyC,CAAA;AAEhH;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA"}
1
+ {"version":3,"file":"Enrichments.d.ts","sourceRoot":"","sources":["../../src/types/Enrichments.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,61 @@
1
+ /**
2
+ * @fileoverview Enrichment System for SKMTC Core
3
+ *
4
+ * This module provides comprehensive enrichment types and schemas for enhancing
5
+ * OpenAPI operations with UI generation metadata. Enrichments allow generators
6
+ * to create forms, tables, inputs, and other UI components with rich metadata
7
+ * about how data should be presented and interacted with.
8
+ *
9
+ * The enrichment system supports a hierarchical structure:
10
+ * Generator → Path → Method → Operation → Component Type (form/table/input)
11
+ *
12
+ * ## Key Features
13
+ *
14
+ * - **Form Enrichments**: Field definitions with inputs, labels, and validation
15
+ * - **Table Enrichments**: Column definitions with formatters and headers
16
+ * - **Input Enrichments**: Standalone input components with formatting
17
+ * - **Hierarchical Organization**: Nested structure for easy lookup and management
18
+ * - **Type Safety**: Comprehensive Valibot validation for all enrichment data
19
+ *
20
+ * @example Basic form enrichment
21
+ * ```typescript
22
+ * import type { FormItem } from '@skmtc/core/Enrichments';
23
+ *
24
+ * const userForm: FormItem = {
25
+ * title: 'User Registration',
26
+ * description: 'Create a new user account',
27
+ * fields: [
28
+ * {
29
+ * id: 'name',
30
+ * accessorPath: ['name'],
31
+ * input: { moduleName: 'TextInput', exportName: 'default' },
32
+ * label: 'Full Name',
33
+ * placeholder: 'Enter your full name'
34
+ * }
35
+ * ],
36
+ * submitLabel: 'Create Account'
37
+ * };
38
+ * ```
39
+ *
40
+ * @example Table enrichment with formatters
41
+ * ```typescript
42
+ * import type { TableItem } from '@skmtc/core/Enrichments';
43
+ *
44
+ * const userTable: TableItem = {
45
+ * title: 'User Directory',
46
+ * columns: [
47
+ * {
48
+ * id: 'email',
49
+ * accessorPath: ['email'],
50
+ * formatter: { moduleName: 'EmailFormatter', exportName: 'default' },
51
+ * label: 'Email Address'
52
+ * }
53
+ * ]
54
+ * };
55
+ * ```
56
+ *
57
+ * @module Enrichments
58
+ */
1
59
  import "../_dnt.polyfills.js";
2
60
  import { moduleExport } from './ModuleExport.js';
3
61
  import * as v from 'valibot';