@api-client/core 0.19.9 → 0.19.11

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 (523) hide show
  1. package/LICENSE.md +9 -63
  2. package/Testing.md +1 -1
  3. package/bin/test.ts +1 -12
  4. package/build/src/browser.d.ts +0 -15
  5. package/build/src/browser.d.ts.map +1 -1
  6. package/build/src/browser.js +0 -17
  7. package/build/src/browser.js.map +1 -1
  8. package/build/src/decorators/observed.d.ts.map +1 -1
  9. package/build/src/decorators/observed.js +91 -0
  10. package/build/src/decorators/observed.js.map +1 -1
  11. package/build/src/events/EventTypes.d.ts +0 -6
  12. package/build/src/events/EventTypes.d.ts.map +1 -1
  13. package/build/src/events/EventTypes.js +0 -2
  14. package/build/src/events/EventTypes.js.map +1 -1
  15. package/build/src/events/Events.d.ts +0 -2
  16. package/build/src/events/Events.d.ts.map +1 -1
  17. package/build/src/events/Events.js +0 -2
  18. package/build/src/events/Events.js.map +1 -1
  19. package/build/src/index.d.ts +0 -15
  20. package/build/src/index.d.ts.map +1 -1
  21. package/build/src/index.js +0 -17
  22. package/build/src/index.js.map +1 -1
  23. package/build/src/modeling/ApiModel.d.ts +21 -7
  24. package/build/src/modeling/ApiModel.d.ts.map +1 -1
  25. package/build/src/modeling/ApiModel.js +70 -29
  26. package/build/src/modeling/ApiModel.js.map +1 -1
  27. package/build/src/modeling/Bindings.d.ts +3 -3
  28. package/build/src/modeling/Bindings.d.ts.map +1 -1
  29. package/build/src/modeling/Bindings.js.map +1 -1
  30. package/build/src/modeling/DomainAssociation.d.ts +5 -5
  31. package/build/src/modeling/DomainAssociation.d.ts.map +1 -1
  32. package/build/src/modeling/DomainAssociation.js.map +1 -1
  33. package/build/src/modeling/DomainEntity.d.ts +2 -3
  34. package/build/src/modeling/DomainEntity.d.ts.map +1 -1
  35. package/build/src/modeling/DomainEntity.js +1 -1
  36. package/build/src/modeling/DomainEntity.js.map +1 -1
  37. package/build/src/modeling/DomainProperty.d.ts +2 -3
  38. package/build/src/modeling/DomainProperty.d.ts.map +1 -1
  39. package/build/src/modeling/DomainProperty.js +1 -1
  40. package/build/src/modeling/DomainProperty.js.map +1 -1
  41. package/build/src/modeling/DomainValidation.d.ts +1 -1
  42. package/build/src/modeling/DomainValidation.d.ts.map +1 -1
  43. package/build/src/modeling/DomainValidation.js.map +1 -1
  44. package/build/src/modeling/ExposedEntity.d.ts +14 -0
  45. package/build/src/modeling/ExposedEntity.d.ts.map +1 -1
  46. package/build/src/modeling/ExposedEntity.js +59 -6
  47. package/build/src/modeling/ExposedEntity.js.map +1 -1
  48. package/build/src/modeling/actions/Action.d.ts +11 -1
  49. package/build/src/modeling/actions/Action.d.ts.map +1 -1
  50. package/build/src/modeling/actions/Action.js +21 -3
  51. package/build/src/modeling/actions/Action.js.map +1 -1
  52. package/build/src/modeling/actions/CreateAction.d.ts +2 -1
  53. package/build/src/modeling/actions/CreateAction.d.ts.map +1 -1
  54. package/build/src/modeling/actions/CreateAction.js +2 -2
  55. package/build/src/modeling/actions/CreateAction.js.map +1 -1
  56. package/build/src/modeling/actions/DeleteAction.d.ts +2 -1
  57. package/build/src/modeling/actions/DeleteAction.d.ts.map +1 -1
  58. package/build/src/modeling/actions/DeleteAction.js +2 -2
  59. package/build/src/modeling/actions/DeleteAction.js.map +1 -1
  60. package/build/src/modeling/actions/ListAction.d.ts +2 -1
  61. package/build/src/modeling/actions/ListAction.d.ts.map +1 -1
  62. package/build/src/modeling/actions/ListAction.js +2 -2
  63. package/build/src/modeling/actions/ListAction.js.map +1 -1
  64. package/build/src/modeling/actions/ReadAction.d.ts +2 -1
  65. package/build/src/modeling/actions/ReadAction.d.ts.map +1 -1
  66. package/build/src/modeling/actions/ReadAction.js +2 -2
  67. package/build/src/modeling/actions/ReadAction.js.map +1 -1
  68. package/build/src/modeling/actions/SearchAction.d.ts +2 -1
  69. package/build/src/modeling/actions/SearchAction.d.ts.map +1 -1
  70. package/build/src/modeling/actions/SearchAction.js +2 -2
  71. package/build/src/modeling/actions/SearchAction.js.map +1 -1
  72. package/build/src/modeling/actions/UpdateAction.d.ts +2 -1
  73. package/build/src/modeling/actions/UpdateAction.d.ts.map +1 -1
  74. package/build/src/modeling/actions/UpdateAction.js +2 -2
  75. package/build/src/modeling/actions/UpdateAction.js.map +1 -1
  76. package/build/src/modeling/actions/index.d.ts +2 -1
  77. package/build/src/modeling/actions/index.d.ts.map +1 -1
  78. package/build/src/modeling/actions/index.js +7 -7
  79. package/build/src/modeling/actions/index.js.map +1 -1
  80. package/build/src/modeling/ai/types.d.ts +2 -2
  81. package/build/src/modeling/ai/types.d.ts.map +1 -1
  82. package/build/src/modeling/ai/types.js.map +1 -1
  83. package/build/src/{amf → modeling/amf}/DataValueGenerator.d.ts +1 -1
  84. package/build/src/modeling/amf/DataValueGenerator.d.ts.map +1 -0
  85. package/build/src/{amf → modeling/amf}/DataValueGenerator.js +2 -3
  86. package/build/src/modeling/amf/DataValueGenerator.js.map +1 -0
  87. package/build/src/modeling/amf/ShapeGenerator.d.ts +20 -20
  88. package/build/src/modeling/amf/ShapeGenerator.d.ts.map +1 -1
  89. package/build/src/modeling/amf/ShapeGenerator.js +16 -18
  90. package/build/src/modeling/amf/ShapeGenerator.js.map +1 -1
  91. package/build/src/modeling/amf/core_types.d.ts +9 -0
  92. package/build/src/modeling/amf/core_types.d.ts.map +1 -0
  93. package/build/src/modeling/amf/core_types.js +45 -0
  94. package/build/src/modeling/amf/core_types.js.map +1 -0
  95. package/build/src/modeling/index.d.ts +1 -0
  96. package/build/src/modeling/index.d.ts.map +1 -1
  97. package/build/src/modeling/index.js +1 -0
  98. package/build/src/modeling/index.js.map +1 -1
  99. package/build/src/modeling/types.d.ts +67 -0
  100. package/build/src/modeling/types.d.ts.map +1 -1
  101. package/build/src/modeling/types.js.map +1 -1
  102. package/build/src/modeling/validation/api_model_rules.d.ts +15 -0
  103. package/build/src/modeling/validation/api_model_rules.d.ts.map +1 -0
  104. package/build/src/modeling/validation/api_model_rules.js +599 -0
  105. package/build/src/modeling/validation/api_model_rules.js.map +1 -0
  106. package/build/src/modeling/validation/association_validation.d.ts.map +1 -1
  107. package/build/src/modeling/validation/association_validation.js +1 -3
  108. package/build/src/modeling/validation/association_validation.js.map +1 -1
  109. package/build/src/models/http-flows/LegacyTranslator.js +1 -1
  110. package/build/src/models/http-flows/LegacyTranslator.js.map +1 -1
  111. package/build/src/runtime/http-runner/HttpFlows.js +1 -1
  112. package/build/src/runtime/http-runner/HttpFlows.js.map +1 -1
  113. package/build/tsconfig.tsbuildinfo +1 -1
  114. package/eslint.config.js +0 -2
  115. package/package.json +27 -135
  116. package/src/decorators/observed.ts +91 -0
  117. package/src/events/EventTypes.ts +0 -2
  118. package/src/events/Events.ts +0 -2
  119. package/src/modeling/ApiModel.ts +73 -33
  120. package/src/modeling/Bindings.ts +3 -3
  121. package/src/modeling/DomainAssociation.ts +5 -5
  122. package/src/modeling/DomainEntity.ts +3 -4
  123. package/src/modeling/DomainProperty.ts +3 -4
  124. package/src/modeling/DomainValidation.ts +1 -1
  125. package/src/modeling/ExposedEntity.ts +63 -9
  126. package/src/modeling/actions/Action.ts +25 -2
  127. package/src/modeling/actions/CreateAction.ts +3 -2
  128. package/src/modeling/actions/DeleteAction.ts +3 -2
  129. package/src/modeling/actions/ListAction.ts +3 -2
  130. package/src/modeling/actions/ReadAction.ts +3 -2
  131. package/src/modeling/actions/SearchAction.ts +3 -2
  132. package/src/modeling/actions/UpdateAction.ts +3 -2
  133. package/src/modeling/ai/types.ts +2 -2
  134. package/src/{amf → modeling/amf}/DataValueGenerator.ts +3 -4
  135. package/src/modeling/amf/ShapeGenerator.ts +45 -61
  136. package/src/modeling/amf/core_types.ts +47 -0
  137. package/src/modeling/types.ts +70 -0
  138. package/src/modeling/validation/api_model_rules.ts +640 -0
  139. package/src/modeling/validation/api_model_validation_rules.md +58 -0
  140. package/src/modeling/validation/association_validation.ts +1 -3
  141. package/src/models/http-flows/LegacyTranslator.ts +1 -1
  142. package/src/runtime/http-runner/HttpFlows.ts +1 -1
  143. package/tests/unit/modeling/actions/Action.spec.ts +40 -8
  144. package/tests/unit/modeling/actions/CreateAction.spec.ts +5 -5
  145. package/tests/unit/modeling/actions/DeleteAction.spec.ts +6 -6
  146. package/tests/unit/modeling/actions/ListAction.spec.ts +7 -7
  147. package/tests/unit/modeling/actions/ReadAction.spec.ts +6 -6
  148. package/tests/unit/modeling/actions/SearchAction.spec.ts +6 -6
  149. package/tests/unit/modeling/actions/UpdateAction.spec.ts +6 -6
  150. package/tests/unit/{amf → modeling/amf}/data_value_generator.spec.ts +2 -2
  151. package/tests/unit/modeling/amf/shape_generator.spec.ts +146 -167
  152. package/tests/unit/modeling/api_model.spec.ts +190 -13
  153. package/tests/unit/modeling/api_model_expose_entity.spec.ts +43 -19
  154. package/tests/unit/modeling/api_model_remove_entity.spec.ts +6 -6
  155. package/tests/unit/modeling/domain_asociation.spec.ts +13 -13
  156. package/tests/unit/modeling/exposed_entity.spec.ts +123 -3
  157. package/tests/unit/modeling/exposed_entity_actions.spec.ts +41 -18
  158. package/tests/unit/modeling/exposed_entity_setter_validation.spec.ts +1 -1
  159. package/tests/unit/modeling/rules/restoring_rules.spec.ts +9 -5
  160. package/tests/unit/modeling/validation/api_model_rules.spec.ts +324 -0
  161. package/tests/unit/runtime/runners/http_assertion_runner.spec.ts +1 -1
  162. package/tests/unit/runtime/runners/http_flow_runner.spec.ts +1 -1
  163. package/tests/unit/runtime/runners/project_runner.spec.ts +1 -1
  164. package/tests/unit/runtime/runners/request_runner.spec.ts +1 -1
  165. package/tests/unit/runtime/runners/serial_runner.spec.ts +1 -1
  166. package/tsconfig.browser.json +1 -1
  167. package/tsconfig.node.json +1 -1
  168. package/bin/test-web.ts +0 -6
  169. package/build/src/amf/AmfMixin.d.ts +0 -396
  170. package/build/src/amf/AmfMixin.d.ts.map +0 -1
  171. package/build/src/amf/AmfMixin.js +0 -1138
  172. package/build/src/amf/AmfMixin.js.map +0 -1
  173. package/build/src/amf/AmfSerializer.d.ts +0 -137
  174. package/build/src/amf/AmfSerializer.d.ts.map +0 -1
  175. package/build/src/amf/AmfSerializer.js +0 -1947
  176. package/build/src/amf/AmfSerializer.js.map +0 -1
  177. package/build/src/amf/AmfTypes.d.ts +0 -25
  178. package/build/src/amf/AmfTypes.d.ts.map +0 -1
  179. package/build/src/amf/AmfTypes.js +0 -143
  180. package/build/src/amf/AmfTypes.js.map +0 -1
  181. package/build/src/amf/ApiExampleGenerator.d.ts +0 -40
  182. package/build/src/amf/ApiExampleGenerator.d.ts.map +0 -1
  183. package/build/src/amf/ApiExampleGenerator.js +0 -112
  184. package/build/src/amf/ApiExampleGenerator.js.map +0 -1
  185. package/build/src/amf/ApiMonacoSchemaGenerator.d.ts +0 -68
  186. package/build/src/amf/ApiMonacoSchemaGenerator.d.ts.map +0 -1
  187. package/build/src/amf/ApiMonacoSchemaGenerator.js +0 -248
  188. package/build/src/amf/ApiMonacoSchemaGenerator.js.map +0 -1
  189. package/build/src/amf/ApiSchemaGenerator.d.ts +0 -56
  190. package/build/src/amf/ApiSchemaGenerator.d.ts.map +0 -1
  191. package/build/src/amf/ApiSchemaGenerator.js +0 -94
  192. package/build/src/amf/ApiSchemaGenerator.js.map +0 -1
  193. package/build/src/amf/ApiSchemaValues.d.ts +0 -111
  194. package/build/src/amf/ApiSchemaValues.d.ts.map +0 -1
  195. package/build/src/amf/ApiSchemaValues.js +0 -463
  196. package/build/src/amf/ApiSchemaValues.js.map +0 -1
  197. package/build/src/amf/DataValueGenerator.d.ts.map +0 -1
  198. package/build/src/amf/DataValueGenerator.js.map +0 -1
  199. package/build/src/amf/Parsing.d.ts +0 -48
  200. package/build/src/amf/Parsing.d.ts.map +0 -1
  201. package/build/src/amf/Parsing.js +0 -2
  202. package/build/src/amf/Parsing.js.map +0 -1
  203. package/build/src/amf/Utils.d.ts +0 -37
  204. package/build/src/amf/Utils.d.ts.map +0 -1
  205. package/build/src/amf/Utils.js +0 -169
  206. package/build/src/amf/Utils.js.map +0 -1
  207. package/build/src/amf/data-node/DataNodeBase.d.ts +0 -34
  208. package/build/src/amf/data-node/DataNodeBase.d.ts.map +0 -1
  209. package/build/src/amf/data-node/DataNodeBase.js +0 -77
  210. package/build/src/amf/data-node/DataNodeBase.js.map +0 -1
  211. package/build/src/amf/data-node/JsonDataNodeGenerator.d.ts +0 -15
  212. package/build/src/amf/data-node/JsonDataNodeGenerator.d.ts.map +0 -1
  213. package/build/src/amf/data-node/JsonDataNodeGenerator.js +0 -23
  214. package/build/src/amf/data-node/JsonDataNodeGenerator.js.map +0 -1
  215. package/build/src/amf/data-node/UrlEncodedDataNodeGenerator.d.ts +0 -14
  216. package/build/src/amf/data-node/UrlEncodedDataNodeGenerator.d.ts.map +0 -1
  217. package/build/src/amf/data-node/UrlEncodedDataNodeGenerator.js +0 -48
  218. package/build/src/amf/data-node/UrlEncodedDataNodeGenerator.js.map +0 -1
  219. package/build/src/amf/data-node/XmlDataNodeGenerator.d.ts +0 -22
  220. package/build/src/amf/data-node/XmlDataNodeGenerator.d.ts.map +0 -1
  221. package/build/src/amf/data-node/XmlDataNodeGenerator.js +0 -34
  222. package/build/src/amf/data-node/XmlDataNodeGenerator.js.map +0 -1
  223. package/build/src/amf/definitions/Amf.d.ts +0 -363
  224. package/build/src/amf/definitions/Amf.d.ts.map +0 -1
  225. package/build/src/amf/definitions/Amf.js +0 -3
  226. package/build/src/amf/definitions/Amf.js.map +0 -1
  227. package/build/src/amf/definitions/Api.d.ts +0 -383
  228. package/build/src/amf/definitions/Api.d.ts.map +0 -1
  229. package/build/src/amf/definitions/Api.js +0 -2
  230. package/build/src/amf/definitions/Api.js.map +0 -1
  231. package/build/src/amf/definitions/Base.d.ts +0 -12
  232. package/build/src/amf/definitions/Base.d.ts.map +0 -1
  233. package/build/src/amf/definitions/Base.js +0 -2
  234. package/build/src/amf/definitions/Base.js.map +0 -1
  235. package/build/src/amf/definitions/Namespace.d.ts +0 -327
  236. package/build/src/amf/definitions/Namespace.d.ts.map +0 -1
  237. package/build/src/amf/definitions/Namespace.js +0 -346
  238. package/build/src/amf/definitions/Namespace.js.map +0 -1
  239. package/build/src/amf/definitions/Shapes.d.ts +0 -312
  240. package/build/src/amf/definitions/Shapes.d.ts.map +0 -1
  241. package/build/src/amf/definitions/Shapes.js +0 -87
  242. package/build/src/amf/definitions/Shapes.js.map +0 -1
  243. package/build/src/amf/models/AmfDataNode.d.ts +0 -67
  244. package/build/src/amf/models/AmfDataNode.d.ts.map +0 -1
  245. package/build/src/amf/models/AmfDataNode.js +0 -192
  246. package/build/src/amf/models/AmfDataNode.js.map +0 -1
  247. package/build/src/amf/shape/ShapeBase.d.ts +0 -74
  248. package/build/src/amf/shape/ShapeBase.d.ts.map +0 -1
  249. package/build/src/amf/shape/ShapeBase.js +0 -93
  250. package/build/src/amf/shape/ShapeBase.js.map +0 -1
  251. package/build/src/amf/shape/ShapeJsonSchemaGenerator.d.ts +0 -47
  252. package/build/src/amf/shape/ShapeJsonSchemaGenerator.d.ts.map +0 -1
  253. package/build/src/amf/shape/ShapeJsonSchemaGenerator.js +0 -420
  254. package/build/src/amf/shape/ShapeJsonSchemaGenerator.js.map +0 -1
  255. package/build/src/amf/shape/ShapeXmlSchemaGenerator.d.ts +0 -85
  256. package/build/src/amf/shape/ShapeXmlSchemaGenerator.d.ts.map +0 -1
  257. package/build/src/amf/shape/ShapeXmlSchemaGenerator.js +0 -852
  258. package/build/src/amf/shape/ShapeXmlSchemaGenerator.js.map +0 -1
  259. package/build/src/events/amf/AmfEventTypes.d.ts +0 -7
  260. package/build/src/events/amf/AmfEventTypes.d.ts.map +0 -1
  261. package/build/src/events/amf/AmfEventTypes.js +0 -7
  262. package/build/src/events/amf/AmfEventTypes.js.map +0 -1
  263. package/build/src/events/amf/AmfEvents.d.ts +0 -34
  264. package/build/src/events/amf/AmfEvents.d.ts.map +0 -1
  265. package/build/src/events/amf/AmfEvents.js +0 -63
  266. package/build/src/events/amf/AmfEvents.js.map +0 -1
  267. package/build/src/mocking/RandExp.d.ts +0 -55
  268. package/build/src/mocking/RandExp.d.ts.map +0 -1
  269. package/build/src/mocking/RandExp.js +0 -302
  270. package/build/src/mocking/RandExp.js.map +0 -1
  271. package/build/src/mocking/lib/ret.d.ts +0 -16
  272. package/build/src/mocking/lib/ret.d.ts.map +0 -1
  273. package/build/src/mocking/lib/ret.js +0 -284
  274. package/build/src/mocking/lib/ret.js.map +0 -1
  275. package/data/apis/APIC-187/APIC-187.raml +0 -21
  276. package/data/apis/APIC-187/dataType.raml +0 -132
  277. package/data/apis/APIC-187/example.raml +0 -84
  278. package/data/apis/APIC-188/APIC-188.raml +0 -21
  279. package/data/apis/APIC-188/dataType.raml +0 -132
  280. package/data/apis/APIC-188/example.raml +0 -84
  281. package/data/apis/APIC-233/APIC-233.raml +0 -15
  282. package/data/apis/APIC-391/APIC-391.raml +0 -44
  283. package/data/apis/APIC-391/examples/post-body-request-example.raml +0 -7
  284. package/data/apis/APIC-483/APIC-483.raml +0 -16
  285. package/data/apis/APIC-483/example/list-of-bank-succ.json +0 -32
  286. package/data/apis/APIC-483/schema/response-retrieve-list-bank.json +0 -68
  287. package/data/apis/APIC-487/APIC-487.raml +0 -36
  288. package/data/apis/APIC-655/APIC-655.raml +0 -44
  289. package/data/apis/APIC-655/delivery.json +0 -12
  290. package/data/apis/APIC-689/APIC-689.raml +0 -20
  291. package/data/apis/APIC-690/APIC-690.raml +0 -17
  292. package/data/apis/APIC-690/datatypes/Address.raml +0 -10
  293. package/data/apis/APIC-690/datatypes/Customer.raml +0 -17
  294. package/data/apis/APIC-690/examples/CustomerExample2.raml +0 -17
  295. package/data/apis/APIC-690/examples/CustomersExample.raml +0 -34
  296. package/data/apis/SE-10469/Purchase-Order-oagis-id-dd32f9c6c01048a19e15c423c9c741ae.json +0 -1383
  297. package/data/apis/SE-10469/SE-10469.raml +0 -11
  298. package/data/apis/SE-13092/Examples/PersonExample.raml +0 -7
  299. package/data/apis/SE-13092/SE-13092.raml +0 -37
  300. package/data/apis/SE-13092/datatypes/Address.raml +0 -5
  301. package/data/apis/SE-13092/datatypes/InlineType.raml +0 -5
  302. package/data/apis/SE-13092/datatypes/Person.raml +0 -15
  303. package/data/apis/SE-22063/SE-22063.raml +0 -14
  304. package/data/apis/SE-22063/stock.raml +0 -41
  305. package/data/apis/amf-helper-api/amf-helper-api.raml +0 -1024
  306. package/data/apis/amf-helper-api/examples/comment-example.json +0 -42
  307. package/data/apis/amf-helper-api/examples/commentCreateRequest-example.json +0 -7
  308. package/data/apis/amf-helper-api/examples/commentList-example.json +0 -48
  309. package/data/apis/amf-helper-api/examples/person.json +0 -14
  310. package/data/apis/amf-helper-api/examples/person.raml +0 -13
  311. package/data/apis/amf-helper-api/examples/person.xml +0 -14
  312. package/data/apis/amf-helper-api/libraries/comment-lib.raml +0 -143
  313. package/data/apis/amf-helper-api/library.raml +0 -7
  314. package/data/apis/amf-helper-api/schemas/person.json +0 -104
  315. package/data/apis/amf-helper-api/schemas/person.xsd +0 -26
  316. package/data/apis/amf-helper-api/traits/file.raml +0 -33
  317. package/data/apis/amf-helper-api/traits/pagination.raml +0 -80
  318. package/data/apis/amf-helper-api/traits/results.raml +0 -19
  319. package/data/apis/amf-helper-api/traits/visibility.raml +0 -14
  320. package/data/apis/amf-helper-api/types/app-person.raml +0 -101
  321. package/data/apis/amf-helper-api/types/dimensions.raml +0 -24
  322. package/data/apis/amf-helper-api/types/external-type.raml +0 -7
  323. package/data/apis/amf-helper-api/types/image.raml +0 -23
  324. package/data/apis/amf-helper-api/types/product.raml +0 -52
  325. package/data/apis/amf-helper-api/types/resource.raml +0 -11
  326. package/data/apis/amf-helper-api/types/standard-request.raml +0 -50
  327. package/data/apis/amf-helper-api/types/user.raml +0 -37
  328. package/data/apis/arc-demo-api/arc-demo-api.raml +0 -468
  329. package/data/apis/arc-demo-api/examples/e400.xml +0 -4
  330. package/data/apis/arc-demo-api/examples/e401.xml +0 -4
  331. package/data/apis/arc-demo-api/examples/e404.xml +0 -4
  332. package/data/apis/arc-demo-api/examples/image.xml +0 -5
  333. package/data/apis/arc-demo-api/examples/messages-example.json +0 -22
  334. package/data/apis/arc-demo-api/examples/messages-sent-example.json +0 -15
  335. package/data/apis/arc-demo-api/examples/person.json +0 -14
  336. package/data/apis/arc-demo-api/examples/person.url.encoded +0 -1
  337. package/data/apis/arc-demo-api/examples/person.xml +0 -14
  338. package/data/apis/arc-demo-api/examples/product.xml +0 -9
  339. package/data/apis/arc-demo-api/library.raml +0 -36
  340. package/data/apis/arc-demo-api/resourceTypes/app-person.raml +0 -49
  341. package/data/apis/arc-demo-api/resourceTypes/example-types.raml +0 -45
  342. package/data/apis/arc-demo-api/resourceTypes/image.raml +0 -23
  343. package/data/apis/arc-demo-api/resourceTypes/message-sent-type.raml +0 -23
  344. package/data/apis/arc-demo-api/resourceTypes/message-type.raml +0 -33
  345. package/data/apis/arc-demo-api/resourceTypes/product.raml +0 -52
  346. package/data/apis/arc-demo-api/resourceTypes/resource.raml +0 -11
  347. package/data/apis/arc-demo-api/schemas/error-response.xsd +0 -11
  348. package/data/apis/arc-demo-api/schemas/image.xsd +0 -11
  349. package/data/apis/arc-demo-api/schemas/person.json +0 -104
  350. package/data/apis/arc-demo-api/schemas/person.xsd +0 -26
  351. package/data/apis/arc-demo-api/schemas/product.xsd +0 -17
  352. package/data/apis/arc-demo-api/securitySchemes/basic.raml +0 -5
  353. package/data/apis/arc-demo-api/securitySchemes/oauth_2_0.raml +0 -29
  354. package/data/apis/arc-demo-api/securitySchemes/x-custom.raml +0 -26
  355. package/data/apis/arc-demo-api/traits/adminable.raml +0 -23
  356. package/data/apis/arc-demo-api/traits/pagination.raml +0 -83
  357. package/data/apis/arc-demo-api/traits/rate-limited.raml +0 -9
  358. package/data/apis/async-api/async-api.yaml +0 -96
  359. package/data/apis/example-generator-api/contact-email-example.raml +0 -6
  360. package/data/apis/example-generator-api/contact-example.raml +0 -5
  361. package/data/apis/example-generator-api/contact-fax-example.raml +0 -5
  362. package/data/apis/example-generator-api/contact-website-example.raml +0 -2
  363. package/data/apis/example-generator-api/example-1.raml +0 -6
  364. package/data/apis/example-generator-api/example-2.raml +0 -9
  365. package/data/apis/example-generator-api/example-3.raml +0 -4
  366. package/data/apis/example-generator-api/example-4.raml +0 -2
  367. package/data/apis/example-generator-api/example-5.raml +0 -4
  368. package/data/apis/example-generator-api/example-6.raml +0 -2
  369. package/data/apis/example-generator-api/example-7.raml +0 -5
  370. package/data/apis/example-generator-api/example-generator-api.raml +0 -423
  371. package/data/apis/example-generator-api/example.json +0 -14
  372. package/data/apis/example-generator-api/example.xml +0 -15
  373. package/data/apis/example-generator-api/example.xsd +0 -26
  374. package/data/apis/example-generator-api/examples/employee.raml +0 -7
  375. package/data/apis/example-generator-api/examples/employees.raml +0 -7
  376. package/data/apis/example-generator-api/linked-named-example.raml +0 -21
  377. package/data/apis/example-generator-api/named-example-with-link.raml +0 -5
  378. package/data/apis/example-generator-api/named-example.raml +0 -9
  379. package/data/apis/example-generator-api/user-json-example.raml +0 -17
  380. package/data/apis/example-generator-api/user-raml-example.raml +0 -37
  381. package/data/apis/example-generator-api/user.json +0 -8
  382. package/data/apis/example-generator-api/user.raml +0 -18
  383. package/data/apis/example-generator-api/users-json-example.raml +0 -17
  384. package/data/apis/example-generator-api/users-raml-example.raml +0 -32
  385. package/data/apis/example-generator-api/users.json +0 -8
  386. package/data/apis/expanded-api/expanded-api.raml +0 -8
  387. package/data/apis/flattened-api/flattened-api.raml +0 -8
  388. package/data/apis/multiple-servers/multiple-servers.yaml +0 -112
  389. package/data/apis/oas-3-api/oas-3-api.yaml +0 -356
  390. package/data/apis/oas-date/oas-date.yaml +0 -28
  391. package/data/apis/oas-types/oas-types.yaml +0 -159
  392. package/data/apis/oas-unions/oas-unions.yaml +0 -75
  393. package/data/apis/petstore/petstore.yaml +0 -954
  394. package/data/apis/raml-date/raml-date.raml +0 -28
  395. package/data/apis/recursive/recursive.raml +0 -14
  396. package/data/apis/schema-api/examples/person.json +0 -14
  397. package/data/apis/schema-api/examples/person.raml +0 -14
  398. package/data/apis/schema-api/examples/person.url.encoded +0 -1
  399. package/data/apis/schema-api/examples/person.xml +0 -14
  400. package/data/apis/schema-api/library/demo-types.raml +0 -43
  401. package/data/apis/schema-api/schema-api.raml +0 -656
  402. package/data/apis/schema-api/schemas/person.json +0 -104
  403. package/data/apis/schema-api/schemas/person.xsd +0 -26
  404. package/data/apis/schema-api/types/DemoPerson.raml +0 -67
  405. package/data/apis/secured-api/oauth-2-custom-settings.raml +0 -143
  406. package/data/apis/secured-api/oauth2-header-delivery.raml +0 -13
  407. package/data/apis/secured-api/oauth2-no-delivery.raml +0 -8
  408. package/data/apis/secured-api/oauth2-no-grants.raml +0 -12
  409. package/data/apis/secured-api/oauth2-pkce.raml +0 -13
  410. package/data/apis/secured-api/oauth2-query-delivery.raml +0 -13
  411. package/data/apis/secured-api/oauth_1_0.raml +0 -8
  412. package/data/apis/secured-api/oauth_1_0_no-settings.raml +0 -3
  413. package/data/apis/secured-api/oauth_1_0_no-signature.raml +0 -7
  414. package/data/apis/secured-api/oauth_1_0_signature.raml +0 -8
  415. package/data/apis/secured-api/passthrough-querystring.raml +0 -16
  416. package/data/apis/secured-api/passthrough.raml +0 -24
  417. package/data/apis/secured-api/secured-api.raml +0 -231
  418. package/data/apis/secured-api/x-custom.raml +0 -33
  419. package/data/apis/secured-api/x-other.raml +0 -29
  420. package/data/apis/secured-api/x-query-string.raml +0 -16
  421. package/data/apis/tracked-examples/datatypes/employee.raml +0 -5
  422. package/data/apis/tracked-examples/examples/employee.raml +0 -4
  423. package/data/apis/tracked-examples/examples/employees.raml +0 -8
  424. package/data/apis/tracked-examples/tracked-to-linked.raml +0 -28
  425. package/data/model.js +0 -129
  426. package/data/models/APIC-187.json +0 -11416
  427. package/data/models/APIC-188.json +0 -11416
  428. package/data/models/APIC-233.json +0 -539
  429. package/data/models/APIC-391.json +0 -1903
  430. package/data/models/APIC-483.json +0 -3110
  431. package/data/models/APIC-487.json +0 -1225
  432. package/data/models/APIC-655.json +0 -3145
  433. package/data/models/APIC-689.json +0 -797
  434. package/data/models/APIC-690.json +0 -5992
  435. package/data/models/SE-10469.json +0 -22898
  436. package/data/models/SE-13092.json +0 -2769
  437. package/data/models/SE-22063.json +0 -2314
  438. package/data/models/amf-helper-api.json +0 -84457
  439. package/data/models/arc-demo-api.json +0 -52041
  440. package/data/models/async-api.json +0 -3227
  441. package/data/models/example-generator-api.json +0 -45209
  442. package/data/models/expanded-api.json +0 -251
  443. package/data/models/flattened-api.json +0 -251
  444. package/data/models/multiple-servers.json +0 -2769
  445. package/data/models/oas-3-api.json +0 -10590
  446. package/data/models/oas-date.json +0 -637
  447. package/data/models/oas-types.json +0 -5352
  448. package/data/models/oas-unions.json +0 -1935
  449. package/data/models/petstore.json +0 -27712
  450. package/data/models/raml-date.json +0 -1114
  451. package/data/models/recursive.json +0 -610
  452. package/data/models/schema-api.json +0 -35527
  453. package/data/models/secured-api.json +0 -21071
  454. package/data/models/tracked-to-linked.json +0 -1914
  455. package/src/amf/AmfMixin.ts +0 -1726
  456. package/src/amf/AmfSerializer.ts +0 -2358
  457. package/src/amf/AmfTypes.ts +0 -147
  458. package/src/amf/ApiExampleGenerator.ts +0 -122
  459. package/src/amf/ApiMonacoSchemaGenerator.ts +0 -332
  460. package/src/amf/ApiSchemaGenerator.ts +0 -115
  461. package/src/amf/ApiSchemaValues.ts +0 -509
  462. package/src/amf/Parsing.ts +0 -50
  463. package/src/amf/Utils.ts +0 -172
  464. package/src/amf/data-node/DataNodeBase.ts +0 -83
  465. package/src/amf/data-node/JsonDataNodeGenerator.ts +0 -24
  466. package/src/amf/data-node/README.md +0 -3
  467. package/src/amf/data-node/UrlEncodedDataNodeGenerator.ts +0 -49
  468. package/src/amf/data-node/XmlDataNodeGenerator.ts +0 -46
  469. package/src/amf/definitions/Amf.ts +0 -440
  470. package/src/amf/definitions/Api.ts +0 -445
  471. package/src/amf/definitions/Base.ts +0 -13
  472. package/src/amf/definitions/Namespace.ts +0 -357
  473. package/src/amf/definitions/Shapes.ts +0 -438
  474. package/src/amf/models/AmfDataNode.ts +0 -210
  475. package/src/amf/shape/README.md +0 -4
  476. package/src/amf/shape/ShapeBase.ts +0 -174
  477. package/src/amf/shape/ShapeJsonSchemaGenerator.ts +0 -457
  478. package/src/amf/shape/ShapeXmlSchemaGenerator.ts +0 -933
  479. package/src/events/amf/AmfEventTypes.ts +0 -6
  480. package/src/events/amf/AmfEvents.ts +0 -78
  481. package/src/mocking/RandExp.ts +0 -335
  482. package/src/mocking/lib/ret.ts +0 -279
  483. package/tests/unit/amf/APIC-187.spec.ts +0 -41
  484. package/tests/unit/amf/APIC-188.spec.ts +0 -30
  485. package/tests/unit/amf/APIC-233.spec.ts +0 -32
  486. package/tests/unit/amf/APIC-391.spec.ts +0 -39
  487. package/tests/unit/amf/APIC-487.spec.ts +0 -44
  488. package/tests/unit/amf/APIC-655.spec.ts +0 -41
  489. package/tests/unit/amf/APIC-689.spec.ts +0 -28
  490. package/tests/unit/amf/APIC-690.spec.ts +0 -93
  491. package/tests/unit/amf/AmfLoader.ts +0 -538
  492. package/tests/unit/amf/AmfMixin.spec.ts +0 -1707
  493. package/tests/unit/amf/ApiExampleGenerator.spec.ts +0 -250
  494. package/tests/unit/amf/ApiMonacoSchemaGenerator.spec.ts +0 -183
  495. package/tests/unit/amf/ApiSchemaValues.spec.ts +0 -602
  496. package/tests/unit/amf/Namepsace.spec.ts +0 -494
  497. package/tests/unit/amf/SE-10469.spec.ts +0 -35
  498. package/tests/unit/amf/SE-13092.spec.ts +0 -64
  499. package/tests/unit/amf/SE-22063.spec.ts +0 -45
  500. package/tests/unit/amf/raml-examples.spec.ts +0 -43
  501. package/tests/unit/amf/schema_gen_array.spec.ts +0 -199
  502. package/tests/unit/amf/schema_gen_oas.spec.ts +0 -140
  503. package/tests/unit/amf/schema_gen_object.spec.ts +0 -279
  504. package/tests/unit/amf/schema_gen_scalar.spec.ts +0 -143
  505. package/tests/unit/amf/schema_gen_union.spec.ts +0 -401
  506. package/tests/unit/amf/schema_gen_unknown.spec.ts +0 -42
  507. package/tests/unit/amf/schema_gen_xml.spec.ts +0 -726
  508. package/tests/unit/amf/serializer/APIC-483.spec.ts +0 -36
  509. package/tests/unit/amf/serializer/Anotations.spec.ts +0 -50
  510. package/tests/unit/amf/serializer/Api.spec.ts +0 -210
  511. package/tests/unit/amf/serializer/Documentation.spec.ts +0 -52
  512. package/tests/unit/amf/serializer/Endpoints.spec.ts +0 -172
  513. package/tests/unit/amf/serializer/Operations.spec.ts +0 -330
  514. package/tests/unit/amf/serializer/Parameters.spec.ts +0 -149
  515. package/tests/unit/amf/serializer/PayloadExamples.spec.ts +0 -152
  516. package/tests/unit/amf/serializer/Security.spec.ts +0 -626
  517. package/tests/unit/amf/serializer/Server.spec.ts +0 -78
  518. package/tests/unit/amf/serializer/Shapes.spec.ts +0 -304
  519. package/tests/unit/amf/serializer/SourceMaps.spec.ts +0 -52
  520. package/tests/unit/amf/shapes/ShapeXmlSchemaGenerator.spec.ts +0 -28
  521. package/tests/unit/amf/tracked-to-linked.spec.ts +0 -90
  522. package/tests/unit/amf/xml-data-processing.spec.ts +0 -217
  523. package/tests/unit/events/amf.spec.ts +0 -151
