@e22m4u/js-openapi 0.0.5 → 0.0.6

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 (70) hide show
  1. package/README.md +226 -146
  2. package/dist/cjs/index.cjs +2024 -2092
  3. package/package.json +10 -8
  4. package/schema/openapi-3-1/dialect/base.js +21 -0
  5. package/schema/openapi-3-1/meta/base.js +76 -0
  6. package/schema/openapi-3-1/schema-base.js +32 -0
  7. package/schema/openapi-3-1/schema.js +1403 -0
  8. package/src/ajv.js +32 -0
  9. package/src/errors/index.d.ts +1 -1
  10. package/src/errors/index.js +1 -1
  11. package/src/errors/oa-document-object-validation-error.d.ts +6 -0
  12. package/src/errors/oa-document-object-validation-error.js +6 -0
  13. package/src/errors/oa-document-object-validation-error.spec.js +10 -0
  14. package/src/index.d.ts +1 -3
  15. package/src/index.js +1 -3
  16. package/src/json-pointer/resolve-json-pointer.js +1 -1
  17. package/src/json-pointer/unescape-json-pointer.d.ts +1 -2
  18. package/src/oa-document-builder.d.ts +302 -111
  19. package/src/oa-document-builder.js +208 -142
  20. package/src/oa-document-builder.spec.js +1408 -0
  21. package/src/oa-document-object/index.d.ts +1 -1
  22. package/src/oa-document-object/index.js +1 -1
  23. package/src/oa-document-object/validate-oa-document-object.d.ts +18 -0
  24. package/src/oa-document-object/validate-oa-document-object.js +53 -0
  25. package/src/oa-document-object/validate-oa-document-object.spec.js +122 -0
  26. package/src/{oa-document-scope.d.ts → oa-operation-group.d.ts} +7 -7
  27. package/src/{oa-document-scope.js → oa-operation-group.js} +101 -46
  28. package/src/oa-operation-group.spec.js +544 -0
  29. package/src/oa-reference-object/is-oa-reference-object.js +1 -1
  30. package/src/oa-reference-object/is-oa-reference-object.spec.js +1 -1
  31. package/src/oa-reference-object/oa-ref.js +7 -0
  32. package/src/oa-reference-object/resolve-oa-reference-object.js +1 -11
  33. package/src/oa-reference-object/resolve-oa-reference-object.spec.js +0 -10
  34. package/src/oa-specification.d.ts +54 -66
  35. package/src/oa-specification.js +10 -22
  36. package/src/data-type/index.d.ts +0 -1
  37. package/src/data-type/index.js +0 -1
  38. package/src/data-type/infer-openapi-data-type.d.ts +0 -30
  39. package/src/data-type/infer-openapi-data-type.js +0 -38
  40. package/src/data-validation/data-format-validator-map.d.ts +0 -13
  41. package/src/data-validation/data-format-validator-map.js +0 -36
  42. package/src/data-validation/data-format-validator-map.spec.js +0 -39
  43. package/src/data-validation/data-format-validators.d.ts +0 -84
  44. package/src/data-validation/data-format-validators.js +0 -217
  45. package/src/data-validation/index.d.ts +0 -3
  46. package/src/data-validation/index.js +0 -3
  47. package/src/data-validation/validate-data-with-openapi-schema.d.ts +0 -46
  48. package/src/data-validation/validate-data-with-openapi-schema.js +0 -1913
  49. package/src/data-validation/validate-data-with-openapi-schema.spec.js +0 -6953
  50. package/src/errors/oa-data-validation-error.d.ts +0 -6
  51. package/src/errors/oa-data-validation-error.js +0 -6
  52. package/src/errors/oa-data-validation-error.spec.js +0 -17
  53. package/src/oa-document-object/validate-shallow-oa-document.d.ts +0 -10
  54. package/src/oa-document-object/validate-shallow-oa-document.js +0 -209
  55. package/src/oa-document-object/validate-shallow-oa-document.spec.js +0 -362
  56. package/src/utils/count-unicode.d.ts +0 -11
  57. package/src/utils/count-unicode.js +0 -15
  58. package/src/utils/index.d.ts +0 -5
  59. package/src/utils/index.js +0 -5
  60. package/src/utils/join-path.d.ts +0 -6
  61. package/src/utils/join-path.js +0 -36
  62. package/src/utils/join-path.spec.js +0 -104
  63. package/src/utils/normalize-path.d.ts +0 -12
  64. package/src/utils/normalize-path.js +0 -22
  65. package/src/utils/normalize-path.spec.js +0 -56
  66. package/src/utils/to-pascal-case.d.ts +0 -6
  67. package/src/utils/to-pascal-case.js +0 -26
  68. package/src/utils/to-pascal-case.spec.js +0 -15
  69. package/src/utils/to-spaced-json.d.ts +0 -17
  70. package/src/utils/to-spaced-json.js +0 -27
