@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.
- package/esm/helpers/strings.d.ts +44 -0
- package/esm/helpers/strings.d.ts.map +1 -1
- package/esm/helpers/strings.js +44 -0
- package/esm/helpers/toResolvedArtifactPath.d.ts +64 -0
- package/esm/helpers/toResolvedArtifactPath.d.ts.map +1 -1
- package/esm/helpers/toResolvedArtifactPath.js +61 -0
- package/esm/run/toV3JsonDocument.d.ts +54 -0
- package/esm/run/toV3JsonDocument.d.ts.map +1 -1
- package/esm/run/toV3JsonDocument.js +54 -0
- package/esm/types/EnrichmentRequest.d.ts +62 -0
- package/esm/types/EnrichmentRequest.d.ts.map +1 -1
- package/esm/types/EnrichmentRequest.js +53 -0
- package/esm/types/Enrichments.d.ts +58 -0
- package/esm/types/Enrichments.d.ts.map +1 -1
- package/esm/types/Enrichments.js +58 -0
- package/esm/types/GeneratorKeys.d.ts +64 -0
- package/esm/types/GeneratorKeys.d.ts.map +1 -1
- package/esm/types/GeneratorKeys.js +64 -0
- package/esm/types/Manifest.d.ts +72 -0
- package/esm/types/Manifest.d.ts.map +1 -1
- package/esm/types/Manifest.js +72 -0
- package/esm/types/Method.d.ts +68 -0
- package/esm/types/Method.d.ts.map +1 -1
- package/esm/types/Method.js +68 -0
- package/esm/types/Preview.d.ts +75 -0
- package/esm/types/Preview.d.ts.map +1 -1
- package/esm/types/Preview.js +75 -0
- package/esm/types/RefName.d.ts +70 -0
- package/esm/types/RefName.d.ts.map +1 -1
- package/esm/types/RefName.js +70 -0
- package/esm/types/Settings.d.ts +50 -0
- package/esm/types/Settings.d.ts.map +1 -1
- package/esm/types/Settings.js +50 -0
- package/package.json +1 -1
- package/script/helpers/strings.d.ts +44 -0
- package/script/helpers/strings.d.ts.map +1 -1
- package/script/helpers/strings.js +44 -0
- package/script/helpers/toResolvedArtifactPath.d.ts +64 -0
- package/script/helpers/toResolvedArtifactPath.d.ts.map +1 -1
- package/script/helpers/toResolvedArtifactPath.js +61 -0
- package/script/run/toV3JsonDocument.d.ts +54 -0
- package/script/run/toV3JsonDocument.d.ts.map +1 -1
- package/script/run/toV3JsonDocument.js +54 -0
- package/script/types/EnrichmentRequest.d.ts +62 -0
- package/script/types/EnrichmentRequest.d.ts.map +1 -1
- package/script/types/EnrichmentRequest.js +53 -0
- package/script/types/Enrichments.d.ts +58 -0
- package/script/types/Enrichments.d.ts.map +1 -1
- package/script/types/Enrichments.js +58 -0
- package/script/types/GeneratorKeys.d.ts +64 -0
- package/script/types/GeneratorKeys.d.ts.map +1 -1
- package/script/types/GeneratorKeys.js +64 -0
- package/script/types/Manifest.d.ts +72 -0
- package/script/types/Manifest.d.ts.map +1 -1
- package/script/types/Manifest.js +72 -0
- package/script/types/Method.d.ts +68 -0
- package/script/types/Method.d.ts.map +1 -1
- package/script/types/Method.js +68 -0
- package/script/types/Preview.d.ts +75 -0
- package/script/types/Preview.d.ts.map +1 -1
- package/script/types/Preview.js +75 -0
- package/script/types/RefName.d.ts +70 -0
- package/script/types/RefName.d.ts.map +1 -1
- package/script/types/RefName.js +70 -0
- package/script/types/Settings.d.ts +50 -0
- package/script/types/Settings.d.ts.map +1 -1
- package/script/types/Settings.js +50 -0
|
@@ -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;
|
|
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,3 +1,56 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
/**
|
|
4
|
+
* @fileoverview Enrichment Request System for SKMTC Core
|
|
5
|
+
*
|
|
6
|
+
* This module provides types for handling enrichment requests within the SKMTC
|
|
7
|
+
* code generation pipeline. Enrichment requests allow generators to request
|
|
8
|
+
* additional metadata and context about operations, schemas, and other OpenAPI
|
|
9
|
+
* elements to enhance code generation with richer functionality.
|
|
10
|
+
*
|
|
11
|
+
* The enrichment system enables generators to ask for specific data transformations,
|
|
12
|
+
* UI component configurations, validation rules, and other metadata that can be
|
|
13
|
+
* applied during the generation process to create more sophisticated output.
|
|
14
|
+
*
|
|
15
|
+
* ## Key Features
|
|
16
|
+
*
|
|
17
|
+
* - **Type-Safe Requests**: Generic typing ensures enrichment data matches expected schema
|
|
18
|
+
* - **Flexible Content**: Support for any content type that needs enrichment
|
|
19
|
+
* - **Schema Validation**: Valibot integration for runtime validation of enrichment data
|
|
20
|
+
* - **Generator Integration**: Seamless integration with the generator pipeline
|
|
21
|
+
*
|
|
22
|
+
* @example Creating an enrichment request
|
|
23
|
+
* ```typescript
|
|
24
|
+
* import { EnrichmentRequest } from '@skmtc/core/EnrichmentRequest';
|
|
25
|
+
* import * as v from 'valibot';
|
|
26
|
+
*
|
|
27
|
+
* const formEnrichmentSchema = v.object({
|
|
28
|
+
* title: v.string(),
|
|
29
|
+
* fields: v.array(v.object({
|
|
30
|
+
* name: v.string(),
|
|
31
|
+
* type: v.string(),
|
|
32
|
+
* required: v.boolean()
|
|
33
|
+
* }))
|
|
34
|
+
* });
|
|
35
|
+
*
|
|
36
|
+
* const request: EnrichmentRequest<typeof formEnrichmentSchema> = {
|
|
37
|
+
* prompt: 'Generate form metadata for user registration',
|
|
38
|
+
* enrichmentSchema: formEnrichmentSchema,
|
|
39
|
+
* content: JSON.stringify({ operationId: 'createUser', method: 'POST' })
|
|
40
|
+
* };
|
|
41
|
+
* ```
|
|
42
|
+
*
|
|
43
|
+
* @example Processing enrichment in generators
|
|
44
|
+
* ```typescript
|
|
45
|
+
* function processEnrichment<T>(request: EnrichmentRequest<T>) {
|
|
46
|
+
* // Validate the enrichment data against the schema
|
|
47
|
+
* const enrichmentData = v.parse(request.enrichmentSchema, someData);
|
|
48
|
+
*
|
|
49
|
+
* // Use the enrichment data to enhance generation
|
|
50
|
+
* return generateEnhancedContent(request.content, enrichmentData);
|
|
51
|
+
* }
|
|
52
|
+
* ```
|
|
53
|
+
*
|
|
54
|
+
* @module EnrichmentRequest
|
|
55
|
+
*/
|
|
3
56
|
require("../_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;
|
|
1
|
+
{"version":3,"file":"Enrichments.d.ts","sourceRoot":"","sources":["../../src/types/Enrichments.ts"],"names":[],"mappings":"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"}
|
|
@@ -34,6 +34,64 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.generatorEnrichments = exports.pathEnrichments = exports.methodEnrichments = exports.operationEnrichments = exports.inputItem = exports.tableItem = exports.tableColumnItem = exports.formItem = exports.formFieldItem = void 0;
|
|
37
|
+
/**
|
|
38
|
+
* @fileoverview Enrichment System for SKMTC Core
|
|
39
|
+
*
|
|
40
|
+
* This module provides comprehensive enrichment types and schemas for enhancing
|
|
41
|
+
* OpenAPI operations with UI generation metadata. Enrichments allow generators
|
|
42
|
+
* to create forms, tables, inputs, and other UI components with rich metadata
|
|
43
|
+
* about how data should be presented and interacted with.
|
|
44
|
+
*
|
|
45
|
+
* The enrichment system supports a hierarchical structure:
|
|
46
|
+
* Generator → Path → Method → Operation → Component Type (form/table/input)
|
|
47
|
+
*
|
|
48
|
+
* ## Key Features
|
|
49
|
+
*
|
|
50
|
+
* - **Form Enrichments**: Field definitions with inputs, labels, and validation
|
|
51
|
+
* - **Table Enrichments**: Column definitions with formatters and headers
|
|
52
|
+
* - **Input Enrichments**: Standalone input components with formatting
|
|
53
|
+
* - **Hierarchical Organization**: Nested structure for easy lookup and management
|
|
54
|
+
* - **Type Safety**: Comprehensive Valibot validation for all enrichment data
|
|
55
|
+
*
|
|
56
|
+
* @example Basic form enrichment
|
|
57
|
+
* ```typescript
|
|
58
|
+
* import type { FormItem } from '@skmtc/core/Enrichments';
|
|
59
|
+
*
|
|
60
|
+
* const userForm: FormItem = {
|
|
61
|
+
* title: 'User Registration',
|
|
62
|
+
* description: 'Create a new user account',
|
|
63
|
+
* fields: [
|
|
64
|
+
* {
|
|
65
|
+
* id: 'name',
|
|
66
|
+
* accessorPath: ['name'],
|
|
67
|
+
* input: { moduleName: 'TextInput', exportName: 'default' },
|
|
68
|
+
* label: 'Full Name',
|
|
69
|
+
* placeholder: 'Enter your full name'
|
|
70
|
+
* }
|
|
71
|
+
* ],
|
|
72
|
+
* submitLabel: 'Create Account'
|
|
73
|
+
* };
|
|
74
|
+
* ```
|
|
75
|
+
*
|
|
76
|
+
* @example Table enrichment with formatters
|
|
77
|
+
* ```typescript
|
|
78
|
+
* import type { TableItem } from '@skmtc/core/Enrichments';
|
|
79
|
+
*
|
|
80
|
+
* const userTable: TableItem = {
|
|
81
|
+
* title: 'User Directory',
|
|
82
|
+
* columns: [
|
|
83
|
+
* {
|
|
84
|
+
* id: 'email',
|
|
85
|
+
* accessorPath: ['email'],
|
|
86
|
+
* formatter: { moduleName: 'EmailFormatter', exportName: 'default' },
|
|
87
|
+
* label: 'Email Address'
|
|
88
|
+
* }
|
|
89
|
+
* ]
|
|
90
|
+
* };
|
|
91
|
+
* ```
|
|
92
|
+
*
|
|
93
|
+
* @module Enrichments
|
|
94
|
+
*/
|
|
37
95
|
require("../_dnt.polyfills.js");
|
|
38
96
|
const ModuleExport_js_1 = require("./ModuleExport.js");
|
|
39
97
|
const v = __importStar(require("valibot"));
|
|
@@ -1,3 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Generator Key System for SKMTC Core
|
|
3
|
+
*
|
|
4
|
+
* This module provides a comprehensive type-safe key system for identifying and
|
|
5
|
+
* organizing generated content within the SKMTC pipeline. Generator keys provide
|
|
6
|
+
* unique identification for operations, models, and other generated artifacts,
|
|
7
|
+
* ensuring proper organization and preventing collisions.
|
|
8
|
+
*
|
|
9
|
+
* The key system uses branded types to ensure type safety and provides utilities
|
|
10
|
+
* for creating, parsing, and manipulating keys throughout the generation process.
|
|
11
|
+
*
|
|
12
|
+
* ## Key Features
|
|
13
|
+
*
|
|
14
|
+
* - **Type Safety**: Branded types prevent mixing different kinds of keys
|
|
15
|
+
* - **Unique Identification**: Composite keys ensure global uniqueness
|
|
16
|
+
* - **Parsing Utilities**: Safe extraction of components from composite keys
|
|
17
|
+
* - **Generator Organization**: Clear mapping between generators and their artifacts
|
|
18
|
+
* - **Reference Integration**: Seamless integration with OpenAPI reference system
|
|
19
|
+
*
|
|
20
|
+
* @example Creating operation generator keys
|
|
21
|
+
* ```typescript
|
|
22
|
+
* import { toOperationGeneratorKey, parseOperationGeneratorKey } from '@skmtc/core/GeneratorKeys';
|
|
23
|
+
*
|
|
24
|
+
* // Create a key for a GET /users operation in api-client generator
|
|
25
|
+
* const key = toOperationGeneratorKey({
|
|
26
|
+
* generatorId: 'api-client',
|
|
27
|
+
* path: '/users',
|
|
28
|
+
* method: 'GET'
|
|
29
|
+
* });
|
|
30
|
+
*
|
|
31
|
+
* // Parse the key back into components
|
|
32
|
+
* const parsed = parseOperationGeneratorKey(key);
|
|
33
|
+
* console.log(parsed); // { generatorId: 'api-client', path: '/users', method: 'GET' }
|
|
34
|
+
* ```
|
|
35
|
+
*
|
|
36
|
+
* @example Working with model keys
|
|
37
|
+
* ```typescript
|
|
38
|
+
* import { toModelGeneratorKey } from '@skmtc/core/GeneratorKeys';
|
|
39
|
+
*
|
|
40
|
+
* const modelKey = toModelGeneratorKey({
|
|
41
|
+
* generatorId: 'typescript-models',
|
|
42
|
+
* refName: 'User' as RefName
|
|
43
|
+
* });
|
|
44
|
+
* ```
|
|
45
|
+
*
|
|
46
|
+
* @example Type-safe key handling
|
|
47
|
+
* ```typescript
|
|
48
|
+
* import type { OperationGeneratorKey, ModelGeneratorKey } from '@skmtc/core/GeneratorKeys';
|
|
49
|
+
*
|
|
50
|
+
* function handleOperationKey(key: OperationGeneratorKey) {
|
|
51
|
+
* // TypeScript ensures this is specifically an operation key
|
|
52
|
+
* const parsed = parseOperationGeneratorKey(key);
|
|
53
|
+
* return `Processing ${parsed.method} ${parsed.path}`;
|
|
54
|
+
* }
|
|
55
|
+
*
|
|
56
|
+
* function handleModelKey(key: ModelGeneratorKey) {
|
|
57
|
+
* // TypeScript ensures this is specifically a model key
|
|
58
|
+
* const parsed = parseModelGeneratorKey(key);
|
|
59
|
+
* return `Processing model ${parsed.refName}`;
|
|
60
|
+
* }
|
|
61
|
+
* ```
|
|
62
|
+
*
|
|
63
|
+
* @module GeneratorKeys
|
|
64
|
+
*/
|
|
1
65
|
import "../_dnt.polyfills.js";
|
|
2
66
|
import type { OasOperation } from '../oas/operation/Operation.js';
|
|
3
67
|
import type { Brand } from './Brand.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GeneratorKeys.d.ts","sourceRoot":"","sources":["../../src/types/GeneratorKeys.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"GeneratorKeys.d.ts","sourceRoot":"","sources":["../../src/types/GeneratorKeys.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,70 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.fromGeneratorKey = exports.toGeneratorId = exports.isGeneratorOnlyKey = exports.isModelGeneratorKey = exports.isOperationGeneratorKey = exports.isGeneratorKey = exports.toGeneratorOnlyKey = exports.toModelGeneratorKey = exports.toOperationGeneratorKey = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* @fileoverview Generator Key System for SKMTC Core
|
|
6
|
+
*
|
|
7
|
+
* This module provides a comprehensive type-safe key system for identifying and
|
|
8
|
+
* organizing generated content within the SKMTC pipeline. Generator keys provide
|
|
9
|
+
* unique identification for operations, models, and other generated artifacts,
|
|
10
|
+
* ensuring proper organization and preventing collisions.
|
|
11
|
+
*
|
|
12
|
+
* The key system uses branded types to ensure type safety and provides utilities
|
|
13
|
+
* for creating, parsing, and manipulating keys throughout the generation process.
|
|
14
|
+
*
|
|
15
|
+
* ## Key Features
|
|
16
|
+
*
|
|
17
|
+
* - **Type Safety**: Branded types prevent mixing different kinds of keys
|
|
18
|
+
* - **Unique Identification**: Composite keys ensure global uniqueness
|
|
19
|
+
* - **Parsing Utilities**: Safe extraction of components from composite keys
|
|
20
|
+
* - **Generator Organization**: Clear mapping between generators and their artifacts
|
|
21
|
+
* - **Reference Integration**: Seamless integration with OpenAPI reference system
|
|
22
|
+
*
|
|
23
|
+
* @example Creating operation generator keys
|
|
24
|
+
* ```typescript
|
|
25
|
+
* import { toOperationGeneratorKey, parseOperationGeneratorKey } from '@skmtc/core/GeneratorKeys';
|
|
26
|
+
*
|
|
27
|
+
* // Create a key for a GET /users operation in api-client generator
|
|
28
|
+
* const key = toOperationGeneratorKey({
|
|
29
|
+
* generatorId: 'api-client',
|
|
30
|
+
* path: '/users',
|
|
31
|
+
* method: 'GET'
|
|
32
|
+
* });
|
|
33
|
+
*
|
|
34
|
+
* // Parse the key back into components
|
|
35
|
+
* const parsed = parseOperationGeneratorKey(key);
|
|
36
|
+
* console.log(parsed); // { generatorId: 'api-client', path: '/users', method: 'GET' }
|
|
37
|
+
* ```
|
|
38
|
+
*
|
|
39
|
+
* @example Working with model keys
|
|
40
|
+
* ```typescript
|
|
41
|
+
* import { toModelGeneratorKey } from '@skmtc/core/GeneratorKeys';
|
|
42
|
+
*
|
|
43
|
+
* const modelKey = toModelGeneratorKey({
|
|
44
|
+
* generatorId: 'typescript-models',
|
|
45
|
+
* refName: 'User' as RefName
|
|
46
|
+
* });
|
|
47
|
+
* ```
|
|
48
|
+
*
|
|
49
|
+
* @example Type-safe key handling
|
|
50
|
+
* ```typescript
|
|
51
|
+
* import type { OperationGeneratorKey, ModelGeneratorKey } from '@skmtc/core/GeneratorKeys';
|
|
52
|
+
*
|
|
53
|
+
* function handleOperationKey(key: OperationGeneratorKey) {
|
|
54
|
+
* // TypeScript ensures this is specifically an operation key
|
|
55
|
+
* const parsed = parseOperationGeneratorKey(key);
|
|
56
|
+
* return `Processing ${parsed.method} ${parsed.path}`;
|
|
57
|
+
* }
|
|
58
|
+
*
|
|
59
|
+
* function handleModelKey(key: ModelGeneratorKey) {
|
|
60
|
+
* // TypeScript ensures this is specifically a model key
|
|
61
|
+
* const parsed = parseModelGeneratorKey(key);
|
|
62
|
+
* return `Processing model ${parsed.refName}`;
|
|
63
|
+
* }
|
|
64
|
+
* ```
|
|
65
|
+
*
|
|
66
|
+
* @module GeneratorKeys
|
|
67
|
+
*/
|
|
4
68
|
require("../_dnt.polyfills.js");
|
|
5
69
|
const Method_js_1 = require("./Method.js");
|
|
6
70
|
/**
|
|
@@ -1,3 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Generation Manifest System for SKMTC Core
|
|
3
|
+
*
|
|
4
|
+
* This module provides comprehensive manifest generation for tracking and organizing
|
|
5
|
+
* all artifacts produced during the SKMTC code generation process. The manifest
|
|
6
|
+
* system captures metadata about generated files, including size metrics, locations,
|
|
7
|
+
* preview information, and generation statistics.
|
|
8
|
+
*
|
|
9
|
+
* Manifests serve as a complete inventory of generated content, enabling tools,
|
|
10
|
+
* IDEs, and other systems to understand what was generated and how to interact
|
|
11
|
+
* with the generated code.
|
|
12
|
+
*
|
|
13
|
+
* ## Key Features
|
|
14
|
+
*
|
|
15
|
+
* - **File Tracking**: Complete inventory of all generated files with metrics
|
|
16
|
+
* - **Size Analytics**: Line counts, character counts, and size statistics
|
|
17
|
+
* - **Preview Integration**: Rich preview metadata for UI generation
|
|
18
|
+
* - **Generation Stats**: Detailed metrics about the generation process
|
|
19
|
+
* - **Type Safety**: Comprehensive validation with Valibot schemas
|
|
20
|
+
*
|
|
21
|
+
* @example Creating a manifest entry
|
|
22
|
+
* ```typescript
|
|
23
|
+
* import type { ManifestEntry } from '@skmtc/core/Manifest';
|
|
24
|
+
*
|
|
25
|
+
* const entry: ManifestEntry = {
|
|
26
|
+
* lines: 150,
|
|
27
|
+
* characters: 4200,
|
|
28
|
+
* destinationPath: './src/generated/UserApi.ts'
|
|
29
|
+
* };
|
|
30
|
+
* ```
|
|
31
|
+
*
|
|
32
|
+
* @example Processing manifest content
|
|
33
|
+
* ```typescript
|
|
34
|
+
* import type { ManifestContent } from '@skmtc/core/Manifest';
|
|
35
|
+
*
|
|
36
|
+
* const manifest: ManifestContent = {
|
|
37
|
+
* files: {
|
|
38
|
+
* 'UserApi.ts': {
|
|
39
|
+
* lines: 150,
|
|
40
|
+
* characters: 4200,
|
|
41
|
+
* destinationPath: './src/generated/UserApi.ts'
|
|
42
|
+
* }
|
|
43
|
+
* },
|
|
44
|
+
* stats: {
|
|
45
|
+
* totalFiles: 1,
|
|
46
|
+
* totalLines: 150,
|
|
47
|
+
* totalCharacters: 4200,
|
|
48
|
+
* generatedAt: new Date().toISOString()
|
|
49
|
+
* },
|
|
50
|
+
* previews: [],
|
|
51
|
+
* mappings: []
|
|
52
|
+
* };
|
|
53
|
+
* ```
|
|
54
|
+
*
|
|
55
|
+
* @example Using manifest for tooling
|
|
56
|
+
* ```typescript
|
|
57
|
+
* function analyzeGeneration(manifest: ManifestContent) {
|
|
58
|
+
* const fileCount = Object.keys(manifest.files).length;
|
|
59
|
+
* const totalSize = Object.values(manifest.files)
|
|
60
|
+
* .reduce((sum, file) => sum + file.characters, 0);
|
|
61
|
+
*
|
|
62
|
+
* console.log(`Generated ${fileCount} files with ${totalSize} characters`);
|
|
63
|
+
*
|
|
64
|
+
* // Process previews for UI generation
|
|
65
|
+
* manifest.previews.forEach(preview => {
|
|
66
|
+
* console.log(`Preview available: ${preview.title}`);
|
|
67
|
+
* });
|
|
68
|
+
* }
|
|
69
|
+
* ```
|
|
70
|
+
*
|
|
71
|
+
* @module Manifest
|
|
72
|
+
*/
|
|
1
73
|
import "../_dnt.polyfills.js";
|
|
2
74
|
import { type ResultsItem } from './Results.js';
|
|
3
75
|
import { type Preview, type Mapping } from './Preview.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Manifest.d.ts","sourceRoot":"","sources":["../../src/types/Manifest.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"Manifest.d.ts","sourceRoot":"","sources":["../../src/types/Manifest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuEG;AACH,OAAO,sBAAsB,CAAC;AAG9B,OAAO,EAAe,KAAK,WAAW,EAAE,MAAM,cAAc,CAAA;AAC5D,OAAO,EAAW,KAAK,OAAO,EAAE,KAAK,OAAO,EAAW,MAAM,cAAc,CAAA;AAC3E,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAE5B,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;IAClB,eAAe,EAAE,MAAM,CAAA;CACxB,CAAA;AAED,eAAO,MAAM,aAAa,EAAE,CAAC,CAAC,aAAa,CAAC,aAAa,CAIvD,CAAA;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,CAAC,CAAC,aAAa,CAAC,WAAW,CAGnD,CAAA;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;IACpC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IAClD,OAAO,EAAE,WAAW,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,eAAO,MAAM,eAAe,EAAE,CAAC,CAAC,aAAa,CAAC,eAAe,CAW3D,CAAA"}
|
package/script/types/Manifest.js
CHANGED
|
@@ -34,6 +34,78 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.manifestContent = exports.previewItem = exports.manifestEntry = void 0;
|
|
37
|
+
/**
|
|
38
|
+
* @fileoverview Generation Manifest System for SKMTC Core
|
|
39
|
+
*
|
|
40
|
+
* This module provides comprehensive manifest generation for tracking and organizing
|
|
41
|
+
* all artifacts produced during the SKMTC code generation process. The manifest
|
|
42
|
+
* system captures metadata about generated files, including size metrics, locations,
|
|
43
|
+
* preview information, and generation statistics.
|
|
44
|
+
*
|
|
45
|
+
* Manifests serve as a complete inventory of generated content, enabling tools,
|
|
46
|
+
* IDEs, and other systems to understand what was generated and how to interact
|
|
47
|
+
* with the generated code.
|
|
48
|
+
*
|
|
49
|
+
* ## Key Features
|
|
50
|
+
*
|
|
51
|
+
* - **File Tracking**: Complete inventory of all generated files with metrics
|
|
52
|
+
* - **Size Analytics**: Line counts, character counts, and size statistics
|
|
53
|
+
* - **Preview Integration**: Rich preview metadata for UI generation
|
|
54
|
+
* - **Generation Stats**: Detailed metrics about the generation process
|
|
55
|
+
* - **Type Safety**: Comprehensive validation with Valibot schemas
|
|
56
|
+
*
|
|
57
|
+
* @example Creating a manifest entry
|
|
58
|
+
* ```typescript
|
|
59
|
+
* import type { ManifestEntry } from '@skmtc/core/Manifest';
|
|
60
|
+
*
|
|
61
|
+
* const entry: ManifestEntry = {
|
|
62
|
+
* lines: 150,
|
|
63
|
+
* characters: 4200,
|
|
64
|
+
* destinationPath: './src/generated/UserApi.ts'
|
|
65
|
+
* };
|
|
66
|
+
* ```
|
|
67
|
+
*
|
|
68
|
+
* @example Processing manifest content
|
|
69
|
+
* ```typescript
|
|
70
|
+
* import type { ManifestContent } from '@skmtc/core/Manifest';
|
|
71
|
+
*
|
|
72
|
+
* const manifest: ManifestContent = {
|
|
73
|
+
* files: {
|
|
74
|
+
* 'UserApi.ts': {
|
|
75
|
+
* lines: 150,
|
|
76
|
+
* characters: 4200,
|
|
77
|
+
* destinationPath: './src/generated/UserApi.ts'
|
|
78
|
+
* }
|
|
79
|
+
* },
|
|
80
|
+
* stats: {
|
|
81
|
+
* totalFiles: 1,
|
|
82
|
+
* totalLines: 150,
|
|
83
|
+
* totalCharacters: 4200,
|
|
84
|
+
* generatedAt: new Date().toISOString()
|
|
85
|
+
* },
|
|
86
|
+
* previews: [],
|
|
87
|
+
* mappings: []
|
|
88
|
+
* };
|
|
89
|
+
* ```
|
|
90
|
+
*
|
|
91
|
+
* @example Using manifest for tooling
|
|
92
|
+
* ```typescript
|
|
93
|
+
* function analyzeGeneration(manifest: ManifestContent) {
|
|
94
|
+
* const fileCount = Object.keys(manifest.files).length;
|
|
95
|
+
* const totalSize = Object.values(manifest.files)
|
|
96
|
+
* .reduce((sum, file) => sum + file.characters, 0);
|
|
97
|
+
*
|
|
98
|
+
* console.log(`Generated ${fileCount} files with ${totalSize} characters`);
|
|
99
|
+
*
|
|
100
|
+
* // Process previews for UI generation
|
|
101
|
+
* manifest.previews.forEach(preview => {
|
|
102
|
+
* console.log(`Preview available: ${preview.title}`);
|
|
103
|
+
* });
|
|
104
|
+
* }
|
|
105
|
+
* ```
|
|
106
|
+
*
|
|
107
|
+
* @module Manifest
|
|
108
|
+
*/
|
|
37
109
|
require("../_dnt.polyfills.js");
|
|
38
110
|
const Results_js_1 = require("./Results.js");
|
|
39
111
|
const Preview_js_1 = require("./Preview.js");
|
package/script/types/Method.d.ts
CHANGED
|
@@ -1,3 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview HTTP Method System for SKMTC Core
|
|
3
|
+
*
|
|
4
|
+
* This module provides comprehensive HTTP method definitions and utilities for
|
|
5
|
+
* handling OpenAPI operations. It includes type-safe method definitions,
|
|
6
|
+
* validation utilities, and constants for all HTTP methods supported by
|
|
7
|
+
* the OpenAPI v3 specification.
|
|
8
|
+
*
|
|
9
|
+
* The module ensures type safety when working with HTTP methods throughout
|
|
10
|
+
* the SKMTC pipeline and provides utilities for method validation and processing.
|
|
11
|
+
*
|
|
12
|
+
* ## Key Features
|
|
13
|
+
*
|
|
14
|
+
* - **Complete Method Support**: All HTTP methods from OpenAPI v3 specification
|
|
15
|
+
* - **Type Safety**: Branded types and type guards for method handling
|
|
16
|
+
* - **Validation**: Runtime validation with Valibot integration
|
|
17
|
+
* - **Case Handling**: Proper case normalization for method strings
|
|
18
|
+
* - **Specification Compliance**: Full adherence to OpenAPI v3 method definitions
|
|
19
|
+
*
|
|
20
|
+
* @example Working with HTTP methods
|
|
21
|
+
* ```typescript
|
|
22
|
+
* import { Method, isMethod, methodValues } from '@skmtc/core/Method';
|
|
23
|
+
*
|
|
24
|
+
* // Type-safe method handling
|
|
25
|
+
* const method: Method = 'GET';
|
|
26
|
+
*
|
|
27
|
+
* // Validate unknown method strings
|
|
28
|
+
* const userInput = 'post';
|
|
29
|
+
* if (isMethod(userInput)) {
|
|
30
|
+
* console.log(`Valid method: ${userInput}`); // TypeScript knows it's a Method
|
|
31
|
+
* }
|
|
32
|
+
*
|
|
33
|
+
* // List all supported methods
|
|
34
|
+
* console.log('Supported methods:', methodValues);
|
|
35
|
+
* ```
|
|
36
|
+
*
|
|
37
|
+
* @example Method validation in generators
|
|
38
|
+
* ```typescript
|
|
39
|
+
* import { isMethod, Method } from '@skmtc/core/Method';
|
|
40
|
+
*
|
|
41
|
+
* function processOperation(path: string, method: string, operation: any) {
|
|
42
|
+
* if (!isMethod(method)) {
|
|
43
|
+
* throw new Error(`Unsupported HTTP method: ${method}`);
|
|
44
|
+
* }
|
|
45
|
+
*
|
|
46
|
+
* // TypeScript now knows method is of type Method
|
|
47
|
+
* return generateOperationCode(path, method, operation);
|
|
48
|
+
* }
|
|
49
|
+
* ```
|
|
50
|
+
*
|
|
51
|
+
* @example Case-insensitive method handling
|
|
52
|
+
* ```typescript
|
|
53
|
+
* import { normalizeMethod, isMethod } from '@skmtc/core/Method';
|
|
54
|
+
*
|
|
55
|
+
* function handleMethodString(methodStr: string) {
|
|
56
|
+
* const normalized = methodStr.toLowerCase();
|
|
57
|
+
*
|
|
58
|
+
* if (isMethod(normalized)) {
|
|
59
|
+
* return processValidMethod(normalized);
|
|
60
|
+
* } else {
|
|
61
|
+
* throw new Error(`Invalid method: ${methodStr}`);
|
|
62
|
+
* }
|
|
63
|
+
* }
|
|
64
|
+
* ```
|
|
65
|
+
*
|
|
66
|
+
* @module Method
|
|
67
|
+
*/
|
|
1
68
|
import "../_dnt.polyfills.js";
|
|
2
69
|
import * as v from 'valibot';
|
|
3
70
|
/**
|
|
@@ -5,6 +72,7 @@ import * as v from 'valibot';
|
|
|
5
72
|
*
|
|
6
73
|
* This constant array includes all HTTP methods that can be used
|
|
7
74
|
* in OpenAPI path operations, as defined by the OpenAPI specification.
|
|
75
|
+
* All methods are in lowercase to match OpenAPI conventions.
|
|
8
76
|
*/
|
|
9
77
|
export declare const methodValues: readonly ["get", "put", "post", "delete", "options", "head", "patch", "trace"];
|
|
10
78
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Method.d.ts","sourceRoot":"","sources":["../../src/types/Method.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"Method.d.ts","sourceRoot":"","sources":["../../src/types/Method.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkEG;AACH,OAAO,sBAAsB,CAAC;AAG9B,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAE5B;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,gFASf,CAAA;AAEV;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,UAA+D,CAAA;AAE/F;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,MAAM,EAAE,CAAC,CAAC,WAAW,CAChC;IACE,CAAC,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC;IACjC,CAAC,CAAC,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC;IAClC,CAAC,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC;IACjC,CAAC,CAAC,aAAa,CAAC,OAAO,EAAE,SAAS,CAAC;IACnC,CAAC,CAAC,aAAa,CAAC,QAAQ,EAAE,SAAS,CAAC;IACpC,CAAC,CAAC,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC;IAClC,CAAC,CAAC,aAAa,CAAC,SAAS,EAAE,SAAS,CAAC;IACrC,CAAC,CAAC,aAAa,CAAC,OAAO,EAAE,SAAS,CAAC;CACpC,EACD,SAAS,CAUT,CAAA;AAEF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,MAAM,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAA;AAG/F;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,OAAO,EAAE,CAAC,CAAC,WAAW,CAAC,OAAO,MAAM,EAAE,SAAS,CAAmB,CAAA;AAE/E;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,eAAO,MAAM,QAAQ,GAAI,KAAK,OAAO,KAAG,GAAG,IAAI,MAE9C,CAAA"}
|