@skmtc/core 0.0.804 → 0.0.805

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.
@@ -1,15 +1,57 @@
1
+ /**
2
+ * Constructor fields for {@link OasContact}.
3
+ *
4
+ * Defines the configuration options for creating contact information,
5
+ * including name, URL, email, and extension fields.
6
+ */
1
7
  export type ContactFields = {
2
8
  name?: string;
3
9
  url?: string;
4
10
  email?: string;
5
11
  extensionFields?: Record<string, unknown>;
6
12
  };
13
+ /**
14
+ * Represents a Contact Object in the OpenAPI Specification.
15
+ *
16
+ * The `OasContact` class encapsulates contact information for the API,
17
+ * providing details about who to contact for support, questions, or issues.
18
+ * This information is typically displayed in API documentation.
19
+ *
20
+ * @example Basic contact information
21
+ * ```typescript
22
+ * import { OasContact } from '@skmtc/core';
23
+ *
24
+ * const contact = new OasContact({
25
+ * name: 'API Support Team',
26
+ * email: 'support@example.com'
27
+ * });
28
+ * ```
29
+ *
30
+ * @example Complete contact details
31
+ * ```typescript
32
+ * const fullContact = new OasContact({
33
+ * name: 'John Doe',
34
+ * url: 'https://example.com/contact',
35
+ * email: 'john@example.com'
36
+ * });
37
+ * ```
38
+ */
7
39
  export declare class OasContact {
40
+ /** Type identifier for this OAS contact object */
8
41
  oasType: "contact";
42
+ /** The identifying name of the contact person/organization */
9
43
  name: string | undefined;
44
+ /** URL pointing to the contact information */
10
45
  url: string | undefined;
46
+ /** Email address of the contact person/organization */
11
47
  email: string | undefined;
48
+ /** Custom extension fields (x-* properties) for additional contact metadata */
12
49
  extensionFields: Record<string, unknown> | undefined;
50
+ /**
51
+ * Creates a new OasContact instance.
52
+ *
53
+ * @param fields - Contact information fields including name, URL, and email
54
+ */
13
55
  constructor(fields?: ContactFields);
14
56
  }
15
57
  //# sourceMappingURL=Contact.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Contact.d.ts","sourceRoot":"","sources":["../../../src/oas/contact/Contact.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC1C,CAAA;AAED,qBAAa,UAAU;IACrB,OAAO,EAAG,SAAS,CAAS;IAE5B,IAAI,EAAE,MAAM,GAAG,SAAS,CAAA;IACxB,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;IACvB,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;IACzB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;gBAExC,MAAM,GAAE,aAAkB;CAMvC"}