@@ -1,14 +1,14 @@
1
- // OpenApi version 3.1.0
2
- // https://spec.openapis.org/oas/v3.1.0
1
+ // OpenApi version 3.1.2
2
+ // https://spec.openapis.org/oas/v3.1.2
3
3
 
4
4
  /**
5
5
  * OpenAPI version.
6
6
  */
7
- export declare const OPENAPI_VERSION: '3.1.0';
7
+ export declare const OPENAPI_VERSION: '3.1.2';
8
8
 
9
9
  /**
10
- * Document object.
11
- * https://spec.openapis.org/oas/v3.1.0#openapi-object
10
+ * Document Object.
11
+ * https://spec.openapis.org/oas/v3.1.2#openapi-object
12
12
  */
13
13
  export type OADocumentObject = {
14
14
  openapi: string;
@@ -25,7 +25,7 @@ export type OADocumentObject = {
25
25
 
26
26
  /**
27
27
  * Info Object.
28
- * https://spec.openapis.org/oas/v3.1.0#info-object
28
+ * https://spec.openapis.org/oas/v3.1.2#info-object
29
29
  */
30
30
  export type OAInfoObject = {
31
31
  title: string;
@@ -39,7 +39,7 @@ export type OAInfoObject = {
39
39
 
40
40
  /**
41
41
  * Contact Object.
42
- * https://spec.openapis.org/oas/v3.1.0#contact-object
42
+ * https://spec.openapis.org/oas/v3.1.2#contact-object
43
43
  */
44
44
  export type OAContactObject = {
45
45
  name?: string;
@@ -49,7 +49,7 @@ export type OAContactObject = {
49
49
 
50
50
  /**
51
51
  * License Object.
52
- * https://spec.openapis.org/oas/v3.1.0#license-object
52
+ * https://spec.openapis.org/oas/v3.1.2#license-object
53
53
  */
54
54
  export type OALicenseObject = {
55
55
  name: string;
@@ -59,7 +59,7 @@ export type OALicenseObject = {
59
59
 
60
60
  /**
61
61
  * Server Object.
62
- * https://spec.openapis.org/oas/v3.1.0#server-object
62
+ * https://spec.openapis.org/oas/v3.1.2#server-object
63
63
  */
64
64
  export type OAServerObject = {
65
65
  url: string;
@@ -69,7 +69,7 @@ export type OAServerObject = {
69
69
 
70
70
  /**
71
71
  * Server variable object.
72
- * https://spec.openapis.org/oas/v3.1.0#server-variable-object
72
+ * https://spec.openapis.org/oas/v3.1.2#server-variable-object
73
73
  */
74
74
  export type OAServerVariableObject = {
75
75
  enum?: string[];
@@ -79,7 +79,7 @@ export type OAServerVariableObject = {
79
79
 
80
80
  /**
81
81
  * Paths Object.
82
- * https://spec.openapis.org/oas/v3.1.0#paths-object
82
+ * https://spec.openapis.org/oas/v3.1.2#paths-object
83
83
  */
84
84
  export type OAPathsObject = {
85
85
  [path: string]: OAPathItemObject | undefined;
@@ -87,7 +87,7 @@ export type OAPathsObject = {
87
87
 
88
88
  /**
89
89
  * Path Item Object
90
- * https://spec.openapis.org/oas/v3.1.0#path-item-object
90
+ * https://spec.openapis.org/oas/v3.1.2#path-item-object
91
91
  */
92
92
  export type OAPathItemObject = {
93
93
  $ref?: string;
@@ -107,7 +107,7 @@ export type OAPathItemObject = {
107
107
 
108
108
  /**
109
109
  * Operation Method.
110
- * https://spec.openapis.org/oas/v3.1.0#path-item-object
110
+ * https://spec.openapis.org/oas/v3.1.2#path-item-object
111
111
  */
112
112
  export declare const OAOperationMethod: {
113
113
  GET: 'get';
@@ -122,14 +122,14 @@ export declare const OAOperationMethod: {
122
122
 
123
123
  /**
124
124
  * Operation Method.
125
- * https://spec.openapis.org/oas/v3.1.0#path-item-object
125
+ * https://spec.openapis.org/oas/v3.1.2#path-item-object
126
126
  */
127
127
  export type OAOperationMethod =
128
128
  (typeof OAOperationMethod)[keyof typeof OAOperationMethod];
129
129
 
130
130
  /**
131
131
  * Parameter Object.
132
- * https://spec.openapis.org/oas/v3.1.0#parameter-object
132
+ * https://spec.openapis.org/oas/v3.1.2#parameter-object
133
133
  */
134
134
  export type OAParameterObject = {
135
135
  name: string;
@@ -149,7 +149,7 @@ export type OAParameterObject = {
149
149
 
150
150
  /**
151
151
  * Parameter Location.
152
- * https://spec.openapis.org/oas/v3.1.0#parameter-locations
152
+ * https://spec.openapis.org/oas/v3.1.2#parameter-locations
153
153
  */
154
154
  export declare const OAParameterLocation: {
155
155
  QUERY: 'query';
@@ -160,14 +160,14 @@ export declare const OAParameterLocation: {
160
160
 
161
161
  /**
162
162
  * Parameter Location.
163
- * https://spec.openapis.org/oas/v3.1.0#parameter-locations
163
+ * https://spec.openapis.org/oas/v3.1.2#parameter-locations
164
164
  */
165
165
  export type OAParameterLocation =
166
166
  (typeof OAParameterLocation)[keyof typeof OAParameterLocation];
167
167
 
168
168
  /**
169
169
  * Parameter Style.
170
- * https://spec.openapis.org/oas/v3.1.0#style-values
170
+ * https://spec.openapis.org/oas/v3.1.2#style-values
171
171
  */
172
172
  export declare const OAParameterStyle: {
173
173
  MATRIX: 'matrix';
@@ -181,14 +181,14 @@ export declare const OAParameterStyle: {
181
181
 
182
182
  /**
183
183
  * Parameter Style.
184
- * https://spec.openapis.org/oas/v3.1.0#style-values
184
+ * https://spec.openapis.org/oas/v3.1.2#style-values
185
185
  */
186
186
  export type OAParameterStyle =
187
187
  (typeof OAParameterStyle)[keyof typeof OAParameterStyle];
188
188
 
189
189
  /**
190
190
  * Reference Object.
191
- * https://spec.openapis.org/oas/v3.1.0#reference-object
191
+ * https://spec.openapis.org/oas/v3.1.2#reference-object
192
192
  */
193
193
  export type OAReferenceObject = {
194
194
  $ref: string;
@@ -204,7 +204,7 @@ export type OABooleanSchema = boolean;
204
204
 
205
205
  /**
206
206
  * Schema Object.
207
- * https://spec.openapis.org/oas/v3.1.0#schema-object
207
+ * https://spec.openapis.org/oas/v3.1.2#schema-object
208
208
  * https://datatracker.ietf.org/doc/html/draft-bhutton-json-schema-01
209
209
  * https://datatracker.ietf.org/doc/html/draft-bhutton-json-schema-validation-01#name-table-of-contents-2
210
210
  */
@@ -302,15 +302,9 @@ export declare const OADataType: {
302
302
  */
303
303
  export type OADataType = (typeof OADataType)[keyof typeof OADataType];
304
304
 
305
- /**
306
- * Data type list.
307
- * https://datatracker.ietf.org/doc/html/draft-bhutton-json-schema-00#section-4.2.1
308
- */
309
- export declare const OA_DATA_TYPE_LIST: OADataType[];
310
-
311
305
  /**
312
306
  * Data format.
313
- * https://spec.openapis.org/oas/v3.1.0#dataTypeFormat
307
+ * https://spec.openapis.org/oas/v3.1.2#dataTypeFormat
314
308
  */
315
309
  export declare const OADataFormat: {
316
310
  // number
@@ -347,13 +341,13 @@ export declare const OADataFormat: {
347
341
 
348
342
  /**
349
343
  * Data format.
350
- * https://spec.openapis.org/oas/v3.1.0#dataTypeFormat
344
+ * https://spec.openapis.org/oas/v3.1.2#dataTypeFormat
351
345
  */
352
346
  export type OADataFormat = (typeof OADataFormat)[keyof typeof OADataFormat];
353
347
 
354
348
  /**
355
349
  * Discriminator Object.
356
- * https://spec.openapis.org/oas/v3.1.0#discriminator-object
350
+ * https://spec.openapis.org/oas/v3.1.2#discriminator-object
357
351
  */
358
352
  export type OADiscriminatorObject = {
359
353
  propertyName: string;
@@ -362,7 +356,7 @@ export type OADiscriminatorObject = {
362
356
 
363
357
  /**
364
358
  * Xml Object.
365
- * https://spec.openapis.org/oas/v3.1.0#xml-object
359
+ * https://spec.openapis.org/oas/v3.1.2#xml-object
366
360
  */
367
361
  export type OAXmlObject = {
368
362
  name?: string;
@@ -374,7 +368,7 @@ export type OAXmlObject = {
374
368
 
375
369
  /**
376
370
  * External Documentation Object.
377
- * https://spec.openapis.org/oas/v3.1.0#external-documentation-object
371
+ * https://spec.openapis.org/oas/v3.1.2#external-documentation-object
378
372
  */
379
373
  export type OAExternalDocumentationObject = {
380
374
  description?: string;
@@ -383,7 +377,7 @@ export type OAExternalDocumentationObject = {
383
377
 
384
378
  /**
385
379
  * Operation Object.
386
- * https://spec.openapis.org/oas/v3.1.0#operation-object
380
+ * https://spec.openapis.org/oas/v3.1.2#operation-object
387
381
  */
388
382
  export type OAOperationObject = {
389
383
  tags?: string[];
@@ -402,7 +396,7 @@ export type OAOperationObject = {
402
396
 
403
397
  /**
404
398
  * Callback Object.
405
- * https://spec.openapis.org/oas/v3.1.0#callback-object
399
+ * https://spec.openapis.org/oas/v3.1.2#callback-object
406
400
  */
407
401
  export type OACallbackObject = {
408
402
  [expression: string]: OAPathItemObject | OAReferenceObject | undefined;
@@ -410,7 +404,7 @@ export type OACallbackObject = {
410
404
 
411
405
  /**
412
406
  * Request Body Object.
413
- * https://spec.openapis.org/oas/v3.1.0#request-body-object
407
+ * https://spec.openapis.org/oas/v3.1.2#request-body-object
414
408
  */
415
409
  export type OARequestBodyObject = {
416
410
  description?: string;
@@ -420,7 +414,7 @@ export type OARequestBodyObject = {
420
414
 
421
415
  /**
422
416
  * Media type.
423
- * https://spec.openapis.org/oas/v3.1.0#media-types
417
+ * https://spec.openapis.org/oas/v3.1.2#media-types
424
418
  */
425
419
  export declare const OAMediaType: {
426
420
  TEXT_PLAIN: 'text/plain';
@@ -432,13 +426,13 @@ export declare const OAMediaType: {
432
426
 
433
427
  /**
434
428
  * Media type.
435
- * https://spec.openapis.org/oas/v3.1.0#media-types
429
+ * https://spec.openapis.org/oas/v3.1.2#media-types
436
430
  */
437
431
  export type OAMediaType = (typeof OAMediaType)[keyof typeof OAMediaType];
438
432
 
439
433
  /**
440
434
  * Responses Object.
441
- * https://spec.openapis.org/oas/v3.1.0#responses-object
435
+ * https://spec.openapis.org/oas/v3.1.2#responses-object
442
436
  */
443
437
  export type OAResponsesObject = {
444
438
  [httpStatusCode: string]: OAResponseObject | OAReferenceObject | undefined;
@@ -446,7 +440,7 @@ export type OAResponsesObject = {
446
440
 
447
441
  /**
448
442
  * Response Object.
449
- * https://spec.openapis.org/oas/v3.1.0#response-object
443
+ * https://spec.openapis.org/oas/v3.1.2#response-object
450
444
  */
451
445
  export type OAResponseObject = {
452
446
  description: string;
@@ -457,7 +451,7 @@ export type OAResponseObject = {
457
451
 
458
452
  /**
459
453
  * Media Type Object.
460
- * https://spec.openapis.org/oas/v3.1.0#media-type-object
454
+ * https://spec.openapis.org/oas/v3.1.2#media-type-object
461
455
  */
462
456
  export type OAMediaTypeObject = {
463
457
  schema?: OABooleanSchema | OASchemaObject | OAReferenceObject;
@@ -468,7 +462,7 @@ export type OAMediaTypeObject = {
468
462
 
469
463
  /**
470
464
  * Example Object.
471
- * https://spec.openapis.org/oas/v3.1.0#example-object
465
+ * https://spec.openapis.org/oas/v3.1.2#example-object
472
466
  */
473
467
  export type OAExampleObject = {
474
468
  summary?: string;
@@ -479,7 +473,7 @@ export type OAExampleObject = {
479
473
 
480
474
  /**
481
475
  * Encoding Object.
482
- * https://spec.openapis.org/oas/v3.1.0#encoding-object
476
+ * https://spec.openapis.org/oas/v3.1.2#encoding-object
483
477
  */
484
478
  export type OAEncodingObject = {
485
479
  contentType?: string;
@@ -491,7 +485,7 @@ export type OAEncodingObject = {
491
485
 
492
486
  /**
493
487
  * Header Object.
494
- * https://spec.openapis.org/oas/v3.1.0#header-object
488
+ * https://spec.openapis.org/oas/v3.1.2#header-object
495
489
  */
496
490
  export type OAHeaderObject = Omit<
497
491
  OAParameterObject,
@@ -500,7 +494,7 @@ export type OAHeaderObject = Omit<
500
494
 
501
495
  /**
502
496
  * Link Object.
503
- * https://spec.openapis.org/oas/v3.1.0#link-object
497
+ * https://spec.openapis.org/oas/v3.1.2#link-object
504
498
  */
505
499
  export type OALinkObject = {
506
500
  operationRef?: string;
@@ -513,7 +507,7 @@ export type OALinkObject = {
513
507
 
514
508
  /**
515
509
  * Components Object.
516
- * https://spec.openapis.org/oas/v3.1.0#components-object
510
+ * https://spec.openapis.org/oas/v3.1.2#components-object
517
511
  */
518
512
  export type OAComponentsObject = {
519
513
  schemas?: {[name: string]: OABooleanSchema | OASchemaObject | undefined};
@@ -548,7 +542,7 @@ export type OAComponentsObject = {
548
542
 
549
543
  /**
550
544
  * Security Scheme Object.
551
- * https://spec.openapis.org/oas/v3.1.0#security-scheme-object
545
+ * https://spec.openapis.org/oas/v3.1.2#security-scheme-object
552
546
  */
553
547
  export type OASecuritySchemeObject = {
554
548
  type: OASecuritySchemeType;
@@ -563,7 +557,7 @@ export type OASecuritySchemeObject = {
563
557
 
564
558
  /**
565
559
  * Security Scheme Type.
566
- * https://spec.openapis.org/oas/v3.1.0#security-scheme-object
560
+ * https://spec.openapis.org/oas/v3.1.2#security-scheme-object
567
561
  */
568
562
  export declare const OASecuritySchemeType: {
569
563
  API_KEY: 'apiKey';
@@ -575,14 +569,14 @@ export declare const OASecuritySchemeType: {
575
569
 
576
570
  /**
577
571
  * Security Scheme Type.
578
- * https://spec.openapis.org/oas/v3.1.0#security-scheme-object
572
+ * https://spec.openapis.org/oas/v3.1.2#security-scheme-object
579
573
  */
580
574
  export type OASecuritySchemeType =
581
575
  (typeof OASecuritySchemeType)[keyof typeof OASecuritySchemeType];
582
576
 
583
577
  /**
584
578
  * Api Key Location.
585
- * https://spec.openapis.org/oas/v3.1.0#security-scheme-object
579
+ * https://spec.openapis.org/oas/v3.1.2#security-scheme-object
586
580
  */
587
581
  export declare const OAApiKeyLocation: {
588
582
  QUERY: 'query';
@@ -592,14 +586,14 @@ export declare const OAApiKeyLocation: {
592
586
 
593
587
  /**
594
588
  * Api Key Location.
595
- * https://spec.openapis.org/oas/v3.1.0#security-scheme-object
589
+ * https://spec.openapis.org/oas/v3.1.2#security-scheme-object
596
590
  */
597
591
  export type OAApiKeyLocation =
598
592
  (typeof OAApiKeyLocation)[keyof typeof OAApiKeyLocation];
599
593
 
600
594
  /**
601
595
  * OAuth Flows Object.
602
- * https://spec.openapis.org/oas/v3.1.0#oauth-flows-object
596
+ * https://spec.openapis.org/oas/v3.1.2#oauth-flows-object
603
597
  */
604
598
  export type OAOAuthFlowsObject = {
605
599
  implicit?: OAOAuthFlowObject;
@@ -610,7 +604,7 @@ export type OAOAuthFlowsObject = {
610
604
 
611
605
  /**
612
606
  * OAuth Flow Object.
613
- * https://spec.openapis.org/oas/v3.1.0#oauth-flow-object
607
+ * https://spec.openapis.org/oas/v3.1.2#oauth-flow-object
614
608
  */
615
609
  export type OAOAuthFlowObject = {
616
610
  authorizationUrl?: string;
@@ -621,15 +615,15 @@ export type OAOAuthFlowObject = {
621
615
 
622
616
  /**
623
617
  * Security Requirement Object.
624
- * https://spec.openapis.org/oas/v3.1.0#security-requirement-object
618
+ * https://spec.openapis.org/oas/v3.1.2#security-requirement-object
625
619
  */
626
620
  export type OASecurityRequirementObject = {
627
621
  [name: string]: string[] | undefined;
628
622
  };
629
623
 
630
624
  /**
631
- * Tag object.
632
- * https://spec.openapis.org/oas/v3.1.0#tag-object
625
+ * Tag Object.
626
+ * https://spec.openapis.org/oas/v3.1.2#tag-object
633
627
  */
634
628
  export type OATagObject = {
635
629
  name: string;
@@ -685,10 +679,12 @@ export declare const OAAccessMode: {
685
679
  export type OAAccessMode = (typeof OAAccessMode)[keyof typeof OAAccessMode];
686
680
 
687
681
  /**
688
- * Access mode list.
689
- * https://datatracker.ietf.org/doc/html/draft-bhutton-json-schema-validation-01#name-readonly-and-writeonly
682
+ * Webhooks Object.
683
+ * https://spec.openapis.org/oas/v3.1.2#oasWebhooks
690
684
  */
691
- export declare const ACCESS_MODE_LIST: OAAccessMode[];
685
+ export type OAWebhooksObject = {
686
+ [name: string]: OAPathItemObject | OAReferenceObject | undefined;
687
+ };
692
688
 
693
689
  /**
694
690
  * Server Variables Object.
@@ -710,14 +706,6 @@ export type OASchemaPropertiesObject = {
710
706
  | undefined;
711
707
  };
712
708
 
713
- /**
714
- * Webhooks Object.
715
- * (non-spec type)
716
- */
717
- export type OAWebhooksObject = {
718
- [name: string]: OAPathItemObject | OAReferenceObject | undefined;
719
- };
720
-
721
709
  /**
722
710
  * Callbacks Object.
723
711
  * (non-spec type)
@@ -1,14 +1,14 @@
1
- // OpenApi version 3.1.0
2
- // https://spec.openapis.org/oas/v3.1.0
1
+ // OpenApi version 3.1.2
2
+ // https://spec.openapis.org/oas/v3.1.2
3
3
 
4
4
  /**
5
5
  * OpenAPI version.
6
6
  */
7
- export const OPENAPI_VERSION = '3.1.0';
7
+ export const OPENAPI_VERSION = '3.1.2';
8
8
 
9
9
  /**
10
10
  * Operation Method.
11
- * https://spec.openapis.org/oas/v3.1.0#path-item-object
11
+ * https://spec.openapis.org/oas/v3.1.2#path-item-object
12
12
  */
13
13
  export const OAOperationMethod = {
14
14
  GET: 'get',
@@ -23,7 +23,7 @@ export const OAOperationMethod = {
23
23
 
24
24
  /**
25
25
  * Parameter Location.
26
- * https://spec.openapis.org/oas/v3.1.0#parameter-locations
26
+ * https://spec.openapis.org/oas/v3.1.2#parameter-locations
27
27
  */
28
28
  export const OAParameterLocation = {
29
29
  QUERY: 'query',
@@ -34,7 +34,7 @@ export const OAParameterLocation = {
34
34
 
35
35
  /**
36
36
  * Parameter Style.
37
- * https://spec.openapis.org/oas/v3.1.0#style-values
37
+ * https://spec.openapis.org/oas/v3.1.2#style-values
38
38
  */
39
39
  export const OAParameterStyle = {
40
40
  MATRIX: 'matrix',
@@ -60,15 +60,9 @@ export const OADataType = {
60
60
  NULL: 'null',
61
61
  };
62
62
 
63
- /**
64
- * Data type list.
65
- * https://datatracker.ietf.org/doc/html/draft-bhutton-json-schema-00#section-4.2.1
66
- */
67
- export const OA_DATA_TYPE_LIST = Object.values(OADataType);
68
-
69
63
  /**
70
64
  * Data format.
71
- * https://spec.openapis.org/oas/v3.1.0#dataTypeFormat
65
+ * https://spec.openapis.org/oas/v3.1.2#dataTypeFormat
72
66
  */
73
67
  export const OADataFormat = {
74
68
  // number
@@ -105,7 +99,7 @@ export const OADataFormat = {
105
99
 
106
100
  /**
107
101
  * Media type.
108
- * https://spec.openapis.org/oas/v3.1.0#media-types
102
+ * https://spec.openapis.org/oas/v3.1.2#media-types
109
103
  */
110
104
  export const OAMediaType = {
111
105
  TEXT_PLAIN: 'text/plain',
@@ -117,7 +111,7 @@ export const OAMediaType = {
117
111
 
118
112
  /**
119
113
  * Security Scheme Type.
120
- * https://spec.openapis.org/oas/v3.1.0#security-scheme-object
114
+ * https://spec.openapis.org/oas/v3.1.2#security-scheme-object
121
115
  */
122
116
  export const OASecuritySchemeType = {
123
117
  API_KEY: 'apiKey',
@@ -129,7 +123,7 @@ export const OASecuritySchemeType = {
129
123
 
130
124
  /**
131
125
  * Api Key Location.
132
- * https://spec.openapis.org/oas/v3.1.0#security-scheme-object
126
+ * https://spec.openapis.org/oas/v3.1.2#security-scheme-object
133
127
  */
134
128
  export const OAApiKeyLocation = {
135
129
  QUERY: 'query',
@@ -145,9 +139,3 @@ export const OAAccessMode = {
145
139
  READ: 'read',
146
140
  WRITE: 'write',
147
141
  };
148
-
149
- /**
150
- * Access mode list.
151
- * https://datatracker.ietf.org/doc/html/draft-bhutton-json-schema-validation-01#name-readonly-and-writeonly
152
- */
153
- export const ACCESS_MODE_LIST = Object.values(OAAccessMode);
@@ -1 +0,0 @@
1
- export * from './infer-openapi-data-type.js';
@@ -1 +0,0 @@
1
- export * from './infer-openapi-data-type.js';
@@ -1,30 +0,0 @@
1
- import {OADataType} from '../oa-specification.js';
2
-
3
- /**
4
- * Infer OpenAPI data type.
5
- *
6
- * @param data
7
- */
8
- export function inferOpenApiDataType(data: unknown): OADataType;
9
-
10
- /**
11
- * Infer OpenAPI data type.
12
- *
13
- * @param data
14
- * @param returnJsTypeOnFail
15
- */
16
- export function inferOpenApiDataType(
17
- data: unknown,
18
- returnJsTypeOnFail: true,
19
- ): OADataType | string;
20
-
21
- /**
22
- * Infer OpenAPI data type.
23
- *
24
- * @param data
25
- * @param returnJsTypeOnFail
26
- */
27
- export function inferOpenApiDataType(
28
- data: unknown,
29
- returnJsTypeOnFail?: boolean,
30
- ): OADataType | string;
@@ -1,38 +0,0 @@
1
- import {InvalidArgumentError} from '@e22m4u/js-format';
2
- import {OADataType} from '../oa-specification.js';
3
-
4
- /**
5
- * Infer OpenAPI data type.
6
- *
7
- * @param {*} data
8
- * @param {boolean} [returnJsTypeOnFail]
9
- * @returns {OADataType}
10
- */
11
- export function inferOpenApiDataType(data, returnJsTypeOnFail = false) {
12
- if (data === null) {
13
- return OADataType.NULL;
14
- }
15
- if (Array.isArray(data)) {
16
- return OADataType.ARRAY;
17
- }
18
- const jsType = typeof data;
19
- switch (jsType) {
20
- case 'string':
21
- return OADataType.STRING;
22
- case 'boolean':
23
- return OADataType.BOOLEAN;
24
- case 'number':
25
- return Number.isInteger(data) ? OADataType.INTEGER : OADataType.NUMBER;
26
- case 'bigint':
27
- return OADataType.INTEGER;
28
- case 'object':
29
- return OADataType.OBJECT;
30
- }
31
- if (returnJsTypeOnFail === true) {
32
- return jsType;
33
- }
34
- throw new InvalidArgumentError(
35
- 'Unable to infer the data type from %v value.',
36
- data,
37
- );
38
- }
@@ -1,13 +0,0 @@
1
- import {OADataFormatValidator} from './data-format-validators.js';
2
-
3
- /**
4
- * Data format validator map.
5
- */
6
- export type OADataFormatValidatorMap = {
7
- [format: string]: OADataFormatValidator | undefined;
8
- };
9
-
10
- /**
11
- * Built-in data format validator map.
12
- */
13
- export declare const OA_BUILT_IN_DATA_FORMAT_VALIDATOR_MAP: OADataFormatValidatorMap;
@@ -1,36 +0,0 @@
1
- import {OADataFormat} from '../oa-specification.js';
2
-
3
- import {
4
- validateUriFormat,
5
- validateIpv4Format,
6
- validateIpv6Format,
7
- validateUuidFormat,
8
- validateByteFormat,
9
- validateDateFormat,
10
- validateInt32Format,
11
- validateFloatFormat,
12
- validateInt64Format,
13
- validateEmailFormat,
14
- validateDoubleFormat,
15
- validateDateTimeFormat,
16
- validateHostnameFormat,
17
- } from './data-format-validators.js';
18
-
19
- /**
20
- * Built-in data format validator map.
21
- */
22
- export const OA_BUILT_IN_DATA_FORMAT_VALIDATOR_MAP = {
23
- [OADataFormat.INT32]: validateInt32Format,
24
- [OADataFormat.INT64]: validateInt64Format,
25
- [OADataFormat.FLOAT]: validateFloatFormat,
26
- [OADataFormat.DOUBLE]: validateDoubleFormat,
27
- [OADataFormat.DATE]: validateDateFormat,
28
- [OADataFormat.DATE_TIME]: validateDateTimeFormat,
29
- [OADataFormat.BYTE]: validateByteFormat,
30
- [OADataFormat.EMAIL]: validateEmailFormat,
31
- [OADataFormat.UUID]: validateUuidFormat,
32
- [OADataFormat.HOSTNAME]: validateHostnameFormat,
33
- [OADataFormat.IPV4]: validateIpv4Format,
34
- [OADataFormat.IPV6]: validateIpv6Format,
35
- [OADataFormat.URI]: validateUriFormat,
36
- };
@@ -1,39 +0,0 @@
1
- import {expect} from 'chai';
2
- import {OADataFormat} from '../oa-specification.js';
3
- import {OA_BUILT_IN_DATA_FORMAT_VALIDATOR_MAP} from './data-format-validator-map.js';
4
-
5
- import {
6
- validateUriFormat,
7
- validateIpv4Format,
8
- validateIpv6Format,
9
- validateUuidFormat,
10
- validateByteFormat,
11
- validateDateFormat,
12
- validateInt32Format,
13
- validateFloatFormat,
14
- validateInt64Format,
15
- validateEmailFormat,
16
- validateDoubleFormat,
17
- validateDateTimeFormat,
18
- validateHostnameFormat,
19
- } from './data-format-validators.js';
20
-
21
- describe('OA_BUILT_IN_DATA_FORMAT_VALIDATOR_MAP', function () {
22
- it('should map data formats to its corresponding validator function', function () {
23
- expect(OA_BUILT_IN_DATA_FORMAT_VALIDATOR_MAP).to.be.eql({
24
- [OADataFormat.INT32]: validateInt32Format,
25
- [OADataFormat.INT64]: validateInt64Format,
26
- [OADataFormat.FLOAT]: validateFloatFormat,
27
- [OADataFormat.DOUBLE]: validateDoubleFormat,
28
- [OADataFormat.DATE]: validateDateFormat,
29
- [OADataFormat.DATE_TIME]: validateDateTimeFormat,
30
- [OADataFormat.BYTE]: validateByteFormat,
31
- [OADataFormat.EMAIL]: validateEmailFormat,
32
- [OADataFormat.UUID]: validateUuidFormat,
33
- [OADataFormat.HOSTNAME]: validateHostnameFormat,
34
- [OADataFormat.IPV4]: validateIpv4Format,
35
- [OADataFormat.IPV6]: validateIpv6Format,
36
- [OADataFormat.URI]: validateUriFormat,
37
- });
38
- });
39
- });