@api-client/core 0.19.10 → 0.19.12

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 (466) hide show
  1. package/LICENSE.md +9 -63
  2. package/bin/test.ts +1 -12
  3. package/build/src/browser.d.ts +3 -16
  4. package/build/src/browser.d.ts.map +1 -1
  5. package/build/src/browser.js +2 -17
  6. package/build/src/browser.js.map +1 -1
  7. package/build/src/events/EventTypes.d.ts +0 -6
  8. package/build/src/events/EventTypes.d.ts.map +1 -1
  9. package/build/src/events/EventTypes.js +0 -2
  10. package/build/src/events/EventTypes.js.map +1 -1
  11. package/build/src/events/Events.d.ts +0 -2
  12. package/build/src/events/Events.d.ts.map +1 -1
  13. package/build/src/events/Events.js +0 -2
  14. package/build/src/events/Events.js.map +1 -1
  15. package/build/src/index.d.ts +3 -16
  16. package/build/src/index.d.ts.map +1 -1
  17. package/build/src/index.js +2 -17
  18. package/build/src/index.js.map +1 -1
  19. package/build/src/modeling/ApiValidation.d.ts +26 -0
  20. package/build/src/modeling/ApiValidation.d.ts.map +1 -0
  21. package/build/src/modeling/ApiValidation.js +73 -0
  22. package/build/src/modeling/ApiValidation.js.map +1 -0
  23. package/build/src/modeling/Bindings.d.ts +3 -3
  24. package/build/src/modeling/Bindings.d.ts.map +1 -1
  25. package/build/src/modeling/Bindings.js.map +1 -1
  26. package/build/src/modeling/DomainAssociation.d.ts +5 -5
  27. package/build/src/modeling/DomainAssociation.d.ts.map +1 -1
  28. package/build/src/modeling/DomainAssociation.js.map +1 -1
  29. package/build/src/modeling/DomainEntity.d.ts +2 -3
  30. package/build/src/modeling/DomainEntity.d.ts.map +1 -1
  31. package/build/src/modeling/DomainEntity.js +1 -1
  32. package/build/src/modeling/DomainEntity.js.map +1 -1
  33. package/build/src/modeling/DomainProperty.d.ts +2 -3
  34. package/build/src/modeling/DomainProperty.d.ts.map +1 -1
  35. package/build/src/modeling/DomainProperty.js +1 -1
  36. package/build/src/modeling/DomainProperty.js.map +1 -1
  37. package/build/src/modeling/DomainValidation.d.ts +10 -4
  38. package/build/src/modeling/DomainValidation.d.ts.map +1 -1
  39. package/build/src/modeling/DomainValidation.js +55 -72
  40. package/build/src/modeling/DomainValidation.js.map +1 -1
  41. package/build/src/modeling/ai/types.d.ts +2 -2
  42. package/build/src/modeling/ai/types.d.ts.map +1 -1
  43. package/build/src/modeling/ai/types.js.map +1 -1
  44. package/build/src/{amf → modeling/amf}/DataValueGenerator.d.ts +1 -1
  45. package/build/src/modeling/amf/DataValueGenerator.d.ts.map +1 -0
  46. package/build/src/{amf → modeling/amf}/DataValueGenerator.js +2 -3
  47. package/build/src/modeling/amf/DataValueGenerator.js.map +1 -0
  48. package/build/src/modeling/amf/ShapeGenerator.d.ts +20 -20
  49. package/build/src/modeling/amf/ShapeGenerator.d.ts.map +1 -1
  50. package/build/src/modeling/amf/ShapeGenerator.js +16 -18
  51. package/build/src/modeling/amf/ShapeGenerator.js.map +1 -1
  52. package/build/src/modeling/amf/core_types.d.ts +9 -0
  53. package/build/src/modeling/amf/core_types.d.ts.map +1 -0
  54. package/build/src/modeling/amf/core_types.js +45 -0
  55. package/build/src/modeling/amf/core_types.js.map +1 -0
  56. package/build/src/modeling/validation/api_model_rules.d.ts +1 -2
  57. package/build/src/modeling/validation/api_model_rules.d.ts.map +1 -1
  58. package/build/src/modeling/validation/api_model_rules.js +0 -26
  59. package/build/src/modeling/validation/api_model_rules.js.map +1 -1
  60. package/build/src/modeling/validation/association_validation.d.ts +4 -4
  61. package/build/src/modeling/validation/association_validation.d.ts.map +1 -1
  62. package/build/src/modeling/validation/association_validation.js.map +1 -1
  63. package/build/src/modeling/validation/entity_validation.d.ts +6 -6
  64. package/build/src/modeling/validation/entity_validation.d.ts.map +1 -1
  65. package/build/src/modeling/validation/entity_validation.js.map +1 -1
  66. package/build/src/modeling/validation/property_validation.d.ts +3 -3
  67. package/build/src/modeling/validation/property_validation.d.ts.map +1 -1
  68. package/build/src/modeling/validation/property_validation.js.map +1 -1
  69. package/build/src/modeling/validation/rules.d.ts +2 -2
  70. package/build/src/modeling/validation/rules.d.ts.map +1 -1
  71. package/build/src/modeling/validation/rules.js.map +1 -1
  72. package/build/src/modeling/validation/semantic_validation.d.ts +2 -2
  73. package/build/src/modeling/validation/semantic_validation.d.ts.map +1 -1
  74. package/build/src/modeling/validation/semantic_validation.js.map +1 -1
  75. package/build/src/models/http-flows/LegacyTranslator.js +1 -1
  76. package/build/src/models/http-flows/LegacyTranslator.js.map +1 -1
  77. package/build/src/runtime/http-runner/HttpFlows.js +1 -1
  78. package/build/src/runtime/http-runner/HttpFlows.js.map +1 -1
  79. package/build/tsconfig.tsbuildinfo +1 -1
  80. package/eslint.config.js +0 -1
  81. package/package.json +11 -14
  82. package/src/events/EventTypes.ts +0 -2
  83. package/src/events/Events.ts +0 -2
  84. package/src/modeling/ApiValidation.ts +86 -0
  85. package/src/modeling/Bindings.ts +3 -3
  86. package/src/modeling/DomainAssociation.ts +5 -5
  87. package/src/modeling/DomainEntity.ts +3 -4
  88. package/src/modeling/DomainProperty.ts +3 -4
  89. package/src/modeling/DomainValidation.ts +57 -74
  90. package/src/modeling/ai/types.ts +2 -2
  91. package/src/{amf → modeling/amf}/DataValueGenerator.ts +3 -4
  92. package/src/modeling/amf/ShapeGenerator.ts +45 -61
  93. package/src/modeling/amf/core_types.ts +47 -0
  94. package/src/modeling/validation/api_model_rules.ts +1 -31
  95. package/src/modeling/validation/association_validation.ts +6 -6
  96. package/src/modeling/validation/entity_validation.ts +11 -11
  97. package/src/modeling/validation/property_validation.ts +4 -4
  98. package/src/modeling/validation/rules.ts +6 -3
  99. package/src/modeling/validation/semantic_validation.ts +11 -11
  100. package/src/models/http-flows/LegacyTranslator.ts +1 -1
  101. package/src/runtime/http-runner/HttpFlows.ts +1 -1
  102. package/tests/unit/{amf → modeling/amf}/data_value_generator.spec.ts +2 -2
  103. package/tests/unit/modeling/amf/shape_generator.spec.ts +146 -167
  104. package/tests/unit/modeling/domain_asociation.spec.ts +13 -13
  105. package/tests/unit/modeling/domain_validation.spec.ts +7 -13
  106. package/tests/unit/modeling/validation/api_model_rules.spec.ts +11 -9
  107. package/tests/unit/runtime/runners/http_assertion_runner.spec.ts +1 -1
  108. package/tests/unit/runtime/runners/http_flow_runner.spec.ts +1 -1
  109. package/tests/unit/runtime/runners/project_runner.spec.ts +1 -1
  110. package/tests/unit/runtime/runners/request_runner.spec.ts +1 -1
  111. package/tests/unit/runtime/runners/serial_runner.spec.ts +1 -1
  112. package/build/src/amf/AmfMixin.d.ts +0 -396
  113. package/build/src/amf/AmfMixin.d.ts.map +0 -1
  114. package/build/src/amf/AmfMixin.js +0 -1138
  115. package/build/src/amf/AmfMixin.js.map +0 -1
  116. package/build/src/amf/AmfSerializer.d.ts +0 -137
  117. package/build/src/amf/AmfSerializer.d.ts.map +0 -1
  118. package/build/src/amf/AmfSerializer.js +0 -1947
  119. package/build/src/amf/AmfSerializer.js.map +0 -1
  120. package/build/src/amf/AmfTypes.d.ts +0 -25
  121. package/build/src/amf/AmfTypes.d.ts.map +0 -1
  122. package/build/src/amf/AmfTypes.js +0 -143
  123. package/build/src/amf/AmfTypes.js.map +0 -1
  124. package/build/src/amf/ApiExampleGenerator.d.ts +0 -40
  125. package/build/src/amf/ApiExampleGenerator.d.ts.map +0 -1
  126. package/build/src/amf/ApiExampleGenerator.js +0 -112
  127. package/build/src/amf/ApiExampleGenerator.js.map +0 -1
  128. package/build/src/amf/ApiMonacoSchemaGenerator.d.ts +0 -68
  129. package/build/src/amf/ApiMonacoSchemaGenerator.d.ts.map +0 -1
  130. package/build/src/amf/ApiMonacoSchemaGenerator.js +0 -248
  131. package/build/src/amf/ApiMonacoSchemaGenerator.js.map +0 -1
  132. package/build/src/amf/ApiSchemaGenerator.d.ts +0 -56
  133. package/build/src/amf/ApiSchemaGenerator.d.ts.map +0 -1
  134. package/build/src/amf/ApiSchemaGenerator.js +0 -94
  135. package/build/src/amf/ApiSchemaGenerator.js.map +0 -1
  136. package/build/src/amf/ApiSchemaValues.d.ts +0 -111
  137. package/build/src/amf/ApiSchemaValues.d.ts.map +0 -1
  138. package/build/src/amf/ApiSchemaValues.js +0 -463
  139. package/build/src/amf/ApiSchemaValues.js.map +0 -1
  140. package/build/src/amf/DataValueGenerator.d.ts.map +0 -1
  141. package/build/src/amf/DataValueGenerator.js.map +0 -1
  142. package/build/src/amf/Parsing.d.ts +0 -48
  143. package/build/src/amf/Parsing.d.ts.map +0 -1
  144. package/build/src/amf/Parsing.js +0 -2
  145. package/build/src/amf/Parsing.js.map +0 -1
  146. package/build/src/amf/Utils.d.ts +0 -37
  147. package/build/src/amf/Utils.d.ts.map +0 -1
  148. package/build/src/amf/Utils.js +0 -169
  149. package/build/src/amf/Utils.js.map +0 -1
  150. package/build/src/amf/data-node/DataNodeBase.d.ts +0 -34
  151. package/build/src/amf/data-node/DataNodeBase.d.ts.map +0 -1
  152. package/build/src/amf/data-node/DataNodeBase.js +0 -77
  153. package/build/src/amf/data-node/DataNodeBase.js.map +0 -1
  154. package/build/src/amf/data-node/JsonDataNodeGenerator.d.ts +0 -15
  155. package/build/src/amf/data-node/JsonDataNodeGenerator.d.ts.map +0 -1
  156. package/build/src/amf/data-node/JsonDataNodeGenerator.js +0 -23
  157. package/build/src/amf/data-node/JsonDataNodeGenerator.js.map +0 -1
  158. package/build/src/amf/data-node/UrlEncodedDataNodeGenerator.d.ts +0 -14
  159. package/build/src/amf/data-node/UrlEncodedDataNodeGenerator.d.ts.map +0 -1
  160. package/build/src/amf/data-node/UrlEncodedDataNodeGenerator.js +0 -48
  161. package/build/src/amf/data-node/UrlEncodedDataNodeGenerator.js.map +0 -1
  162. package/build/src/amf/data-node/XmlDataNodeGenerator.d.ts +0 -22
  163. package/build/src/amf/data-node/XmlDataNodeGenerator.d.ts.map +0 -1
  164. package/build/src/amf/data-node/XmlDataNodeGenerator.js +0 -34
  165. package/build/src/amf/data-node/XmlDataNodeGenerator.js.map +0 -1
  166. package/build/src/amf/definitions/Amf.d.ts +0 -363
  167. package/build/src/amf/definitions/Amf.d.ts.map +0 -1
  168. package/build/src/amf/definitions/Amf.js +0 -3
  169. package/build/src/amf/definitions/Amf.js.map +0 -1
  170. package/build/src/amf/definitions/Api.d.ts +0 -383
  171. package/build/src/amf/definitions/Api.d.ts.map +0 -1
  172. package/build/src/amf/definitions/Api.js +0 -2
  173. package/build/src/amf/definitions/Api.js.map +0 -1
  174. package/build/src/amf/definitions/Base.d.ts +0 -12
  175. package/build/src/amf/definitions/Base.d.ts.map +0 -1
  176. package/build/src/amf/definitions/Base.js +0 -2
  177. package/build/src/amf/definitions/Base.js.map +0 -1
  178. package/build/src/amf/definitions/Namespace.d.ts +0 -327
  179. package/build/src/amf/definitions/Namespace.d.ts.map +0 -1
  180. package/build/src/amf/definitions/Namespace.js +0 -346
  181. package/build/src/amf/definitions/Namespace.js.map +0 -1
  182. package/build/src/amf/definitions/Shapes.d.ts +0 -312
  183. package/build/src/amf/definitions/Shapes.d.ts.map +0 -1
  184. package/build/src/amf/definitions/Shapes.js +0 -87
  185. package/build/src/amf/definitions/Shapes.js.map +0 -1
  186. package/build/src/amf/models/AmfDataNode.d.ts +0 -67
  187. package/build/src/amf/models/AmfDataNode.d.ts.map +0 -1
  188. package/build/src/amf/models/AmfDataNode.js +0 -192
  189. package/build/src/amf/models/AmfDataNode.js.map +0 -1
  190. package/build/src/amf/shape/ShapeBase.d.ts +0 -74
  191. package/build/src/amf/shape/ShapeBase.d.ts.map +0 -1
  192. package/build/src/amf/shape/ShapeBase.js +0 -93
  193. package/build/src/amf/shape/ShapeBase.js.map +0 -1
  194. package/build/src/amf/shape/ShapeJsonSchemaGenerator.d.ts +0 -47
  195. package/build/src/amf/shape/ShapeJsonSchemaGenerator.d.ts.map +0 -1
  196. package/build/src/amf/shape/ShapeJsonSchemaGenerator.js +0 -420
  197. package/build/src/amf/shape/ShapeJsonSchemaGenerator.js.map +0 -1
  198. package/build/src/amf/shape/ShapeXmlSchemaGenerator.d.ts +0 -85
  199. package/build/src/amf/shape/ShapeXmlSchemaGenerator.d.ts.map +0 -1
  200. package/build/src/amf/shape/ShapeXmlSchemaGenerator.js +0 -852
  201. package/build/src/amf/shape/ShapeXmlSchemaGenerator.js.map +0 -1
  202. package/build/src/events/amf/AmfEventTypes.d.ts +0 -7
  203. package/build/src/events/amf/AmfEventTypes.d.ts.map +0 -1
  204. package/build/src/events/amf/AmfEventTypes.js +0 -7
  205. package/build/src/events/amf/AmfEventTypes.js.map +0 -1
  206. package/build/src/events/amf/AmfEvents.d.ts +0 -34
  207. package/build/src/events/amf/AmfEvents.d.ts.map +0 -1
  208. package/build/src/events/amf/AmfEvents.js +0 -63
  209. package/build/src/events/amf/AmfEvents.js.map +0 -1
  210. package/build/src/mocking/RandExp.d.ts +0 -55
  211. package/build/src/mocking/RandExp.d.ts.map +0 -1
  212. package/build/src/mocking/RandExp.js +0 -302
  213. package/build/src/mocking/RandExp.js.map +0 -1
  214. package/build/src/mocking/lib/ret.d.ts +0 -16
  215. package/build/src/mocking/lib/ret.d.ts.map +0 -1
  216. package/build/src/mocking/lib/ret.js +0 -284
  217. package/build/src/mocking/lib/ret.js.map +0 -1
  218. package/data/apis/APIC-187/APIC-187.raml +0 -21
  219. package/data/apis/APIC-187/dataType.raml +0 -132
  220. package/data/apis/APIC-187/example.raml +0 -84
  221. package/data/apis/APIC-188/APIC-188.raml +0 -21
  222. package/data/apis/APIC-188/dataType.raml +0 -132
  223. package/data/apis/APIC-188/example.raml +0 -84
  224. package/data/apis/APIC-233/APIC-233.raml +0 -15
  225. package/data/apis/APIC-391/APIC-391.raml +0 -44
  226. package/data/apis/APIC-391/examples/post-body-request-example.raml +0 -7
  227. package/data/apis/APIC-483/APIC-483.raml +0 -16
  228. package/data/apis/APIC-483/example/list-of-bank-succ.json +0 -32
  229. package/data/apis/APIC-483/schema/response-retrieve-list-bank.json +0 -68
  230. package/data/apis/APIC-487/APIC-487.raml +0 -36
  231. package/data/apis/APIC-655/APIC-655.raml +0 -44
  232. package/data/apis/APIC-655/delivery.json +0 -12
  233. package/data/apis/APIC-689/APIC-689.raml +0 -20
  234. package/data/apis/APIC-690/APIC-690.raml +0 -17
  235. package/data/apis/APIC-690/datatypes/Address.raml +0 -10
  236. package/data/apis/APIC-690/datatypes/Customer.raml +0 -17
  237. package/data/apis/APIC-690/examples/CustomerExample2.raml +0 -17
  238. package/data/apis/APIC-690/examples/CustomersExample.raml +0 -34
  239. package/data/apis/SE-10469/Purchase-Order-oagis-id-dd32f9c6c01048a19e15c423c9c741ae.json +0 -1383
  240. package/data/apis/SE-10469/SE-10469.raml +0 -11
  241. package/data/apis/SE-13092/Examples/PersonExample.raml +0 -7
  242. package/data/apis/SE-13092/SE-13092.raml +0 -37
  243. package/data/apis/SE-13092/datatypes/Address.raml +0 -5
  244. package/data/apis/SE-13092/datatypes/InlineType.raml +0 -5
  245. package/data/apis/SE-13092/datatypes/Person.raml +0 -15
  246. package/data/apis/SE-22063/SE-22063.raml +0 -14
  247. package/data/apis/SE-22063/stock.raml +0 -41
  248. package/data/apis/amf-helper-api/amf-helper-api.raml +0 -1024
  249. package/data/apis/amf-helper-api/examples/comment-example.json +0 -42
  250. package/data/apis/amf-helper-api/examples/commentCreateRequest-example.json +0 -7
  251. package/data/apis/amf-helper-api/examples/commentList-example.json +0 -48
  252. package/data/apis/amf-helper-api/examples/person.json +0 -14
  253. package/data/apis/amf-helper-api/examples/person.raml +0 -13
  254. package/data/apis/amf-helper-api/examples/person.xml +0 -14
  255. package/data/apis/amf-helper-api/libraries/comment-lib.raml +0 -143
  256. package/data/apis/amf-helper-api/library.raml +0 -7
  257. package/data/apis/amf-helper-api/schemas/person.json +0 -104
  258. package/data/apis/amf-helper-api/schemas/person.xsd +0 -26
  259. package/data/apis/amf-helper-api/traits/file.raml +0 -33
  260. package/data/apis/amf-helper-api/traits/pagination.raml +0 -80
  261. package/data/apis/amf-helper-api/traits/results.raml +0 -19
  262. package/data/apis/amf-helper-api/traits/visibility.raml +0 -14
  263. package/data/apis/amf-helper-api/types/app-person.raml +0 -101
  264. package/data/apis/amf-helper-api/types/dimensions.raml +0 -24
  265. package/data/apis/amf-helper-api/types/external-type.raml +0 -7
  266. package/data/apis/amf-helper-api/types/image.raml +0 -23
  267. package/data/apis/amf-helper-api/types/product.raml +0 -52
  268. package/data/apis/amf-helper-api/types/resource.raml +0 -11
  269. package/data/apis/amf-helper-api/types/standard-request.raml +0 -50
  270. package/data/apis/amf-helper-api/types/user.raml +0 -37
  271. package/data/apis/arc-demo-api/arc-demo-api.raml +0 -468
  272. package/data/apis/arc-demo-api/examples/e400.xml +0 -4
  273. package/data/apis/arc-demo-api/examples/e401.xml +0 -4
  274. package/data/apis/arc-demo-api/examples/e404.xml +0 -4
  275. package/data/apis/arc-demo-api/examples/image.xml +0 -5
  276. package/data/apis/arc-demo-api/examples/messages-example.json +0 -22
  277. package/data/apis/arc-demo-api/examples/messages-sent-example.json +0 -15
  278. package/data/apis/arc-demo-api/examples/person.json +0 -14
  279. package/data/apis/arc-demo-api/examples/person.url.encoded +0 -1
  280. package/data/apis/arc-demo-api/examples/person.xml +0 -14
  281. package/data/apis/arc-demo-api/examples/product.xml +0 -9
  282. package/data/apis/arc-demo-api/library.raml +0 -36
  283. package/data/apis/arc-demo-api/resourceTypes/app-person.raml +0 -49
  284. package/data/apis/arc-demo-api/resourceTypes/example-types.raml +0 -45
  285. package/data/apis/arc-demo-api/resourceTypes/image.raml +0 -23
  286. package/data/apis/arc-demo-api/resourceTypes/message-sent-type.raml +0 -23
  287. package/data/apis/arc-demo-api/resourceTypes/message-type.raml +0 -33
  288. package/data/apis/arc-demo-api/resourceTypes/product.raml +0 -52
  289. package/data/apis/arc-demo-api/resourceTypes/resource.raml +0 -11
  290. package/data/apis/arc-demo-api/schemas/error-response.xsd +0 -11
  291. package/data/apis/arc-demo-api/schemas/image.xsd +0 -11
  292. package/data/apis/arc-demo-api/schemas/person.json +0 -104
  293. package/data/apis/arc-demo-api/schemas/person.xsd +0 -26
  294. package/data/apis/arc-demo-api/schemas/product.xsd +0 -17
  295. package/data/apis/arc-demo-api/securitySchemes/basic.raml +0 -5
  296. package/data/apis/arc-demo-api/securitySchemes/oauth_2_0.raml +0 -29
  297. package/data/apis/arc-demo-api/securitySchemes/x-custom.raml +0 -26
  298. package/data/apis/arc-demo-api/traits/adminable.raml +0 -23
  299. package/data/apis/arc-demo-api/traits/pagination.raml +0 -83
  300. package/data/apis/arc-demo-api/traits/rate-limited.raml +0 -9
  301. package/data/apis/async-api/async-api.yaml +0 -96
  302. package/data/apis/example-generator-api/contact-email-example.raml +0 -6
  303. package/data/apis/example-generator-api/contact-example.raml +0 -5
  304. package/data/apis/example-generator-api/contact-fax-example.raml +0 -5
  305. package/data/apis/example-generator-api/contact-website-example.raml +0 -2
  306. package/data/apis/example-generator-api/example-1.raml +0 -6
  307. package/data/apis/example-generator-api/example-2.raml +0 -9
  308. package/data/apis/example-generator-api/example-3.raml +0 -4
  309. package/data/apis/example-generator-api/example-4.raml +0 -2
  310. package/data/apis/example-generator-api/example-5.raml +0 -4
  311. package/data/apis/example-generator-api/example-6.raml +0 -2
  312. package/data/apis/example-generator-api/example-7.raml +0 -5
  313. package/data/apis/example-generator-api/example-generator-api.raml +0 -423
  314. package/data/apis/example-generator-api/example.json +0 -14
  315. package/data/apis/example-generator-api/example.xml +0 -15
  316. package/data/apis/example-generator-api/example.xsd +0 -26
  317. package/data/apis/example-generator-api/examples/employee.raml +0 -7
  318. package/data/apis/example-generator-api/examples/employees.raml +0 -7
  319. package/data/apis/example-generator-api/linked-named-example.raml +0 -21
  320. package/data/apis/example-generator-api/named-example-with-link.raml +0 -5
  321. package/data/apis/example-generator-api/named-example.raml +0 -9
  322. package/data/apis/example-generator-api/user-json-example.raml +0 -17
  323. package/data/apis/example-generator-api/user-raml-example.raml +0 -37
  324. package/data/apis/example-generator-api/user.json +0 -8
  325. package/data/apis/example-generator-api/user.raml +0 -18
  326. package/data/apis/example-generator-api/users-json-example.raml +0 -17
  327. package/data/apis/example-generator-api/users-raml-example.raml +0 -32
  328. package/data/apis/example-generator-api/users.json +0 -8
  329. package/data/apis/expanded-api/expanded-api.raml +0 -8
  330. package/data/apis/flattened-api/flattened-api.raml +0 -8
  331. package/data/apis/multiple-servers/multiple-servers.yaml +0 -112
  332. package/data/apis/oas-3-api/oas-3-api.yaml +0 -356
  333. package/data/apis/oas-date/oas-date.yaml +0 -28
  334. package/data/apis/oas-types/oas-types.yaml +0 -159
  335. package/data/apis/oas-unions/oas-unions.yaml +0 -75
  336. package/data/apis/petstore/petstore.yaml +0 -954
  337. package/data/apis/raml-date/raml-date.raml +0 -28
  338. package/data/apis/recursive/recursive.raml +0 -14
  339. package/data/apis/schema-api/examples/person.json +0 -14
  340. package/data/apis/schema-api/examples/person.raml +0 -14
  341. package/data/apis/schema-api/examples/person.url.encoded +0 -1
  342. package/data/apis/schema-api/examples/person.xml +0 -14
  343. package/data/apis/schema-api/library/demo-types.raml +0 -43
  344. package/data/apis/schema-api/schema-api.raml +0 -656
  345. package/data/apis/schema-api/schemas/person.json +0 -104
  346. package/data/apis/schema-api/schemas/person.xsd +0 -26
  347. package/data/apis/schema-api/types/DemoPerson.raml +0 -67
  348. package/data/apis/secured-api/oauth-2-custom-settings.raml +0 -143
  349. package/data/apis/secured-api/oauth2-header-delivery.raml +0 -13
  350. package/data/apis/secured-api/oauth2-no-delivery.raml +0 -8
  351. package/data/apis/secured-api/oauth2-no-grants.raml +0 -12
  352. package/data/apis/secured-api/oauth2-pkce.raml +0 -13
  353. package/data/apis/secured-api/oauth2-query-delivery.raml +0 -13
  354. package/data/apis/secured-api/oauth_1_0.raml +0 -8
  355. package/data/apis/secured-api/oauth_1_0_no-settings.raml +0 -3
  356. package/data/apis/secured-api/oauth_1_0_no-signature.raml +0 -7
  357. package/data/apis/secured-api/oauth_1_0_signature.raml +0 -8
  358. package/data/apis/secured-api/passthrough-querystring.raml +0 -16
  359. package/data/apis/secured-api/passthrough.raml +0 -24
  360. package/data/apis/secured-api/secured-api.raml +0 -231
  361. package/data/apis/secured-api/x-custom.raml +0 -33
  362. package/data/apis/secured-api/x-other.raml +0 -29
  363. package/data/apis/secured-api/x-query-string.raml +0 -16
  364. package/data/apis/tracked-examples/datatypes/employee.raml +0 -5
  365. package/data/apis/tracked-examples/examples/employee.raml +0 -4
  366. package/data/apis/tracked-examples/examples/employees.raml +0 -8
  367. package/data/apis/tracked-examples/tracked-to-linked.raml +0 -28
  368. package/data/model.js +0 -129
  369. package/data/models/APIC-187.json +0 -11416
  370. package/data/models/APIC-188.json +0 -11416
  371. package/data/models/APIC-233.json +0 -539
  372. package/data/models/APIC-391.json +0 -1903
  373. package/data/models/APIC-483.json +0 -3110
  374. package/data/models/APIC-487.json +0 -1225
  375. package/data/models/APIC-655.json +0 -3145
  376. package/data/models/APIC-689.json +0 -797
  377. package/data/models/APIC-690.json +0 -5992
  378. package/data/models/SE-10469.json +0 -22898
  379. package/data/models/SE-13092.json +0 -2769
  380. package/data/models/SE-22063.json +0 -2314
  381. package/data/models/amf-helper-api.json +0 -84457
  382. package/data/models/arc-demo-api.json +0 -52041
  383. package/data/models/async-api.json +0 -3227
  384. package/data/models/example-generator-api.json +0 -45209
  385. package/data/models/expanded-api.json +0 -251
  386. package/data/models/flattened-api.json +0 -251
  387. package/data/models/multiple-servers.json +0 -2769
  388. package/data/models/oas-3-api.json +0 -10590
  389. package/data/models/oas-date.json +0 -637
  390. package/data/models/oas-types.json +0 -5352
  391. package/data/models/oas-unions.json +0 -1935
  392. package/data/models/petstore.json +0 -27712
  393. package/data/models/raml-date.json +0 -1114
  394. package/data/models/recursive.json +0 -610
  395. package/data/models/schema-api.json +0 -35527
  396. package/data/models/secured-api.json +0 -21071
  397. package/data/models/tracked-to-linked.json +0 -1914
  398. package/src/amf/AmfMixin.ts +0 -1726
  399. package/src/amf/AmfSerializer.ts +0 -2358
  400. package/src/amf/AmfTypes.ts +0 -147
  401. package/src/amf/ApiExampleGenerator.ts +0 -122
  402. package/src/amf/ApiMonacoSchemaGenerator.ts +0 -332
  403. package/src/amf/ApiSchemaGenerator.ts +0 -115
  404. package/src/amf/ApiSchemaValues.ts +0 -509
  405. package/src/amf/Parsing.ts +0 -50
  406. package/src/amf/Utils.ts +0 -172
  407. package/src/amf/data-node/DataNodeBase.ts +0 -83
  408. package/src/amf/data-node/JsonDataNodeGenerator.ts +0 -24
  409. package/src/amf/data-node/README.md +0 -3
  410. package/src/amf/data-node/UrlEncodedDataNodeGenerator.ts +0 -49
  411. package/src/amf/data-node/XmlDataNodeGenerator.ts +0 -46
  412. package/src/amf/definitions/Amf.ts +0 -440
  413. package/src/amf/definitions/Api.ts +0 -445
  414. package/src/amf/definitions/Base.ts +0 -13
  415. package/src/amf/definitions/Namespace.ts +0 -357
  416. package/src/amf/definitions/Shapes.ts +0 -438
  417. package/src/amf/models/AmfDataNode.ts +0 -210
  418. package/src/amf/shape/README.md +0 -4
  419. package/src/amf/shape/ShapeBase.ts +0 -174
  420. package/src/amf/shape/ShapeJsonSchemaGenerator.ts +0 -457
  421. package/src/amf/shape/ShapeXmlSchemaGenerator.ts +0 -933
  422. package/src/events/amf/AmfEventTypes.ts +0 -6
  423. package/src/events/amf/AmfEvents.ts +0 -78
  424. package/src/mocking/RandExp.ts +0 -335
  425. package/src/mocking/lib/ret.ts +0 -279
  426. package/tests/unit/amf/APIC-187.spec.ts +0 -41
  427. package/tests/unit/amf/APIC-188.spec.ts +0 -30
  428. package/tests/unit/amf/APIC-233.spec.ts +0 -32
  429. package/tests/unit/amf/APIC-391.spec.ts +0 -39
  430. package/tests/unit/amf/APIC-487.spec.ts +0 -44
  431. package/tests/unit/amf/APIC-655.spec.ts +0 -41
  432. package/tests/unit/amf/APIC-689.spec.ts +0 -28
  433. package/tests/unit/amf/APIC-690.spec.ts +0 -93
  434. package/tests/unit/amf/AmfLoader.ts +0 -538
  435. package/tests/unit/amf/AmfMixin.spec.ts +0 -1707
  436. package/tests/unit/amf/ApiExampleGenerator.spec.ts +0 -250
  437. package/tests/unit/amf/ApiMonacoSchemaGenerator.spec.ts +0 -183
  438. package/tests/unit/amf/ApiSchemaValues.spec.ts +0 -602
  439. package/tests/unit/amf/Namepsace.spec.ts +0 -494
  440. package/tests/unit/amf/SE-10469.spec.ts +0 -35
  441. package/tests/unit/amf/SE-13092.spec.ts +0 -64
  442. package/tests/unit/amf/SE-22063.spec.ts +0 -45
  443. package/tests/unit/amf/raml-examples.spec.ts +0 -43
  444. package/tests/unit/amf/schema_gen_array.spec.ts +0 -199
  445. package/tests/unit/amf/schema_gen_oas.spec.ts +0 -140
  446. package/tests/unit/amf/schema_gen_object.spec.ts +0 -279
  447. package/tests/unit/amf/schema_gen_scalar.spec.ts +0 -143
  448. package/tests/unit/amf/schema_gen_union.spec.ts +0 -401
  449. package/tests/unit/amf/schema_gen_unknown.spec.ts +0 -42
  450. package/tests/unit/amf/schema_gen_xml.spec.ts +0 -726
  451. package/tests/unit/amf/serializer/APIC-483.spec.ts +0 -36
  452. package/tests/unit/amf/serializer/Anotations.spec.ts +0 -50
  453. package/tests/unit/amf/serializer/Api.spec.ts +0 -210
  454. package/tests/unit/amf/serializer/Documentation.spec.ts +0 -52
  455. package/tests/unit/amf/serializer/Endpoints.spec.ts +0 -172
  456. package/tests/unit/amf/serializer/Operations.spec.ts +0 -330
  457. package/tests/unit/amf/serializer/Parameters.spec.ts +0 -149
  458. package/tests/unit/amf/serializer/PayloadExamples.spec.ts +0 -152
  459. package/tests/unit/amf/serializer/Security.spec.ts +0 -626
  460. package/tests/unit/amf/serializer/Server.spec.ts +0 -78
  461. package/tests/unit/amf/serializer/Shapes.spec.ts +0 -304
  462. package/tests/unit/amf/serializer/SourceMaps.spec.ts +0 -52
  463. package/tests/unit/amf/shapes/ShapeXmlSchemaGenerator.spec.ts +0 -28
  464. package/tests/unit/amf/tracked-to-linked.spec.ts +0 -90
  465. package/tests/unit/amf/xml-data-processing.spec.ts +0 -217
  466. package/tests/unit/events/amf.spec.ts +0 -151