package/eslint.config.js CHANGED
@@ -16,7 +16,6 @@ export const GLOBAL_IGNORE_LIST = [
16
16
  '.tmp/',
17
17
  '.rollup.cache/',
18
18
  '.vscode/',
19
- '.wireit/',
20
19
  'amf-models/',
21
20
  'build/',
22
21
  'coverage/',
@@ -81,7 +80,6 @@ export default [
81
80
  'src/models/SerializablePayload.ts',
82
81
  'src/lib/calculators/DataCalculator.ts',
83
82
  'src/lib/Buffer.ts',
84
- 'src/events/amf/AmfEvents.ts',
85
83
  'src/authorization/lib/SecurityProcessor.ts',
86
84
  ],
87
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.9",
5
- "license": "Apache-2.0",
4
+ "version": "0.19.11",
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,13 +106,9 @@
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
- "@rollup/plugin-typescript": "^12.1.2",
119
112
  "@types/chai-as-promised": "^8.0.2",
120
113
  "@types/cors": "^2.8.12",
121
114
  "@types/express-ntlm": "^2.3.3",
@@ -125,10 +118,10 @@
125
118
  "@types/node": "^25.0.6",
126
119
  "@types/sinon": "^21.0.0",
127
120
  "@web/dev-server": "^0.4.6",
121
+ "@web/dev-server-esbuild": "^1.0.5",
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,149 +141,48 @@
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
- "typescript-eslint": "^8.24.1",
155
- "wireit": "^0.14.4"
146
+ "typescript-eslint": "^8.24.1"
156
147
  },
