@skmtc/core 0.0.789 → 0.0.790

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 +1 @@
1
- {"version":3,"file":"Parameter.d.ts","sourceRoot":"","sources":["../../../src/oas/parameter/Parameter.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AACnF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAK9C,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,oBAAoB,CAAA;IAC9B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAChC,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC9B,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAChC,eAAe,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACrC,aAAa,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACnC,MAAM,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAA;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,SAAS,CAAA;IACrE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,SAAS,CAAA;IAClD,KAAK,EAAE,iBAAiB,CAAA;IACxB,OAAO,EAAE,OAAO,CAAA;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC1C,CAAA;AAED,qBAAa,YAAY;IACvB,OAAO,EAAE,WAAW,CAAc;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,oBAAoB,CAAA;IAC9B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAChC,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC9B,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAChC,eAAe,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACrC,aAAa,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACnC,MAAM,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAA;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,SAAS,CAAA;IACrE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,SAAS,CAAA;IAClD,KAAK,EAAE,iBAAiB,CAAA;IACxB,OAAO,EAAE,OAAO,CAAA;IAChB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;gBACxC,MAAM,EAAE,eAAe;IAkBnC,KAAK,IAAI,IAAI,IAAI,MAAM,CAAC,WAAW,CAAC;IAIpC,OAAO,IAAI,YAAY;IAIvB,WAAW,IAAI,YAAY;IAI3B,QAAQ,CAAC,SAAS,GAAE,MAA2B,GAAG,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;IAc9E,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,SAAS,CAAC,eAAe;CAuBtE"}
1
+ {"version":3,"file":"Parameter.d.ts","sourceRoot":"","sources":["../../../src/oas/parameter/Parameter.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,150 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.OasParameter = void 0;
4
4
  require("../../_dnt.polyfills.js");
5
+ /**
6
+ * Represents a Parameter Object in the OpenAPI Specification.
7
+ *
8
+ * The `OasParameter` class encapsulates the definition of a single operation parameter,
9
+ * including its location, data type, validation rules, and serialization behavior.
10
+ * Parameters can be located in the path, query string, headers, or cookies.
11
+ *
12
+ * This class provides comprehensive support for parameter validation, serialization
13
+ * styles, and complex data types through schema definitions or content specifications.
14
+ *
15
+ * ## Key Features
16
+ *
17
+ * - **Location Support**: Path, query, header, and cookie parameters
18
+ * - **Schema Validation**: Comprehensive data type validation through schemas
19
+ * - **Serialization Styles**: Various parameter serialization formats
20
+ * - **Content Types**: Support for complex parameter content with media types
21
+ * - **Examples & Documentation**: Parameter examples and descriptive documentation
22
+ * - **Advanced Options**: Empty values, reserved characters, and explode behavior
23
+ *
24
+ * @example Basic path parameter
25
+ * ```typescript
26
+ * import { OasParameter, OasString } from '@skmtc/core';
27
+ *
28
+ * const userIdParam = new OasParameter({
29
+ * name: 'userId',
30
+ * location: 'path',
31
+ * description: 'Unique identifier for the user',
32
+ * required: true,
33
+ * schema: new OasString({
34
+ * pattern: '^[0-9a-f]{24}$',
35
+ * example: '507f1f77bcf86cd799439011'
36
+ * }),
37
+ * style: 'simple',
38
+ * explode: false
39
+ * });
40
+ *
41
+ * // Used in path: /users/{userId}
42
+ * ```
43
+ *
44
+ * @example Query parameter with validation
45
+ * ```typescript
46
+ * const pageSizeParam = new OasParameter({
47
+ * name: 'pageSize',
48
+ * location: 'query',
49
+ * description: 'Number of items to return per page',
50
+ * required: false,
51
+ * schema: new OasInteger({
52
+ * minimum: 1,
53
+ * maximum: 100,
54
+ * default: 20
55
+ * }),
56
+ * style: 'form',
57
+ * explode: true,
58
+ * examples: {
59
+ * small: new OasExample({ value: 10 }),
60
+ * medium: new OasExample({ value: 25 }),
61
+ * large: new OasExample({ value: 50 })
62
+ * }
63
+ * });
64
+ *
65
+ * // Used in query: ?pageSize=20
66
+ * ```
67
+ *
68
+ * @example Header parameter
69
+ * ```typescript
70
+ * const authHeaderParam = new OasParameter({
71
+ * name: 'Authorization',
72
+ * location: 'header',
73
+ * description: 'Bearer token for authentication',
74
+ * required: true,
75
+ * schema: new OasString({
76
+ * pattern: '^Bearer [A-Za-z0-9+/=]+$',
77
+ * example: 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...'
78
+ * }),
79
+ * style: 'simple',
80
+ * explode: false
81
+ * });
82
+ * ```
83
+ *
84
+ * @example Complex parameter with content
85
+ * ```typescript
86
+ * const filterParam = new OasParameter({
87
+ * name: 'filter',
88
+ * location: 'query',
89
+ * description: 'Complex filter object',
90
+ * required: false,
91
+ * content: {
92
+ * 'application/json': new OasMediaType({
93
+ * schema: new OasObject({
94
+ * properties: {
95
+ * category: new OasString(),
96
+ * priceRange: new OasObject({
97
+ * properties: {
98
+ * min: new OasNumber(),
99
+ * max: new OasNumber()
100
+ * }
101
+ * })
102
+ * }
103
+ * })
104
+ * })
105
+ * },
106
+ * style: 'deepObject',
107
+ * explode: true
108
+ * });
109
+ *
110
+ * // Used as: ?filter[category]=electronics&filter[priceRange][min]=100
111
+ * ```
112
+ *
113
+ * @example Array parameter with explode
114
+ * ```typescript
115
+ * const tagsParam = new OasParameter({
116
+ * name: 'tags',
117
+ * location: 'query',
118
+ * description: 'Filter by multiple tags',
119
+ * required: false,
120
+ * schema: new OasArray({
121
+ * items: new OasString(),
122
+ * minItems: 1,
123
+ * maxItems: 10
124
+ * }),
125
+ * style: 'form',
126
+ * explode: true // Results in: ?tags=tech&tags=api&tags=rest
127
+ * });
128
+ *
129
+ * // Without explode: ?tags=tech,api,rest
130
+ * // With explode: ?tags=tech&tags=api&tags=rest
131
+ * ```
132
+ *
133
+ * @example Cookie parameter
134
+ * ```typescript
135
+ * const sessionParam = new OasParameter({
136
+ * name: 'sessionId',
137
+ * location: 'cookie',
138
+ * description: 'Session identifier cookie',
139
+ * required: false,
140
+ * schema: new OasString({
141
+ * minLength: 32,
142
+ * maxLength: 128
143
+ * }),
144
+ * style: 'form',
145
+ * explode: false
146
+ * });
147
+ * ```
148
+ */
5
149
  class OasParameter {
6
150
  constructor(fields) {
7
151
  Object.defineProperty(this, "oasType", {