@@ -1,174 +0,0 @@
1
- import { Time } from '@pawel-up/data-mock/Time.js'
2
- import { AmfNamespace as ns } from '../definitions/Namespace.js'
3
- import { ApiSchemaValues } from '../ApiSchemaValues.js'
4
- import { JsonDataNodeGenerator } from '../data-node/JsonDataNodeGenerator.js'
5
- import {
6
- IApiAnyShape,
7
- IApiArrayShape,
8
- IApiDataExample,
9
- IApiFileShape,
10
- IApiNodeShape,
11
- IApiPropertyShape,
12
- IApiScalarNode,
13
- IApiScalarShape,
14
- IApiSchemaShape,
15
- IShapeUnion,
16
- IApiTupleShape,
17
- IApiUnionShape,
18
- } from '../definitions/Shapes.js'
19
-
20
- export interface IShapeRenderOptions {
21
- /**
22
- * All selected unions in the current view.
23
- * When the processor encounter an union it checks this array
24
- * to pick the selected union.
25
- * When the selected union cannot be determined it picks the first union.
26
- */
27
- selectedUnions?: string[]
28
- /**
29
- * Whether to include optional fields into the schema.
30
- * @default false
31
- */
32
- renderOptional?: boolean
33
- /**
34
- * When set it uses the data mocking library to generate the values
35
- * when examples and default are not set.
36
- */
37
- renderMocked?: boolean
38
- /**
39
- * The library **always** uses default values in the schema.
40
- * When a default value is not set by default it inserts an empty value for
41
- * the given data type ('', false, null, random date). When this is set
42
- * it includes examples in the generated value.
43
- */
44
- renderExamples?: boolean
45
- }
46
-
47
- /**
48
- * A base class for generators that generates a schema from AMF's shape definition.
49
- */
50
- export abstract class ShapeBase {
51
- opts: Readonly<IShapeRenderOptions>
52
- time = new Time()
53
-
54
- constructor(opts: IShapeRenderOptions = {}) {
55
- this.opts = Object.freeze({ ...opts })
56
- }
57
-
58
- protected _scalarValue(schema: IApiScalarShape): string | number | boolean | null | undefined {
59
- const { defaultValue, examples, values, inherits, dataType } = schema
60
- // check examples
61
- if (this.opts.renderExamples && examples && examples.length) {
62
- const example = examples.find((item) => !!item.structuredValue)
63
- const value = this._exampleToObject(example)
64
- if (typeof value !== 'undefined') {
65
- return ApiSchemaValues.readTypedValue(value, dataType)
66
- }
67
- }
68
-
69
- // check the default value
70
- if (defaultValue) {
71
- const gen = new JsonDataNodeGenerator()
72
- const processed = gen.processNode(defaultValue)
73
- // return ApiSchemaValues.readTypedValue(processed, dataType);
74
- return processed as string | number | boolean | null | undefined
75
- }
76
- // check enum values
77
- if (values && values.length) {
78
- const typed = values[0] as IApiScalarNode
79
- if (typed.value !== undefined) {
80
- return ApiSchemaValues.readTypedValue(typed.value, dataType)
81
- }
82
- }
83
- // check parents
84
- if (Array.isArray(inherits) && inherits.length) {
85
- for (let i = 0, len = inherits.length; i < len; i += 1) {
86
- const result = this._scalarValue(inherits[i] as IApiScalarShape)
87
- if (result !== undefined) {
88
- return result
89
- }
90
- }
91
- }
92
- if (this.opts.renderMocked) {
93
- return ApiSchemaValues.generateMockedValue(schema)
94
- }
95
- // return this[dataTypeToExample](dataType, format);
96
- // create a default value.
97
- return ApiSchemaValues.generateDefaultValue(schema)
98
- }
99
-
100
- /**
101
- * Checks whether the union represents a scalar + nil which is equivalent
102
- * to having scalar that is not required.
103
- *
104
- * See more about nil values in RAML:
105
- * https://github.com/raml-org/raml-spec/blob/master/versions/raml-10/raml-10.md#nil-type
106
- *
107
- * @param union The list of unions in the shape
108
- */
109
- protected _isNotRequiredUnion(union: IShapeUnion[]): boolean {
110
- let scalars = 0
111
- let hasNil = false
112
- union.forEach((i) => {
113
- if (i.types.includes(ns.aml.vocabularies.shapes.NilShape)) {
114
- hasNil = true
115
- } else if (i.types.includes(ns.aml.vocabularies.shapes.ScalarShape)) {
116
- const scalar = i as IApiScalarShape
117
- if (scalar.dataType === ns.w3.xmlSchema.nil) {
118
- hasNil = true
119
- } else {
120
- scalars += 1
121
- }
122
- } else if (i.types.includes(ns.aml.vocabularies.shapes.FileShape)) {
123
- scalars += 1
124
- }
125
- })
126
- if (!hasNil) {
127
- return false
128
- }
129
- // size of union minus the nil union
130
- if (scalars === union.length - 1) {
131
- return true
132
- }
133
- return false
134
- }
135
-
136
- /**
137
- * Generates a schema from AMF's shape.
138
- * @param schema The Shape definition
139
- * @returns The generated example
140
- */
141
- abstract generate(schema: IShapeUnion | IApiPropertyShape<IShapeUnion>): string | number | boolean | null | undefined
142
-
143
- /**
144
- * Serializes generated values into the final mime type related form.
145
- *
146
- * @returns The generated example
147
- */
148
- abstract serialize(value: unknown): string | undefined
149
-
150
- /**
151
- * @param example The example to turn into a JS object
152
- */
153
- protected abstract _exampleToObject(example?: IApiDataExample): unknown
154
-
155
- protected abstract _scalarShapeObject(schema: IApiScalarShape): unknown
156
-
157
- protected abstract _nilShapeObject(schema: IApiScalarShape): unknown
158
-
159
- protected abstract _nodeShapeObject(schema: IApiNodeShape): unknown
160
-
161
- protected abstract _unionShapeObject(schema: IApiUnionShape): unknown
162
-
163
- protected abstract _fileShapeObject(schema?: IApiFileShape): unknown
164
-
165
- protected abstract _schemaShapeObject(schema?: IApiSchemaShape): unknown
166
-
167
- protected abstract _arrayShapeObject(schema: IApiArrayShape): unknown
168
-
169
- protected abstract _tupleShapeObject(schema?: IApiTupleShape): unknown
170
-
171
- protected abstract _anyShapeObject(schema: IApiAnyShape): unknown
172
-
173
- protected abstract _propertyShapeObject(schema: IApiPropertyShape): unknown
174
- }
@@ -1,457 +0,0 @@
1
- import { AmfNamespace as ns } from '../definitions/Namespace.js'
2
- import { ShapeBase } from './ShapeBase.js'
3
- import { JsonDataNodeGenerator } from '../data-node/JsonDataNodeGenerator.js'
4
- import {
5
- IApiAnyShape,
6
- IApiArrayShape,
7
- IApiDataExample,
8
- IApiDataNodeUnion,
9
- IApiNodeShape,
10
- IApiPropertyShape,
11
- IApiScalarShape,
12
- IShapeUnion,
13
- IApiTupleShape,
14
- IApiUnionShape,
15
- } from '../definitions/Shapes.js'
16
-
17
- export class ShapeJsonSchemaGenerator extends ShapeBase {
18
- /**
19
- * Generates a schema from AMF's shape.
20
- *
21
- * @param schema The Shape definition
22
- */
23
- generate(schema: IShapeUnion | IApiPropertyShape<IShapeUnion>): string | number | boolean | null | undefined {
24
- let result: string | number | boolean | object | object[] | null | undefined
25
- if (schema.types.includes(ns.w3.shacl.PropertyShape)) {
26
- result = this._propertyShapeObject(schema as IApiPropertyShape<IShapeUnion>)
27
- } else {
28
- result = this.toObject(schema as IShapeUnion)
29
- }
30
- if (result !== null && typeof result === 'object') {
31
- return this.serialize(result)
32
- }
33
- return result
34
- }
35
-
36
- /**
37
- * Processes the Shape definition and returns a JavaScript object or array.
38
- */
39
- toObject(schema: IShapeUnion): object | object[] | string | number | boolean | null | undefined {
40
- const { types } = schema
41
- if (types.includes(ns.aml.vocabularies.shapes.ScalarShape)) {
42
- return this._scalarShapeObject(schema as IApiScalarShape)
43
- }
44
- if (types.includes(ns.w3.shacl.NodeShape)) {
45
- return this._nodeShapeObject(schema as IApiNodeShape)
46
- }
47
- if (types.includes(ns.aml.vocabularies.shapes.UnionShape)) {
48
- return this._unionShapeObject(schema as IApiUnionShape)
49
- }
50
- if (types.includes(ns.aml.vocabularies.shapes.FileShape)) {
51
- return this._fileShapeObject()
52
- }
53
- if (types.includes(ns.aml.vocabularies.shapes.SchemaShape)) {
54
- return this._schemaShapeObject()
55
- }
56
- if (types.includes(ns.aml.vocabularies.shapes.TupleShape)) {
57
- return this._tupleShapeObject(schema as IApiTupleShape)
58
- }
59
- if (
60
- types.includes(ns.aml.vocabularies.shapes.ArrayShape) ||
61
- types.includes(ns.aml.vocabularies.shapes.MatrixShape)
62
- ) {
63
- return this._arrayShapeObject(schema as IApiArrayShape)
64
- }
65
- return this._anyShapeObject(schema as IApiAnyShape)
66
- }
67
-
68
- /**
69
- * Serializes generated JS value according to the mime type.
70
- */
71
- serialize(value: object | object[]): string {
72
- return JSON.stringify(value, null, 2)
73
- }
74
-
75
- protected _scalarShapeObject(schema: IApiScalarShape): string | number | boolean | null | undefined {
76
- return this._scalarValue(schema)
77
- }
78
-
79
- protected _nilShapeObject(): undefined {
80
- return undefined
81
- }
82
-
83
- protected _nodeShapeObject(schema: IApiNodeShape): object {
84
- const { inherits } = schema
85
- let { examples = [] } = schema
86
- if (Array.isArray(inherits) && inherits.length) {
87
- inherits.forEach((parent) => {
88
- const anyParent = parent as IApiAnyShape
89
- if (Array.isArray(anyParent.examples) && anyParent.examples.length) {
90
- examples = examples.concat(anyParent.examples)
91
- }
92
- })
93
- }
94
- if (this.opts.renderExamples && examples.length) {
95
- const example = examples.find((item) => !!item.structuredValue)
96
- const value = this._exampleToObject(example)
97
- if (value !== undefined) {
98
- return value as object | object[]
99
- }
100
- }
101
- let result: Record<string, unknown> = {}
102
- const { properties } = schema
103
- if (Array.isArray(inherits) && inherits.length) {
104
- inherits.forEach((s) => {
105
- const part = this.toObject(s)
106
- if (typeof part === 'object') {
107
- result = { ...result, ...part }
108
- }
109
- })
110
- }
111
- properties.forEach((property) => {
112
- const { name } = property
113
- const value = this._propertyShapeObject(property)
114
- if (typeof value !== 'undefined' && name) {
115
- result[name] = value
116
- }
117
- })
118
- return result
119
- }
120
-
121
- protected _unionShapeObject(
122
- schema: IApiUnionShape
123
- ): object | object[] | string | number | boolean | null | undefined {
124
- if (schema.and && schema.and.length) {
125
- return this._allOfUnion(schema)
126
- }
127
- if (schema.xone && schema.xone.length) {
128
- return this._oneOfUnion(schema)
129
- }
130
- // the default
131
- return this._anyOfUnion(schema)
132
- }
133
-
134
- protected _anyOfUnion(schema: IApiUnionShape): object | object[] | string | number | boolean | null | undefined {
135
- let { anyOf = [], examples = [] } = schema
136
- if (Array.isArray(schema.inherits) && schema.inherits) {
137
- schema.inherits.forEach((parent) => {
138
- const anyParent = parent as IApiAnyShape
139
- if (Array.isArray(anyParent.examples) && anyParent.examples.length) {
140
- examples = examples.concat(anyParent.examples)
141
- }
142
- const typed = parent as IApiUnionShape
143
- if (Array.isArray(typed.anyOf) && typed.anyOf.length) {
144
- anyOf = anyOf.concat(typed.anyOf)
145
- }
146
- })
147
- }
148
- const { opts } = this
149
- if (this._isNotRequiredUnion(anyOf)) {
150
- // This generates schema for required values.
151
- // This implicitly mean that the property is not required therefore the value should
152
- // not be generated.
153
- return undefined
154
- }
155
- if (this.opts.renderExamples) {
156
- const example = examples.find((item) => !!item.structuredValue)
157
- const value = this._exampleToObject(example)
158
- if (value !== undefined) {
159
- return value
160
- }
161
- }
162
- if (schema.defaultValue) {
163
- return this._unionDefaultValue(anyOf, schema.defaultValue)
164
- }
165
- const { selectedUnions } = opts
166
- let renderedItem: IShapeUnion | undefined
167
- if (selectedUnions && selectedUnions.length) {
168
- renderedItem = anyOf.find((item) => selectedUnions.includes(item.id))
169
- } else {
170
- ;[renderedItem] = anyOf
171
- }
172
- if (renderedItem) {
173
- return this.toObject(renderedItem)
174
- }
175
- return undefined
176
- }
177
-
178
- protected _oneOfUnion(schema: IApiUnionShape): object | object[] | string | number | boolean | null | undefined {
179
- let { examples = [] } = schema
180
- const { xone = [] } = schema
181
- if (Array.isArray(schema.inherits) && schema.inherits) {
182
- schema.inherits.forEach((parent) => {
183
- const anyParent = parent as IApiAnyShape
184
- if (Array.isArray(anyParent.examples) && anyParent.examples.length) {
185
- examples = examples.concat(anyParent.examples)
186
- }
187
- })
188
- }
189
- const { opts } = this
190
- if (this.opts.renderExamples) {
191
- const example = examples.find((item) => !!item.structuredValue)
192
- const value = this._exampleToObject(example)
193
- if (value !== undefined) {
194
- return value
195
- }
196
- }
197
- if (schema.defaultValue) {
198
- return this._unionDefaultValue(xone, schema.defaultValue)
199
- }
200
- const { selectedUnions } = opts
201
- let renderedItem: IShapeUnion | undefined
202
- if (selectedUnions && selectedUnions.length) {
203
- renderedItem = xone.find((item) => selectedUnions.includes(item.id))
204
- } else {
205
- ;[renderedItem] = xone
206
- }
207
- if (renderedItem) {
208
- return this.toObject(renderedItem)
209
- }
210
- return undefined
211
- }
212
-
213
- /**
214
- * Combines all properties from both all shapes in the union
215
- */
216
- protected _allOfUnion(schema: IApiUnionShape): object | object[] | string | number | boolean | null | undefined {
217
- let { examples = [] } = schema
218
- const { and = [] } = schema
219
- if (Array.isArray(schema.inherits) && schema.inherits) {
220
- schema.inherits.forEach((parent) => {
221
- const anyParent = parent as IApiAnyShape
222
- if (Array.isArray(anyParent.examples) && anyParent.examples.length) {
223
- examples = examples.concat(anyParent.examples)
224
- }
225
- })
226
- }
227
- if (this.opts.renderExamples) {
228
- const example = examples.find((item) => !!item.structuredValue)
229
- const value = this._exampleToObject(example)
230
- if (value !== undefined) {
231
- return value
232
- }
233
- }
234
- let result: Record<string, unknown> = {}
235
- and.forEach((item) => {
236
- const props = this.toObject(item)
237
- if (typeof props === 'object') {
238
- result = { ...result, ...props }
239
- }
240
- })
241
- return result
242
- }
243
-
244
- /**
245
- * @param union The list of unions in the shape
246
- * @param defaultValue The definition of a default value.
247
- */
248
- protected _unionDefaultValue(
249
- union: IShapeUnion[],
250
- defaultValue: IApiDataNodeUnion
251
- ): string | number | boolean | null | undefined {
252
- const gen = new JsonDataNodeGenerator()
253
- const result = gen.generate(defaultValue)
254
- let hasNumber = false
255
- let hasBoolean = false
256
- let hasNil = false
257
- union.forEach((i) => {
258
- if (i.types.includes(ns.aml.vocabularies.shapes.NilShape)) {
259
- hasNil = true
260
- }
261
- if (!i.types.includes(ns.aml.vocabularies.shapes.ScalarShape)) {
262
- return
263
- }
264
- const scalar = i as IApiScalarShape
265
- if (!hasBoolean) {
266
- hasBoolean = scalar.dataType === ns.w3.xmlSchema.boolean
267
- }
268
- if (!hasNumber) {
269
- hasNumber = [
270
- ns.w3.xmlSchema.number,
271
- ns.w3.xmlSchema.long,
272
- ns.w3.xmlSchema.integer,
273
- ns.w3.xmlSchema.float,
274
- ns.w3.xmlSchema.double,
275
- ns.aml.vocabularies.shapes.number,
276
- ns.aml.vocabularies.shapes.long,
277
- ns.aml.vocabularies.shapes.integer,
278
- ns.aml.vocabularies.shapes.float,
279
- ns.aml.vocabularies.shapes.double,
280
- ].includes(scalar.dataType as string)
281
- }
282
- if (!hasNil) {
283
- hasNil = scalar.dataType === ns.w3.xmlSchema.nil
284
- }
285
- })
286
- if (hasNumber) {
287
- const parsed = Number(result)
288
- if (!Number.isNaN(parsed)) {
289
- return parsed
290
- }
291
- }
292
- if (hasBoolean) {
293
- if (result === 'true') {
294
- return true
295
- }
296
- if (result === 'false') {
297
- return false
298
- }
299
- }
300
- if (hasNil && (result === 'null' || result === 'nil')) {
301
- return null
302
- }
303
- return result
304
- }
305
-
306
- protected _arrayShapeObject(schema: IApiArrayShape): unknown[] {
307
- const { items } = schema
308
- const defaultValue = schema.defaultValue || (items && items.defaultValue)
309
-
310
- let { examples = [] } = schema
311
- const anyItems = items as IApiAnyShape
312
- if (Array.isArray(anyItems.examples)) {
313
- examples = examples.concat(anyItems.examples)
314
- }
315
- if (this.opts.renderExamples && examples && examples.length) {
316
- const example = examples.find((item) => !!item.structuredValue)
317
- const value = this._exampleToObject(example)
318
- if (Array.isArray(value)) {
319
- return value
320
- }
321
- if (typeof value !== 'undefined') {
322
- return [value]
323
- }
324
- }
325
- if (defaultValue) {
326
- const gen = new JsonDataNodeGenerator()
327
- const arr = gen.processNode(defaultValue)
328
- if (Array.isArray(arr)) {
329
- return arr
330
- } else if (arr) {
331
- return [arr]
332
- }
333
- }
334
- if (items) {
335
- const value = this.toObject(items)
336
- if (typeof value !== 'undefined') {
337
- return [value]
338
- }
339
- }
340
- return []
341
- }
342
-
343
- protected _tupleShapeObject(
344
- schema: IApiTupleShape
345
- ): object | object[] | string | number | boolean | null | undefined {
346
- const { items, examples } = schema
347
- if (this.opts.renderExamples && examples && examples.length) {
348
- const example = examples.find((item) => !!item.structuredValue)
349
- const value = this._exampleToObject(example)
350
- if (typeof value !== 'undefined') {
351
- return [value]
352
- }
353
- }
354
- if (schema.defaultValue) {
355
- const gen = new JsonDataNodeGenerator()
356
- const arr = gen.processNode(schema.defaultValue)
357
- if (Array.isArray(arr)) {
358
- return arr
359
- }
360
- }
361
- if (items.length) {
362
- const result: unknown[] = []
363
- items.forEach((i) => {
364
- const value = this.toObject(i)
365
- if (typeof value !== 'undefined') {
366
- result.push(value)
367
- }
368
- })
369
- return result
370
- }
371
- return []
372
- }
373
-
374
- protected _anyShapeObject(schema: IApiAnyShape): object | object[] | string | number | boolean | null | undefined {
375
- const { and = [], xone = [], or = [] } = schema
376
- if (and.length) {
377
- let result: Record<string, unknown> = {}
378
- and.forEach((item) => {
379
- const props = this.toObject(item)
380
- if (typeof props === 'object') {
381
- result = { ...result, ...props }
382
- }
383
- })
384
- return result
385
- }
386
- if (xone.length) {
387
- const { selectedUnions = [] } = this.opts
388
- let selected = xone.find((i) => selectedUnions.includes(i.id))
389
- if (!selected) {
390
- // select firs available
391
- selected = xone[0]
392
- }
393
- return this.toObject(selected)
394
- }
395
- if (or.length) {
396
- const { selectedUnions = [] } = this.opts
397
- let selected = or.find((i) => selectedUnions.includes(i.id))
398
- if (!selected) {
399
- // select firs available
400
- selected = or[0]
401
- }
402
- return this.toObject(selected)
403
- }
404
- return this._scalarShapeObject(schema)
405
- }
406
-
407
- /**
408
- * @returns The value for the property or undefined when cannot generate the value.
409
- */
410
- protected _propertyShapeObject(
411
- schema: IApiPropertyShape
412
- ): object | object[] | string | number | boolean | null | undefined {
413
- const { minCount = 0 } = schema
414
- if (minCount === 0 && !this.opts.renderOptional) {
415
- return undefined
416
- }
417
- const { range } = schema
418
- if (!range) {
419
- return undefined
420
- }
421
- const { types } = range
422
- if (types.includes(ns.aml.vocabularies.shapes.ScalarShape)) {
423
- // const defaultValue = schema.defaultValue || range.defaultValue;
424
- // if (!this.opts.renderExamples && defaultValue) {
425
- // const gen = new JsonDataNodeGenerator();
426
- // const value = gen.generate(defaultValue);
427
- // if (value) {
428
- // return ApiSchemaValues.readTypedValue(value, /** @type IScalarShape */ (range).dataType);
429
- // }
430
- // }
431
- const anyRange = range as IApiAnyShape
432
- return this._scalarShapeObject(anyRange)
433
- }
434
- return this.toObject(range)
435
- }
436
-
437
- /**
438
- * @param example The example to turn into a JS object
439
- */
440
- protected _exampleToObject(
441
- example?: IApiDataExample
442
- ): object | object[] | string | number | boolean | null | undefined {
443
- if (example && example.structuredValue) {
444
- const jsonGenerator = new JsonDataNodeGenerator()
445
- return jsonGenerator.processNode(example.structuredValue)
446
- }
447
- return undefined
448
- }
449
-
450
- protected _fileShapeObject(): undefined {
451
- return undefined
452
- }
453
-
454
- protected _schemaShapeObject(): undefined {
455
- return undefined
456
- }
457
- }