157
148
  "scripts": {
158
- "build:browser": "wireit",
159
- "build:ts": "wireit",
160
- "build:node": "wireit",
149
+ "build:browser": "tsc --project tsconfig.browser.json",
150
+ "build:ts": "tsc --project tsconfig.json",
151
+ "build:node": "tsc --project tsconfig.node.json",
161
152
  "build": "npm run build:ts && npm run copy:assets",
162
- "prepare": "husky && npm run fixes && npm run build:ts && npm run build:api-models",
153
+ "prepare": "husky && npm run fixes && npm run build:ts",
163
154
  "fixes": "node scripts/fix-rollup-plugin.js",
164
- "tsc": "wireit",
165
- "tsc:tests": "wireit",
166
- "tsc:watch": "wireit",
167
- "test:browser": "node --import ts-node-maintained/register/esm --enable-source-maps bin/test-web.ts --playwright --browsers chromium",
168
- "test:browser:watch": "node --import ts-node-maintained/register/esm --enable-source-maps bin/test-web.ts --watch --playwright --browsers chromium",
169
- "test": "wireit",
170
- "test:coverage": "wireit",
155
+ "tsc": "tsc",
156
+ "tsc:tests": "tsc --project tsconfig.browser.json",
157
+ "tsc:watch": "tsc --watch --project tsconfig.json",
158
+ "test:browser": "wtr --playwright --browsers chromium",
159
+ "test:browser:watch": "wtr --watch --playwright --browsers chromium",
160
+ "test": "npm run test:node && npm run test:browser",
161
+ "test:coverage": "npm run test:node:coverage && npm run test:browser",
171
162
  "test:node": "node --import ts-node-maintained/register/esm --enable-source-maps bin/test.ts",
172
163
  "test:node:coverage": "c8 --reporter lcov --reporter text node --import ts-node-maintained/register/esm --enable-source-maps bin/test.ts",
173
- "build:api-models": "node data/model.js",
174
164
  "copy:assets": "cp -f ./oauth-popup.html ./build/oauth-popup.html",
175
165
  "start": "echo \"Use the npm run dev instead\"",
176
166
  "lint": "npm run lint:prettier && npm run lint:eslint",
177
- "lint:eslint": "wireit",
178
- "lint:prettier": "wireit",
167
+ "lint:eslint": "eslint --color --cache --cache-location .eslintcache .",
168
+ "lint:prettier": "prettier \"**/*.ts\" --check",
179
169
  "format": "npm run format:prettier && npm run format:prettier",
180
- "format:prettier": "wireit",
181
- "format:eslint": "wireit",
170
+ "format:prettier": "prettier \"**/*.ts\" --write",
171
+ "format:eslint": "eslint --color --cache --fix --cache-location .eslintcache .",
182
172
  "release": "node scripts/release.js",
183
173
  "release:patch": "node scripts/release.js patch",
184
174
  "release:minor": "node scripts/release.js minor",
185
175
  "release:major": "node scripts/release.js major"
186
176
  },