1
+ {"version":3,"file":"Contact.d.ts","sourceRoot":"","sources":["../../../src/oas/contact/Contact.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC1C,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBAAa,UAAU;IACrB,kDAAkD;IAClD,OAAO,EAAG,SAAS,CAAS;IAE5B,8DAA8D;IAC9D,IAAI,EAAE,MAAM,GAAG,SAAS,CAAA;IACxB,8CAA8C;IAC9C,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;IACvB,uDAAuD;IACvD,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;IACzB,+EAA+E;IAC/E,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;IAEpD;;;;OAIG;gBACS,MAAM,GAAE,aAAkB;CAMvC"}
@@ -1,29 +1,65 @@
1
+ /**
2
+ * Represents a Contact Object in the OpenAPI Specification.
3
+ *
4
+ * The `OasContact` class encapsulates contact information for the API,
5
+ * providing details about who to contact for support, questions, or issues.
6
+ * This information is typically displayed in API documentation.
7
+ *
8
+ * @example Basic contact information
9
+ * ```typescript
10
+ * import { OasContact } from '@skmtc/core';
11
+ *
12
+ * const contact = new OasContact({
13
+ * name: 'API Support Team',
14
+ * email: 'support@example.com'
15
+ * });
16
+ * ```
17
+ *
18
+ * @example Complete contact details
19
+ * ```typescript
20
+ * const fullContact = new OasContact({
21
+ * name: 'John Doe',
22
+ * url: 'https://example.com/contact',
23
+ * email: 'john@example.com'
24
+ * });
25
+ * ```
26
+ */
1
27
  export class OasContact {
28
+ /**
29
+ * Creates a new OasContact instance.
30
+ *
31
+ * @param fields - Contact information fields including name, URL, and email
32
+ */
2
33
  constructor(fields = {}) {
34
+ /** Type identifier for this OAS contact object */
3
35
  Object.defineProperty(this, "oasType", {
4
36
  enumerable: true,
5
37
  configurable: true,
6
38
  writable: true,
7
39
  value: 'contact'
8
40
  });
41
+ /** The identifying name of the contact person/organization */
9
42
  Object.defineProperty(this, "name", {
10
43
  enumerable: true,
11
44
  configurable: true,
12
45
  writable: true,
13
46
  value: void 0
14
47
  });
48
+ /** URL pointing to the contact information */
15
49
  Object.defineProperty(this, "url", {
16
50
  enumerable: true,
17
51
  configurable: true,
18
52
  writable: true,
19
53
  value: void 0
20
54
  });
55
+ /** Email address of the contact person/organization */
21
56
  Object.defineProperty(this, "email", {
22
57
  enumerable: true,
23
58
  configurable: true,
24
59
  writable: true,
25
60
  value: void 0
26
61
  });
62
+ /** Custom extension fields (x-* properties) for additional contact metadata */
27
63
  Object.defineProperty(this, "extensionFields", {
28
64
  enumerable: true,
29
65
  configurable: true,
@@ -84,13 +84,49 @@ export type InfoFields = {
84
84
  */
85
85
  export declare class OasInfo {
86
86
  #private;
87
+ /** Type identifier for this OAS info object */
87
88
  oasType: 'info';
89
+ /**
90
+ * Creates a new OasInfo instance.
91
+ *
92
+ * @param fields - API information fields including title, version, description, and contact details
93
+ */
88
94
  constructor(fields: InfoFields);
95
+ /**
96
+ * Gets the API title.
97
+ *
98
+ * @returns The title of the API
99
+ */
89
100
  get title(): string;
101
+ /**
102
+ * Gets the API description.
103
+ *
104
+ * @returns Optional detailed description of the API's purpose and functionality
105
+ */
90
106
  get description(): string | undefined;
107
+ /**
108
+ * Gets the terms of service URL.
109
+ *
110
+ * @returns Optional URL pointing to the API's terms of service
111
+ */
91
112
  get termsOfService(): string | undefined;
113
+ /**
114
+ * Gets the contact information.
115
+ *
116
+ * @returns Optional contact information for API support and inquiries
117
+ */
92
118
  get contact(): OasContact | undefined;
119
+ /**
120
+ * Gets the license information.
121
+ *
122
+ * @returns Optional license information governing API usage
123
+ */
93
124
  get license(): OasLicense | undefined;
125
+ /**
126
+ * Gets the API version.
127
+ *
128
+ * @returns The version string of the API (e.g., '1.0.0', '2.1.3')
129
+ */
94
130
  get version(): string;
95
131
  /** Specification Extension fields */
96
132
  get extensionFields(): Record<string, unknown> | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"Info.d.ts","sourceRoot":"","sources":["../../../src/oas/info/Info.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAEvD;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,0CAA0C;IAC1C,OAAO,EAAE,MAAM,CAAA;IACf,+BAA+B;IAC/B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAChC,gDAAgD;IAChD,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACnC,kDAAkD;IAClD,OAAO,CAAC,EAAE,UAAU,GAAG,SAAS,CAAA;IAChC,kDAAkD;IAClD,OAAO,CAAC,EAAE,UAAU,GAAG,SAAS,CAAA;IAChC,+CAA+C;IAC/C,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC1C,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6DG;AACH,qBAAa,OAAO;;IAClB,OAAO,EAAE,MAAM,CAAS;gBAGZ,MAAM,EAAE,UAAU;IAI9B,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,WAAW,IAAI,MAAM,GAAG,SAAS,CAEpC;IAED,IAAI,cAAc,IAAI,MAAM,GAAG,SAAS,CAEvC;IAED,IAAI,OAAO,IAAI,UAAU,GAAG,SAAS,CAEpC;IAED,IAAI,OAAO,IAAI,UAAU,GAAG,SAAS,CAEpC;IAED,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,qCAAqC;IACrC,IAAI,eAAe,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAEzD;CACF"}
1
+ {"version":3,"file":"Info.d.ts","sourceRoot":"","sources":["../../../src/oas/info/Info.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAEvD;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,0CAA0C;IAC1C,OAAO,EAAE,MAAM,CAAA;IACf,+BAA+B;IAC/B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAChC,gDAAgD;IAChD,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACnC,kDAAkD;IAClD,OAAO,CAAC,EAAE,UAAU,GAAG,SAAS,CAAA;IAChC,kDAAkD;IAClD,OAAO,CAAC,EAAE,UAAU,GAAG,SAAS,CAAA;IAChC,+CAA+C;IAC/C,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC1C,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6DG;AACH,qBAAa,OAAO;;IAClB,+CAA+C;IAC/C,OAAO,EAAE,MAAM,CAAS;IAIxB;;;;OAIG;gBACS,MAAM,EAAE,UAAU;IAI9B;;;;OAIG;IACH,IAAI,KAAK,IAAI,MAAM,CAElB;IAED;;;;OAIG;IACH,IAAI,WAAW,IAAI,MAAM,GAAG,SAAS,CAEpC;IAED;;;;OAIG;IACH,IAAI,cAAc,IAAI,MAAM,GAAG,SAAS,CAEvC;IAED;;;;OAIG;IACH,IAAI,OAAO,IAAI,UAAU,GAAG,SAAS,CAEpC;IAED;;;;OAIG;IACH,IAAI,OAAO,IAAI,UAAU,GAAG,SAAS,CAEpC;IAED;;;;OAIG;IACH,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,qCAAqC;IACrC,IAAI,eAAe,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAEzD;CACF"}
@@ -74,31 +74,68 @@ import "../../_dnt.polyfills.js";
74
74
  * ```
75
75
  */
76
76
  export class OasInfo {
77
+ /**
78
+ * Creates a new OasInfo instance.
79
+ *
80
+ * @param fields - API information fields including title, version, description, and contact details
81
+ */
77
82
  constructor(fields) {
83
+ /** Type identifier for this OAS info object */
78
84
  Object.defineProperty(this, "oasType", {
79
85
  enumerable: true,
80
86
  configurable: true,
81
87
  writable: true,
82
88
  value: 'info'
83
89
  });
90
+ /** Private storage for all info fields */
84
91
  _OasInfo_fields.set(this, void 0);
85
92
  __classPrivateFieldSet(this, _OasInfo_fields, fields, "f");
86
93
  }
94
+ /**
95
+ * Gets the API title.
96
+ *
97
+ * @returns The title of the API
98
+ */
87
99
  get title() {
88
100
  return __classPrivateFieldGet(this, _OasInfo_fields, "f").title;
89
101
  }
102
+ /**
103
+ * Gets the API description.
104
+ *
105
+ * @returns Optional detailed description of the API's purpose and functionality
106
+ */
90
107
  get description() {
91
108
  return __classPrivateFieldGet(this, _OasInfo_fields, "f").description;
92
109
  }
110
+ /**
111
+ * Gets the terms of service URL.
112
+ *
113
+ * @returns Optional URL pointing to the API's terms of service
114
+ */
93
115
  get termsOfService() {
94
116
  return __classPrivateFieldGet(this, _OasInfo_fields, "f").termsOfService;
95
117
  }
118
+ /**
119
+ * Gets the contact information.
120
+ *
121
+ * @returns Optional contact information for API support and inquiries
122
+ */
96
123
  get contact() {
97
124
  return __classPrivateFieldGet(this, _OasInfo_fields, "f").contact;
98
125
  }
126
+ /**
127
+ * Gets the license information.
128
+ *
129
+ * @returns Optional license information governing API usage
130
+ */
99
131
  get license() {
100
132
  return __classPrivateFieldGet(this, _OasInfo_fields, "f").license;
101
133
  }
134
+ /**
135
+ * Gets the API version.
136
+ *
137
+ * @returns The version string of the API (e.g., '1.0.0', '2.1.3')
138
+ */
102
139
  get version() {
103
140
  return __classPrivateFieldGet(this, _OasInfo_fields, "f").version;
104
141
  }
@@ -96,13 +96,30 @@ export type MediaTypeFields = {
96
96
  * ```
97
97
  */
98
98
  export declare class OasMediaType {
99
+ /** Type identifier for this OAS media type */
99
100
  oasType: 'mediaType';
101
+ /** The media type identifier (e.g., 'application/json', 'text/xml') */
100
102
  mediaType: string;
103
+ /** The schema defining the structure and validation rules for the content */
101
104
  schema: OasSchema | OasRef<'schema'> | undefined;
105
+ /** Example values demonstrating the media type content */
102
106
  examples: Record<string, OasExample | OasRef<'example'>> | undefined;
107
+ /** Custom extension fields (x-* properties) defined for this media type */
103
108
  extensionFields: Record<string, unknown> | undefined;
109
+ /** Encoding information for multipart and form data serialization */
104
110
  encoding?: Record<string, unknown> | undefined;
111
+ /**
112
+ * Creates a new OasMediaType instance.
113
+ *
114
+ * @param fields - Media type configuration including content schema, examples, and encoding
115
+ */
105
116
  constructor(fields: MediaTypeFields);
117
+ /**
118
+ * Converts this OAS media type to an OpenAPI v3 JSON schema representation.
119
+ *
120
+ * @param options - Conversion options including reference handling and formatting preferences
121
+ * @returns OpenAPI v3 media type object with schema and examples
122
+ */
106
123
  toJsonSchema(options: ToJsonSchemaOptions): OpenAPIV3.MediaTypeObject;
107
124
  }
108
125
  //# sourceMappingURL=MediaType.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MediaType.d.ts","sourceRoot":"","sources":["../../../src/oas/mediaType/MediaType.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAE9C;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,mEAAmE;IACnE,SAAS,EAAE,MAAM,CAAA;IACjB,uDAAuD;IACvD,MAAM,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAA;IACjD,wCAAwC;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,SAAS,CAAA;IACrE,+CAA+C;IAC/C,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACzC,sDAAsD;IACtD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;CAC/C,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4EG;AACH,qBAAa,YAAY;IACvB,OAAO,EAAE,WAAW,CAAc;IAClC,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAA;IAChD,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,SAAS,CAAA;IACpE,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;IACpD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;gBAClC,MAAM,EAAE,eAAe;IAQnC,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,SAAS,CAAC,eAAe;CAMtE"}
1
+ {"version":3,"file":"MediaType.d.ts","sourceRoot":"","sources":["../../../src/oas/mediaType/MediaType.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAE9C;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,mEAAmE;IACnE,SAAS,EAAE,MAAM,CAAA;IACjB,uDAAuD;IACvD,MAAM,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAA;IACjD,wCAAwC;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,SAAS,CAAA;IACrE,+CAA+C;IAC/C,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACzC,sDAAsD;IACtD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;CAC/C,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4EG;AACH,qBAAa,YAAY;IACvB,8CAA8C;IAC9C,OAAO,EAAE,WAAW,CAAc;IAClC,uEAAuE;IACvE,SAAS,EAAE,MAAM,CAAA;IACjB,6EAA6E;IAC7E,MAAM,EAAE,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAA;IAChD,0DAA0D;IAC1D,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,SAAS,CAAA;IACpE,2EAA2E;IAC3E,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;IACpD,qEAAqE;IACrE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;IAC9C;;;;OAIG;gBACS,MAAM,EAAE,eAAe;IAQnC;;;;;OAKG;IACH,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,SAAS,CAAC,eAAe;CAMtE"}
@@ -76,37 +76,48 @@
76
76
  * ```
77
77
  */
78
78
  export class OasMediaType {
79
+ /**
80
+ * Creates a new OasMediaType instance.
81
+ *
82
+ * @param fields - Media type configuration including content schema, examples, and encoding
83
+ */
79
84
  constructor(fields) {
85
+ /** Type identifier for this OAS media type */
80
86
  Object.defineProperty(this, "oasType", {
81
87
  enumerable: true,
82
88
  configurable: true,
83
89
  writable: true,
84
90
  value: 'mediaType'
85
91
  });
92
+ /** The media type identifier (e.g., 'application/json', 'text/xml') */
86
93
  Object.defineProperty(this, "mediaType", {
87
94
  enumerable: true,
88
95
  configurable: true,
89
96
  writable: true,
90
97
  value: void 0
91
98
  });
99
+ /** The schema defining the structure and validation rules for the content */
92
100
  Object.defineProperty(this, "schema", {
93
101
  enumerable: true,
94
102
  configurable: true,
95
103
  writable: true,
96
104
  value: void 0
97
105
  });
106
+ /** Example values demonstrating the media type content */
98
107
  Object.defineProperty(this, "examples", {
99
108
  enumerable: true,
100
109
  configurable: true,
101
110
  writable: true,
102
111
  value: void 0
103
112
  });
113
+ /** Custom extension fields (x-* properties) defined for this media type */
104
114
  Object.defineProperty(this, "extensionFields", {
105
115
  enumerable: true,
106
116
  configurable: true,
107
117
  writable: true,
108
118
  value: void 0
109
119
  });
120
+ /** Encoding information for multipart and form data serialization */
110
121
  Object.defineProperty(this, "encoding", {
111
122
  enumerable: true,
112
123
  configurable: true,
@@ -119,6 +130,12 @@ export class OasMediaType {
119
130
  this.encoding = fields.encoding;
120
131
  this.extensionFields = fields.extensionFields;
121
132
  }
133
+ /**
134
+ * Converts this OAS media type to an OpenAPI v3 JSON schema representation.
135
+ *
136
+ * @param options - Conversion options including reference handling and formatting preferences
137
+ * @returns OpenAPI v3 media type object with schema and examples
138
+ */
122
139
  toJsonSchema(options) {
123
140
  return {
124
141
  schema: this.schema?.toJsonSchema(options),
@@ -1,3 +1,44 @@
1
+ /**
2
+ * @fileoverview Brand Type System for SKMTC Core
3
+ *
4
+ * This module provides TypeScript branded types for creating type-safe identifiers
5
+ * and values that are structurally identical but nominally distinct. Branded types
6
+ * help prevent mixing up similar primitive types and provide better type safety
7
+ * across the SKMTC codebase.
8
+ *
9
+ * ## Key Features
10
+ *
11
+ * - **Type Safety**: Prevents accidental mixing of similar primitive types
12
+ * - **Nominal Typing**: Creates distinct types from the same underlying type
13
+ * - **Zero Runtime Cost**: Pure TypeScript compile-time construct
14
+ * - **Developer Experience**: Better IntelliSense and error messages
15
+ *
16
+ * @example Creating branded types
17
+ * ```typescript
18
+ * import type { Brand } from '@skmtc/core/Brand';
19
+ *
20
+ * type UserId = Brand<string, 'UserId'>;
21
+ * type ProductId = Brand<string, 'ProductId'>;
22
+ *
23
+ * const userId: UserId = 'user-123' as UserId;
24
+ * const productId: ProductId = 'prod-456' as ProductId;
25
+ *
26
+ * // TypeScript will prevent this error:
27
+ * // const wrong: UserId = productId; // Type error!
28
+ * ```
29
+ *
30
+ * @example Using with numbers
31
+ * ```typescript
32
+ * type Score = Brand<number, 'Score'>;
33
+ * type Percentage = Brand<number, 'Percentage'>;
34
+ *
35
+ * function calculateGrade(score: Score, total: Score): Percentage {
36
+ * return ((score / total) * 100) as Percentage;
37
+ * }
38
+ * ```
39
+ *
40
+ * @module Brand
41
+ */
1
42
  /**
2
43
  * Unique symbol used for branding types.
3
44
  *
@@ -1 +1 @@
1
- {"version":3,"file":"Brand.d.ts","sourceRoot":"","sources":["../../src/types/Brand.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,sBAAsB,CAAC;AAE9B,OAAO,CAAC,MAAM,KAAK,EAAE,OAAO,MAAM,CAAA;AAElC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgEG;AACH,MAAM,MAAM,KAAK,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC,GAAG;IAAE,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA"}
1
+ {"version":3,"file":"Brand.d.ts","sourceRoot":"","sources":["../../src/types/Brand.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAEH;;;;;;;;GAQG;AACH,OAAO,sBAAsB,CAAC;AAE9B,OAAO,CAAC,MAAM,KAAK,EAAE,OAAO,MAAM,CAAA;AAElC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgEG;AACH,MAAM,MAAM,KAAK,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC,GAAG;IAAE,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA"}
@@ -1,3 +1,44 @@
1
+ /**
2
+ * @fileoverview Brand Type System for SKMTC Core
3
+ *
4
+ * This module provides TypeScript branded types for creating type-safe identifiers
5
+ * and values that are structurally identical but nominally distinct. Branded types
6
+ * help prevent mixing up similar primitive types and provide better type safety
7
+ * across the SKMTC codebase.
8
+ *
9
+ * ## Key Features
10
+ *
11
+ * - **Type Safety**: Prevents accidental mixing of similar primitive types
12
+ * - **Nominal Typing**: Creates distinct types from the same underlying type
13
+ * - **Zero Runtime Cost**: Pure TypeScript compile-time construct
14
+ * - **Developer Experience**: Better IntelliSense and error messages
15
+ *
16
+ * @example Creating branded types
17
+ * ```typescript
18
+ * import type { Brand } from '@skmtc/core/Brand';
19
+ *
20
+ * type UserId = Brand<string, 'UserId'>;
21
+ * type ProductId = Brand<string, 'ProductId'>;
22
+ *
23
+ * const userId: UserId = 'user-123' as UserId;
24
+ * const productId: ProductId = 'prod-456' as ProductId;
25
+ *
26
+ * // TypeScript will prevent this error:
27
+ * // const wrong: UserId = productId; // Type error!
28
+ * ```
29
+ *
30
+ * @example Using with numbers
31
+ * ```typescript
32
+ * type Score = Brand<number, 'Score'>;
33
+ * type Percentage = Brand<number, 'Percentage'>;
34
+ *
35
+ * function calculateGrade(score: Score, total: Score): Percentage {
36
+ * return ((score / total) * 100) as Percentage;
37
+ * }
38
+ * ```
39
+ *
40
+ * @module Brand
41
+ */
1
42
  /**
2
43
  * Unique symbol used for branding types.
3
44
  *
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skmtc/core",
3
- "version": "0.0.804",
3
+ "version": "0.0.805",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/skmtc/skmtc.git"
@@ -1,15 +1,57 @@
1
+ /**
2
+ * Constructor fields for {@link OasContact}.
3
+ *
4
+ * Defines the configuration options for creating contact information,
5
+ * including name, URL, email, and extension fields.
6
+ */
1
7
  export type ContactFields = {
2
8
  name?: string;
3
9
  url?: string;
4
10
  email?: string;
5
11
  extensionFields?: Record<string, unknown>;
6
12
  };
13
+ /**
14
+ * Represents a Contact Object in the OpenAPI Specification.
15
+ *
16
+ * The `OasContact` class encapsulates contact information for the API,
17
+ * providing details about who to contact for support, questions, or issues.
18
+ * This information is typically displayed in API documentation.
19
+ *
20
+ * @example Basic contact information
21
+ * ```typescript
22
+ * import { OasContact } from '@skmtc/core';
23
+ *
24
+ * const contact = new OasContact({
25
+ * name: 'API Support Team',
26
+ * email: 'support@example.com'
27
+ * });
28
+ * ```
29
+ *
30
+ * @example Complete contact details
31
+ * ```typescript
32
+ * const fullContact = new OasContact({
33
+ * name: 'John Doe',
34
+ * url: 'https://example.com/contact',
35
+ * email: 'john@example.com'
36
+ * });
37
+ * ```
38
+ */
7
39
  export declare class OasContact {
40
+ /** Type identifier for this OAS contact object */
8
41
  oasType: "contact";
42
+ /** The identifying name of the contact person/organization */
9
43
  name: string | undefined;
44
+ /** URL pointing to the contact information */
10
45
  url: string | undefined;
46
+ /** Email address of the contact person/organization */
11
47
  email: string | undefined;
48
+ /** Custom extension fields (x-* properties) for additional contact metadata */
12
49
  extensionFields: Record<string, unknown> | undefined;
50
+ /**
51
+ * Creates a new OasContact instance.
52
+ *
53
+ * @param fields - Contact information fields including name, URL, and email
54
+ */
13
55
  constructor(fields?: ContactFields);
14
56
  }
15
57
  //# sourceMappingURL=Contact.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Contact.d.ts","sourceRoot":"","sources":["../../../src/oas/contact/Contact.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC1C,CAAA;AAED,qBAAa,UAAU;IACrB,OAAO,EAAG,SAAS,CAAS;IAE5B,IAAI,EAAE,MAAM,GAAG,SAAS,CAAA;IACxB,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;IACvB,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;IACzB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;gBAExC,MAAM,GAAE,aAAkB;CAMvC"}
1
+ {"version":3,"file":"Contact.d.ts","sourceRoot":"","sources":["../../../src/oas/contact/Contact.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC1C,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBAAa,UAAU;IACrB,kDAAkD;IAClD,OAAO,EAAG,SAAS,CAAS;IAE5B,8DAA8D;IAC9D,IAAI,EAAE,MAAM,GAAG,SAAS,CAAA;IACxB,8CAA8C;IAC9C,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;IACvB,uDAAuD;IACvD,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;IACzB,+EAA+E;IAC/E,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;IAEpD;;;;OAIG;gBACS,MAAM,GAAE,aAAkB;CAMvC"}
@@ -1,32 +1,68 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.OasContact = void 0;
4
+ /**
5
+ * Represents a Contact Object in the OpenAPI Specification.
6
+ *
7
+ * The `OasContact` class encapsulates contact information for the API,
8
+ * providing details about who to contact for support, questions, or issues.
9
+ * This information is typically displayed in API documentation.
10
+ *
11
+ * @example Basic contact information
12
+ * ```typescript
13
+ * import { OasContact } from '@skmtc/core';
14
+ *
15
+ * const contact = new OasContact({
16
+ * name: 'API Support Team',
17
+ * email: 'support@example.com'
18
+ * });
19
+ * ```
20
+ *
21
+ * @example Complete contact details
22
+ * ```typescript
23
+ * const fullContact = new OasContact({
24
+ * name: 'John Doe',
25
+ * url: 'https://example.com/contact',
26
+ * email: 'john@example.com'
27
+ * });
28
+ * ```
29
+ */
4
30
  class OasContact {
31
+ /**
32
+ * Creates a new OasContact instance.
33
+ *
34
+ * @param fields - Contact information fields including name, URL, and email
35
+ */
5
36
  constructor(fields = {}) {
37
+ /** Type identifier for this OAS contact object */
6
38
  Object.defineProperty(this, "oasType", {
7
39
  enumerable: true,
8
40
  configurable: true,
9
41
  writable: true,
10
42
  value: 'contact'
11
43
  });
44
+ /** The identifying name of the contact person/organization */
12
45
  Object.defineProperty(this, "name", {
13
46
  enumerable: true,
14
47
  configurable: true,
15
48
  writable: true,
16
49
  value: void 0
17
50
  });
51
+ /** URL pointing to the contact information */
18
52
  Object.defineProperty(this, "url", {
19
53
  enumerable: true,
20
54
  configurable: true,
21
55
  writable: true,
22
56
  value: void 0
23
57
  });
58
+ /** Email address of the contact person/organization */
24
59
  Object.defineProperty(this, "email", {
25
60
  enumerable: true,
26
61
  configurable: true,
27
62
  writable: true,
28
63
  value: void 0
29
64
  });
65
+ /** Custom extension fields (x-* properties) for additional contact metadata */
30
66
  Object.defineProperty(this, "extensionFields", {
31
67
  enumerable: true,
32
68
  configurable: true,
@@ -84,13 +84,49 @@ export type InfoFields = {
84
84
  */
85
85
  export declare class OasInfo {
86
86
  #private;
87
+ /** Type identifier for this OAS info object */
87
88
  oasType: 'info';
89
+ /**
90
+ * Creates a new OasInfo instance.
91
+ *
92
+ * @param fields - API information fields including title, version, description, and contact details
93
+ */
88
94
  constructor(fields: InfoFields);
95
+ /**
96
+ * Gets the API title.
97
+ *
98
+ * @returns The title of the API
99
+ */
89
100
  get title(): string;
101
+ /**
102
+ * Gets the API description.
103
+ *
104
+ * @returns Optional detailed description of the API's purpose and functionality
105
+ */
90
106
  get description(): string | undefined;
107
+ /**
108
+ * Gets the terms of service URL.
109
+ *
110
+ * @returns Optional URL pointing to the API's terms of service
111
+ */
91
112
  get termsOfService(): string | undefined;
113
+ /**
114
+ * Gets the contact information.
115
+ *
116
+ * @returns Optional contact information for API support and inquiries
117
+ */
92
118
  get contact(): OasContact | undefined;
119
+ /**
120
+ * Gets the license information.
121
+ *
122
+ * @returns Optional license information governing API usage
123
+ */
93
124
  get license(): OasLicense | undefined;
125
+ /**
126
+ * Gets the API version.
127
+ *
128
+ * @returns The version string of the API (e.g., '1.0.0', '2.1.3')
129
+ */
94
130
  get version(): string;
95
131
  /** Specification Extension fields */
96
132
  get extensionFields(): Record<string, unknown> | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"Info.d.ts","sourceRoot":"","sources":["../../../src/oas/info/Info.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAEvD;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,0CAA0C;IAC1C,OAAO,EAAE,MAAM,CAAA;IACf,+BAA+B;IAC/B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAChC,gDAAgD;IAChD,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACnC,kDAAkD;IAClD,OAAO,CAAC,EAAE,UAAU,GAAG,SAAS,CAAA;IAChC,kDAAkD;IAClD,OAAO,CAAC,EAAE,UAAU,GAAG,SAAS,CAAA;IAChC,+CAA+C;IAC/C,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC1C,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6DG;AACH,qBAAa,OAAO;;IAClB,OAAO,EAAE,MAAM,CAAS;gBAGZ,MAAM,EAAE,UAAU;IAI9B,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,WAAW,IAAI,MAAM,GAAG,SAAS,CAEpC;IAED,IAAI,cAAc,IAAI,MAAM,GAAG,SAAS,CAEvC;IAED,IAAI,OAAO,IAAI,UAAU,GAAG,SAAS,CAEpC;IAED,IAAI,OAAO,IAAI,UAAU,GAAG,SAAS,CAEpC;IAED,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,qCAAqC;IACrC,IAAI,eAAe,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAEzD;CACF"}
1
+ {"version":3,"file":"Info.d.ts","sourceRoot":"","sources":["../../../src/oas/info/Info.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAEvD;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,0CAA0C;IAC1C,OAAO,EAAE,MAAM,CAAA;IACf,+BAA+B;IAC/B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAChC,gDAAgD;IAChD,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACnC,kDAAkD;IAClD,OAAO,CAAC,EAAE,UAAU,GAAG,SAAS,CAAA;IAChC,kDAAkD;IAClD,OAAO,CAAC,EAAE,UAAU,GAAG,SAAS,CAAA;IAChC,+CAA+C;IAC/C,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC1C,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6DG;AACH,qBAAa,OAAO;;IAClB,+CAA+C;IAC/C,OAAO,EAAE,MAAM,CAAS;IAIxB;;;;OAIG;gBACS,MAAM,EAAE,UAAU;IAI9B;;;;OAIG;IACH,IAAI,KAAK,IAAI,MAAM,CAElB;IAED;;;;OAIG;IACH,IAAI,WAAW,IAAI,MAAM,GAAG,SAAS,CAEpC;IAED;;;;OAIG;IACH,IAAI,cAAc,IAAI,MAAM,GAAG,SAAS,CAEvC;IAED;;;;OAIG;IACH,IAAI,OAAO,IAAI,UAAU,GAAG,SAAS,CAEpC;IAED;;;;OAIG;IACH,IAAI,OAAO,IAAI,UAAU,GAAG,SAAS,CAEpC;IAED;;;;OAIG;IACH,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,qCAAqC;IACrC,IAAI,eAAe,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAEzD;CACF"}
@@ -77,31 +77,68 @@ require("../../_dnt.polyfills.js");
77
77
  * ```
78
78
  */
79
79
  class OasInfo {
80
+ /**
81
+ * Creates a new OasInfo instance.
82
+ *
83
+ * @param fields - API information fields including title, version, description, and contact details
84
+ */
80
85
  constructor(fields) {
86
+ /** Type identifier for this OAS info object */
81
87
  Object.defineProperty(this, "oasType", {
82
88
  enumerable: true,
83
89
  configurable: true,
84
90
  writable: true,
85
91
  value: 'info'
86
92
  });
93
+ /** Private storage for all info fields */
87
94
  _OasInfo_fields.set(this, void 0);
88
95
  __classPrivateFieldSet(this, _OasInfo_fields, fields, "f");
89
96
  }
97
+ /**
98
+ * Gets the API title.
99
+ *
100
+ * @returns The title of the API
101
+ */
90
102
  get title() {
91
103
  return __classPrivateFieldGet(this, _OasInfo_fields, "f").title;
92
104
  }
105
+ /**
106
+ * Gets the API description.
107
+ *
108
+ * @returns Optional detailed description of the API's purpose and functionality
109
+ */
93
110
  get description() {
94
111
  return __classPrivateFieldGet(this, _OasInfo_fields, "f").description;
95
112
  }
113
+ /**
114
+ * Gets the terms of service URL.
115
+ *
116
+ * @returns Optional URL pointing to the API's terms of service
117
+ */
96
118
  get termsOfService() {
97
119
  return __classPrivateFieldGet(this, _OasInfo_fields, "f").termsOfService;
98
120
  }
121
+ /**
122
+ * Gets the contact information.
123
+ *
124
+ * @returns Optional contact information for API support and inquiries
125
+ */
99
126
  get contact() {
100
127
  return __classPrivateFieldGet(this, _OasInfo_fields, "f").contact;
101
128
  }
129
+ /**
130
+ * Gets the license information.
131
+ *
132
+ * @returns Optional license information governing API usage
133
+ */
102
134
  get license() {
103
135
  return __classPrivateFieldGet(this, _OasInfo_fields, "f").license;
104
136
  }
137
+ /**
138
+ * Gets the API version.
139
+ *
140
+ * @returns The version string of the API (e.g., '1.0.0', '2.1.3')
141
+ */
105
142
  get version() {
106
143
  return __classPrivateFieldGet(this, _OasInfo_fields, "f").version;
107
144
  }
@@ -96,13 +96,30 @@ export type MediaTypeFields = {
96
96
  * ```
97
97
  */
98
98
  export declare class OasMediaType {
99
+ /** Type identifier for this OAS media type */
99
100
  oasType: 'mediaType';
101
+ /** The media type identifier (e.g., 'application/json', 'text/xml') */
100
102
  mediaType: string;
103
+ /** The schema defining the structure and validation rules for the content */
101
104
  schema: OasSchema | OasRef<'schema'> | undefined;
105
+ /** Example values demonstrating the media type content */
102
106
  examples: Record<string, OasExample | OasRef<'example'>> | undefined;
107
+ /** Custom extension fields (x-* properties) defined for this media type */
103
108
  extensionFields: Record<string, unknown> | undefined;
109
+ /** Encoding information for multipart and form data serialization */
104
110
  encoding?: Record<string, unknown> | undefined;
111
+ /**
112
+ * Creates a new OasMediaType instance.
113
+ *
114
+ * @param fields - Media type configuration including content schema, examples, and encoding
115
+ */
105
116
  constructor(fields: MediaTypeFields);
117
+ /**
118
+ * Converts this OAS media type to an OpenAPI v3 JSON schema representation.
119
+ *
120
+ * @param options - Conversion options including reference handling and formatting preferences
121
+ * @returns OpenAPI v3 media type object with schema and examples
122
+ */
106
123
  toJsonSchema(options: ToJsonSchemaOptions): OpenAPIV3.MediaTypeObject;
107
124
  }
108
125
  //# sourceMappingURL=MediaType.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MediaType.d.ts","sourceRoot":"","sources":["../../../src/oas/mediaType/MediaType.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAE9C;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,mEAAmE;IACnE,SAAS,EAAE,MAAM,CAAA;IACjB,uDAAuD;IACvD,MAAM,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAA;IACjD,wCAAwC;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,SAAS,CAAA;IACrE,+CAA+C;IAC/C,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACzC,sDAAsD;IACtD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;CAC/C,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4EG;AACH,qBAAa,YAAY;IACvB,OAAO,EAAE,WAAW,CAAc;IAClC,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAA;IAChD,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,SAAS,CAAA;IACpE,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;IACpD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;gBAClC,MAAM,EAAE,eAAe;IAQnC,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,SAAS,CAAC,eAAe;CAMtE"}
1
+ {"version":3,"file":"MediaType.d.ts","sourceRoot":"","sources":["../../../src/oas/mediaType/MediaType.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAE9C;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,mEAAmE;IACnE,SAAS,EAAE,MAAM,CAAA;IACjB,uDAAuD;IACvD,MAAM,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAA;IACjD,wCAAwC;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,SAAS,CAAA;IACrE,+CAA+C;IAC/C,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACzC,sDAAsD;IACtD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;CAC/C,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4EG;AACH,qBAAa,YAAY;IACvB,8CAA8C;IAC9C,OAAO,EAAE,WAAW,CAAc;IAClC,uEAAuE;IACvE,SAAS,EAAE,MAAM,CAAA;IACjB,6EAA6E;IAC7E,MAAM,EAAE,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAA;IAChD,0DAA0D;IAC1D,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,SAAS,CAAA;IACpE,2EAA2E;IAC3E,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;IACpD,qEAAqE;IACrE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;IAC9C;;;;OAIG;gBACS,MAAM,EAAE,eAAe;IAQnC;;;;;OAKG;IACH,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,SAAS,CAAC,eAAe;CAMtE"}
@@ -79,37 +79,48 @@ exports.OasMediaType = void 0;
79
79
  * ```
80
80
  */
81
81
  class OasMediaType {
82
+ /**
83
+ * Creates a new OasMediaType instance.
84
+ *
85
+ * @param fields - Media type configuration including content schema, examples, and encoding
86
+ */
82
87
  constructor(fields) {
88
+ /** Type identifier for this OAS media type */
83
89
  Object.defineProperty(this, "oasType", {
84
90
  enumerable: true,
85
91
  configurable: true,
86
92
  writable: true,
87
93
  value: 'mediaType'
88
94
  });
95
+ /** The media type identifier (e.g., 'application/json', 'text/xml') */
89
96
  Object.defineProperty(this, "mediaType", {
90
97
  enumerable: true,
91
98
  configurable: true,
92
99
  writable: true,
93
100
  value: void 0
94
101
  });
102
+ /** The schema defining the structure and validation rules for the content */
95
103
  Object.defineProperty(this, "schema", {
96
104
  enumerable: true,
97
105
  configurable: true,
98
106
  writable: true,
99
107
  value: void 0
100
108
  });
109
+ /** Example values demonstrating the media type content */
101
110
  Object.defineProperty(this, "examples", {
102
111
  enumerable: true,
103
112
  configurable: true,
104
113
  writable: true,
105
114
  value: void 0
106
115
  });
116
+ /** Custom extension fields (x-* properties) defined for this media type */
107
117
  Object.defineProperty(this, "extensionFields", {
108
118
  enumerable: true,
109
119
  configurable: true,
110
120
  writable: true,
111
121
  value: void 0
112
122
  });
123
+ /** Encoding information for multipart and form data serialization */
113
124
  Object.defineProperty(this, "encoding", {
114
125
  enumerable: true,
115
126
  configurable: true,
@@ -122,6 +133,12 @@ class OasMediaType {
122
133
  this.encoding = fields.encoding;
123
134
  this.extensionFields = fields.extensionFields;
124
135
  }
136
+ /**
137
+ * Converts this OAS media type to an OpenAPI v3 JSON schema representation.
138
+ *
139
+ * @param options - Conversion options including reference handling and formatting preferences
140
+ * @returns OpenAPI v3 media type object with schema and examples
141
+ */
125
142
  toJsonSchema(options) {
126
143
  return {
127
144
  schema: this.schema?.toJsonSchema(options),
@@ -1,3 +1,44 @@
1
+ /**
2
+ * @fileoverview Brand Type System for SKMTC Core
3
+ *
4
+ * This module provides TypeScript branded types for creating type-safe identifiers
5
+ * and values that are structurally identical but nominally distinct. Branded types
6
+ * help prevent mixing up similar primitive types and provide better type safety
7
+ * across the SKMTC codebase.
8
+ *
9
+ * ## Key Features
10
+ *
11
+ * - **Type Safety**: Prevents accidental mixing of similar primitive types
12
+ * - **Nominal Typing**: Creates distinct types from the same underlying type
13
+ * - **Zero Runtime Cost**: Pure TypeScript compile-time construct
14
+ * - **Developer Experience**: Better IntelliSense and error messages
15
+ *
16
+ * @example Creating branded types
17
+ * ```typescript
18
+ * import type { Brand } from '@skmtc/core/Brand';
19
+ *
20
+ * type UserId = Brand<string, 'UserId'>;
21
+ * type ProductId = Brand<string, 'ProductId'>;
22
+ *
23
+ * const userId: UserId = 'user-123' as UserId;
24
+ * const productId: ProductId = 'prod-456' as ProductId;
25
+ *
26
+ * // TypeScript will prevent this error:
27
+ * // const wrong: UserId = productId; // Type error!
28
+ * ```
29
+ *
30
+ * @example Using with numbers
31
+ * ```typescript
32
+ * type Score = Brand<number, 'Score'>;
33
+ * type Percentage = Brand<number, 'Percentage'>;
34
+ *
35
+ * function calculateGrade(score: Score, total: Score): Percentage {
36
+ * return ((score / total) * 100) as Percentage;
37
+ * }
38
+ * ```
39
+ *
40
+ * @module Brand
41
+ */
1
42
  /**
2
43
  * Unique symbol used for branding types.
3
44
  *
@@ -1 +1 @@
1
- {"version":3,"file":"Brand.d.ts","sourceRoot":"","sources":["../../src/types/Brand.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,sBAAsB,CAAC;AAE9B,OAAO,CAAC,MAAM,KAAK,EAAE,OAAO,MAAM,CAAA;AAElC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgEG;AACH,MAAM,MAAM,KAAK,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC,GAAG;IAAE,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA"}
1
+ {"version":3,"file":"Brand.d.ts","sourceRoot":"","sources":["../../src/types/Brand.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAEH;;;;;;;;GAQG;AACH,OAAO,sBAAsB,CAAC;AAE9B,OAAO,CAAC,MAAM,KAAK,EAAE,OAAO,MAAM,CAAA;AAElC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgEG;AACH,MAAM,MAAM,KAAK,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC,GAAG;IAAE,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA"}
@@ -1,4 +1,45 @@
1
1
  "use strict";
2
+ /**
3
+ * @fileoverview Brand Type System for SKMTC Core
4
+ *
5
+ * This module provides TypeScript branded types for creating type-safe identifiers
6
+ * and values that are structurally identical but nominally distinct. Branded types
7
+ * help prevent mixing up similar primitive types and provide better type safety
8
+ * across the SKMTC codebase.
9
+ *
10
+ * ## Key Features
11
+ *
12
+ * - **Type Safety**: Prevents accidental mixing of similar primitive types
13
+ * - **Nominal Typing**: Creates distinct types from the same underlying type
14
+ * - **Zero Runtime Cost**: Pure TypeScript compile-time construct
15
+ * - **Developer Experience**: Better IntelliSense and error messages
16
+ *
17
+ * @example Creating branded types
18
+ * ```typescript
19
+ * import type { Brand } from '@skmtc/core/Brand';
20
+ *
21
+ * type UserId = Brand<string, 'UserId'>;
22
+ * type ProductId = Brand<string, 'ProductId'>;
23
+ *
24
+ * const userId: UserId = 'user-123' as UserId;
25
+ * const productId: ProductId = 'prod-456' as ProductId;
26
+ *
27
+ * // TypeScript will prevent this error:
28
+ * // const wrong: UserId = productId; // Type error!
29
+ * ```
30
+ *
31
+ * @example Using with numbers
32
+ * ```typescript
33
+ * type Score = Brand<number, 'Score'>;
34
+ * type Percentage = Brand<number, 'Percentage'>;
35
+ *
36
+ * function calculateGrade(score: Score, total: Score): Percentage {
37
+ * return ((score / total) * 100) as Percentage;
38
+ * }
39
+ * ```
40
+ *
41
+ * @module Brand
42
+ */
2
43
  Object.defineProperty(exports, "__esModule", { value: true });
3
44
  /**
4
45
  * Unique symbol used for branding types.