@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
package/eslint.config.js CHANGED
@@ -80,7 +80,6 @@ export default [
80
80
  'src/models/SerializablePayload.ts',
81
81
  'src/lib/calculators/DataCalculator.ts',
82
82
  'src/lib/Buffer.ts',
83
- 'src/events/amf/AmfEvents.ts',
84
83
  'src/authorization/lib/SecurityProcessor.ts',
85
84
  ],
86
85
  languageOptions: {
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@api-client/core",
3
3
  "description": "The API Client's core client library. Works in NodeJS and in a ES enabled browser.",
4
- "version": "0.19.10",
5
- "license": "Apache-2.0",
4
+ "version": "0.19.12",
5
+ "license": "UNLICENSED",
6
6
  "exports": {
7
7
  "./browser.js": {
8
8
  "default": "./build/src/browser.js",
@@ -19,8 +19,6 @@
19
19
  },
20
20
  "./package.json": "./package.json",
21
21
  "./nanoid.js": "./build/src/nanoid.js",
22
- "./amf/*.js": "./build/src/amf/*.js",
23
- "./amf/*": "./build/src/amf/*",
24
22
  "./authorization/*.js": "./build/src/authorization/*.js",
25
23
  "./authorization/*": "./build/src/authorization/*",
26
24
  "./config/*.js": "./build/src/config/*.js",
@@ -53,7 +51,6 @@
53
51
  "./testing/*": "./build/src/testing/*"
54
52
  },
55
53
  "imports": {
56
- "#amf/*": "./src/amf/*",
57
54
  "#authorization/*": "./src/authorization/*",
58
55
  "#cookies/*": "./src/cookies/*",
59
56
  "#data/*": "./src/data/*",
@@ -84,6 +81,7 @@
84
81
  "url": "https://github.com/api-client/core/issues"
85
82
  },
86
83
  "dependencies": {
84
+ "@api-client/amf-core": "^0.1.2",
87
85
  "@api-client/graph": "^0.3.5",
88
86
  "@api-client/json": "^0.2.0",
89
87
  "@esm-bundle/chai": "^4.3.4-fix.0",
@@ -95,7 +93,6 @@
95
93
  "@pawel-up/data-mock": "^0.4.0",
96
94
  "@pawel-up/jexl": "^4.0.1",
97
95
  "@xmldom/xmldom": "^0.8.11",
98
- "amf-json-ld-lib": "^0.0.15",
99
96
  "chalk": "^5.4.1",
100
97
  "console-table-printer": "^2.11.2",
101
98
  "dompurify": "^3.2.6",
@@ -109,10 +106,7 @@
109
106
  "@commitlint/cli": "^20.1.0",
110
107
  "@commitlint/config-conventional": "^20.0.0",
111
108
  "@eslint/js": "^10.0.1",
112
- "@japa/api-client": "^3.0.3",
113
109
  "@japa/assert": "^4.0.1",
114
- "@japa/browser-client": "^2.1.1",
115
- "@japa/expect-type": "^2.0.3",
116
110
  "@japa/runner": "^5.3.0",
117
111
  "@pawel-up/semver": "^0.1.4",
118
112
  "@types/chai-as-promised": "^8.0.2",
@@ -128,7 +122,6 @@
128
122
  "@web/dev-server-rollup": "^0.6.4",
129
123
  "@web/test-runner": "^0.20.0",
130
124
  "@web/test-runner-playwright": "^0.11.0",
131
- "amf-client-js": "^5.10.0-0",
132
125
  "c8": "^11.0.0",
133
126
  "chai-as-promised": "^8.0.2",
134
127
  "conventional-changelog": "^7.1.0",
@@ -148,7 +141,6 @@
148
141
  "prettier": "^3.5.1",
149
142
  "schema-org-json-schemas": "^2.1.4",
150
143
  "sinon": "^21.0.0",
151
- "ts-lit-plugin": "^2.0.2",
152
144
  "ts-node-maintained": "^10.9.5",
153
145
  "typescript": "^5.5.2",
154
146
  "typescript-eslint": "^8.24.1"
@@ -158,7 +150,7 @@
158
150
  "build:ts": "tsc --project tsconfig.json",
159
151
  "build:node": "tsc --project tsconfig.node.json",
160
152
  "build": "npm run build:ts && npm run copy:assets",
161
- "prepare": "husky && npm run fixes && npm run build:ts && npm run build:api-models",
153
+ "prepare": "husky && npm run fixes && npm run build:ts",
162
154
  "fixes": "node scripts/fix-rollup-plugin.js",
163
155
  "tsc": "tsc",
164
156
  "tsc:tests": "tsc --project tsconfig.browser.json",
@@ -169,7 +161,6 @@
169
161
  "test:coverage": "npm run test:node:coverage && npm run test:browser",
170
162
  "test:node": "node --import ts-node-maintained/register/esm --enable-source-maps bin/test.ts",
171
163
  "test:node:coverage": "c8 --reporter lcov --reporter text node --import ts-node-maintained/register/esm --enable-source-maps bin/test.ts",
172
- "build:api-models": "node data/model.js",
173
164
  "copy:assets": "cp -f ./oauth-popup.html ./build/oauth-popup.html",
174
165
  "start": "echo \"Use the npm run dev instead\"",
175
166
  "lint": "npm run lint:prettier && npm run lint:eslint",
@@ -184,8 +175,14 @@
184
175
  "release:major": "node scripts/release.js major"
185
176
  },
186
177
  "lint-staged": {
178
+ "*.js": [
179
+ "eslint --fix"
180
+ ],
187
181
  "*.ts": [
188
- "npm run format"
182
+ "eslint --fix"
183
+ ],
184
+ "*.json": [
185
+ "prettier --write"
189
186
  ]
190
187
  },
191
188
  "engines": {
@@ -6,10 +6,8 @@ import { ReportingEventTypes } from './reporting/ReportingEventTypes.js'
6
6
  import { TelemetryEventTypes } from './telemetry/TelemetryEventTypes.js'
7
7
  import { EnvironmentEventTypes } from './environment/EnvironmentEventTypes.js'
8
8
  import { TransportEventTypes } from './transport/TransportEventTypes.js'
9
- import { AmfEventTypes } from './amf/AmfEventTypes.js'
10
9
 
11
10
  export const EventTypes = Object.freeze({
12
- Amf: AmfEventTypes,
13
11
  Authorization: AuthorizationEventTypes,
14
12
  Cookie: CookieEventTypes,
15
13
  Encryption: EncryptionEventTypes,
@@ -6,10 +6,8 @@ import { ReportingEvents } from './reporting/ReportingEvents.js'
6
6
  import { TelemetryEvents } from './telemetry/TelemetryEvents.js'
7
7
  import { TransportEvent } from './transport/TransportEvents.js'
8
8
  import { EnvironmentEvents } from './environment/EnvironmentEvents.js'
9
- import { AmfEvents } from './amf/AmfEvents.js'
10
9
 
11
10
  export const Events = Object.freeze({
12
- Amf: AmfEvents,
13
11
  Authorization: AuthorizationEvents,
14
12
  Cookie: CookieEvents,
15
13
  Encryption: EncryptionEvents,
@@ -0,0 +1,86 @@
1
+ import { ApiModel } from './ApiModel.js'
2
+ import { ApiModelValidationItem } from './types.js'
3
+ import { ApiModelKind } from '../models/kinds.js'
4
+ import {
5
+ validateApiModelInfo,
6
+ validateApiModelDependency,
7
+ validateApiModelSecurity,
8
+ validateApiModelMetadata,
9
+ validateExposedEntity,
10
+ } from './validation/api_model_rules.js'
11
+
12
+ /**
13
+ * ApiValidation performs comprehensive validation on an API model.
14
+ *
15
+ * This class orchestrates validation across all API model elements including
16
+ * info, security, exposures, and actions. It ensures that the API model is
17
+ * well-formed and follows established conventions before it can be published.
18
+ */
19
+ export class ApiValidation {
20
+ report: ApiModelValidationItem[] = []
21
+ #infoCount = 0
22
+ #warningCount = 0
23
+ #errorCount = 0
24
+ #counted = false
25
+
26
+ get infoCount(): number {
27
+ if (!this.#counted) {
28
+ this.computeIssueCounters()
29
+ }
30
+ return this.#infoCount
31
+ }
32
+
33
+ get warningCount(): number {
34
+ if (!this.#counted) {
35
+ this.computeIssueCounters()
36
+ }
37
+ return this.#warningCount
38
+ }
39
+
40
+ get errorCount(): number {
41
+ if (!this.#counted) {
42
+ this.computeIssueCounters()
43
+ }
44
+ return this.#errorCount
45
+ }
46
+
47
+ constructor(protected model: ApiModel) {}
48
+
49
+ /**
50
+ * Performs comprehensive validation on the entire API model.
51
+ *
52
+ * @returns A comprehensive validation report with all issues found
53
+ */
54
+ validate(): ApiModelValidationItem[] {
55
+ this.#counted = false
56
+ this.report = []
57
+
58
+ this.report.push(...validateApiModelInfo(this.model))
59
+ this.report.push(...validateApiModelDependency(this.model))
60
+ this.report.push(...validateApiModelSecurity(this.model))
61
+ this.report.push(...validateApiModelMetadata(this.model))
62
+
63
+ if (!this.model.exposes || this.model.exposes.size === 0) {
64
+ this.report.push({
65
+ code: 'API_NO_EXPOSURES',
66
+ message: 'Your API currently has no exposed data for external clients to request.',
67
+ suggestion: 'Expose a data model so apps can communicate with it.',
68
+ severity: 'warning',
69
+ context: { apiModelKey: this.model.key, kind: ApiModelKind, key: this.model.key, property: 'exposes' },
70
+ })
71
+ } else {
72
+ for (const exposure of this.model.exposes.values()) {
73
+ this.report.push(...validateExposedEntity(exposure, this.model))
74
+ }
75
+ }
76
+
77
+ return this.report
78
+ }
79
+
80
+ computeIssueCounters(): void {
81
+ this.#infoCount = this.report.filter((validation) => validation.severity === 'info').length
82
+ this.#warningCount = this.report.filter((validation) => validation.severity === 'warning').length
83
+ this.#errorCount = this.report.filter((validation) => validation.severity === 'error').length
84
+ this.#counted = true
85
+ }
86
+ }
@@ -1,5 +1,5 @@
1
- import { IApiXmlSerializer } from '../amf/definitions/Shapes.js'
2
- import { DomainPropertyFormat } from './DataFormat.js'
1
+ import type { Shapes } from '@api-client/amf-core'
2
+ import type { DomainPropertyFormat } from './DataFormat.js'
3
3
 
4
4
  interface Binding {
5
5
  /**
@@ -69,7 +69,7 @@ export interface PropertyWebBindings {
69
69
  /**
70
70
  * The XML encoding instructions.
71
71
  */
72
- xml?: IApiXmlSerializer
72
+ xml?: Shapes.IApiXmlSerializer
73
73
  /**
74
74
  * Only valid for the `file` property type.
75
75
  * The list of file mime types.
@@ -5,7 +5,7 @@ import { nanoid } from '../nanoid.js'
5
5
  import { type IThing, Thing } from '../models/Thing.js'
6
6
  import { observed, retargetChange, toRaw } from '../decorators/observed.js'
7
7
  import type { DomainEntity } from './DomainEntity.js'
8
- import type { IApiAssociationShape, IApiPropertyShape } from '../amf/definitions/Shapes.js'
8
+ import type { Shapes } from '@api-client/amf-core'
9
9
  import type { AssociationBinding, AssociationBindings, AssociationWebBindings } from './Bindings.js'
10
10
  import { DomainAttributeAttribute, DomainAttributeAttributes } from './DataFormat.js'
11
11
  import type { AssociationTarget, DomainGraphEdge } from './types.js'
@@ -53,7 +53,7 @@ export interface DomainAssociationSchema extends DomainElementSchema {
53
53
  * referenced entities schemas. Note, changes in the referenced entities may not be propagated
54
54
  * to schemas altered by the user.
55
55
  */
56
- schema?: IApiAssociationShape
56
+ schema?: Shapes.IApiAssociationShape
57
57
  /**
58
58
  * The list of bindings for this property.
59
59
  *
@@ -153,7 +153,7 @@ export class DomainAssociation extends DomainElement {
153
153
  * The schema allowing to translate the model into a
154
154
  * specific format (like JSON, RAML, XML, etc.)
155
155
  */
156
- @observed({ deep: true }) accessor schema: IApiAssociationShape | undefined
156
+ @observed({ deep: true }) accessor schema: Shapes.IApiAssociationShape | undefined
157
157
 
158
158
  /**
159
159
  * The list of bindings for this property.
@@ -351,7 +351,7 @@ export class DomainAssociation extends DomainElement {
351
351
  * const schema = association.ensureSchema();
352
352
  * ```
353
353
  */
354
- ensureSchema(): IApiAssociationShape {
354
+ ensureSchema(): Shapes.IApiAssociationShape {
355
355
  if (!this.schema) {
356
356
  this.schema = {}
357
357
  }
@@ -547,7 +547,7 @@ export class DomainAssociation extends DomainElement {
547
547
  *
548
548
  * @returns AMF property shape definition.
549
549
  */
550
- toApiShape(): IApiPropertyShape {
550
+ toApiShape(): Shapes.IApiPropertyShape {
551
551
  const serializer = new ShapeGenerator()
552
552
  return serializer.associationProperty(this)
553
553
  }
@@ -4,7 +4,8 @@ import { DomainElement, type DomainElementSchema } from './DomainElement.js'
4
4
  import { nanoid } from '../nanoid.js'
5
5
  import { type IThing, Thing } from '../models/Thing.js'
6
6
  import { observed, retargetChange, toRaw } from '../decorators/observed.js'
7
- import type { IShapeUnion } from '../amf/definitions/Shapes.js'
7
+ import type { Shapes, IShapeRenderOptions } from '@api-client/amf-core'
8
+ import { ApiSchemaGenerator } from '@api-client/amf-core'
8
9
  import { DomainProperty, type DomainPropertySchema } from './DomainProperty.js'
9
10
  import { RemovePropertyException } from '../exceptions/remove_property_exception.js'
10
11
  import { DomainAssociation, DomainAssociationSchema } from './DomainAssociation.js'
@@ -13,8 +14,6 @@ import type { DomainModel } from './DomainModel.js'
13
14
  import type { DomainNamespace } from './DomainNamespace.js'
14
15
  import { ValidationError } from '../exceptions/validation_error.js'
15
16
  import { ShapeGenerator } from './amf/ShapeGenerator.js'
16
- import type { IShapeRenderOptions } from '../amf/shape/ShapeBase.js'
17
- import { ApiSchemaGenerator } from '../amf/ApiSchemaGenerator.js'
18
17
  import { removeGraphNode } from './GraphUtils.js'
19
18
  import { DataSemantics, isEntitySemantic, type SemanticType, type AppliedDataSemantic } from './Semantics.js'
20
19
 
@@ -806,7 +805,7 @@ export class DomainEntity extends DomainElement {
806
805
  *
807
806
  * @returns AMF property shape definition.
808
807
  */
809
- toApiShape(): IShapeUnion {
808
+ toApiShape(): Shapes.IShapeUnion {
810
809
  const serializer = new ShapeGenerator()
811
810
  return serializer.entity(this)
812
811
  }
@@ -20,11 +20,10 @@ import { ShapeGenerator } from './amf/ShapeGenerator.js'
20
20
  import type { PropertyBinding, PropertyBindings, PropertyWebBindings } from './Bindings.js'
21
21
  import type { ModelValidationOptions } from '../models/types.js'
22
22
  import type { DomainEntity } from './DomainEntity.js'
23
- import type { IApiPropertyShape } from '../amf/definitions/Shapes.js'
23
+ import type { Shapes, IShapeRenderOptions } from '@api-client/amf-core'
24
+ import { ApiSchemaGenerator } from '@api-client/amf-core'
24
25
  import type { PropertySchema } from './types.js'
25
26
  import { DataSemantics, isPropertySemantic, type SemanticType, type AppliedDataSemantic } from './Semantics.js'
26
- import { ApiSchemaGenerator } from '../amf/ApiSchemaGenerator.js'
27
- import type { IShapeRenderOptions } from '../amf/shape/ShapeBase.js'
28
27
 
29
28
  export interface DomainPropertySchema extends DomainElementSchema {
30
29
  kind: typeof DomainPropertyKind
@@ -576,7 +575,7 @@ export class DomainProperty extends DomainElement {
576
575
  *
577
576
  * @returns AMF property shape definition.
578
577
  */
579
- toApiShape(): IApiPropertyShape {
578
+ toApiShape(): Shapes.IApiPropertyShape {
580
579
  const serializer = new ShapeGenerator()
581
580
  return serializer.property(this)
582
581
  }
@@ -1,9 +1,8 @@
1
- import { DataDomainKind } from '../models/kinds.js'
2
1
  import { DataDomain } from './DataDomain.js'
3
- import type { DomainImpactReport } from './types.js'
4
2
  import { AssociationValidation } from './validation/association_validation.js'
5
3
  import { EntityValidation } from './validation/entity_validation.js'
6
4
  import { PropertyValidation } from './validation/property_validation.js'
5
+ import { DomainValidationSchema } from './validation/rules.js'
7
6
  import { SemanticValidation } from './validation/semantic_validation.js'
8
7
 
9
8
  /**
@@ -76,12 +75,35 @@ import { SemanticValidation } from './validation/semantic_validation.js'
76
75
  * @see {@link SemanticValidation} for detailed semantic validation rules
77
76
  */
78
77
  export class DomainValidation {
79
- private root: DataDomain
78
+ report: DomainValidationSchema[] = []
79
+ #infoCount = 0
80
+ #warningCount = 0
81
+ #errorCount = 0
82
+ #counted = false
80
83
 
81
- constructor(root: DataDomain) {
82
- this.root = root
84
+ get infoCount(): number {
85
+ if (!this.#counted) {
86
+ this.computeIssueCounters()
87
+ }
88
+ return this.#infoCount
89
+ }
90
+
91
+ get warningCount(): number {
92
+ if (!this.#counted) {
93
+ this.computeIssueCounters()
94
+ }
95
+ return this.#warningCount
96
+ }
97
+
98
+ get errorCount(): number {
99
+ if (!this.#counted) {
100
+ this.computeIssueCounters()
101
+ }
102
+ return this.#errorCount
83
103
  }
84
104
 
105
+ constructor(protected domain: DataDomain) {}
106
+
85
107
  /**
86
108
  * Performs comprehensive validation on the entire data domain.
87
109
  *
@@ -91,93 +113,54 @@ export class DomainValidation {
91
113
  *
92
114
  * @returns A comprehensive validation report with all issues found
93
115
  */
94
- validate(): DomainImpactReport {
95
- const result: DomainImpactReport = {
96
- key: '',
97
- kind: DataDomainKind,
98
- impact: [],
99
- canProceed: true,
100
- }
101
- const entityValidator = new EntityValidation(this.root)
102
- const propertyValidator = new PropertyValidation(this.root)
103
- const associationValidator = new AssociationValidation(this.root)
104
- const semanticValidator = new SemanticValidation(this.root)
116
+ validate(): DomainValidationSchema[] {
117
+ this.#counted = false
118
+ this.report = []
119
+ const entityValidator = new EntityValidation(this.domain)
120
+ const propertyValidator = new PropertyValidation(this.domain)
121
+ const associationValidator = new AssociationValidation(this.domain)
122
+ const semanticValidator = new SemanticValidation(this.domain)
105
123
 
106
124
  let hasEntities = false
107
- // Validate entities, properties, and associations
108
- for (const entity of this.root.listEntities()) {
109
- if (entity.domain.key !== this.root.key) {
125
+ for (const entity of this.domain.listEntities()) {
126
+ if (entity.domain.key !== this.domain.key) {
110
127
  // we don't need to validate foreign entities
111
128
  continue
112
129
  }
113
130
  hasEntities = true
114
- const report = entityValidator.validate(entity)
115
- for (const item of report) {
116
- const blocking = item.severity === 'error'
117
- result.canProceed = result.canProceed && !blocking
118
- result.impact.push({
119
- key: item.key,
120
- kind: item.kind,
121
- type: 'publish',
122
- impact: item.message,
123
- resolution: item.help,
124
- severity: item.severity,
125
- parent: item.parent,
126
- })
127
- }
131
+ const entities = entityValidator.validate(entity)
132
+ this.report.push(...entities)
128
133
  for (const property of entity.properties) {
129
- const report = propertyValidator.validate(property)
130
- for (const item of report) {
131
- const blocking = item.severity === 'error'
132
- result.canProceed = result.canProceed && !blocking
133
- result.impact.push({
134
- key: item.key,
135
- kind: item.kind,
136
- type: 'publish',
137
- impact: item.message,
138
- resolution: item.help,
139
- severity: item.severity,
140
- parent: item.parent,
141
- })
134
+ if (property.domain.key !== this.domain.key) {
135
+ // we don't need to validate foreign properties
136
+ continue
142
137
  }
138
+ const properties = propertyValidator.validate(property)
139
+ this.report.push(...properties)
143
140
  }
144
141
  for (const association of entity.associations) {
145
- const report = associationValidator.validate(association)
146
- for (const item of report) {
147
- const blocking = item.severity === 'error'
148
- result.canProceed = result.canProceed && !blocking
149
- result.impact.push({
150
- key: item.key,
151
- kind: item.kind,
152
- type: 'publish',
153
- impact: item.message,
154
- resolution: item.help,
155
- severity: item.severity,
156
- parent: item.parent,
157
- })
142
+ if (association.domain.key !== this.domain.key) {
143
+ // we don't need to validate foreign properties
144
+ continue
158
145
  }
146
+ const associations = associationValidator.validate(association)
147
+ this.report.push(...associations)
159
148
  }
160
149
  }
161
150
  if (!hasEntities) {
162
151
  // no entities, no need to validate anything else
163
- return result
152
+ return this.report
164
153
  }
165
154
  // Validate semantics
166
155
  const semanticReport = semanticValidator.validate()
167
- for (const item of semanticReport) {
168
- const blocking = item.severity === 'error'
169
- result.canProceed = result.canProceed && !blocking
170
- result.impact.push({
171
- key: item.key,
172
- kind: item.kind,
173
- type: 'publish',
174
- impact: item.message,
175
- resolution: item.help,
176
- severity: item.severity,
177
- parent: item.parent,
178
- })
179
- }
156
+ this.report.push(...semanticReport)
157
+ return this.report
158
+ }
180
159
 
181
- return result
160
+ computeIssueCounters(): void {
161
+ this.#infoCount = this.report.filter((validation) => validation.severity === 'info').length
162
+ this.#warningCount = this.report.filter((validation) => validation.severity === 'warning').length
163
+ this.#errorCount = this.report.filter((validation) => validation.severity === 'error').length
164
+ this.#counted = true
182
165
  }
183
166
  }
@@ -1,4 +1,4 @@
1
- import type { IApiAssociationShape } from '../../amf/definitions/Shapes.js'
1
+ import type { Shapes } from '@api-client/amf-core'
2
2
  import type { Exception } from '../../exceptions/exception.js'
3
3
  import type { AiSessionSchema } from '../../models/AiSession.js'
4
4
  import type { DomainPropertyType } from '../DataFormat.js'
@@ -150,7 +150,7 @@ export interface AiDomainAssociation {
150
150
  multiple?: boolean
151
151
  onDelete?: OnDeleteRule
152
152
  semantics?: AiDomainSemantic[]
153
- schema?: IApiAssociationShape
153
+ schema?: Shapes.IApiAssociationShape
154
154
  }
155
155
 
156
156
  /**
@@ -1,6 +1,5 @@
1
- import { nanoid } from '../nanoid.js'
2
- import uuidV4 from '../lib/uuid.js'
3
- import { DomainPropertyType } from '../modeling/DataFormat.js'
1
+ import { nanoid } from '../../nanoid.js'
2
+ import { DomainPropertyType } from '../DataFormat.js'
4
3
 
5
4
  export const noValue = Symbol('noValue')
6
5
 
@@ -56,7 +55,7 @@ export class DataValueGenerator {
56
55
  // TODO: we need more settings controlling the random string generation.
57
56
  return nanoid(8)
58
57
  case 'uuid-v4':
59
- return uuidV4()
58
+ return crypto.randomUUID()
60
59
  default:
61
60
  return noValue
62
61
  }