187
- "wireit": {
188
- "test": {
189
- "command": "npm run test:node && npm run test:browser"
190
- },
191
- "test:coverage": {
192
- "command": "npm run test:node:coverage && npm run test:browser"
193
- },
194
- "tsc:watch": {
195
- "command": "tsc --watch --project tsconfig.json",
196
- "files": [
197
- "src/**/*.ts",
198
- "tsconfig.json"
199
- ],
200
- "output": [
201
- "build/**",
202
- ".tsbuildinfo"
203
- ]
204
- },
205
- "tsc": {
206
- "command": "tsc",
207
- "files": [
208
- "src/**/*.ts",
209
- "tsconfig.json"
210
- ],
211
- "output": [
212
- "build/**",
213
- ".tsbuildinfo"
214
- ]
215
- },
216
- "tsc:tests": {
217
- "command": "tsc --project tsconfig.browser.json",
218
- "clean": "if-file-deleted",
219
- "files": [
220
- "src/**/*.ts",
221
- "test/**/*.ts",
222
- "tests/**/*.ts",
223
- "tsconfig.browser.json"
224
- ],
225
- "output": [
226
- ".tmp/**",
227
- ".tmp/testing/tsconfig.browser.tsbuildinfo"
228
- ]
229
- },
230
- "build:ts": {
231
- "command": "tsc --project tsconfig.json",
232
- "clean": "if-file-deleted",
233
- "files": [
234
- "src/**/*.ts",
235
- "tsconfig.json"
236
- ],
237
- "output": [
238
- "build/**",
239
- "build/tsconfig.tsbuildinfo"
240
- ]
241
- },
242
- "build:browser": {
243
- "command": "tsc --project tsconfig.browser.json",
244
- "clean": "if-file-deleted",
245
- "files": [
246
- "src/**/*.ts",
247
- "test/**/*.ts",
248
- "tsconfig.browser.json"
249
- ],
250
- "output": [
251
- ".tmp/testing/**",
252
- ".tmp/testing/tsconfig.browser.tsbuildinfo"
253
- ]
254
- },
255
- "build:node": {
256
- "command": "tsc --project tsconfig.node.json",
257
- "clean": "if-file-deleted",
258
- "files": [
259
- "src/**/*.ts",
260
- "tests/**/*.ts",
261
- "tsconfig.node.json"
262
- ],
263
- "output": [
264
- ".tmp/node/**",
265
- ".tmp/node/tsconfig.node.tsbuildinfo"
266
- ]
267
- },
268
- "lint:eslint": {
269
- "command": "eslint --color --cache --cache-location .eslintcache .",
270
- "files": [
271
- "src/**/*.ts",
272
- "eslint.config.js"
273
- ],
274
- "output": []
275
- },
276
- "lint:prettier": {
277
- "command": "prettier \"**/*.ts\" --check"
278
- },
279
- "format:eslint": {
280
- "command": "eslint --color --cache --fix --cache-location .eslintcache .",
281
- "files": [
282
- "src/**/*.ts",
283
- "eslint.config.js"
284
- ],
285
- "output": []
286
- },
287
- "format:prettier": {
288
- "command": "prettier \"**/*.ts\" --write"
289
- }
290
- },
291
177
  "lint-staged": {
178
+ "*.js": [
179
+ "eslint --fix"
180
+ ],
292
181
  "*.ts": [
293
- "npm run format"
182
+ "eslint --fix"
183
+ ],
184
+ "*.json": [
185
+ "prettier --write"
294
186
  ]
295
187
  },
296
188
  "engines": {
@@ -166,6 +166,75 @@ export function observed(config: ObserveConfig = {}): PropertyDecorator {
166
166
  return target
167
167
  }
168
168
  const value = Reflect.get(target, prop)
169
+ if (typeof value === 'function') {
170
+ if (target instanceof Map || target instanceof Set) {
171
+ if (['set', 'add', 'delete', 'clear'].includes(prop as string)) {
172
+ return (...args: any[]) => {
173
+ if (prop === 'set' && (target as Map<any, any>).get(args[0]) === args[1]) {
174
+ return target
175
+ }
176
+ if (prop === 'delete' && !target.has(args[0])) {
177
+ return false
178
+ }
179
+ if (prop === 'clear' && target.size === 0) {
180
+ return undefined
181
+ }
182
+ const result = value.apply(target, args)
183
+ notifyChange()
184
+ return result
185
+ }
186
+ }
187
+ if (prop === 'get') {
188
+ return (...args: any[]) => {
189
+ const result = value.apply(target, args)
190
+ return createDeepProxy.bind(targetObject)(result, notifyChange)
191
+ }
192
+ }
193
+ if (prop === 'values' || prop === 'keys' || prop === 'entries') {
194
+ return (...args: any[]) => {
195
+ const iterator = value.apply(target, args)
196
+ return {
197
+ [Symbol.iterator]() {
198
+ return this
199
+ },
200
+ next() {
201
+ const result = iterator.next()
202
+ if (result.done) return result
203
+ if (prop === 'entries') {
204
+ return {
205
+ done: false,
206
+ value: [result.value[0], createDeepProxy.bind(targetObject)(result.value[1], notifyChange)],
207
+ }
208
+ }
209
+ if (prop === 'keys') {
210
+ return result
211
+ }
212
+ return {
213
+ done: false,
214
+ value: createDeepProxy.bind(targetObject)(result.value, notifyChange),
215
+ }
216
+ },
217
+ }
218
+ }
219
+ }
220
+ if (prop === 'forEach') {
221
+ return (callback: any, thisArg?: any) => {
222
+ value.call(target, (val: any, k: any, m: any) => {
223
+ callback.call(thisArg, createDeepProxy.bind(targetObject)(val, notifyChange), k, m)
224
+ })
225
+ }
226
+ }
227
+ return value.bind(target)
228
+ }
229
+ if (
230
+ target instanceof WeakMap ||
231
+ target instanceof WeakSet ||
232
+ target instanceof Date ||
233
+ target instanceof RegExp
234
+ ) {
235
+ return value.bind(target)
236
+ }
237
+ }
169
238
  return createDeepProxy.bind(targetObject)(value, notifyChange)
170
239
  },
171
240
  set(target, prop, value) {
@@ -188,6 +257,28 @@ export function observed(config: ObserveConfig = {}): PropertyDecorator {
188
257
 
189
258
  if (kind === 'accessor') {
190
259
  return {
260
+ init(this: DomainInstance, initialValue: V): V {
261
+ let map = Reflect.get(this, reactiveSymbol)
262
+ if (!map) {
263
+ map = {}
264
+ Reflect.set(this, reactiveSymbol, map)
265
+ }
266
+ const notify = () => {
267
+ if (this.domain) {
268
+ this.domain.notifyChange()
269
+ } else if (this.notifyChange) {
270
+ this.notifyChange()
271
+ }
272
+ }
273
+ let value = initialValue
274
+ if (deep) {
275
+ value = createDeepProxy.bind(this)(initialValue, notify)
276
+ }
277
+ if (value !== undefined) {
278
+ map[context.name] = value
279
+ }
280
+ return value
281
+ },
191
282
  set(this: DomainInstance, value: V): void {
192
283
  let map = Reflect.get(this, reactiveSymbol)
193
284
  if (!map) {
@@ -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,
@@ -170,8 +170,10 @@ export class ApiModel extends DependentModel {
170
170
  /**
171
171
  * The specific subset of Data Entities to be exposed by this API.
172
172
  * These are the entities that are included in the data domain schema.
173
+ *
174
+ * The `key` is the key of the exposed entity. Using a Map to allow for quick lookups.
173
175
  */
174
- @observed({ deep: true }) accessor exposes: ExposedEntity[]
176
+ @observed({ deep: true }) accessor exposes: Map<string, ExposedEntity>
175
177
  /**
176
178
  * Optional array of access rules that define the access control policies
177
179
  * for the API. These rules are used to enforce security and permissions
@@ -306,9 +308,9 @@ export class ApiModel extends DependentModel {
306
308
  this.session = structuredClone(init.session)
307
309
  }
308
310
  if (Array.isArray(init.exposes)) {
309
- this.exposes = init.exposes.map((e) => new ExposedEntity(this, e))
311
+ this.exposes = new Map(init.exposes.map((e) => [e.key, new ExposedEntity(this, e)]))
310
312
  } else {
311
- this.exposes = []
313
+ this.exposes = new Map()
312
314
  }
313
315
  if (Array.isArray(init.accessRule)) {
314
316
  this.accessRule = init.accessRule.map((rule) => restoreAccessRule(rule))
@@ -338,7 +340,7 @@ export class ApiModel extends DependentModel {
338
340
  kind: this.kind,
339
341
  key: this.key,
340
342
  info: this.info.toJSON(),
341
- exposes: this.exposes.map((e) => e.toJSON()),
343
+ exposes: Array.from(this.exposes.values()).map((e) => e.toJSON()),
342
344
  }
343
345
  if (this.user) {
344
346
  result.user = { ...this.user }
@@ -408,9 +410,13 @@ export class ApiModel extends DependentModel {
408
410
  throw new Error(`No domain attached to API model`)
409
411
  }
410
412
  // checks whether the entity is already exposed as a root exposure.
411
- const existing = this.exposes.find(
412
- (e) => e.isRoot && e.entity.key === entity.key && e.entity.domain === entity.domain
413
- )
413
+ let existing: ExposedEntity | undefined
414
+ for (const exp of this.exposes.values()) {
415
+ if (exp.isRoot && exp.entity.key === entity.key) {
416
+ existing = exp
417
+ break
418
+ }
419
+ }
414
420
  if (existing) {
415
421
  // quietly return the existing exposure
416
422
  // TBD: should we throw an error here?
@@ -428,7 +434,7 @@ export class ApiModel extends DependentModel {
428
434
  // Check for root path collision and resolve by appending a number
429
435
  let counter = 1
430
436
  const originalCollectionPath = relativeCollectionPath
431
- while (this.exposes.some((e) => e.isRoot && e.collectionPath === relativeCollectionPath)) {
437
+ while (this.findCollectionPathCollision(relativeCollectionPath)) {
432
438
  relativeCollectionPath = `${originalCollectionPath}-${counter}`
433
439
  relativeResourcePath = `${relativeCollectionPath}/{id}`
434
440
  counter++
@@ -448,7 +454,7 @@ export class ApiModel extends DependentModel {
448
454
  newEntity.exposeOptions = { ...options }
449
455
  }
450
456
  const created = new ExposedEntity(this, newEntity)
451
- this.exposes.push(created)
457
+ this.exposes.set(created.key, created)
452
458
 
453
459
  // Follow associations if requested
454
460
  if (options?.followAssociations) {
@@ -493,7 +499,13 @@ export class ApiModel extends DependentModel {
493
499
  }
494
500
 
495
501
  // Check if this entity is ALREADY exposed anywhere in the model
496
- const existingExposure = this.getExposedEntity(target)
502
+ let existingExposure: ExposedEntity | undefined
503
+ for (const exp of this.exposes.values()) {
504
+ if (exp.entity.key === target.key) {
505
+ existingExposure = exp
506
+ break
507
+ }
508
+ }
497
509
 
498
510
  if (existingExposure) {
499
511
  // If it's already exposed and NOT root (i.e., it's currently a nested child of someone else),
@@ -509,7 +521,7 @@ export class ApiModel extends DependentModel {
509
521
 
510
522
  let counter = 1
511
523
  const originalCollectionPath = relativeCollectionPath
512
- while (this.exposes.some((e) => e.isRoot && e.collectionPath === relativeCollectionPath)) {
524
+ while (this.findResourcePathCollision(relativeCollectionPath)) {
513
525
  relativeCollectionPath = `${originalCollectionPath}-${counter}`
514
526
  relativeResourcePath = `${relativeCollectionPath}/{id}`
515
527
  counter++
@@ -556,7 +568,8 @@ export class ApiModel extends DependentModel {
556
568
  },
557
569
  }
558
570
 
559
- this.exposes.push(new ExposedEntity(this, nestedExposure))
571
+ const inst = new ExposedEntity(this, nestedExposure)
572
+ this.exposes.set(inst.key, inst)
560
573
  if (depth + 1 >= maxDepth) {
561
574
  nestedExposure.truncated = true
562
575
  } else {
@@ -580,29 +593,25 @@ export class ApiModel extends DependentModel {
580
593
  * @param key The key of the exposed entity to remove.
581
594
  */
582
595
  removeExposedEntity(key: string): void {
583
- const index = this.exposes.findIndex((e) => e.key === key)
584
- if (index < 0) {
596
+ if (!this.exposes.has(key)) {
585
597
  throw new Error(`Exposed entity with key "${key}" not found.`)
586
598
  }
587
599
  this.removeWithChildren(key)
588
600
  }
589
601
 
590
602
  private removeWithChildren(key: string): void {
591
- const index = this.exposes.findIndex((e) => e.key === key)
592
- if (index < 0) {
603
+ if (!this.exposes.has(key)) {
593
604
  return
594
605
  }
595
606
  // Remove the parent itself
596
- this.exposes.splice(index, 1)
607
+ this.exposes.delete(key)
597
608
  // Remove all children recursively
598
609
  const removeChildren = (parentKey: string) => {
599
610
  // Find all exposures whose parent.key matches parentKey
600
- const children = this.exposes.filter((e) => e.parent?.key === parentKey)
601
- for (const child of children) {
602
- removeChildren(child.key)
603
- const childIndex = this.exposes.findIndex((e) => e.key === child.key)
604
- if (childIndex >= 0) {
605
- this.exposes.splice(childIndex, 1)
611
+ for (const child of this.exposes.values()) {
612
+ if (child.parent?.key === parentKey) {
613
+ removeChildren(child.key)
614
+ this.exposes.delete(child.key)
606
615
  }
607
616
  }
608
617
  }
@@ -611,15 +620,6 @@ export class ApiModel extends DependentModel {
611
620
  this.notifyChange()
612
621
  }
613
622
 
614
- /**
615
- * Returns the exposed entity by its key.
616
- * @param entityKey The key of the entity to find.
617
- * @returns The exposed entity or undefined if not found.
618
- */
619
- getExposedEntity(entity: AssociationTarget): ExposedEntity | undefined {
620
- return this.exposes.find((e) => e.entity.key === entity.key && e.entity.domain === entity.domain)
621
- }
622
-
623
623
  /**
624
624
  * Clears the API model for a new data domain change.
625
625
  * This method resets the dependencies, exposes, user,
@@ -628,7 +628,7 @@ export class ApiModel extends DependentModel {
628
628
  cleanForDomainChange(): void {
629
629
  this.dependencies.clear()
630
630
  this.dependencyList = []
631
- this.exposes = []
631
+ this.exposes = new Map()
632
632
  this.user = undefined
633
633
  if (this.session) {
634
634
  this.session.properties = []
@@ -659,4 +659,44 @@ export class ApiModel extends DependentModel {
659
659
  this.dependencyList = [{ key: domain.key, version: domain.info.version }]
660
660
  this.notifyChange()
661
661
  }
662
+
663
+ /**
664
+ * Finds an existing root exposed entity that has the given resource path.
665
+ * Useful for detecting path collisions when adding or updating an exposed entity.
666
+ *
667
+ * @param path The resource path to check for collisions.
668
+ * @param ignore Optional key of an exposed entity to ignore during the check (usually the entity being updated).
669
+ * @returns The colliding `ExposedEntity` if found, otherwise `undefined`.
670
+ */
671
+ findResourcePathCollision(path: string, ignore?: string): ExposedEntity | undefined {
672
+ for (const e of this.exposes.values()) {
673
+ if (ignore && e.key === ignore) {
674
+ continue
675
+ }
676
+ if (e.isRoot && e.resourcePath === path) {
677
+ return e
678
+ }
679
+ }
680
+ return undefined
681
+ }
682
+
683
+ /**
684
+ * Finds an existing root exposed entity that has the given collection path.
685
+ * Useful for detecting path collisions when adding or updating an exposed entity.
686
+ *
687
+ * @param path The collection path to check for collisions.
688
+ * @param ignore Optional key of an exposed entity to ignore during the check (usually the entity being updated).
689
+ * @returns The colliding `ExposedEntity` if found, otherwise `undefined`.
690
+ */
691
+ findCollectionPathCollision(path: string, ignore?: string): ExposedEntity | undefined {
692
+ for (const e of this.exposes.values()) {
693
+ if (ignore && e.key === ignore) {
694
+ continue
695
+ }
696
+ if (e.isRoot && e.hasCollection && e.collectionPath === path) {
697
+ return e
698
+ }
699
+ }
700
+ return undefined
701
+ }
662
702
  }
@@ -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
  }