@serverlessworkflow/sdk 1.0.0 → 1.0.3-alpha1

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 (697) hide show
  1. package/README.md +410 -250
  2. package/chunk.mjs +13 -0
  3. package/index.cjs +13463 -0
  4. package/index.cjs.map +1 -0
  5. package/index.d.cts +9319 -0
  6. package/index.d.cts.map +1 -0
  7. package/index.d.mts +9318 -0
  8. package/index.d.mts.map +1 -0
  9. package/index.mjs +13242 -0
  10. package/index.mjs.map +1 -0
  11. package/index.umd.js +22149 -0
  12. package/index.umd.js.map +1 -0
  13. package/index.umd.min.js +54 -0
  14. package/index.umd.min.js.map +1 -0
  15. package/package.json +61 -93
  16. package/esm/index.esm.js +0 -30722
  17. package/esm/index.esm.js.map +0 -1
  18. package/esm/index.esm.min.js +0 -10
  19. package/esm/index.esm.min.js.map +0 -1
  20. package/index.d.ts +0 -2
  21. package/index.d.ts.map +0 -1
  22. package/lib/builder.d.ts +0 -49
  23. package/lib/builder.d.ts.map +0 -1
  24. package/lib/generated/builders/all-event-consumption-strategy-builder.d.ts +0 -14
  25. package/lib/generated/builders/all-event-consumption-strategy-builder.d.ts.map +0 -1
  26. package/lib/generated/builders/all-event-consumption-strategy-configuration-builder.d.ts +0 -14
  27. package/lib/generated/builders/all-event-consumption-strategy-configuration-builder.d.ts.map +0 -1
  28. package/lib/generated/builders/any-event-consumption-strategy-builder.d.ts +0 -14
  29. package/lib/generated/builders/any-event-consumption-strategy-builder.d.ts.map +0 -1
  30. package/lib/generated/builders/any-event-consumption-strategy-configuration-builder.d.ts +0 -14
  31. package/lib/generated/builders/any-event-consumption-strategy-configuration-builder.d.ts.map +0 -1
  32. package/lib/generated/builders/any-event-consumption-strategy-until-builder.d.ts +0 -14
  33. package/lib/generated/builders/any-event-consumption-strategy-until-builder.d.ts.map +0 -1
  34. package/lib/generated/builders/any-event-until-consumed-builder.d.ts +0 -14
  35. package/lib/generated/builders/any-event-until-consumed-builder.d.ts.map +0 -1
  36. package/lib/generated/builders/async-api-arguments-builder.d.ts +0 -14
  37. package/lib/generated/builders/async-api-arguments-builder.d.ts.map +0 -1
  38. package/lib/generated/builders/authentication-policy-builder.d.ts +0 -14
  39. package/lib/generated/builders/authentication-policy-builder.d.ts.map +0 -1
  40. package/lib/generated/builders/authentication-policy-reference-builder.d.ts +0 -14
  41. package/lib/generated/builders/authentication-policy-reference-builder.d.ts.map +0 -1
  42. package/lib/generated/builders/basic-authentication-policy-builder.d.ts +0 -14
  43. package/lib/generated/builders/basic-authentication-policy-builder.d.ts.map +0 -1
  44. package/lib/generated/builders/basic-authentication-policy-configuration-builder.d.ts +0 -14
  45. package/lib/generated/builders/basic-authentication-policy-configuration-builder.d.ts.map +0 -1
  46. package/lib/generated/builders/basic-authentication-properties-builder.d.ts +0 -14
  47. package/lib/generated/builders/basic-authentication-properties-builder.d.ts.map +0 -1
  48. package/lib/generated/builders/bearer-authentication-policy-builder.d.ts +0 -14
  49. package/lib/generated/builders/bearer-authentication-policy-builder.d.ts.map +0 -1
  50. package/lib/generated/builders/bearer-authentication-policy-configuration-builder.d.ts +0 -14
  51. package/lib/generated/builders/bearer-authentication-policy-configuration-builder.d.ts.map +0 -1
  52. package/lib/generated/builders/bearer-authentication-properties-builder.d.ts +0 -14
  53. package/lib/generated/builders/bearer-authentication-properties-builder.d.ts.map +0 -1
  54. package/lib/generated/builders/call-async-api-builder.d.ts +0 -14
  55. package/lib/generated/builders/call-async-api-builder.d.ts.map +0 -1
  56. package/lib/generated/builders/call-function-builder.d.ts +0 -14
  57. package/lib/generated/builders/call-function-builder.d.ts.map +0 -1
  58. package/lib/generated/builders/call-grpc-builder.d.ts +0 -14
  59. package/lib/generated/builders/call-grpc-builder.d.ts.map +0 -1
  60. package/lib/generated/builders/call-http-builder.d.ts +0 -14
  61. package/lib/generated/builders/call-http-builder.d.ts.map +0 -1
  62. package/lib/generated/builders/call-open-api-builder.d.ts +0 -14
  63. package/lib/generated/builders/call-open-api-builder.d.ts.map +0 -1
  64. package/lib/generated/builders/call-task-builder.d.ts +0 -14
  65. package/lib/generated/builders/call-task-builder.d.ts.map +0 -1
  66. package/lib/generated/builders/catalog-builder.d.ts +0 -14
  67. package/lib/generated/builders/catalog-builder.d.ts.map +0 -1
  68. package/lib/generated/builders/catch-errors-builder.d.ts +0 -14
  69. package/lib/generated/builders/catch-errors-builder.d.ts.map +0 -1
  70. package/lib/generated/builders/constant-backoff-builder.d.ts +0 -14
  71. package/lib/generated/builders/constant-backoff-builder.d.ts.map +0 -1
  72. package/lib/generated/builders/container-builder.d.ts +0 -14
  73. package/lib/generated/builders/container-builder.d.ts.map +0 -1
  74. package/lib/generated/builders/container-environment-builder.d.ts +0 -14
  75. package/lib/generated/builders/container-environment-builder.d.ts.map +0 -1
  76. package/lib/generated/builders/container-lifetime-builder.d.ts +0 -14
  77. package/lib/generated/builders/container-lifetime-builder.d.ts.map +0 -1
  78. package/lib/generated/builders/container-ports-builder.d.ts +0 -14
  79. package/lib/generated/builders/container-ports-builder.d.ts.map +0 -1
  80. package/lib/generated/builders/container-volumes-builder.d.ts +0 -14
  81. package/lib/generated/builders/container-volumes-builder.d.ts.map +0 -1
  82. package/lib/generated/builders/digest-authentication-policy-builder.d.ts +0 -14
  83. package/lib/generated/builders/digest-authentication-policy-builder.d.ts.map +0 -1
  84. package/lib/generated/builders/digest-authentication-policy-configuration-builder.d.ts +0 -14
  85. package/lib/generated/builders/digest-authentication-policy-configuration-builder.d.ts.map +0 -1
  86. package/lib/generated/builders/digest-authentication-properties-builder.d.ts +0 -14
  87. package/lib/generated/builders/digest-authentication-properties-builder.d.ts.map +0 -1
  88. package/lib/generated/builders/do-task-builder.d.ts +0 -14
  89. package/lib/generated/builders/do-task-builder.d.ts.map +0 -1
  90. package/lib/generated/builders/document-builder.d.ts +0 -14
  91. package/lib/generated/builders/document-builder.d.ts.map +0 -1
  92. package/lib/generated/builders/duration-builder.d.ts +0 -14
  93. package/lib/generated/builders/duration-builder.d.ts.map +0 -1
  94. package/lib/generated/builders/duration-inline-builder.d.ts +0 -14
  95. package/lib/generated/builders/duration-inline-builder.d.ts.map +0 -1
  96. package/lib/generated/builders/emit-event-definition-builder.d.ts +0 -14
  97. package/lib/generated/builders/emit-event-definition-builder.d.ts.map +0 -1
  98. package/lib/generated/builders/emit-event-with-builder.d.ts +0 -14
  99. package/lib/generated/builders/emit-event-with-builder.d.ts.map +0 -1
  100. package/lib/generated/builders/emit-task-builder.d.ts +0 -14
  101. package/lib/generated/builders/emit-task-builder.d.ts.map +0 -1
  102. package/lib/generated/builders/emit-task-configuration-builder.d.ts +0 -14
  103. package/lib/generated/builders/emit-task-configuration-builder.d.ts.map +0 -1
  104. package/lib/generated/builders/endpoint-builder.d.ts +0 -14
  105. package/lib/generated/builders/endpoint-builder.d.ts.map +0 -1
  106. package/lib/generated/builders/endpoint-configuration-builder.d.ts +0 -14
  107. package/lib/generated/builders/endpoint-configuration-builder.d.ts.map +0 -1
  108. package/lib/generated/builders/endpoint-uri-builder.d.ts +0 -14
  109. package/lib/generated/builders/endpoint-uri-builder.d.ts.map +0 -1
  110. package/lib/generated/builders/error-builder.d.ts +0 -14
  111. package/lib/generated/builders/error-builder.d.ts.map +0 -1
  112. package/lib/generated/builders/error-filter-builder.d.ts +0 -14
  113. package/lib/generated/builders/error-filter-builder.d.ts.map +0 -1
  114. package/lib/generated/builders/error-instance-builder.d.ts +0 -14
  115. package/lib/generated/builders/error-instance-builder.d.ts.map +0 -1
  116. package/lib/generated/builders/error-type-builder.d.ts +0 -14
  117. package/lib/generated/builders/error-type-builder.d.ts.map +0 -1
  118. package/lib/generated/builders/event-consumption-strategy-builder.d.ts +0 -14
  119. package/lib/generated/builders/event-consumption-strategy-builder.d.ts.map +0 -1
  120. package/lib/generated/builders/event-data-builder.d.ts +0 -14
  121. package/lib/generated/builders/event-data-builder.d.ts.map +0 -1
  122. package/lib/generated/builders/event-dataschema-builder.d.ts +0 -14
  123. package/lib/generated/builders/event-dataschema-builder.d.ts.map +0 -1
  124. package/lib/generated/builders/event-filter-builder.d.ts +0 -14
  125. package/lib/generated/builders/event-filter-builder.d.ts.map +0 -1
  126. package/lib/generated/builders/event-filter-correlate-builder.d.ts +0 -14
  127. package/lib/generated/builders/event-filter-correlate-builder.d.ts.map +0 -1
  128. package/lib/generated/builders/event-source-builder.d.ts +0 -14
  129. package/lib/generated/builders/event-source-builder.d.ts.map +0 -1
  130. package/lib/generated/builders/event-time-builder.d.ts +0 -14
  131. package/lib/generated/builders/event-time-builder.d.ts.map +0 -1
  132. package/lib/generated/builders/exponential-back-off-builder.d.ts +0 -14
  133. package/lib/generated/builders/exponential-back-off-builder.d.ts.map +0 -1
  134. package/lib/generated/builders/export-as-builder.d.ts +0 -14
  135. package/lib/generated/builders/export-as-builder.d.ts.map +0 -1
  136. package/lib/generated/builders/export-builder.d.ts +0 -14
  137. package/lib/generated/builders/export-builder.d.ts.map +0 -1
  138. package/lib/generated/builders/extension-builder.d.ts +0 -14
  139. package/lib/generated/builders/extension-builder.d.ts.map +0 -1
  140. package/lib/generated/builders/extension-item-builder.d.ts +0 -14
  141. package/lib/generated/builders/extension-item-builder.d.ts.map +0 -1
  142. package/lib/generated/builders/external-resource-builder.d.ts +0 -14
  143. package/lib/generated/builders/external-resource-builder.d.ts.map +0 -1
  144. package/lib/generated/builders/external-script-builder.d.ts +0 -14
  145. package/lib/generated/builders/external-script-builder.d.ts.map +0 -1
  146. package/lib/generated/builders/flow-directive-builder.d.ts +0 -14
  147. package/lib/generated/builders/flow-directive-builder.d.ts.map +0 -1
  148. package/lib/generated/builders/for-task-builder.d.ts +0 -14
  149. package/lib/generated/builders/for-task-builder.d.ts.map +0 -1
  150. package/lib/generated/builders/for-task-configuration-builder.d.ts +0 -14
  151. package/lib/generated/builders/for-task-configuration-builder.d.ts.map +0 -1
  152. package/lib/generated/builders/fork-task-builder.d.ts +0 -14
  153. package/lib/generated/builders/fork-task-builder.d.ts.map +0 -1
  154. package/lib/generated/builders/fork-task-configuration-builder.d.ts +0 -14
  155. package/lib/generated/builders/fork-task-configuration-builder.d.ts.map +0 -1
  156. package/lib/generated/builders/function-arguments-builder.d.ts +0 -14
  157. package/lib/generated/builders/function-arguments-builder.d.ts.map +0 -1
  158. package/lib/generated/builders/grpc-arguments-builder.d.ts +0 -14
  159. package/lib/generated/builders/grpc-arguments-builder.d.ts.map +0 -1
  160. package/lib/generated/builders/http-arguments-builder.d.ts +0 -14
  161. package/lib/generated/builders/http-arguments-builder.d.ts.map +0 -1
  162. package/lib/generated/builders/http-body-builder.d.ts +0 -14
  163. package/lib/generated/builders/http-body-builder.d.ts.map +0 -1
  164. package/lib/generated/builders/http-headers-builder.d.ts +0 -14
  165. package/lib/generated/builders/http-headers-builder.d.ts.map +0 -1
  166. package/lib/generated/builders/http-query-builder.d.ts +0 -14
  167. package/lib/generated/builders/http-query-builder.d.ts.map +0 -1
  168. package/lib/generated/builders/index.d.ts +0 -161
  169. package/lib/generated/builders/index.d.ts.map +0 -1
  170. package/lib/generated/builders/inline-script-builder.d.ts +0 -14
  171. package/lib/generated/builders/inline-script-builder.d.ts.map +0 -1
  172. package/lib/generated/builders/input-builder.d.ts +0 -14
  173. package/lib/generated/builders/input-builder.d.ts.map +0 -1
  174. package/lib/generated/builders/input-from-builder.d.ts +0 -14
  175. package/lib/generated/builders/input-from-builder.d.ts.map +0 -1
  176. package/lib/generated/builders/linear-backoff-builder.d.ts +0 -14
  177. package/lib/generated/builders/linear-backoff-builder.d.ts.map +0 -1
  178. package/lib/generated/builders/listen-task-builder.d.ts +0 -14
  179. package/lib/generated/builders/listen-task-builder.d.ts.map +0 -1
  180. package/lib/generated/builders/listen-task-configuration-builder.d.ts +0 -14
  181. package/lib/generated/builders/listen-task-configuration-builder.d.ts.map +0 -1
  182. package/lib/generated/builders/oauth2-autenthication-data-audiences-builder.d.ts +0 -14
  183. package/lib/generated/builders/oauth2-autenthication-data-audiences-builder.d.ts.map +0 -1
  184. package/lib/generated/builders/oauth2-autenthication-data-builder.d.ts +0 -14
  185. package/lib/generated/builders/oauth2-autenthication-data-builder.d.ts.map +0 -1
  186. package/lib/generated/builders/oauth2-autenthication-data-client-builder.d.ts +0 -14
  187. package/lib/generated/builders/oauth2-autenthication-data-client-builder.d.ts.map +0 -1
  188. package/lib/generated/builders/oauth2-autenthication-data-scopes-builder.d.ts +0 -14
  189. package/lib/generated/builders/oauth2-autenthication-data-scopes-builder.d.ts.map +0 -1
  190. package/lib/generated/builders/oauth2-authentication-policy-builder.d.ts +0 -14
  191. package/lib/generated/builders/oauth2-authentication-policy-builder.d.ts.map +0 -1
  192. package/lib/generated/builders/oauth2-authentication-policy-configuration-builder.d.ts +0 -14
  193. package/lib/generated/builders/oauth2-authentication-policy-configuration-builder.d.ts.map +0 -1
  194. package/lib/generated/builders/oauth2-authentication-properties-endpoints-builder.d.ts +0 -14
  195. package/lib/generated/builders/oauth2-authentication-properties-endpoints-builder.d.ts.map +0 -1
  196. package/lib/generated/builders/oauth2-connect-authentication-properties-builder.d.ts +0 -14
  197. package/lib/generated/builders/oauth2-connect-authentication-properties-builder.d.ts.map +0 -1
  198. package/lib/generated/builders/oauth2-issuers-builder.d.ts +0 -14
  199. package/lib/generated/builders/oauth2-issuers-builder.d.ts.map +0 -1
  200. package/lib/generated/builders/oauth2-token-definition-builder.d.ts +0 -14
  201. package/lib/generated/builders/oauth2-token-definition-builder.d.ts.map +0 -1
  202. package/lib/generated/builders/oauth2-token-request-builder.d.ts +0 -14
  203. package/lib/generated/builders/oauth2-token-request-builder.d.ts.map +0 -1
  204. package/lib/generated/builders/one-event-consumption-strategy-builder.d.ts +0 -14
  205. package/lib/generated/builders/one-event-consumption-strategy-builder.d.ts.map +0 -1
  206. package/lib/generated/builders/open-api-arguments-builder.d.ts +0 -14
  207. package/lib/generated/builders/open-api-arguments-builder.d.ts.map +0 -1
  208. package/lib/generated/builders/open-id-connect-authentication-policy-builder.d.ts +0 -14
  209. package/lib/generated/builders/open-id-connect-authentication-policy-builder.d.ts.map +0 -1
  210. package/lib/generated/builders/open-id-connect-authentication-policy-configuration-builder.d.ts +0 -14
  211. package/lib/generated/builders/open-id-connect-authentication-policy-configuration-builder.d.ts.map +0 -1
  212. package/lib/generated/builders/open-id-connect-authentication-properties-builder.d.ts +0 -14
  213. package/lib/generated/builders/open-id-connect-authentication-properties-builder.d.ts.map +0 -1
  214. package/lib/generated/builders/output-as-builder.d.ts +0 -14
  215. package/lib/generated/builders/output-as-builder.d.ts.map +0 -1
  216. package/lib/generated/builders/output-builder.d.ts +0 -14
  217. package/lib/generated/builders/output-builder.d.ts.map +0 -1
  218. package/lib/generated/builders/raise-task-builder.d.ts +0 -14
  219. package/lib/generated/builders/raise-task-builder.d.ts.map +0 -1
  220. package/lib/generated/builders/raise-task-configuration-builder.d.ts +0 -14
  221. package/lib/generated/builders/raise-task-configuration-builder.d.ts.map +0 -1
  222. package/lib/generated/builders/raise-task-error-builder.d.ts +0 -14
  223. package/lib/generated/builders/raise-task-error-builder.d.ts.map +0 -1
  224. package/lib/generated/builders/referenceable-authentication-policy-builder.d.ts +0 -14
  225. package/lib/generated/builders/referenceable-authentication-policy-builder.d.ts.map +0 -1
  226. package/lib/generated/builders/retry-backoff-builder.d.ts +0 -14
  227. package/lib/generated/builders/retry-backoff-builder.d.ts.map +0 -1
  228. package/lib/generated/builders/retry-limit-attempt-builder.d.ts +0 -14
  229. package/lib/generated/builders/retry-limit-attempt-builder.d.ts.map +0 -1
  230. package/lib/generated/builders/retry-limit-builder.d.ts +0 -14
  231. package/lib/generated/builders/retry-limit-builder.d.ts.map +0 -1
  232. package/lib/generated/builders/retry-policy-builder.d.ts +0 -14
  233. package/lib/generated/builders/retry-policy-builder.d.ts.map +0 -1
  234. package/lib/generated/builders/retry-policy-jitter-builder.d.ts +0 -14
  235. package/lib/generated/builders/retry-policy-jitter-builder.d.ts.map +0 -1
  236. package/lib/generated/builders/run-container-builder.d.ts +0 -14
  237. package/lib/generated/builders/run-container-builder.d.ts.map +0 -1
  238. package/lib/generated/builders/run-script-builder.d.ts +0 -14
  239. package/lib/generated/builders/run-script-builder.d.ts.map +0 -1
  240. package/lib/generated/builders/run-shell-builder.d.ts +0 -14
  241. package/lib/generated/builders/run-shell-builder.d.ts.map +0 -1
  242. package/lib/generated/builders/run-task-builder.d.ts +0 -14
  243. package/lib/generated/builders/run-task-builder.d.ts.map +0 -1
  244. package/lib/generated/builders/run-task-configuration-builder.d.ts +0 -14
  245. package/lib/generated/builders/run-task-configuration-builder.d.ts.map +0 -1
  246. package/lib/generated/builders/run-workflow-builder.d.ts +0 -14
  247. package/lib/generated/builders/run-workflow-builder.d.ts.map +0 -1
  248. package/lib/generated/builders/runtime-expression-builder.d.ts +0 -14
  249. package/lib/generated/builders/runtime-expression-builder.d.ts.map +0 -1
  250. package/lib/generated/builders/schedule-builder.d.ts +0 -14
  251. package/lib/generated/builders/schedule-builder.d.ts.map +0 -1
  252. package/lib/generated/builders/schema-builder.d.ts +0 -14
  253. package/lib/generated/builders/schema-builder.d.ts.map +0 -1
  254. package/lib/generated/builders/schema-external-builder.d.ts +0 -14
  255. package/lib/generated/builders/schema-external-builder.d.ts.map +0 -1
  256. package/lib/generated/builders/schema-inline-builder.d.ts +0 -14
  257. package/lib/generated/builders/schema-inline-builder.d.ts.map +0 -1
  258. package/lib/generated/builders/script-builder.d.ts +0 -14
  259. package/lib/generated/builders/script-builder.d.ts.map +0 -1
  260. package/lib/generated/builders/secret-based-authentication-policy-builder.d.ts +0 -14
  261. package/lib/generated/builders/secret-based-authentication-policy-builder.d.ts.map +0 -1
  262. package/lib/generated/builders/set-task-builder.d.ts +0 -14
  263. package/lib/generated/builders/set-task-builder.d.ts.map +0 -1
  264. package/lib/generated/builders/set-task-configuration-builder.d.ts +0 -14
  265. package/lib/generated/builders/set-task-configuration-builder.d.ts.map +0 -1
  266. package/lib/generated/builders/shell-arguments-builder.d.ts +0 -14
  267. package/lib/generated/builders/shell-arguments-builder.d.ts.map +0 -1
  268. package/lib/generated/builders/shell-builder.d.ts +0 -14
  269. package/lib/generated/builders/shell-builder.d.ts.map +0 -1
  270. package/lib/generated/builders/shell-environment-builder.d.ts +0 -14
  271. package/lib/generated/builders/shell-environment-builder.d.ts.map +0 -1
  272. package/lib/generated/builders/subflow-configuration-builder.d.ts +0 -14
  273. package/lib/generated/builders/subflow-configuration-builder.d.ts.map +0 -1
  274. package/lib/generated/builders/subflow-input-builder.d.ts +0 -14
  275. package/lib/generated/builders/subflow-input-builder.d.ts.map +0 -1
  276. package/lib/generated/builders/subscription-iterator-builder.d.ts +0 -14
  277. package/lib/generated/builders/subscription-iterator-builder.d.ts.map +0 -1
  278. package/lib/generated/builders/switch-case-builder.d.ts +0 -14
  279. package/lib/generated/builders/switch-case-builder.d.ts.map +0 -1
  280. package/lib/generated/builders/switch-item-builder.d.ts +0 -14
  281. package/lib/generated/builders/switch-item-builder.d.ts.map +0 -1
  282. package/lib/generated/builders/switch-task-builder.d.ts +0 -14
  283. package/lib/generated/builders/switch-task-builder.d.ts.map +0 -1
  284. package/lib/generated/builders/switch-task-configuration-builder.d.ts +0 -14
  285. package/lib/generated/builders/switch-task-configuration-builder.d.ts.map +0 -1
  286. package/lib/generated/builders/task-base-builder.d.ts +0 -14
  287. package/lib/generated/builders/task-base-builder.d.ts.map +0 -1
  288. package/lib/generated/builders/task-base-if-builder.d.ts +0 -14
  289. package/lib/generated/builders/task-base-if-builder.d.ts.map +0 -1
  290. package/lib/generated/builders/task-builder.d.ts +0 -14
  291. package/lib/generated/builders/task-builder.d.ts.map +0 -1
  292. package/lib/generated/builders/task-item-builder.d.ts +0 -14
  293. package/lib/generated/builders/task-item-builder.d.ts.map +0 -1
  294. package/lib/generated/builders/task-list-builder.d.ts +0 -14
  295. package/lib/generated/builders/task-list-builder.d.ts.map +0 -1
  296. package/lib/generated/builders/task-metadata-builder.d.ts +0 -14
  297. package/lib/generated/builders/task-metadata-builder.d.ts.map +0 -1
  298. package/lib/generated/builders/task-timeout-builder.d.ts +0 -14
  299. package/lib/generated/builders/task-timeout-builder.d.ts.map +0 -1
  300. package/lib/generated/builders/timeout-builder.d.ts +0 -14
  301. package/lib/generated/builders/timeout-builder.d.ts.map +0 -1
  302. package/lib/generated/builders/try-task-builder.d.ts +0 -14
  303. package/lib/generated/builders/try-task-builder.d.ts.map +0 -1
  304. package/lib/generated/builders/try-task-catch-builder.d.ts +0 -14
  305. package/lib/generated/builders/try-task-catch-builder.d.ts.map +0 -1
  306. package/lib/generated/builders/try-task-catch-retry-builder.d.ts +0 -14
  307. package/lib/generated/builders/try-task-catch-retry-builder.d.ts.map +0 -1
  308. package/lib/generated/builders/uri-template-builder.d.ts +0 -14
  309. package/lib/generated/builders/uri-template-builder.d.ts.map +0 -1
  310. package/lib/generated/builders/use-authentications-builder.d.ts +0 -14
  311. package/lib/generated/builders/use-authentications-builder.d.ts.map +0 -1
  312. package/lib/generated/builders/use-builder.d.ts +0 -14
  313. package/lib/generated/builders/use-builder.d.ts.map +0 -1
  314. package/lib/generated/builders/use-catalogs-builder.d.ts +0 -14
  315. package/lib/generated/builders/use-catalogs-builder.d.ts.map +0 -1
  316. package/lib/generated/builders/use-errors-builder.d.ts +0 -14
  317. package/lib/generated/builders/use-errors-builder.d.ts.map +0 -1
  318. package/lib/generated/builders/use-extensions-builder.d.ts +0 -14
  319. package/lib/generated/builders/use-extensions-builder.d.ts.map +0 -1
  320. package/lib/generated/builders/use-functions-builder.d.ts +0 -14
  321. package/lib/generated/builders/use-functions-builder.d.ts.map +0 -1
  322. package/lib/generated/builders/use-retries-builder.d.ts +0 -14
  323. package/lib/generated/builders/use-retries-builder.d.ts.map +0 -1
  324. package/lib/generated/builders/use-secrets-builder.d.ts +0 -14
  325. package/lib/generated/builders/use-secrets-builder.d.ts.map +0 -1
  326. package/lib/generated/builders/use-timeouts-builder.d.ts +0 -14
  327. package/lib/generated/builders/use-timeouts-builder.d.ts.map +0 -1
  328. package/lib/generated/builders/wait-task-builder.d.ts +0 -14
  329. package/lib/generated/builders/wait-task-builder.d.ts.map +0 -1
  330. package/lib/generated/builders/with-event-builder.d.ts +0 -14
  331. package/lib/generated/builders/with-event-builder.d.ts.map +0 -1
  332. package/lib/generated/builders/with-grpc-arguments-builder.d.ts +0 -14
  333. package/lib/generated/builders/with-grpc-arguments-builder.d.ts.map +0 -1
  334. package/lib/generated/builders/with-grpc-service-builder.d.ts +0 -14
  335. package/lib/generated/builders/with-grpc-service-builder.d.ts.map +0 -1
  336. package/lib/generated/builders/with-open-api-parameters-builder.d.ts +0 -14
  337. package/lib/generated/builders/with-open-api-parameters-builder.d.ts.map +0 -1
  338. package/lib/generated/builders/workflow-builder.d.ts +0 -14
  339. package/lib/generated/builders/workflow-builder.d.ts.map +0 -1
  340. package/lib/generated/builders/workflow-metadata-builder.d.ts +0 -14
  341. package/lib/generated/builders/workflow-metadata-builder.d.ts.map +0 -1
  342. package/lib/generated/builders/workflow-tags-builder.d.ts +0 -14
  343. package/lib/generated/builders/workflow-tags-builder.d.ts.map +0 -1
  344. package/lib/generated/builders/workflow-timeout-builder.d.ts +0 -14
  345. package/lib/generated/builders/workflow-timeout-builder.d.ts.map +0 -1
  346. package/lib/generated/classes/all-event-consumption-strategy-configuration.d.ts +0 -38
  347. package/lib/generated/classes/all-event-consumption-strategy-configuration.d.ts.map +0 -1
  348. package/lib/generated/classes/all-event-consumption-strategy.d.ts +0 -39
  349. package/lib/generated/classes/all-event-consumption-strategy.d.ts.map +0 -1
  350. package/lib/generated/classes/any-event-consumption-strategy-configuration.d.ts +0 -38
  351. package/lib/generated/classes/any-event-consumption-strategy-configuration.d.ts.map +0 -1
  352. package/lib/generated/classes/any-event-consumption-strategy-until.d.ts +0 -39
  353. package/lib/generated/classes/any-event-consumption-strategy-until.d.ts.map +0 -1
  354. package/lib/generated/classes/any-event-consumption-strategy.d.ts +0 -39
  355. package/lib/generated/classes/any-event-consumption-strategy.d.ts.map +0 -1
  356. package/lib/generated/classes/any-event-until-consumed.d.ts +0 -39
  357. package/lib/generated/classes/any-event-until-consumed.d.ts.map +0 -1
  358. package/lib/generated/classes/async-api-arguments.d.ts +0 -44
  359. package/lib/generated/classes/async-api-arguments.d.ts.map +0 -1
  360. package/lib/generated/classes/authentication-policy-reference.d.ts +0 -44
  361. package/lib/generated/classes/authentication-policy-reference.d.ts.map +0 -1
  362. package/lib/generated/classes/authentication-policy.d.ts +0 -39
  363. package/lib/generated/classes/authentication-policy.d.ts.map +0 -1
  364. package/lib/generated/classes/basic-authentication-policy-configuration.d.ts +0 -44
  365. package/lib/generated/classes/basic-authentication-policy-configuration.d.ts.map +0 -1
  366. package/lib/generated/classes/basic-authentication-policy.d.ts +0 -39
  367. package/lib/generated/classes/basic-authentication-policy.d.ts.map +0 -1
  368. package/lib/generated/classes/basic-authentication-properties.d.ts +0 -44
  369. package/lib/generated/classes/basic-authentication-properties.d.ts.map +0 -1
  370. package/lib/generated/classes/bearer-authentication-policy-configuration.d.ts +0 -44
  371. package/lib/generated/classes/bearer-authentication-policy-configuration.d.ts.map +0 -1
  372. package/lib/generated/classes/bearer-authentication-policy.d.ts +0 -39
  373. package/lib/generated/classes/bearer-authentication-policy.d.ts.map +0 -1
  374. package/lib/generated/classes/bearer-authentication-properties.d.ts +0 -44
  375. package/lib/generated/classes/bearer-authentication-properties.d.ts.map +0 -1
  376. package/lib/generated/classes/call-async-api.d.ts +0 -39
  377. package/lib/generated/classes/call-async-api.d.ts.map +0 -1
  378. package/lib/generated/classes/call-function.d.ts +0 -39
  379. package/lib/generated/classes/call-function.d.ts.map +0 -1
  380. package/lib/generated/classes/call-grpc.d.ts +0 -39
  381. package/lib/generated/classes/call-grpc.d.ts.map +0 -1
  382. package/lib/generated/classes/call-http.d.ts +0 -39
  383. package/lib/generated/classes/call-http.d.ts.map +0 -1
  384. package/lib/generated/classes/call-open-api.d.ts +0 -39
  385. package/lib/generated/classes/call-open-api.d.ts.map +0 -1
  386. package/lib/generated/classes/call-task.d.ts +0 -39
  387. package/lib/generated/classes/call-task.d.ts.map +0 -1
  388. package/lib/generated/classes/catalog.d.ts +0 -39
  389. package/lib/generated/classes/catalog.d.ts.map +0 -1
  390. package/lib/generated/classes/catch-errors.d.ts +0 -39
  391. package/lib/generated/classes/catch-errors.d.ts.map +0 -1
  392. package/lib/generated/classes/constant-backoff.d.ts +0 -44
  393. package/lib/generated/classes/constant-backoff.d.ts.map +0 -1
  394. package/lib/generated/classes/container-environment.d.ts +0 -44
  395. package/lib/generated/classes/container-environment.d.ts.map +0 -1
  396. package/lib/generated/classes/container-lifetime.d.ts +0 -39
  397. package/lib/generated/classes/container-lifetime.d.ts.map +0 -1
  398. package/lib/generated/classes/container-ports.d.ts +0 -44
  399. package/lib/generated/classes/container-ports.d.ts.map +0 -1
  400. package/lib/generated/classes/container-volumes.d.ts +0 -44
  401. package/lib/generated/classes/container-volumes.d.ts.map +0 -1
  402. package/lib/generated/classes/container.d.ts +0 -39
  403. package/lib/generated/classes/container.d.ts.map +0 -1
  404. package/lib/generated/classes/digest-authentication-policy-configuration.d.ts +0 -44
  405. package/lib/generated/classes/digest-authentication-policy-configuration.d.ts.map +0 -1
  406. package/lib/generated/classes/digest-authentication-policy.d.ts +0 -39
  407. package/lib/generated/classes/digest-authentication-policy.d.ts.map +0 -1
  408. package/lib/generated/classes/digest-authentication-properties.d.ts +0 -44
  409. package/lib/generated/classes/digest-authentication-properties.d.ts.map +0 -1
  410. package/lib/generated/classes/do-task.d.ts +0 -39
  411. package/lib/generated/classes/do-task.d.ts.map +0 -1
  412. package/lib/generated/classes/document.d.ts +0 -39
  413. package/lib/generated/classes/document.d.ts.map +0 -1
  414. package/lib/generated/classes/duration-inline.d.ts +0 -44
  415. package/lib/generated/classes/duration-inline.d.ts.map +0 -1
  416. package/lib/generated/classes/duration.d.ts +0 -44
  417. package/lib/generated/classes/duration.d.ts.map +0 -1
  418. package/lib/generated/classes/emit-event-definition.d.ts +0 -39
  419. package/lib/generated/classes/emit-event-definition.d.ts.map +0 -1
  420. package/lib/generated/classes/emit-event-with.d.ts +0 -44
  421. package/lib/generated/classes/emit-event-with.d.ts.map +0 -1
  422. package/lib/generated/classes/emit-task-configuration.d.ts +0 -39
  423. package/lib/generated/classes/emit-task-configuration.d.ts.map +0 -1
  424. package/lib/generated/classes/emit-task.d.ts +0 -39
  425. package/lib/generated/classes/emit-task.d.ts.map +0 -1
  426. package/lib/generated/classes/endpoint-configuration.d.ts +0 -39
  427. package/lib/generated/classes/endpoint-configuration.d.ts.map +0 -1
  428. package/lib/generated/classes/endpoint-uri.d.ts +0 -44
  429. package/lib/generated/classes/endpoint-uri.d.ts.map +0 -1
  430. package/lib/generated/classes/endpoint.d.ts +0 -39
  431. package/lib/generated/classes/endpoint.d.ts.map +0 -1
  432. package/lib/generated/classes/error-filter.d.ts +0 -44
  433. package/lib/generated/classes/error-filter.d.ts.map +0 -1
  434. package/lib/generated/classes/error-instance.d.ts +0 -44
  435. package/lib/generated/classes/error-instance.d.ts.map +0 -1
  436. package/lib/generated/classes/error-type.d.ts +0 -44
  437. package/lib/generated/classes/error-type.d.ts.map +0 -1
  438. package/lib/generated/classes/error.d.ts +0 -44
  439. package/lib/generated/classes/error.d.ts.map +0 -1
  440. package/lib/generated/classes/event-consumption-strategy.d.ts +0 -39
  441. package/lib/generated/classes/event-consumption-strategy.d.ts.map +0 -1
  442. package/lib/generated/classes/event-data.d.ts +0 -44
  443. package/lib/generated/classes/event-data.d.ts.map +0 -1
  444. package/lib/generated/classes/event-dataschema.d.ts +0 -44
  445. package/lib/generated/classes/event-dataschema.d.ts.map +0 -1
  446. package/lib/generated/classes/event-filter-correlate.d.ts +0 -44
  447. package/lib/generated/classes/event-filter-correlate.d.ts.map +0 -1
  448. package/lib/generated/classes/event-filter.d.ts +0 -39
  449. package/lib/generated/classes/event-filter.d.ts.map +0 -1
  450. package/lib/generated/classes/event-source.d.ts +0 -44
  451. package/lib/generated/classes/event-source.d.ts.map +0 -1
  452. package/lib/generated/classes/event-time.d.ts +0 -44
  453. package/lib/generated/classes/event-time.d.ts.map +0 -1
  454. package/lib/generated/classes/exponential-back-off.d.ts +0 -44
  455. package/lib/generated/classes/exponential-back-off.d.ts.map +0 -1
  456. package/lib/generated/classes/export-as.d.ts +0 -44
  457. package/lib/generated/classes/export-as.d.ts.map +0 -1
  458. package/lib/generated/classes/export.d.ts +0 -39
  459. package/lib/generated/classes/export.d.ts.map +0 -1
  460. package/lib/generated/classes/extension-item.d.ts +0 -39
  461. package/lib/generated/classes/extension-item.d.ts.map +0 -1
  462. package/lib/generated/classes/extension.d.ts +0 -39
  463. package/lib/generated/classes/extension.d.ts.map +0 -1
  464. package/lib/generated/classes/external-resource.d.ts +0 -39
  465. package/lib/generated/classes/external-resource.d.ts.map +0 -1
  466. package/lib/generated/classes/external-script.d.ts +0 -39
  467. package/lib/generated/classes/external-script.d.ts.map +0 -1
  468. package/lib/generated/classes/flow-directive.d.ts +0 -44
  469. package/lib/generated/classes/flow-directive.d.ts.map +0 -1
  470. package/lib/generated/classes/for-task-configuration.d.ts +0 -44
  471. package/lib/generated/classes/for-task-configuration.d.ts.map +0 -1
  472. package/lib/generated/classes/for-task.d.ts +0 -39
  473. package/lib/generated/classes/for-task.d.ts.map +0 -1
  474. package/lib/generated/classes/fork-task-configuration.d.ts +0 -39
  475. package/lib/generated/classes/fork-task-configuration.d.ts.map +0 -1
  476. package/lib/generated/classes/fork-task.d.ts +0 -39
  477. package/lib/generated/classes/fork-task.d.ts.map +0 -1
  478. package/lib/generated/classes/function-arguments.d.ts +0 -44
  479. package/lib/generated/classes/function-arguments.d.ts.map +0 -1
  480. package/lib/generated/classes/grpc-arguments.d.ts +0 -39
  481. package/lib/generated/classes/grpc-arguments.d.ts.map +0 -1
  482. package/lib/generated/classes/http-arguments.d.ts +0 -39
  483. package/lib/generated/classes/http-arguments.d.ts.map +0 -1
  484. package/lib/generated/classes/http-body.d.ts +0 -44
  485. package/lib/generated/classes/http-body.d.ts.map +0 -1
  486. package/lib/generated/classes/http-headers.d.ts +0 -44
  487. package/lib/generated/classes/http-headers.d.ts.map +0 -1
  488. package/lib/generated/classes/http-query.d.ts +0 -44
  489. package/lib/generated/classes/http-query.d.ts.map +0 -1
  490. package/lib/generated/classes/index.d.ts +0 -166
  491. package/lib/generated/classes/index.d.ts.map +0 -1
  492. package/lib/generated/classes/inline-script.d.ts +0 -44
  493. package/lib/generated/classes/inline-script.d.ts.map +0 -1
  494. package/lib/generated/classes/input-from.d.ts +0 -44
  495. package/lib/generated/classes/input-from.d.ts.map +0 -1
  496. package/lib/generated/classes/input.d.ts +0 -39
  497. package/lib/generated/classes/input.d.ts.map +0 -1
  498. package/lib/generated/classes/linear-backoff.d.ts +0 -44
  499. package/lib/generated/classes/linear-backoff.d.ts.map +0 -1
  500. package/lib/generated/classes/listen-task-configuration.d.ts +0 -39
  501. package/lib/generated/classes/listen-task-configuration.d.ts.map +0 -1
  502. package/lib/generated/classes/listen-task.d.ts +0 -39
  503. package/lib/generated/classes/listen-task.d.ts.map +0 -1
  504. package/lib/generated/classes/oauth2-autenthication-data-audiences.d.ts +0 -43
  505. package/lib/generated/classes/oauth2-autenthication-data-audiences.d.ts.map +0 -1
  506. package/lib/generated/classes/oauth2-autenthication-data-client.d.ts +0 -44
  507. package/lib/generated/classes/oauth2-autenthication-data-client.d.ts.map +0 -1
  508. package/lib/generated/classes/oauth2-autenthication-data-scopes.d.ts +0 -43
  509. package/lib/generated/classes/oauth2-autenthication-data-scopes.d.ts.map +0 -1
  510. package/lib/generated/classes/oauth2-autenthication-data.d.ts +0 -39
  511. package/lib/generated/classes/oauth2-autenthication-data.d.ts.map +0 -1
  512. package/lib/generated/classes/oauth2-authentication-policy-configuration.d.ts +0 -39
  513. package/lib/generated/classes/oauth2-authentication-policy-configuration.d.ts.map +0 -1
  514. package/lib/generated/classes/oauth2-authentication-policy.d.ts +0 -39
  515. package/lib/generated/classes/oauth2-authentication-policy.d.ts.map +0 -1
  516. package/lib/generated/classes/oauth2-authentication-properties-endpoints.d.ts +0 -44
  517. package/lib/generated/classes/oauth2-authentication-properties-endpoints.d.ts.map +0 -1
  518. package/lib/generated/classes/oauth2-connect-authentication-properties.d.ts +0 -39
  519. package/lib/generated/classes/oauth2-connect-authentication-properties.d.ts.map +0 -1
  520. package/lib/generated/classes/oauth2-issuers.d.ts +0 -43
  521. package/lib/generated/classes/oauth2-issuers.d.ts.map +0 -1
  522. package/lib/generated/classes/oauth2-token-definition.d.ts +0 -44
  523. package/lib/generated/classes/oauth2-token-definition.d.ts.map +0 -1
  524. package/lib/generated/classes/oauth2-token-request.d.ts +0 -44
  525. package/lib/generated/classes/oauth2-token-request.d.ts.map +0 -1
  526. package/lib/generated/classes/one-event-consumption-strategy.d.ts +0 -39
  527. package/lib/generated/classes/one-event-consumption-strategy.d.ts.map +0 -1
  528. package/lib/generated/classes/open-api-arguments.d.ts +0 -39
  529. package/lib/generated/classes/open-api-arguments.d.ts.map +0 -1
  530. package/lib/generated/classes/open-id-connect-authentication-policy-configuration.d.ts +0 -39
  531. package/lib/generated/classes/open-id-connect-authentication-policy-configuration.d.ts.map +0 -1
  532. package/lib/generated/classes/open-id-connect-authentication-policy.d.ts +0 -39
  533. package/lib/generated/classes/open-id-connect-authentication-policy.d.ts.map +0 -1
  534. package/lib/generated/classes/open-id-connect-authentication-properties.d.ts +0 -39
  535. package/lib/generated/classes/open-id-connect-authentication-properties.d.ts.map +0 -1
  536. package/lib/generated/classes/output-as.d.ts +0 -44
  537. package/lib/generated/classes/output-as.d.ts.map +0 -1
  538. package/lib/generated/classes/output.d.ts +0 -39
  539. package/lib/generated/classes/output.d.ts.map +0 -1
  540. package/lib/generated/classes/raise-task-configuration.d.ts +0 -39
  541. package/lib/generated/classes/raise-task-configuration.d.ts.map +0 -1
  542. package/lib/generated/classes/raise-task-error.d.ts +0 -44
  543. package/lib/generated/classes/raise-task-error.d.ts.map +0 -1
  544. package/lib/generated/classes/raise-task.d.ts +0 -39
  545. package/lib/generated/classes/raise-task.d.ts.map +0 -1
  546. package/lib/generated/classes/referenceable-authentication-policy.d.ts +0 -39
  547. package/lib/generated/classes/referenceable-authentication-policy.d.ts.map +0 -1
  548. package/lib/generated/classes/retry-backoff.d.ts +0 -44
  549. package/lib/generated/classes/retry-backoff.d.ts.map +0 -1
  550. package/lib/generated/classes/retry-limit-attempt.d.ts +0 -39
  551. package/lib/generated/classes/retry-limit-attempt.d.ts.map +0 -1
  552. package/lib/generated/classes/retry-limit.d.ts +0 -39
  553. package/lib/generated/classes/retry-limit.d.ts.map +0 -1
  554. package/lib/generated/classes/retry-policy-jitter.d.ts +0 -39
  555. package/lib/generated/classes/retry-policy-jitter.d.ts.map +0 -1
  556. package/lib/generated/classes/retry-policy.d.ts +0 -39
  557. package/lib/generated/classes/retry-policy.d.ts.map +0 -1
  558. package/lib/generated/classes/run-container.d.ts +0 -39
  559. package/lib/generated/classes/run-container.d.ts.map +0 -1
  560. package/lib/generated/classes/run-script.d.ts +0 -39
  561. package/lib/generated/classes/run-script.d.ts.map +0 -1
  562. package/lib/generated/classes/run-shell.d.ts +0 -39
  563. package/lib/generated/classes/run-shell.d.ts.map +0 -1
  564. package/lib/generated/classes/run-task-configuration.d.ts +0 -39
  565. package/lib/generated/classes/run-task-configuration.d.ts.map +0 -1
  566. package/lib/generated/classes/run-task.d.ts +0 -39
  567. package/lib/generated/classes/run-task.d.ts.map +0 -1
  568. package/lib/generated/classes/run-workflow.d.ts +0 -39
  569. package/lib/generated/classes/run-workflow.d.ts.map +0 -1
  570. package/lib/generated/classes/runtime-expression.d.ts +0 -44
  571. package/lib/generated/classes/runtime-expression.d.ts.map +0 -1
  572. package/lib/generated/classes/schedule.d.ts +0 -39
  573. package/lib/generated/classes/schedule.d.ts.map +0 -1
  574. package/lib/generated/classes/schema-external.d.ts +0 -39
  575. package/lib/generated/classes/schema-external.d.ts.map +0 -1
  576. package/lib/generated/classes/schema-inline.d.ts +0 -44
  577. package/lib/generated/classes/schema-inline.d.ts.map +0 -1
  578. package/lib/generated/classes/schema.d.ts +0 -39
  579. package/lib/generated/classes/schema.d.ts.map +0 -1
  580. package/lib/generated/classes/script.d.ts +0 -39
  581. package/lib/generated/classes/script.d.ts.map +0 -1
  582. package/lib/generated/classes/secret-based-authentication-policy.d.ts +0 -44
  583. package/lib/generated/classes/secret-based-authentication-policy.d.ts.map +0 -1
  584. package/lib/generated/classes/set-task-configuration.d.ts +0 -44
  585. package/lib/generated/classes/set-task-configuration.d.ts.map +0 -1
  586. package/lib/generated/classes/set-task.d.ts +0 -39
  587. package/lib/generated/classes/set-task.d.ts.map +0 -1
  588. package/lib/generated/classes/shell-arguments.d.ts +0 -44
  589. package/lib/generated/classes/shell-arguments.d.ts.map +0 -1
  590. package/lib/generated/classes/shell-environment.d.ts +0 -44
  591. package/lib/generated/classes/shell-environment.d.ts.map +0 -1
  592. package/lib/generated/classes/shell.d.ts +0 -39
  593. package/lib/generated/classes/shell.d.ts.map +0 -1
  594. package/lib/generated/classes/subflow-configuration.d.ts +0 -39
  595. package/lib/generated/classes/subflow-configuration.d.ts.map +0 -1
  596. package/lib/generated/classes/subflow-input.d.ts +0 -44
  597. package/lib/generated/classes/subflow-input.d.ts.map +0 -1
  598. package/lib/generated/classes/subscription-iterator.d.ts +0 -39
  599. package/lib/generated/classes/subscription-iterator.d.ts.map +0 -1
  600. package/lib/generated/classes/switch-case.d.ts +0 -44
  601. package/lib/generated/classes/switch-case.d.ts.map +0 -1
  602. package/lib/generated/classes/switch-item.d.ts +0 -39
  603. package/lib/generated/classes/switch-item.d.ts.map +0 -1
  604. package/lib/generated/classes/switch-task-configuration.d.ts +0 -38
  605. package/lib/generated/classes/switch-task-configuration.d.ts.map +0 -1
  606. package/lib/generated/classes/switch-task.d.ts +0 -39
  607. package/lib/generated/classes/switch-task.d.ts.map +0 -1
  608. package/lib/generated/classes/task-base-if.d.ts +0 -44
  609. package/lib/generated/classes/task-base-if.d.ts.map +0 -1
  610. package/lib/generated/classes/task-base.d.ts +0 -39
  611. package/lib/generated/classes/task-base.d.ts.map +0 -1
  612. package/lib/generated/classes/task-item.d.ts +0 -39
  613. package/lib/generated/classes/task-item.d.ts.map +0 -1
  614. package/lib/generated/classes/task-list.d.ts +0 -38
  615. package/lib/generated/classes/task-list.d.ts.map +0 -1
  616. package/lib/generated/classes/task-metadata.d.ts +0 -44
  617. package/lib/generated/classes/task-metadata.d.ts.map +0 -1
  618. package/lib/generated/classes/task-timeout.d.ts +0 -39
  619. package/lib/generated/classes/task-timeout.d.ts.map +0 -1
  620. package/lib/generated/classes/task.d.ts +0 -39
  621. package/lib/generated/classes/task.d.ts.map +0 -1
  622. package/lib/generated/classes/timeout.d.ts +0 -39
  623. package/lib/generated/classes/timeout.d.ts.map +0 -1
  624. package/lib/generated/classes/try-task-catch-retry.d.ts +0 -39
  625. package/lib/generated/classes/try-task-catch-retry.d.ts.map +0 -1
  626. package/lib/generated/classes/try-task-catch.d.ts +0 -39
  627. package/lib/generated/classes/try-task-catch.d.ts.map +0 -1
  628. package/lib/generated/classes/try-task.d.ts +0 -39
  629. package/lib/generated/classes/try-task.d.ts.map +0 -1
  630. package/lib/generated/classes/uri-template.d.ts +0 -44
  631. package/lib/generated/classes/uri-template.d.ts.map +0 -1
  632. package/lib/generated/classes/use-authentications.d.ts +0 -39
  633. package/lib/generated/classes/use-authentications.d.ts.map +0 -1
  634. package/lib/generated/classes/use-catalogs.d.ts +0 -39
  635. package/lib/generated/classes/use-catalogs.d.ts.map +0 -1
  636. package/lib/generated/classes/use-errors.d.ts +0 -39
  637. package/lib/generated/classes/use-errors.d.ts.map +0 -1
  638. package/lib/generated/classes/use-extensions.d.ts +0 -38
  639. package/lib/generated/classes/use-extensions.d.ts.map +0 -1
  640. package/lib/generated/classes/use-functions.d.ts +0 -39
  641. package/lib/generated/classes/use-functions.d.ts.map +0 -1
  642. package/lib/generated/classes/use-retries.d.ts +0 -39
  643. package/lib/generated/classes/use-retries.d.ts.map +0 -1
  644. package/lib/generated/classes/use-secrets.d.ts +0 -43
  645. package/lib/generated/classes/use-secrets.d.ts.map +0 -1
  646. package/lib/generated/classes/use-timeouts.d.ts +0 -39
  647. package/lib/generated/classes/use-timeouts.d.ts.map +0 -1
  648. package/lib/generated/classes/use.d.ts +0 -39
  649. package/lib/generated/classes/use.d.ts.map +0 -1
  650. package/lib/generated/classes/wait-task.d.ts +0 -39
  651. package/lib/generated/classes/wait-task.d.ts.map +0 -1
  652. package/lib/generated/classes/with-event.d.ts +0 -44
  653. package/lib/generated/classes/with-event.d.ts.map +0 -1
  654. package/lib/generated/classes/with-grpc-arguments.d.ts +0 -44
  655. package/lib/generated/classes/with-grpc-arguments.d.ts.map +0 -1
  656. package/lib/generated/classes/with-grpc-service.d.ts +0 -39
  657. package/lib/generated/classes/with-grpc-service.d.ts.map +0 -1
  658. package/lib/generated/classes/with-open-api-parameters.d.ts +0 -44
  659. package/lib/generated/classes/with-open-api-parameters.d.ts.map +0 -1
  660. package/lib/generated/classes/workflow-metadata.d.ts +0 -44
  661. package/lib/generated/classes/workflow-metadata.d.ts.map +0 -1
  662. package/lib/generated/classes/workflow-tags.d.ts +0 -44
  663. package/lib/generated/classes/workflow-tags.d.ts.map +0 -1
  664. package/lib/generated/classes/workflow-timeout.d.ts +0 -39
  665. package/lib/generated/classes/workflow-timeout.d.ts.map +0 -1
  666. package/lib/generated/classes/workflow.d.ts +0 -63
  667. package/lib/generated/classes/workflow.d.ts.map +0 -1
  668. package/lib/generated/definitions/index.d.ts +0 -2
  669. package/lib/generated/definitions/index.d.ts.map +0 -1
  670. package/lib/generated/definitions/specification.d.ts +0 -1318
  671. package/lib/generated/definitions/specification.d.ts.map +0 -1
  672. package/lib/generated/validation/index.d.ts +0 -2
  673. package/lib/generated/validation/index.d.ts.map +0 -1
  674. package/lib/generated/validation/validation-pointers.d.ts +0 -171
  675. package/lib/generated/validation/validation-pointers.d.ts.map +0 -1
  676. package/lib/hooks/index.d.ts +0 -2
  677. package/lib/hooks/index.d.ts.map +0 -1
  678. package/lib/hooks/workflow-hooks.d.ts +0 -4
  679. package/lib/hooks/workflow-hooks.d.ts.map +0 -1
  680. package/lib/hydrator.d.ts +0 -13
  681. package/lib/hydrator.d.ts.map +0 -1
  682. package/lib/lifecycle-hooks.d.ts +0 -42
  683. package/lib/lifecycle-hooks.d.ts.map +0 -1
  684. package/lib/utils.d.ts +0 -19
  685. package/lib/utils.d.ts.map +0 -1
  686. package/lib/validation.d.ts +0 -10
  687. package/lib/validation.d.ts.map +0 -1
  688. package/serverless-workflow-sdk.d.ts +0 -5
  689. package/serverless-workflow-sdk.d.ts.map +0 -1
  690. package/systemjs/index.systemjs.js +0 -30730
  691. package/systemjs/index.systemjs.js.map +0 -1
  692. package/systemjs/index.systemjs.min.js +0 -10
  693. package/systemjs/index.systemjs.min.js.map +0 -1
  694. package/umd/index.umd.js +0 -30894
  695. package/umd/index.umd.js.map +0 -1
  696. package/umd/index.umd.min.js +0 -10
  697. package/umd/index.umd.min.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.umd.min.js","names":["isObject","isObject","Ajv","workflowSchema","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","Error","isObject","isObject","isObject","FlowDirective","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","isObject","yaml.load","yaml.dump","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn","buildingFn"],"sources":["../src/lib/builder.ts","../src/lib/utils.ts","../src/lib/hydrator.ts","../package.json","../src/lib/hooks/workflow-hooks.ts","../src/lib/lifecycle-hooks.ts","../node_modules/ajv/dist/compile/codegen/code.js","../node_modules/ajv/dist/compile/codegen/scope.js","../node_modules/ajv/dist/compile/codegen/index.js","../node_modules/ajv/dist/compile/util.js","../node_modules/ajv/dist/compile/names.js","../node_modules/ajv/dist/compile/errors.js","../node_modules/ajv/dist/compile/validate/boolSchema.js","../node_modules/ajv/dist/compile/rules.js","../node_modules/ajv/dist/compile/validate/applicability.js","../node_modules/ajv/dist/compile/validate/dataType.js","../node_modules/ajv/dist/compile/validate/defaults.js","../node_modules/ajv/dist/vocabularies/code.js","../node_modules/ajv/dist/compile/validate/keyword.js","../node_modules/ajv/dist/compile/validate/subschema.js","../node_modules/fast-deep-equal/index.js","../node_modules/json-schema-traverse/index.js","../node_modules/ajv/dist/compile/resolve.js","../node_modules/ajv/dist/compile/validate/index.js","../node_modules/ajv/dist/runtime/validation_error.js","../node_modules/ajv/dist/compile/ref_error.js","../node_modules/ajv/dist/compile/index.js","../node_modules/ajv/dist/refs/data.json","../node_modules/fast-uri/lib/scopedChars.js","../node_modules/fast-uri/lib/utils.js","../node_modules/fast-uri/lib/schemes.js","../node_modules/fast-uri/index.js","../node_modules/ajv/dist/runtime/uri.js","../node_modules/ajv/dist/core.js","../node_modules/ajv/dist/vocabularies/core/id.js","../node_modules/ajv/dist/vocabularies/core/ref.js","../node_modules/ajv/dist/vocabularies/core/index.js","../node_modules/ajv/dist/vocabularies/validation/limitNumber.js","../node_modules/ajv/dist/vocabularies/validation/multipleOf.js","../node_modules/ajv/dist/runtime/ucs2length.js","../node_modules/ajv/dist/vocabularies/validation/limitLength.js","../node_modules/ajv/dist/vocabularies/validation/pattern.js","../node_modules/ajv/dist/vocabularies/validation/limitProperties.js","../node_modules/ajv/dist/vocabularies/validation/required.js","../node_modules/ajv/dist/vocabularies/validation/limitItems.js","../node_modules/ajv/dist/runtime/equal.js","../node_modules/ajv/dist/vocabularies/validation/uniqueItems.js","../node_modules/ajv/dist/vocabularies/validation/const.js","../node_modules/ajv/dist/vocabularies/validation/enum.js","../node_modules/ajv/dist/vocabularies/validation/index.js","../node_modules/ajv/dist/vocabularies/applicator/additionalItems.js","../node_modules/ajv/dist/vocabularies/applicator/items.js","../node_modules/ajv/dist/vocabularies/applicator/prefixItems.js","../node_modules/ajv/dist/vocabularies/applicator/items2020.js","../node_modules/ajv/dist/vocabularies/applicator/contains.js","../node_modules/ajv/dist/vocabularies/applicator/dependencies.js","../node_modules/ajv/dist/vocabularies/applicator/propertyNames.js","../node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js","../node_modules/ajv/dist/vocabularies/applicator/properties.js","../node_modules/ajv/dist/vocabularies/applicator/patternProperties.js","../node_modules/ajv/dist/vocabularies/applicator/not.js","../node_modules/ajv/dist/vocabularies/applicator/anyOf.js","../node_modules/ajv/dist/vocabularies/applicator/oneOf.js","../node_modules/ajv/dist/vocabularies/applicator/allOf.js","../node_modules/ajv/dist/vocabularies/applicator/if.js","../node_modules/ajv/dist/vocabularies/applicator/thenElse.js","../node_modules/ajv/dist/vocabularies/applicator/index.js","../node_modules/ajv/dist/vocabularies/dynamic/dynamicAnchor.js","../node_modules/ajv/dist/vocabularies/dynamic/dynamicRef.js","../node_modules/ajv/dist/vocabularies/dynamic/recursiveAnchor.js","../node_modules/ajv/dist/vocabularies/dynamic/recursiveRef.js","../node_modules/ajv/dist/vocabularies/dynamic/index.js","../node_modules/ajv/dist/vocabularies/validation/dependentRequired.js","../node_modules/ajv/dist/vocabularies/applicator/dependentSchemas.js","../node_modules/ajv/dist/vocabularies/validation/limitContains.js","../node_modules/ajv/dist/vocabularies/next.js","../node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedProperties.js","../node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedItems.js","../node_modules/ajv/dist/vocabularies/unevaluated/index.js","../node_modules/ajv/dist/vocabularies/format/format.js","../node_modules/ajv/dist/vocabularies/format/index.js","../node_modules/ajv/dist/vocabularies/metadata.js","../node_modules/ajv/dist/vocabularies/draft2020.js","../node_modules/ajv/dist/vocabularies/discriminator/types.js","../node_modules/ajv/dist/vocabularies/discriminator/index.js","../node_modules/ajv/dist/refs/json-schema-2020-12/schema.json","../node_modules/ajv/dist/refs/json-schema-2020-12/meta/applicator.json","../node_modules/ajv/dist/refs/json-schema-2020-12/meta/unevaluated.json","../node_modules/ajv/dist/refs/json-schema-2020-12/meta/content.json","../node_modules/ajv/dist/refs/json-schema-2020-12/meta/core.json","../node_modules/ajv/dist/refs/json-schema-2020-12/meta/format-annotation.json","../node_modules/ajv/dist/refs/json-schema-2020-12/meta/meta-data.json","../node_modules/ajv/dist/refs/json-schema-2020-12/meta/validation.json","../node_modules/ajv/dist/refs/json-schema-2020-12/index.js","../node_modules/ajv/dist/2020.js","../node_modules/ajv-formats/dist/formats.js","../node_modules/ajv/dist/vocabularies/draft7.js","../node_modules/ajv/dist/refs/json-schema-draft-07.json","../node_modules/ajv/dist/ajv.js","../node_modules/ajv-formats/dist/limit.js","../node_modules/ajv-formats/dist/index.js","../src/lib/generated/schema/workflow.json","../src/lib/generated/validation/validation-pointers.ts","../src/lib/validation.ts","../src/lib/generated/classes/basic-authentication-policy-configuration.ts","../src/lib/generated/classes/bearer-authentication-policy-configuration.ts","../src/lib/generated/classes/digest-authentication-policy-configuration.ts","../src/lib/generated/classes/oauth2-authentication-data-client.ts","../src/lib/generated/classes/oauth2-token-request.ts","../src/lib/generated/classes/oauth2-token-definition.ts","../src/lib/generated/classes/oauth2-authentication-properties-endpoints.ts","../src/lib/generated/classes/oauth2-authentication-policy-configuration.ts","../src/lib/generated/classes/open-id-connect-authentication-policy-configuration.ts","../src/lib/generated/classes/referenceable-authentication-policy.ts","../src/lib/generated/classes/endpoint.ts","../src/lib/generated/classes/external-resource.ts","../src/lib/generated/classes/a2a-arguments.ts","../src/lib/generated/classes/with-event.ts","../src/lib/generated/classes/event-filter-correlate.ts","../src/lib/generated/classes/event-filter.ts","../src/lib/generated/classes/all-event-consumption-strategy-configuration.ts","../src/lib/generated/classes/all-event-consumption-strategy.ts","../src/lib/generated/classes/any-event-consumption-strategy-configuration.ts","../src/lib/generated/classes/any-event-consumption-strategy-until.ts","../src/lib/generated/classes/any-event-consumption-strategy.ts","../src/lib/generated/classes/any-event-until-consumed.ts","../src/lib/generated/classes/async-api-arguments.ts","../src/lib/generated/classes/authentication-policy.ts","../src/lib/generated/classes/authentication-policy-reference.ts","../src/lib/generated/classes/basic-authentication-policy.ts","../src/lib/generated/classes/basic-authentication-properties.ts","../src/lib/generated/classes/bearer-authentication-policy.ts","../src/lib/generated/classes/bearer-authentication-properties.ts","../src/lib/generated/classes/schema.ts","../src/lib/generated/classes/input.ts","../src/lib/generated/classes/output.ts","../src/lib/generated/classes/export.ts","../src/lib/generated/classes/duration.ts","../src/lib/generated/classes/task-timeout.ts","../src/lib/generated/classes/task-metadata.ts","../src/lib/generated/classes/task-base.ts","../src/lib/generated/classes/call-a2a.ts","../src/lib/generated/classes/call-async-api.ts","../src/lib/generated/classes/function-arguments.ts","../src/lib/generated/classes/call-function.ts","../src/lib/generated/classes/with-grpc-service.ts","../src/lib/generated/classes/with-grpc-arguments.ts","../src/lib/generated/classes/grpc-arguments.ts","../src/lib/generated/classes/call-grpc.ts","../src/lib/generated/classes/http-body.ts","../src/lib/generated/classes/http-arguments.ts","../src/lib/generated/classes/call-http.ts","../src/lib/generated/classes/mcp-client.ts","../src/lib/generated/classes/mcp-arguments.ts","../src/lib/generated/classes/call-mcp.ts","../src/lib/generated/classes/with-open-api-parameters.ts","../src/lib/generated/classes/open-api-arguments.ts","../src/lib/generated/classes/call-open-api.ts","../src/lib/generated/classes/call-task.ts","../src/lib/generated/classes/catalog.ts","../src/lib/generated/classes/error-filter.ts","../src/lib/generated/classes/catch-errors.ts","../src/lib/generated/classes/constant-backoff.ts","../src/lib/generated/classes/container-ports.ts","../src/lib/generated/classes/container-volumes.ts","../src/lib/generated/classes/container-environment.ts","../src/lib/generated/classes/container-lifetime.ts","../src/lib/generated/classes/container.ts","../src/lib/generated/classes/container-arguments.ts","../src/lib/generated/classes/digest-authentication-policy.ts","../src/lib/generated/classes/digest-authentication-properties.ts","../src/lib/generated/classes/workflow-tags.ts","../src/lib/generated/classes/workflow-metadata.ts","../src/lib/generated/classes/document.ts","../src/lib/generated/classes/fork-task-configuration.ts","../src/lib/generated/classes/emit-event-with.ts","../src/lib/generated/classes/emit-event-definition.ts","../src/lib/generated/classes/emit-task-configuration.ts","../src/lib/generated/classes/for-task-configuration.ts","../src/lib/generated/classes/event-consumption-strategy.ts","../src/lib/generated/classes/listen-task-configuration.ts","../src/lib/generated/classes/subscription-iterator.ts","../src/lib/generated/classes/raise-task-error.ts","../src/lib/generated/classes/raise-task-configuration.ts","../src/lib/generated/classes/script.ts","../src/lib/generated/classes/shell-environment.ts","../src/lib/generated/classes/shell.ts","../src/lib/generated/classes/subflow-input.ts","../src/lib/generated/classes/subflow-configuration.ts","../src/lib/generated/classes/run-task-configuration.ts","../src/lib/generated/classes/switch-case.ts","../src/lib/generated/classes/switch-item.ts","../src/lib/generated/classes/switch-task-configuration.ts","../src/lib/generated/classes/retry-backoff.ts","../src/lib/generated/classes/retry-limit-attempt.ts","../src/lib/generated/classes/retry-limit.ts","../src/lib/generated/classes/retry-policy-jitter.ts","../src/lib/generated/classes/try-task-catch-retry.ts","../src/lib/generated/classes/try-task-catch.ts","../src/lib/generated/classes/task.ts","../src/lib/generated/classes/task-item.ts","../src/lib/generated/classes/task-list.ts","../src/lib/generated/classes/do-task.ts","../src/lib/generated/classes/duration-inline.ts","../src/lib/generated/classes/emit-task.ts","../src/lib/generated/classes/endpoint-configuration.ts","../src/lib/generated/classes/endpoint-uri.ts","../src/lib/generated/classes/error.ts","../src/lib/generated/classes/error-details.ts","../src/lib/generated/classes/error-instance.ts","../src/lib/generated/classes/error-title.ts","../src/lib/generated/classes/error-type.ts","../src/lib/generated/classes/event-data.ts","../src/lib/generated/classes/event-dataschema.ts","../src/lib/generated/classes/event-source.ts","../src/lib/generated/classes/event-time.ts","../src/lib/generated/classes/exponential-back-off.ts","../src/lib/generated/classes/export-as.ts","../src/lib/generated/classes/extension.ts","../src/lib/generated/classes/extension-item.ts","../src/lib/generated/classes/external-script.ts","../src/lib/generated/classes/flow-directive.ts","../src/lib/generated/classes/fork-task.ts","../src/lib/generated/classes/for-task.ts","../src/lib/generated/classes/http-headers.ts","../src/lib/generated/classes/http-query.ts","../src/lib/generated/classes/inline-script.ts","../src/lib/generated/classes/input-from.ts","../src/lib/generated/classes/linear-backoff.ts","../src/lib/generated/classes/listen-task.ts","../src/lib/generated/classes/mcp-call-transport.ts","../src/lib/generated/classes/mcp-method-parameters.ts","../src/lib/generated/classes/oauth2-authentication-data.ts","../src/lib/generated/classes/oauth2-authentication-data-audiences.ts","../src/lib/generated/classes/oauth2-authentication-data-scopes.ts","../src/lib/generated/classes/oauth2-authentication-policy.ts","../src/lib/generated/classes/oauth2-connect-authentication-properties.ts","../src/lib/generated/classes/oauth2-issuers.ts","../src/lib/generated/classes/one-event-consumption-strategy.ts","../src/lib/generated/classes/open-id-connect-authentication-policy.ts","../src/lib/generated/classes/open-id-connect-authentication-properties.ts","../src/lib/generated/classes/output-as.ts","../src/lib/generated/classes/raise-task.ts","../src/lib/generated/classes/retry-policy.ts","../src/lib/generated/classes/run-container.ts","../src/lib/generated/classes/run-script.ts","../src/lib/generated/classes/run-shell.ts","../src/lib/generated/classes/run-task.ts","../src/lib/generated/classes/runtime-expression.ts","../src/lib/generated/classes/run-workflow.ts","../src/lib/generated/classes/schedule.ts","../src/lib/generated/classes/schema-external.ts","../src/lib/generated/classes/schema-inline.ts","../src/lib/generated/classes/secret-based-authentication-policy.ts","../src/lib/generated/classes/set-task.ts","../src/lib/generated/classes/set-task-configuration.ts","../src/lib/generated/classes/shell-arguments.ts","../src/lib/generated/classes/switch-task.ts","../src/lib/generated/classes/task-base-if.ts","../src/lib/generated/classes/timeout.ts","../src/lib/generated/classes/try-task.ts","../src/lib/generated/classes/uri-template.ts","../src/lib/generated/classes/use-authentications.ts","../src/lib/generated/classes/use-errors.ts","../src/lib/generated/classes/use-extensions.ts","../src/lib/generated/classes/use-functions.ts","../src/lib/generated/classes/use-retries.ts","../src/lib/generated/classes/use-timeouts.ts","../src/lib/generated/classes/use-catalogs.ts","../src/lib/generated/classes/use.ts","../src/lib/generated/classes/use-secrets.ts","../src/lib/generated/classes/wait-task.ts","../src/lib/generated/classes/with-a2a-parameters.ts","../src/lib/generated/classes/workflow-timeout.ts","../node_modules/js-yaml/dist/js-yaml.mjs","../src/lib/graph-builder.ts","../src/lib/mermaid-converter.ts","../src/lib/generated/classes/workflow.ts","../src/lib/generated/classes/index.ts","../src/lib/generated/builders/a2a-arguments-builder.ts","../src/lib/generated/builders/all-event-consumption-strategy-builder.ts","../src/lib/generated/builders/all-event-consumption-strategy-configuration-builder.ts","../src/lib/generated/builders/any-event-consumption-strategy-builder.ts","../src/lib/generated/builders/any-event-consumption-strategy-configuration-builder.ts","../src/lib/generated/builders/any-event-consumption-strategy-until-builder.ts","../src/lib/generated/builders/any-event-until-consumed-builder.ts","../src/lib/generated/builders/async-api-arguments-builder.ts","../src/lib/generated/builders/authentication-policy-builder.ts","../src/lib/generated/builders/authentication-policy-reference-builder.ts","../src/lib/generated/builders/basic-authentication-policy-builder.ts","../src/lib/generated/builders/basic-authentication-policy-configuration-builder.ts","../src/lib/generated/builders/basic-authentication-properties-builder.ts","../src/lib/generated/builders/bearer-authentication-policy-builder.ts","../src/lib/generated/builders/bearer-authentication-policy-configuration-builder.ts","../src/lib/generated/builders/bearer-authentication-properties-builder.ts","../src/lib/generated/builders/call-a2a-builder.ts","../src/lib/generated/builders/call-async-api-builder.ts","../src/lib/generated/builders/call-function-builder.ts","../src/lib/generated/builders/call-grpc-builder.ts","../src/lib/generated/builders/call-http-builder.ts","../src/lib/generated/builders/call-mcp-builder.ts","../src/lib/generated/builders/call-open-api-builder.ts","../src/lib/generated/builders/call-task-builder.ts","../src/lib/generated/builders/catalog-builder.ts","../src/lib/generated/builders/catch-errors-builder.ts","../src/lib/generated/builders/constant-backoff-builder.ts","../src/lib/generated/builders/container-builder.ts","../src/lib/generated/builders/container-arguments-builder.ts","../src/lib/generated/builders/container-environment-builder.ts","../src/lib/generated/builders/container-lifetime-builder.ts","../src/lib/generated/builders/container-ports-builder.ts","../src/lib/generated/builders/container-volumes-builder.ts","../src/lib/generated/builders/digest-authentication-policy-builder.ts","../src/lib/generated/builders/digest-authentication-policy-configuration-builder.ts","../src/lib/generated/builders/digest-authentication-properties-builder.ts","../src/lib/generated/builders/document-builder.ts","../src/lib/generated/builders/do-task-builder.ts","../src/lib/generated/builders/duration-builder.ts","../src/lib/generated/builders/duration-inline-builder.ts","../src/lib/generated/builders/emit-event-definition-builder.ts","../src/lib/generated/builders/emit-event-with-builder.ts","../src/lib/generated/builders/emit-task-builder.ts","../src/lib/generated/builders/emit-task-configuration-builder.ts","../src/lib/generated/builders/endpoint-builder.ts","../src/lib/generated/builders/endpoint-configuration-builder.ts","../src/lib/generated/builders/endpoint-uri-builder.ts","../src/lib/generated/builders/error-builder.ts","../src/lib/generated/builders/error-details-builder.ts","../src/lib/generated/builders/error-filter-builder.ts","../src/lib/generated/builders/error-instance-builder.ts","../src/lib/generated/builders/error-title-builder.ts","../src/lib/generated/builders/error-type-builder.ts","../src/lib/generated/builders/event-consumption-strategy-builder.ts","../src/lib/generated/builders/event-data-builder.ts","../src/lib/generated/builders/event-dataschema-builder.ts","../src/lib/generated/builders/event-filter-builder.ts","../src/lib/generated/builders/event-filter-correlate-builder.ts","../src/lib/generated/builders/event-source-builder.ts","../src/lib/generated/builders/event-time-builder.ts","../src/lib/generated/builders/exponential-back-off-builder.ts","../src/lib/generated/builders/export-builder.ts","../src/lib/generated/builders/export-as-builder.ts","../src/lib/generated/builders/extension-builder.ts","../src/lib/generated/builders/extension-item-builder.ts","../src/lib/generated/builders/external-resource-builder.ts","../src/lib/generated/builders/external-script-builder.ts","../src/lib/generated/builders/flow-directive-builder.ts","../src/lib/generated/builders/fork-task-builder.ts","../src/lib/generated/builders/fork-task-configuration-builder.ts","../src/lib/generated/builders/for-task-builder.ts","../src/lib/generated/builders/for-task-configuration-builder.ts","../src/lib/generated/builders/function-arguments-builder.ts","../src/lib/generated/builders/grpc-arguments-builder.ts","../src/lib/generated/builders/http-arguments-builder.ts","../src/lib/generated/builders/http-body-builder.ts","../src/lib/generated/builders/http-headers-builder.ts","../src/lib/generated/builders/http-query-builder.ts","../src/lib/generated/builders/inline-script-builder.ts","../src/lib/generated/builders/input-builder.ts","../src/lib/generated/builders/input-from-builder.ts","../src/lib/generated/builders/linear-backoff-builder.ts","../src/lib/generated/builders/listen-task-builder.ts","../src/lib/generated/builders/listen-task-configuration-builder.ts","../src/lib/generated/builders/mcp-arguments-builder.ts","../src/lib/generated/builders/mcp-call-transport-builder.ts","../src/lib/generated/builders/mcp-client-builder.ts","../src/lib/generated/builders/mcp-method-parameters-builder.ts","../src/lib/generated/builders/oauth2-authentication-data-builder.ts","../src/lib/generated/builders/oauth2-authentication-data-audiences-builder.ts","../src/lib/generated/builders/oauth2-authentication-data-client-builder.ts","../src/lib/generated/builders/oauth2-authentication-data-scopes-builder.ts","../src/lib/generated/builders/oauth2-authentication-policy-builder.ts","../src/lib/generated/builders/oauth2-authentication-policy-configuration-builder.ts","../src/lib/generated/builders/oauth2-authentication-properties-endpoints-builder.ts","../src/lib/generated/builders/oauth2-connect-authentication-properties-builder.ts","../src/lib/generated/builders/oauth2-issuers-builder.ts","../src/lib/generated/builders/oauth2-token-definition-builder.ts","../src/lib/generated/builders/oauth2-token-request-builder.ts","../src/lib/generated/builders/one-event-consumption-strategy-builder.ts","../src/lib/generated/builders/open-api-arguments-builder.ts","../src/lib/generated/builders/open-id-connect-authentication-policy-builder.ts","../src/lib/generated/builders/open-id-connect-authentication-policy-configuration-builder.ts","../src/lib/generated/builders/open-id-connect-authentication-properties-builder.ts","../src/lib/generated/builders/output-builder.ts","../src/lib/generated/builders/output-as-builder.ts","../src/lib/generated/builders/raise-task-builder.ts","../src/lib/generated/builders/raise-task-configuration-builder.ts","../src/lib/generated/builders/raise-task-error-builder.ts","../src/lib/generated/builders/referenceable-authentication-policy-builder.ts","../src/lib/generated/builders/retry-backoff-builder.ts","../src/lib/generated/builders/retry-limit-builder.ts","../src/lib/generated/builders/retry-limit-attempt-builder.ts","../src/lib/generated/builders/retry-policy-builder.ts","../src/lib/generated/builders/retry-policy-jitter-builder.ts","../src/lib/generated/builders/run-container-builder.ts","../src/lib/generated/builders/run-script-builder.ts","../src/lib/generated/builders/run-shell-builder.ts","../src/lib/generated/builders/run-task-builder.ts","../src/lib/generated/builders/run-task-configuration-builder.ts","../src/lib/generated/builders/runtime-expression-builder.ts","../src/lib/generated/builders/run-workflow-builder.ts","../src/lib/generated/builders/schedule-builder.ts","../src/lib/generated/builders/schema-builder.ts","../src/lib/generated/builders/schema-external-builder.ts","../src/lib/generated/builders/schema-inline-builder.ts","../src/lib/generated/builders/script-builder.ts","../src/lib/generated/builders/secret-based-authentication-policy-builder.ts","../src/lib/generated/builders/set-task-builder.ts","../src/lib/generated/builders/set-task-configuration-builder.ts","../src/lib/generated/builders/shell-builder.ts","../src/lib/generated/builders/shell-arguments-builder.ts","../src/lib/generated/builders/shell-environment-builder.ts","../src/lib/generated/builders/subflow-configuration-builder.ts","../src/lib/generated/builders/subflow-input-builder.ts","../src/lib/generated/builders/subscription-iterator-builder.ts","../src/lib/generated/builders/switch-case-builder.ts","../src/lib/generated/builders/switch-item-builder.ts","../src/lib/generated/builders/switch-task-builder.ts","../src/lib/generated/builders/switch-task-configuration-builder.ts","../src/lib/generated/builders/task-builder.ts","../src/lib/generated/builders/task-base-builder.ts","../src/lib/generated/builders/task-base-if-builder.ts","../src/lib/generated/builders/task-item-builder.ts","../src/lib/generated/builders/task-list-builder.ts","../src/lib/generated/builders/task-metadata-builder.ts","../src/lib/generated/builders/task-timeout-builder.ts","../src/lib/generated/builders/timeout-builder.ts","../src/lib/generated/builders/try-task-builder.ts","../src/lib/generated/builders/try-task-catch-builder.ts","../src/lib/generated/builders/try-task-catch-retry-builder.ts","../src/lib/generated/builders/uri-template-builder.ts","../src/lib/generated/builders/use-builder.ts","../src/lib/generated/builders/use-authentications-builder.ts","../src/lib/generated/builders/use-catalogs-builder.ts","../src/lib/generated/builders/use-errors-builder.ts","../src/lib/generated/builders/use-extensions-builder.ts","../src/lib/generated/builders/use-functions-builder.ts","../src/lib/generated/builders/use-retries-builder.ts","../src/lib/generated/builders/use-secrets-builder.ts","../src/lib/generated/builders/use-timeouts-builder.ts","../src/lib/generated/builders/wait-task-builder.ts","../src/lib/generated/builders/with-a2a-parameters-builder.ts","../src/lib/generated/builders/with-event-builder.ts","../src/lib/generated/builders/with-grpc-arguments-builder.ts","../src/lib/generated/builders/with-grpc-service-builder.ts","../src/lib/generated/builders/with-open-api-parameters-builder.ts","../src/lib/generated/builders/workflow-builder.ts","../src/lib/generated/builders/workflow-metadata-builder.ts","../src/lib/generated/builders/workflow-tags-builder.ts","../src/lib/generated/builders/workflow-timeout-builder.ts","../src/lib/generated/definitions/specification.ts"],"sourcesContent":["/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * oUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n/**\n * Represents the options passed to the `build()` method\n */\nexport type BuildOptions = {\n /**\n * Default true\n */\n validate?: boolean;\n /**\n * Default true\n */\n normalize?: boolean;\n};\n\n/**\n * The type of the underlying function called on `build()` for objects\n */\nexport type BuildingFunction<TSpec, TBuilt> = (model: TSpec, options: BuildOptions) => TBuilt;\n\n/**\n * The type of the underlying function called on `build()` for arrays\n */\nexport type ArrayBuildingFunction<TSpec, TBuilt> = (model: Array<TSpec>, options: BuildOptions) => TBuilt;\n\n/**\n * Represents a fluent builder proxy for an object\n */\nexport type Builder<TSpec, TBuilt = TSpec> = {\n build: (option?: BuildOptions) => TBuilt;\n} & {\n [K in keyof TSpec]-?: (arg: TSpec[K]) => Builder<TSpec, TBuilt>;\n};\n\n/**\n * Represents a fluent builder proxy for an array\n */\nexport type ArrayBuilder<TSpec, TBuilt> = {\n push: (item: TSpec) => ArrayBuilder<TSpec, TBuilt>;\n build: (option?: BuildOptions) => TBuilt;\n};\n\n/**\n * The default function used to build an object, basically just return the provided object\n * @param model The object to \"build\"\n * @param options The build options\n * @returns\n */\nfunction defaultBuildingFn<TSpec, TBuilt = TSpec>(model: TSpec, options: BuildOptions): TBuilt {\n // Keep defaults explicit so callers can omit both options.\n if (options.validate == null) {\n options.validate = true;\n }\n if (options.normalize == null) {\n options.normalize = true;\n }\n return model as unknown as TBuilt;\n}\n\n/**\n * A factory for fluent builders that proxy properties assignations and can validate against schema on build()\n * @param buildingFn The function used to validate and produce the object on build()\n * @returns A fluent builder\n */\nexport function builder<TSpec, TBuilt = TSpec>(\n model: Partial<TSpec> = {},\n buildingFn: BuildingFunction<TSpec, TBuilt> = defaultBuildingFn,\n): Builder<Partial<TSpec>, TBuilt> {\n const proxy = new Proxy({} as Builder<Partial<TSpec>, TBuilt>, {\n get: (_, prop) => {\n if (prop === 'build') {\n return (options?: BuildOptions) => {\n options = options || ({} as BuildOptions);\n if (options.validate == null) {\n options.validate = true;\n }\n if (options.normalize == null) {\n options.normalize = true;\n }\n return buildingFn(model as TSpec, options);\n };\n }\n return (value: unknown): Builder<Partial<TSpec>, TBuilt> => {\n (model as Record<string, unknown>)[prop.toString()] = value;\n return proxy;\n };\n },\n set: () => {\n return false;\n },\n });\n return proxy;\n}\n\n/**\n * A factory for fluent builders that proxy properties assignations and can validate against schema on build()\n * @param buildingFn The function used to validate and produce the object on build()\n * @returns A fluent builder\n */\nexport function arrayBuilder<TSpec, TBuilt>(\n model: Array<TSpec> = [],\n buildingFn: ArrayBuildingFunction<TSpec, TBuilt> = defaultBuildingFn,\n): ArrayBuilder<TSpec, TBuilt> {\n if (model != null && !Array.isArray(model)) {\n throw new Error(`The provided model should be an array`);\n }\n const proxy = new Proxy({} as ArrayBuilder<TSpec, TBuilt>, {\n get: (_, prop) => {\n if (prop === 'build') {\n return (options?: BuildOptions) => {\n options = options || ({} as BuildOptions);\n if (options.validate == null) {\n options.validate = true;\n }\n if (options.normalize == null) {\n options.normalize = true;\n }\n return buildingFn(model, options);\n };\n }\n if (prop === 'push') {\n return (value: TSpec): ArrayBuilder<TSpec, TBuilt> => {\n model.push(value);\n return proxy;\n };\n }\n },\n set: () => {\n return false;\n },\n });\n return proxy;\n}\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * oUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n/**\n * Check if the provided value is an object but not an array\n * @param value The value to check\n * @returns True if the value is an object\n */\nexport const isObject = <T>(value: T): value is T & object => {\n if (!value) return false;\n return typeof value === 'object' && !Array.isArray(value);\n};\n\n/**\n * Makes a deep copy of the provided object\n * @param obj\n * @returns\n */\nexport const deepCopy = <T>(obj: T): T => JSON.parse(JSON.stringify(obj));\n\n/**\n * Checks the provided array is an array\n * @param arr\n * @returns\n */\nexport const isArray = <T>(arr: Array<T> | number | undefined): arr is Array<T> => !!arr && isNaN(arr as number);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * oUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\nimport { deepCopy, isObject } from './utils';\n\n/**\n * A base class used for object hydration\n */\nexport class ObjectHydrator<T> {\n constructor(model?: Partial<T>) {\n if (isObject(model)) {\n Object.assign(this, deepCopy(model));\n }\n }\n}\n\n/**\n * A base class used for array hydration\n */\nexport class ArrayHydrator<T> extends Array<T> {\n constructor(model?: Array<T> | number) {\n if (!isNaN(model as number)) {\n super(model as number);\n } else {\n super(...((model as Array<T>) || []));\n if (!model) {\n model = [];\n }\n if (!Array.isArray(model)) {\n throw new Error('The provided model should be an array');\n }\n }\n }\n}\n","","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { LifecycleHooks } from '../lifecycle-hooks';\nimport { Specification } from '../generated/definitions';\n\nimport { schemaVersion } from '../../../package.json';\n\nexport const WorkflowHooks = {\n preValidation(instance) {\n if (instance?.document?.dsl !== schemaVersion) {\n throw new Error(\n `'Workflow' is invalid - The DSL version of the workflow '${instance?.document?.dsl}' doesn't match the supported version of the SDK '${schemaVersion}'.`,\n );\n }\n return;\n },\n} as LifecycleHooks<Specification.Workflow>;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * oUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\nimport { Specification } from './generated/definitions';\nimport { WorkflowHooks } from './hooks';\n\n/**\n * Represents the possible lifecycle hooks of an instance\n */\nexport type LifecycleHooks<T> = {\n /**\n * The hook called at the end of the constructor\n * @param instance The instance being initialized\n */\n constructor?: (instance: T) => void;\n /**\n * The hook called before the validation\n * @param instance A copy instance being validated\n * @param workflow A workflow instance, used for DSL level validation\n */\n preValidation?: (instance: T, workflow?: Partial<Specification.Workflow>) => void;\n /**\n * The hook called after the validation\n * @param instance A copy instance being validated\n * @param workflow A workflow instance, used for DSL level validation\n */\n postValidation?: (instance: T, workflow?: Partial<Specification.Workflow>) => void;\n /**\n * The hook called to normalized the instance\n * @param instance A copy of the instance to normalize\n * @returns The normalized instance\n */\n normalize?: (instance: T) => T;\n};\n\n/**\n * A mapping of type names and their lifecycle hooks\n */\n// The generated classes call these hooks without generic arguments, so this registry must stay untyped at runtime.\nconst registeredHooks: Map<string, LifecycleHooks<any>> = new Map<string, LifecycleHooks<any>>();\n\n/**\n * The function used to register hooks\n * @param typeName The name of the type to register the hooks for\n * @param hooks The hooks to register\n */\nexport const registerHooks = (typeName: string, hooks: LifecycleHooks<any>): void => {\n registeredHooks.set(typeName, hooks);\n};\n\n/**\n * Gets the lifecylce hook for the provided type, if any\n * @param typeName The type to get the lifecycle hook for\n * @returns The lifecycle hook, if any\n */\nexport const getLifecycleHooks = (typeName: string): LifecycleHooks<any> | undefined => {\n return registeredHooks.get(typeName);\n};\n\nregisterHooks('Workflow', WorkflowHooks);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.regexpCode = exports.getEsmExportName = exports.getProperty = exports.safeStringify = exports.stringify = exports.strConcat = exports.addCodeArg = exports.str = exports._ = exports.nil = exports._Code = exports.Name = exports.IDENTIFIER = exports._CodeOrName = void 0;\n// eslint-disable-next-line @typescript-eslint/no-extraneous-class\nclass _CodeOrName {\n}\nexports._CodeOrName = _CodeOrName;\nexports.IDENTIFIER = /^[a-z$_][a-z$_0-9]*$/i;\nclass Name extends _CodeOrName {\n constructor(s) {\n super();\n if (!exports.IDENTIFIER.test(s))\n throw new Error(\"CodeGen: name must be a valid identifier\");\n this.str = s;\n }\n toString() {\n return this.str;\n }\n emptyStr() {\n return false;\n }\n get names() {\n return { [this.str]: 1 };\n }\n}\nexports.Name = Name;\nclass _Code extends _CodeOrName {\n constructor(code) {\n super();\n this._items = typeof code === \"string\" ? [code] : code;\n }\n toString() {\n return this.str;\n }\n emptyStr() {\n if (this._items.length > 1)\n return false;\n const item = this._items[0];\n return item === \"\" || item === '\"\"';\n }\n get str() {\n var _a;\n return ((_a = this._str) !== null && _a !== void 0 ? _a : (this._str = this._items.reduce((s, c) => `${s}${c}`, \"\")));\n }\n get names() {\n var _a;\n return ((_a = this._names) !== null && _a !== void 0 ? _a : (this._names = this._items.reduce((names, c) => {\n if (c instanceof Name)\n names[c.str] = (names[c.str] || 0) + 1;\n return names;\n }, {})));\n }\n}\nexports._Code = _Code;\nexports.nil = new _Code(\"\");\nfunction _(strs, ...args) {\n const code = [strs[0]];\n let i = 0;\n while (i < args.length) {\n addCodeArg(code, args[i]);\n code.push(strs[++i]);\n }\n return new _Code(code);\n}\nexports._ = _;\nconst plus = new _Code(\"+\");\nfunction str(strs, ...args) {\n const expr = [safeStringify(strs[0])];\n let i = 0;\n while (i < args.length) {\n expr.push(plus);\n addCodeArg(expr, args[i]);\n expr.push(plus, safeStringify(strs[++i]));\n }\n optimize(expr);\n return new _Code(expr);\n}\nexports.str = str;\nfunction addCodeArg(code, arg) {\n if (arg instanceof _Code)\n code.push(...arg._items);\n else if (arg instanceof Name)\n code.push(arg);\n else\n code.push(interpolate(arg));\n}\nexports.addCodeArg = addCodeArg;\nfunction optimize(expr) {\n let i = 1;\n while (i < expr.length - 1) {\n if (expr[i] === plus) {\n const res = mergeExprItems(expr[i - 1], expr[i + 1]);\n if (res !== undefined) {\n expr.splice(i - 1, 3, res);\n continue;\n }\n expr[i++] = \"+\";\n }\n i++;\n }\n}\nfunction mergeExprItems(a, b) {\n if (b === '\"\"')\n return a;\n if (a === '\"\"')\n return b;\n if (typeof a == \"string\") {\n if (b instanceof Name || a[a.length - 1] !== '\"')\n return;\n if (typeof b != \"string\")\n return `${a.slice(0, -1)}${b}\"`;\n if (b[0] === '\"')\n return a.slice(0, -1) + b.slice(1);\n return;\n }\n if (typeof b == \"string\" && b[0] === '\"' && !(a instanceof Name))\n return `\"${a}${b.slice(1)}`;\n return;\n}\nfunction strConcat(c1, c2) {\n return c2.emptyStr() ? c1 : c1.emptyStr() ? c2 : str `${c1}${c2}`;\n}\nexports.strConcat = strConcat;\n// TODO do not allow arrays here\nfunction interpolate(x) {\n return typeof x == \"number\" || typeof x == \"boolean\" || x === null\n ? x\n : safeStringify(Array.isArray(x) ? x.join(\",\") : x);\n}\nfunction stringify(x) {\n return new _Code(safeStringify(x));\n}\nexports.stringify = stringify;\nfunction safeStringify(x) {\n return JSON.stringify(x)\n .replace(/\\u2028/g, \"\\\\u2028\")\n .replace(/\\u2029/g, \"\\\\u2029\");\n}\nexports.safeStringify = safeStringify;\nfunction getProperty(key) {\n return typeof key == \"string\" && exports.IDENTIFIER.test(key) ? new _Code(`.${key}`) : _ `[${key}]`;\n}\nexports.getProperty = getProperty;\n//Does best effort to format the name properly\nfunction getEsmExportName(key) {\n if (typeof key == \"string\" && exports.IDENTIFIER.test(key)) {\n return new _Code(`${key}`);\n }\n throw new Error(`CodeGen: invalid export name: ${key}, use explicit $id name mapping`);\n}\nexports.getEsmExportName = getEsmExportName;\nfunction regexpCode(rx) {\n return new _Code(rx.toString());\n}\nexports.regexpCode = regexpCode;\n//# sourceMappingURL=code.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ValueScope = exports.ValueScopeName = exports.Scope = exports.varKinds = exports.UsedValueState = void 0;\nconst code_1 = require(\"./code\");\nclass ValueError extends Error {\n constructor(name) {\n super(`CodeGen: \"code\" for ${name} not defined`);\n this.value = name.value;\n }\n}\nvar UsedValueState;\n(function (UsedValueState) {\n UsedValueState[UsedValueState[\"Started\"] = 0] = \"Started\";\n UsedValueState[UsedValueState[\"Completed\"] = 1] = \"Completed\";\n})(UsedValueState || (exports.UsedValueState = UsedValueState = {}));\nexports.varKinds = {\n const: new code_1.Name(\"const\"),\n let: new code_1.Name(\"let\"),\n var: new code_1.Name(\"var\"),\n};\nclass Scope {\n constructor({ prefixes, parent } = {}) {\n this._names = {};\n this._prefixes = prefixes;\n this._parent = parent;\n }\n toName(nameOrPrefix) {\n return nameOrPrefix instanceof code_1.Name ? nameOrPrefix : this.name(nameOrPrefix);\n }\n name(prefix) {\n return new code_1.Name(this._newName(prefix));\n }\n _newName(prefix) {\n const ng = this._names[prefix] || this._nameGroup(prefix);\n return `${prefix}${ng.index++}`;\n }\n _nameGroup(prefix) {\n var _a, _b;\n if (((_b = (_a = this._parent) === null || _a === void 0 ? void 0 : _a._prefixes) === null || _b === void 0 ? void 0 : _b.has(prefix)) || (this._prefixes && !this._prefixes.has(prefix))) {\n throw new Error(`CodeGen: prefix \"${prefix}\" is not allowed in this scope`);\n }\n return (this._names[prefix] = { prefix, index: 0 });\n }\n}\nexports.Scope = Scope;\nclass ValueScopeName extends code_1.Name {\n constructor(prefix, nameStr) {\n super(nameStr);\n this.prefix = prefix;\n }\n setValue(value, { property, itemIndex }) {\n this.value = value;\n this.scopePath = (0, code_1._) `.${new code_1.Name(property)}[${itemIndex}]`;\n }\n}\nexports.ValueScopeName = ValueScopeName;\nconst line = (0, code_1._) `\\n`;\nclass ValueScope extends Scope {\n constructor(opts) {\n super(opts);\n this._values = {};\n this._scope = opts.scope;\n this.opts = { ...opts, _n: opts.lines ? line : code_1.nil };\n }\n get() {\n return this._scope;\n }\n name(prefix) {\n return new ValueScopeName(prefix, this._newName(prefix));\n }\n value(nameOrPrefix, value) {\n var _a;\n if (value.ref === undefined)\n throw new Error(\"CodeGen: ref must be passed in value\");\n const name = this.toName(nameOrPrefix);\n const { prefix } = name;\n const valueKey = (_a = value.key) !== null && _a !== void 0 ? _a : value.ref;\n let vs = this._values[prefix];\n if (vs) {\n const _name = vs.get(valueKey);\n if (_name)\n return _name;\n }\n else {\n vs = this._values[prefix] = new Map();\n }\n vs.set(valueKey, name);\n const s = this._scope[prefix] || (this._scope[prefix] = []);\n const itemIndex = s.length;\n s[itemIndex] = value.ref;\n name.setValue(value, { property: prefix, itemIndex });\n return name;\n }\n getValue(prefix, keyOrRef) {\n const vs = this._values[prefix];\n if (!vs)\n return;\n return vs.get(keyOrRef);\n }\n scopeRefs(scopeName, values = this._values) {\n return this._reduceValues(values, (name) => {\n if (name.scopePath === undefined)\n throw new Error(`CodeGen: name \"${name}\" has no value`);\n return (0, code_1._) `${scopeName}${name.scopePath}`;\n });\n }\n scopeCode(values = this._values, usedValues, getCode) {\n return this._reduceValues(values, (name) => {\n if (name.value === undefined)\n throw new Error(`CodeGen: name \"${name}\" has no value`);\n return name.value.code;\n }, usedValues, getCode);\n }\n _reduceValues(values, valueCode, usedValues = {}, getCode) {\n let code = code_1.nil;\n for (const prefix in values) {\n const vs = values[prefix];\n if (!vs)\n continue;\n const nameSet = (usedValues[prefix] = usedValues[prefix] || new Map());\n vs.forEach((name) => {\n if (nameSet.has(name))\n return;\n nameSet.set(name, UsedValueState.Started);\n let c = valueCode(name);\n if (c) {\n const def = this.opts.es5 ? exports.varKinds.var : exports.varKinds.const;\n code = (0, code_1._) `${code}${def} ${name} = ${c};${this.opts._n}`;\n }\n else if ((c = getCode === null || getCode === void 0 ? void 0 : getCode(name))) {\n code = (0, code_1._) `${code}${c}${this.opts._n}`;\n }\n else {\n throw new ValueError(name);\n }\n nameSet.set(name, UsedValueState.Completed);\n });\n }\n return code;\n }\n}\nexports.ValueScope = ValueScope;\n//# sourceMappingURL=scope.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.or = exports.and = exports.not = exports.CodeGen = exports.operators = exports.varKinds = exports.ValueScopeName = exports.ValueScope = exports.Scope = exports.Name = exports.regexpCode = exports.stringify = exports.getProperty = exports.nil = exports.strConcat = exports.str = exports._ = void 0;\nconst code_1 = require(\"./code\");\nconst scope_1 = require(\"./scope\");\nvar code_2 = require(\"./code\");\nObject.defineProperty(exports, \"_\", { enumerable: true, get: function () { return code_2._; } });\nObject.defineProperty(exports, \"str\", { enumerable: true, get: function () { return code_2.str; } });\nObject.defineProperty(exports, \"strConcat\", { enumerable: true, get: function () { return code_2.strConcat; } });\nObject.defineProperty(exports, \"nil\", { enumerable: true, get: function () { return code_2.nil; } });\nObject.defineProperty(exports, \"getProperty\", { enumerable: true, get: function () { return code_2.getProperty; } });\nObject.defineProperty(exports, \"stringify\", { enumerable: true, get: function () { return code_2.stringify; } });\nObject.defineProperty(exports, \"regexpCode\", { enumerable: true, get: function () { return code_2.regexpCode; } });\nObject.defineProperty(exports, \"Name\", { enumerable: true, get: function () { return code_2.Name; } });\nvar scope_2 = require(\"./scope\");\nObject.defineProperty(exports, \"Scope\", { enumerable: true, get: function () { return scope_2.Scope; } });\nObject.defineProperty(exports, \"ValueScope\", { enumerable: true, get: function () { return scope_2.ValueScope; } });\nObject.defineProperty(exports, \"ValueScopeName\", { enumerable: true, get: function () { return scope_2.ValueScopeName; } });\nObject.defineProperty(exports, \"varKinds\", { enumerable: true, get: function () { return scope_2.varKinds; } });\nexports.operators = {\n GT: new code_1._Code(\">\"),\n GTE: new code_1._Code(\">=\"),\n LT: new code_1._Code(\"<\"),\n LTE: new code_1._Code(\"<=\"),\n EQ: new code_1._Code(\"===\"),\n NEQ: new code_1._Code(\"!==\"),\n NOT: new code_1._Code(\"!\"),\n OR: new code_1._Code(\"||\"),\n AND: new code_1._Code(\"&&\"),\n ADD: new code_1._Code(\"+\"),\n};\nclass Node {\n optimizeNodes() {\n return this;\n }\n optimizeNames(_names, _constants) {\n return this;\n }\n}\nclass Def extends Node {\n constructor(varKind, name, rhs) {\n super();\n this.varKind = varKind;\n this.name = name;\n this.rhs = rhs;\n }\n render({ es5, _n }) {\n const varKind = es5 ? scope_1.varKinds.var : this.varKind;\n const rhs = this.rhs === undefined ? \"\" : ` = ${this.rhs}`;\n return `${varKind} ${this.name}${rhs};` + _n;\n }\n optimizeNames(names, constants) {\n if (!names[this.name.str])\n return;\n if (this.rhs)\n this.rhs = optimizeExpr(this.rhs, names, constants);\n return this;\n }\n get names() {\n return this.rhs instanceof code_1._CodeOrName ? this.rhs.names : {};\n }\n}\nclass Assign extends Node {\n constructor(lhs, rhs, sideEffects) {\n super();\n this.lhs = lhs;\n this.rhs = rhs;\n this.sideEffects = sideEffects;\n }\n render({ _n }) {\n return `${this.lhs} = ${this.rhs};` + _n;\n }\n optimizeNames(names, constants) {\n if (this.lhs instanceof code_1.Name && !names[this.lhs.str] && !this.sideEffects)\n return;\n this.rhs = optimizeExpr(this.rhs, names, constants);\n return this;\n }\n get names() {\n const names = this.lhs instanceof code_1.Name ? {} : { ...this.lhs.names };\n return addExprNames(names, this.rhs);\n }\n}\nclass AssignOp extends Assign {\n constructor(lhs, op, rhs, sideEffects) {\n super(lhs, rhs, sideEffects);\n this.op = op;\n }\n render({ _n }) {\n return `${this.lhs} ${this.op}= ${this.rhs};` + _n;\n }\n}\nclass Label extends Node {\n constructor(label) {\n super();\n this.label = label;\n this.names = {};\n }\n render({ _n }) {\n return `${this.label}:` + _n;\n }\n}\nclass Break extends Node {\n constructor(label) {\n super();\n this.label = label;\n this.names = {};\n }\n render({ _n }) {\n const label = this.label ? ` ${this.label}` : \"\";\n return `break${label};` + _n;\n }\n}\nclass Throw extends Node {\n constructor(error) {\n super();\n this.error = error;\n }\n render({ _n }) {\n return `throw ${this.error};` + _n;\n }\n get names() {\n return this.error.names;\n }\n}\nclass AnyCode extends Node {\n constructor(code) {\n super();\n this.code = code;\n }\n render({ _n }) {\n return `${this.code};` + _n;\n }\n optimizeNodes() {\n return `${this.code}` ? this : undefined;\n }\n optimizeNames(names, constants) {\n this.code = optimizeExpr(this.code, names, constants);\n return this;\n }\n get names() {\n return this.code instanceof code_1._CodeOrName ? this.code.names : {};\n }\n}\nclass ParentNode extends Node {\n constructor(nodes = []) {\n super();\n this.nodes = nodes;\n }\n render(opts) {\n return this.nodes.reduce((code, n) => code + n.render(opts), \"\");\n }\n optimizeNodes() {\n const { nodes } = this;\n let i = nodes.length;\n while (i--) {\n const n = nodes[i].optimizeNodes();\n if (Array.isArray(n))\n nodes.splice(i, 1, ...n);\n else if (n)\n nodes[i] = n;\n else\n nodes.splice(i, 1);\n }\n return nodes.length > 0 ? this : undefined;\n }\n optimizeNames(names, constants) {\n const { nodes } = this;\n let i = nodes.length;\n while (i--) {\n // iterating backwards improves 1-pass optimization\n const n = nodes[i];\n if (n.optimizeNames(names, constants))\n continue;\n subtractNames(names, n.names);\n nodes.splice(i, 1);\n }\n return nodes.length > 0 ? this : undefined;\n }\n get names() {\n return this.nodes.reduce((names, n) => addNames(names, n.names), {});\n }\n}\nclass BlockNode extends ParentNode {\n render(opts) {\n return \"{\" + opts._n + super.render(opts) + \"}\" + opts._n;\n }\n}\nclass Root extends ParentNode {\n}\nclass Else extends BlockNode {\n}\nElse.kind = \"else\";\nclass If extends BlockNode {\n constructor(condition, nodes) {\n super(nodes);\n this.condition = condition;\n }\n render(opts) {\n let code = `if(${this.condition})` + super.render(opts);\n if (this.else)\n code += \"else \" + this.else.render(opts);\n return code;\n }\n optimizeNodes() {\n super.optimizeNodes();\n const cond = this.condition;\n if (cond === true)\n return this.nodes; // else is ignored here\n let e = this.else;\n if (e) {\n const ns = e.optimizeNodes();\n e = this.else = Array.isArray(ns) ? new Else(ns) : ns;\n }\n if (e) {\n if (cond === false)\n return e instanceof If ? e : e.nodes;\n if (this.nodes.length)\n return this;\n return new If(not(cond), e instanceof If ? [e] : e.nodes);\n }\n if (cond === false || !this.nodes.length)\n return undefined;\n return this;\n }\n optimizeNames(names, constants) {\n var _a;\n this.else = (_a = this.else) === null || _a === void 0 ? void 0 : _a.optimizeNames(names, constants);\n if (!(super.optimizeNames(names, constants) || this.else))\n return;\n this.condition = optimizeExpr(this.condition, names, constants);\n return this;\n }\n get names() {\n const names = super.names;\n addExprNames(names, this.condition);\n if (this.else)\n addNames(names, this.else.names);\n return names;\n }\n}\nIf.kind = \"if\";\nclass For extends BlockNode {\n}\nFor.kind = \"for\";\nclass ForLoop extends For {\n constructor(iteration) {\n super();\n this.iteration = iteration;\n }\n render(opts) {\n return `for(${this.iteration})` + super.render(opts);\n }\n optimizeNames(names, constants) {\n if (!super.optimizeNames(names, constants))\n return;\n this.iteration = optimizeExpr(this.iteration, names, constants);\n return this;\n }\n get names() {\n return addNames(super.names, this.iteration.names);\n }\n}\nclass ForRange extends For {\n constructor(varKind, name, from, to) {\n super();\n this.varKind = varKind;\n this.name = name;\n this.from = from;\n this.to = to;\n }\n render(opts) {\n const varKind = opts.es5 ? scope_1.varKinds.var : this.varKind;\n const { name, from, to } = this;\n return `for(${varKind} ${name}=${from}; ${name}<${to}; ${name}++)` + super.render(opts);\n }\n get names() {\n const names = addExprNames(super.names, this.from);\n return addExprNames(names, this.to);\n }\n}\nclass ForIter extends For {\n constructor(loop, varKind, name, iterable) {\n super();\n this.loop = loop;\n this.varKind = varKind;\n this.name = name;\n this.iterable = iterable;\n }\n render(opts) {\n return `for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})` + super.render(opts);\n }\n optimizeNames(names, constants) {\n if (!super.optimizeNames(names, constants))\n return;\n this.iterable = optimizeExpr(this.iterable, names, constants);\n return this;\n }\n get names() {\n return addNames(super.names, this.iterable.names);\n }\n}\nclass Func extends BlockNode {\n constructor(name, args, async) {\n super();\n this.name = name;\n this.args = args;\n this.async = async;\n }\n render(opts) {\n const _async = this.async ? \"async \" : \"\";\n return `${_async}function ${this.name}(${this.args})` + super.render(opts);\n }\n}\nFunc.kind = \"func\";\nclass Return extends ParentNode {\n render(opts) {\n return \"return \" + super.render(opts);\n }\n}\nReturn.kind = \"return\";\nclass Try extends BlockNode {\n render(opts) {\n let code = \"try\" + super.render(opts);\n if (this.catch)\n code += this.catch.render(opts);\n if (this.finally)\n code += this.finally.render(opts);\n return code;\n }\n optimizeNodes() {\n var _a, _b;\n super.optimizeNodes();\n (_a = this.catch) === null || _a === void 0 ? void 0 : _a.optimizeNodes();\n (_b = this.finally) === null || _b === void 0 ? void 0 : _b.optimizeNodes();\n return this;\n }\n optimizeNames(names, constants) {\n var _a, _b;\n super.optimizeNames(names, constants);\n (_a = this.catch) === null || _a === void 0 ? void 0 : _a.optimizeNames(names, constants);\n (_b = this.finally) === null || _b === void 0 ? void 0 : _b.optimizeNames(names, constants);\n return this;\n }\n get names() {\n const names = super.names;\n if (this.catch)\n addNames(names, this.catch.names);\n if (this.finally)\n addNames(names, this.finally.names);\n return names;\n }\n}\nclass Catch extends BlockNode {\n constructor(error) {\n super();\n this.error = error;\n }\n render(opts) {\n return `catch(${this.error})` + super.render(opts);\n }\n}\nCatch.kind = \"catch\";\nclass Finally extends BlockNode {\n render(opts) {\n return \"finally\" + super.render(opts);\n }\n}\nFinally.kind = \"finally\";\nclass CodeGen {\n constructor(extScope, opts = {}) {\n this._values = {};\n this._blockStarts = [];\n this._constants = {};\n this.opts = { ...opts, _n: opts.lines ? \"\\n\" : \"\" };\n this._extScope = extScope;\n this._scope = new scope_1.Scope({ parent: extScope });\n this._nodes = [new Root()];\n }\n toString() {\n return this._root.render(this.opts);\n }\n // returns unique name in the internal scope\n name(prefix) {\n return this._scope.name(prefix);\n }\n // reserves unique name in the external scope\n scopeName(prefix) {\n return this._extScope.name(prefix);\n }\n // reserves unique name in the external scope and assigns value to it\n scopeValue(prefixOrName, value) {\n const name = this._extScope.value(prefixOrName, value);\n const vs = this._values[name.prefix] || (this._values[name.prefix] = new Set());\n vs.add(name);\n return name;\n }\n getScopeValue(prefix, keyOrRef) {\n return this._extScope.getValue(prefix, keyOrRef);\n }\n // return code that assigns values in the external scope to the names that are used internally\n // (same names that were returned by gen.scopeName or gen.scopeValue)\n scopeRefs(scopeName) {\n return this._extScope.scopeRefs(scopeName, this._values);\n }\n scopeCode() {\n return this._extScope.scopeCode(this._values);\n }\n _def(varKind, nameOrPrefix, rhs, constant) {\n const name = this._scope.toName(nameOrPrefix);\n if (rhs !== undefined && constant)\n this._constants[name.str] = rhs;\n this._leafNode(new Def(varKind, name, rhs));\n return name;\n }\n // `const` declaration (`var` in es5 mode)\n const(nameOrPrefix, rhs, _constant) {\n return this._def(scope_1.varKinds.const, nameOrPrefix, rhs, _constant);\n }\n // `let` declaration with optional assignment (`var` in es5 mode)\n let(nameOrPrefix, rhs, _constant) {\n return this._def(scope_1.varKinds.let, nameOrPrefix, rhs, _constant);\n }\n // `var` declaration with optional assignment\n var(nameOrPrefix, rhs, _constant) {\n return this._def(scope_1.varKinds.var, nameOrPrefix, rhs, _constant);\n }\n // assignment code\n assign(lhs, rhs, sideEffects) {\n return this._leafNode(new Assign(lhs, rhs, sideEffects));\n }\n // `+=` code\n add(lhs, rhs) {\n return this._leafNode(new AssignOp(lhs, exports.operators.ADD, rhs));\n }\n // appends passed SafeExpr to code or executes Block\n code(c) {\n if (typeof c == \"function\")\n c();\n else if (c !== code_1.nil)\n this._leafNode(new AnyCode(c));\n return this;\n }\n // returns code for object literal for the passed argument list of key-value pairs\n object(...keyValues) {\n const code = [\"{\"];\n for (const [key, value] of keyValues) {\n if (code.length > 1)\n code.push(\",\");\n code.push(key);\n if (key !== value || this.opts.es5) {\n code.push(\":\");\n (0, code_1.addCodeArg)(code, value);\n }\n }\n code.push(\"}\");\n return new code_1._Code(code);\n }\n // `if` clause (or statement if `thenBody` and, optionally, `elseBody` are passed)\n if(condition, thenBody, elseBody) {\n this._blockNode(new If(condition));\n if (thenBody && elseBody) {\n this.code(thenBody).else().code(elseBody).endIf();\n }\n else if (thenBody) {\n this.code(thenBody).endIf();\n }\n else if (elseBody) {\n throw new Error('CodeGen: \"else\" body without \"then\" body');\n }\n return this;\n }\n // `else if` clause - invalid without `if` or after `else` clauses\n elseIf(condition) {\n return this._elseNode(new If(condition));\n }\n // `else` clause - only valid after `if` or `else if` clauses\n else() {\n return this._elseNode(new Else());\n }\n // end `if` statement (needed if gen.if was used only with condition)\n endIf() {\n return this._endBlockNode(If, Else);\n }\n _for(node, forBody) {\n this._blockNode(node);\n if (forBody)\n this.code(forBody).endFor();\n return this;\n }\n // a generic `for` clause (or statement if `forBody` is passed)\n for(iteration, forBody) {\n return this._for(new ForLoop(iteration), forBody);\n }\n // `for` statement for a range of values\n forRange(nameOrPrefix, from, to, forBody, varKind = this.opts.es5 ? scope_1.varKinds.var : scope_1.varKinds.let) {\n const name = this._scope.toName(nameOrPrefix);\n return this._for(new ForRange(varKind, name, from, to), () => forBody(name));\n }\n // `for-of` statement (in es5 mode replace with a normal for loop)\n forOf(nameOrPrefix, iterable, forBody, varKind = scope_1.varKinds.const) {\n const name = this._scope.toName(nameOrPrefix);\n if (this.opts.es5) {\n const arr = iterable instanceof code_1.Name ? iterable : this.var(\"_arr\", iterable);\n return this.forRange(\"_i\", 0, (0, code_1._) `${arr}.length`, (i) => {\n this.var(name, (0, code_1._) `${arr}[${i}]`);\n forBody(name);\n });\n }\n return this._for(new ForIter(\"of\", varKind, name, iterable), () => forBody(name));\n }\n // `for-in` statement.\n // With option `ownProperties` replaced with a `for-of` loop for object keys\n forIn(nameOrPrefix, obj, forBody, varKind = this.opts.es5 ? scope_1.varKinds.var : scope_1.varKinds.const) {\n if (this.opts.ownProperties) {\n return this.forOf(nameOrPrefix, (0, code_1._) `Object.keys(${obj})`, forBody);\n }\n const name = this._scope.toName(nameOrPrefix);\n return this._for(new ForIter(\"in\", varKind, name, obj), () => forBody(name));\n }\n // end `for` loop\n endFor() {\n return this._endBlockNode(For);\n }\n // `label` statement\n label(label) {\n return this._leafNode(new Label(label));\n }\n // `break` statement\n break(label) {\n return this._leafNode(new Break(label));\n }\n // `return` statement\n return(value) {\n const node = new Return();\n this._blockNode(node);\n this.code(value);\n if (node.nodes.length !== 1)\n throw new Error('CodeGen: \"return\" should have one node');\n return this._endBlockNode(Return);\n }\n // `try` statement\n try(tryBody, catchCode, finallyCode) {\n if (!catchCode && !finallyCode)\n throw new Error('CodeGen: \"try\" without \"catch\" and \"finally\"');\n const node = new Try();\n this._blockNode(node);\n this.code(tryBody);\n if (catchCode) {\n const error = this.name(\"e\");\n this._currNode = node.catch = new Catch(error);\n catchCode(error);\n }\n if (finallyCode) {\n this._currNode = node.finally = new Finally();\n this.code(finallyCode);\n }\n return this._endBlockNode(Catch, Finally);\n }\n // `throw` statement\n throw(error) {\n return this._leafNode(new Throw(error));\n }\n // start self-balancing block\n block(body, nodeCount) {\n this._blockStarts.push(this._nodes.length);\n if (body)\n this.code(body).endBlock(nodeCount);\n return this;\n }\n // end the current self-balancing block\n endBlock(nodeCount) {\n const len = this._blockStarts.pop();\n if (len === undefined)\n throw new Error(\"CodeGen: not in self-balancing block\");\n const toClose = this._nodes.length - len;\n if (toClose < 0 || (nodeCount !== undefined && toClose !== nodeCount)) {\n throw new Error(`CodeGen: wrong number of nodes: ${toClose} vs ${nodeCount} expected`);\n }\n this._nodes.length = len;\n return this;\n }\n // `function` heading (or definition if funcBody is passed)\n func(name, args = code_1.nil, async, funcBody) {\n this._blockNode(new Func(name, args, async));\n if (funcBody)\n this.code(funcBody).endFunc();\n return this;\n }\n // end function definition\n endFunc() {\n return this._endBlockNode(Func);\n }\n optimize(n = 1) {\n while (n-- > 0) {\n this._root.optimizeNodes();\n this._root.optimizeNames(this._root.names, this._constants);\n }\n }\n _leafNode(node) {\n this._currNode.nodes.push(node);\n return this;\n }\n _blockNode(node) {\n this._currNode.nodes.push(node);\n this._nodes.push(node);\n }\n _endBlockNode(N1, N2) {\n const n = this._currNode;\n if (n instanceof N1 || (N2 && n instanceof N2)) {\n this._nodes.pop();\n return this;\n }\n throw new Error(`CodeGen: not in block \"${N2 ? `${N1.kind}/${N2.kind}` : N1.kind}\"`);\n }\n _elseNode(node) {\n const n = this._currNode;\n if (!(n instanceof If)) {\n throw new Error('CodeGen: \"else\" without \"if\"');\n }\n this._currNode = n.else = node;\n return this;\n }\n get _root() {\n return this._nodes[0];\n }\n get _currNode() {\n const ns = this._nodes;\n return ns[ns.length - 1];\n }\n set _currNode(node) {\n const ns = this._nodes;\n ns[ns.length - 1] = node;\n }\n}\nexports.CodeGen = CodeGen;\nfunction addNames(names, from) {\n for (const n in from)\n names[n] = (names[n] || 0) + (from[n] || 0);\n return names;\n}\nfunction addExprNames(names, from) {\n return from instanceof code_1._CodeOrName ? addNames(names, from.names) : names;\n}\nfunction optimizeExpr(expr, names, constants) {\n if (expr instanceof code_1.Name)\n return replaceName(expr);\n if (!canOptimize(expr))\n return expr;\n return new code_1._Code(expr._items.reduce((items, c) => {\n if (c instanceof code_1.Name)\n c = replaceName(c);\n if (c instanceof code_1._Code)\n items.push(...c._items);\n else\n items.push(c);\n return items;\n }, []));\n function replaceName(n) {\n const c = constants[n.str];\n if (c === undefined || names[n.str] !== 1)\n return n;\n delete names[n.str];\n return c;\n }\n function canOptimize(e) {\n return (e instanceof code_1._Code &&\n e._items.some((c) => c instanceof code_1.Name && names[c.str] === 1 && constants[c.str] !== undefined));\n }\n}\nfunction subtractNames(names, from) {\n for (const n in from)\n names[n] = (names[n] || 0) - (from[n] || 0);\n}\nfunction not(x) {\n return typeof x == \"boolean\" || typeof x == \"number\" || x === null ? !x : (0, code_1._) `!${par(x)}`;\n}\nexports.not = not;\nconst andCode = mappend(exports.operators.AND);\n// boolean AND (&&) expression with the passed arguments\nfunction and(...args) {\n return args.reduce(andCode);\n}\nexports.and = and;\nconst orCode = mappend(exports.operators.OR);\n// boolean OR (||) expression with the passed arguments\nfunction or(...args) {\n return args.reduce(orCode);\n}\nexports.or = or;\nfunction mappend(op) {\n return (x, y) => (x === code_1.nil ? y : y === code_1.nil ? x : (0, code_1._) `${par(x)} ${op} ${par(y)}`);\n}\nfunction par(x) {\n return x instanceof code_1.Name ? x : (0, code_1._) `(${x})`;\n}\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkStrictMode = exports.getErrorPath = exports.Type = exports.useFunc = exports.setEvaluated = exports.evaluatedPropsToName = exports.mergeEvaluated = exports.eachItem = exports.unescapeJsonPointer = exports.escapeJsonPointer = exports.escapeFragment = exports.unescapeFragment = exports.schemaRefOrVal = exports.schemaHasRulesButRef = exports.schemaHasRules = exports.checkUnknownRules = exports.alwaysValidSchema = exports.toHash = void 0;\nconst codegen_1 = require(\"./codegen\");\nconst code_1 = require(\"./codegen/code\");\n// TODO refactor to use Set\nfunction toHash(arr) {\n const hash = {};\n for (const item of arr)\n hash[item] = true;\n return hash;\n}\nexports.toHash = toHash;\nfunction alwaysValidSchema(it, schema) {\n if (typeof schema == \"boolean\")\n return schema;\n if (Object.keys(schema).length === 0)\n return true;\n checkUnknownRules(it, schema);\n return !schemaHasRules(schema, it.self.RULES.all);\n}\nexports.alwaysValidSchema = alwaysValidSchema;\nfunction checkUnknownRules(it, schema = it.schema) {\n const { opts, self } = it;\n if (!opts.strictSchema)\n return;\n if (typeof schema === \"boolean\")\n return;\n const rules = self.RULES.keywords;\n for (const key in schema) {\n if (!rules[key])\n checkStrictMode(it, `unknown keyword: \"${key}\"`);\n }\n}\nexports.checkUnknownRules = checkUnknownRules;\nfunction schemaHasRules(schema, rules) {\n if (typeof schema == \"boolean\")\n return !schema;\n for (const key in schema)\n if (rules[key])\n return true;\n return false;\n}\nexports.schemaHasRules = schemaHasRules;\nfunction schemaHasRulesButRef(schema, RULES) {\n if (typeof schema == \"boolean\")\n return !schema;\n for (const key in schema)\n if (key !== \"$ref\" && RULES.all[key])\n return true;\n return false;\n}\nexports.schemaHasRulesButRef = schemaHasRulesButRef;\nfunction schemaRefOrVal({ topSchemaRef, schemaPath }, schema, keyword, $data) {\n if (!$data) {\n if (typeof schema == \"number\" || typeof schema == \"boolean\")\n return schema;\n if (typeof schema == \"string\")\n return (0, codegen_1._) `${schema}`;\n }\n return (0, codegen_1._) `${topSchemaRef}${schemaPath}${(0, codegen_1.getProperty)(keyword)}`;\n}\nexports.schemaRefOrVal = schemaRefOrVal;\nfunction unescapeFragment(str) {\n return unescapeJsonPointer(decodeURIComponent(str));\n}\nexports.unescapeFragment = unescapeFragment;\nfunction escapeFragment(str) {\n return encodeURIComponent(escapeJsonPointer(str));\n}\nexports.escapeFragment = escapeFragment;\nfunction escapeJsonPointer(str) {\n if (typeof str == \"number\")\n return `${str}`;\n return str.replace(/~/g, \"~0\").replace(/\\//g, \"~1\");\n}\nexports.escapeJsonPointer = escapeJsonPointer;\nfunction unescapeJsonPointer(str) {\n return str.replace(/~1/g, \"/\").replace(/~0/g, \"~\");\n}\nexports.unescapeJsonPointer = unescapeJsonPointer;\nfunction eachItem(xs, f) {\n if (Array.isArray(xs)) {\n for (const x of xs)\n f(x);\n }\n else {\n f(xs);\n }\n}\nexports.eachItem = eachItem;\nfunction makeMergeEvaluated({ mergeNames, mergeToName, mergeValues, resultToName, }) {\n return (gen, from, to, toName) => {\n const res = to === undefined\n ? from\n : to instanceof codegen_1.Name\n ? (from instanceof codegen_1.Name ? mergeNames(gen, from, to) : mergeToName(gen, from, to), to)\n : from instanceof codegen_1.Name\n ? (mergeToName(gen, to, from), from)\n : mergeValues(from, to);\n return toName === codegen_1.Name && !(res instanceof codegen_1.Name) ? resultToName(gen, res) : res;\n };\n}\nexports.mergeEvaluated = {\n props: makeMergeEvaluated({\n mergeNames: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true && ${from} !== undefined`, () => {\n gen.if((0, codegen_1._) `${from} === true`, () => gen.assign(to, true), () => gen.assign(to, (0, codegen_1._) `${to} || {}`).code((0, codegen_1._) `Object.assign(${to}, ${from})`));\n }),\n mergeToName: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true`, () => {\n if (from === true) {\n gen.assign(to, true);\n }\n else {\n gen.assign(to, (0, codegen_1._) `${to} || {}`);\n setEvaluated(gen, to, from);\n }\n }),\n mergeValues: (from, to) => (from === true ? true : { ...from, ...to }),\n resultToName: evaluatedPropsToName,\n }),\n items: makeMergeEvaluated({\n mergeNames: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true && ${from} !== undefined`, () => gen.assign(to, (0, codegen_1._) `${from} === true ? true : ${to} > ${from} ? ${to} : ${from}`)),\n mergeToName: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true`, () => gen.assign(to, from === true ? true : (0, codegen_1._) `${to} > ${from} ? ${to} : ${from}`)),\n mergeValues: (from, to) => (from === true ? true : Math.max(from, to)),\n resultToName: (gen, items) => gen.var(\"items\", items),\n }),\n};\nfunction evaluatedPropsToName(gen, ps) {\n if (ps === true)\n return gen.var(\"props\", true);\n const props = gen.var(\"props\", (0, codegen_1._) `{}`);\n if (ps !== undefined)\n setEvaluated(gen, props, ps);\n return props;\n}\nexports.evaluatedPropsToName = evaluatedPropsToName;\nfunction setEvaluated(gen, props, ps) {\n Object.keys(ps).forEach((p) => gen.assign((0, codegen_1._) `${props}${(0, codegen_1.getProperty)(p)}`, true));\n}\nexports.setEvaluated = setEvaluated;\nconst snippets = {};\nfunction useFunc(gen, f) {\n return gen.scopeValue(\"func\", {\n ref: f,\n code: snippets[f.code] || (snippets[f.code] = new code_1._Code(f.code)),\n });\n}\nexports.useFunc = useFunc;\nvar Type;\n(function (Type) {\n Type[Type[\"Num\"] = 0] = \"Num\";\n Type[Type[\"Str\"] = 1] = \"Str\";\n})(Type || (exports.Type = Type = {}));\nfunction getErrorPath(dataProp, dataPropType, jsPropertySyntax) {\n // let path\n if (dataProp instanceof codegen_1.Name) {\n const isNumber = dataPropType === Type.Num;\n return jsPropertySyntax\n ? isNumber\n ? (0, codegen_1._) `\"[\" + ${dataProp} + \"]\"`\n : (0, codegen_1._) `\"['\" + ${dataProp} + \"']\"`\n : isNumber\n ? (0, codegen_1._) `\"/\" + ${dataProp}`\n : (0, codegen_1._) `\"/\" + ${dataProp}.replace(/~/g, \"~0\").replace(/\\\\//g, \"~1\")`; // TODO maybe use global escapePointer\n }\n return jsPropertySyntax ? (0, codegen_1.getProperty)(dataProp).toString() : \"/\" + escapeJsonPointer(dataProp);\n}\nexports.getErrorPath = getErrorPath;\nfunction checkStrictMode(it, msg, mode = it.opts.strictSchema) {\n if (!mode)\n return;\n msg = `strict mode: ${msg}`;\n if (mode === true)\n throw new Error(msg);\n it.self.logger.warn(msg);\n}\nexports.checkStrictMode = checkStrictMode;\n//# sourceMappingURL=util.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"./codegen\");\nconst names = {\n // validation function arguments\n data: new codegen_1.Name(\"data\"), // data passed to validation function\n // args passed from referencing schema\n valCxt: new codegen_1.Name(\"valCxt\"), // validation/data context - should not be used directly, it is destructured to the names below\n instancePath: new codegen_1.Name(\"instancePath\"),\n parentData: new codegen_1.Name(\"parentData\"),\n parentDataProperty: new codegen_1.Name(\"parentDataProperty\"),\n rootData: new codegen_1.Name(\"rootData\"), // root data - same as the data passed to the first/top validation function\n dynamicAnchors: new codegen_1.Name(\"dynamicAnchors\"), // used to support recursiveRef and dynamicRef\n // function scoped variables\n vErrors: new codegen_1.Name(\"vErrors\"), // null or array of validation errors\n errors: new codegen_1.Name(\"errors\"), // counter of validation errors\n this: new codegen_1.Name(\"this\"),\n // \"globals\"\n self: new codegen_1.Name(\"self\"),\n scope: new codegen_1.Name(\"scope\"),\n // JTD serialize/parse name for JSON string and position\n json: new codegen_1.Name(\"json\"),\n jsonPos: new codegen_1.Name(\"jsonPos\"),\n jsonLen: new codegen_1.Name(\"jsonLen\"),\n jsonPart: new codegen_1.Name(\"jsonPart\"),\n};\nexports.default = names;\n//# sourceMappingURL=names.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.extendErrors = exports.resetErrorsCount = exports.reportExtraError = exports.reportError = exports.keyword$DataError = exports.keywordError = void 0;\nconst codegen_1 = require(\"./codegen\");\nconst util_1 = require(\"./util\");\nconst names_1 = require(\"./names\");\nexports.keywordError = {\n message: ({ keyword }) => (0, codegen_1.str) `must pass \"${keyword}\" keyword validation`,\n};\nexports.keyword$DataError = {\n message: ({ keyword, schemaType }) => schemaType\n ? (0, codegen_1.str) `\"${keyword}\" keyword must be ${schemaType} ($data)`\n : (0, codegen_1.str) `\"${keyword}\" keyword is invalid ($data)`,\n};\nfunction reportError(cxt, error = exports.keywordError, errorPaths, overrideAllErrors) {\n const { it } = cxt;\n const { gen, compositeRule, allErrors } = it;\n const errObj = errorObjectCode(cxt, error, errorPaths);\n if (overrideAllErrors !== null && overrideAllErrors !== void 0 ? overrideAllErrors : (compositeRule || allErrors)) {\n addError(gen, errObj);\n }\n else {\n returnErrors(it, (0, codegen_1._) `[${errObj}]`);\n }\n}\nexports.reportError = reportError;\nfunction reportExtraError(cxt, error = exports.keywordError, errorPaths) {\n const { it } = cxt;\n const { gen, compositeRule, allErrors } = it;\n const errObj = errorObjectCode(cxt, error, errorPaths);\n addError(gen, errObj);\n if (!(compositeRule || allErrors)) {\n returnErrors(it, names_1.default.vErrors);\n }\n}\nexports.reportExtraError = reportExtraError;\nfunction resetErrorsCount(gen, errsCount) {\n gen.assign(names_1.default.errors, errsCount);\n gen.if((0, codegen_1._) `${names_1.default.vErrors} !== null`, () => gen.if(errsCount, () => gen.assign((0, codegen_1._) `${names_1.default.vErrors}.length`, errsCount), () => gen.assign(names_1.default.vErrors, null)));\n}\nexports.resetErrorsCount = resetErrorsCount;\nfunction extendErrors({ gen, keyword, schemaValue, data, errsCount, it, }) {\n /* istanbul ignore if */\n if (errsCount === undefined)\n throw new Error(\"ajv implementation error\");\n const err = gen.name(\"err\");\n gen.forRange(\"i\", errsCount, names_1.default.errors, (i) => {\n gen.const(err, (0, codegen_1._) `${names_1.default.vErrors}[${i}]`);\n gen.if((0, codegen_1._) `${err}.instancePath === undefined`, () => gen.assign((0, codegen_1._) `${err}.instancePath`, (0, codegen_1.strConcat)(names_1.default.instancePath, it.errorPath)));\n gen.assign((0, codegen_1._) `${err}.schemaPath`, (0, codegen_1.str) `${it.errSchemaPath}/${keyword}`);\n if (it.opts.verbose) {\n gen.assign((0, codegen_1._) `${err}.schema`, schemaValue);\n gen.assign((0, codegen_1._) `${err}.data`, data);\n }\n });\n}\nexports.extendErrors = extendErrors;\nfunction addError(gen, errObj) {\n const err = gen.const(\"err\", errObj);\n gen.if((0, codegen_1._) `${names_1.default.vErrors} === null`, () => gen.assign(names_1.default.vErrors, (0, codegen_1._) `[${err}]`), (0, codegen_1._) `${names_1.default.vErrors}.push(${err})`);\n gen.code((0, codegen_1._) `${names_1.default.errors}++`);\n}\nfunction returnErrors(it, errs) {\n const { gen, validateName, schemaEnv } = it;\n if (schemaEnv.$async) {\n gen.throw((0, codegen_1._) `new ${it.ValidationError}(${errs})`);\n }\n else {\n gen.assign((0, codegen_1._) `${validateName}.errors`, errs);\n gen.return(false);\n }\n}\nconst E = {\n keyword: new codegen_1.Name(\"keyword\"),\n schemaPath: new codegen_1.Name(\"schemaPath\"), // also used in JTD errors\n params: new codegen_1.Name(\"params\"),\n propertyName: new codegen_1.Name(\"propertyName\"),\n message: new codegen_1.Name(\"message\"),\n schema: new codegen_1.Name(\"schema\"),\n parentSchema: new codegen_1.Name(\"parentSchema\"),\n};\nfunction errorObjectCode(cxt, error, errorPaths) {\n const { createErrors } = cxt.it;\n if (createErrors === false)\n return (0, codegen_1._) `{}`;\n return errorObject(cxt, error, errorPaths);\n}\nfunction errorObject(cxt, error, errorPaths = {}) {\n const { gen, it } = cxt;\n const keyValues = [\n errorInstancePath(it, errorPaths),\n errorSchemaPath(cxt, errorPaths),\n ];\n extraErrorProps(cxt, error, keyValues);\n return gen.object(...keyValues);\n}\nfunction errorInstancePath({ errorPath }, { instancePath }) {\n const instPath = instancePath\n ? (0, codegen_1.str) `${errorPath}${(0, util_1.getErrorPath)(instancePath, util_1.Type.Str)}`\n : errorPath;\n return [names_1.default.instancePath, (0, codegen_1.strConcat)(names_1.default.instancePath, instPath)];\n}\nfunction errorSchemaPath({ keyword, it: { errSchemaPath } }, { schemaPath, parentSchema }) {\n let schPath = parentSchema ? errSchemaPath : (0, codegen_1.str) `${errSchemaPath}/${keyword}`;\n if (schemaPath) {\n schPath = (0, codegen_1.str) `${schPath}${(0, util_1.getErrorPath)(schemaPath, util_1.Type.Str)}`;\n }\n return [E.schemaPath, schPath];\n}\nfunction extraErrorProps(cxt, { params, message }, keyValues) {\n const { keyword, data, schemaValue, it } = cxt;\n const { opts, propertyName, topSchemaRef, schemaPath } = it;\n keyValues.push([E.keyword, keyword], [E.params, typeof params == \"function\" ? params(cxt) : params || (0, codegen_1._) `{}`]);\n if (opts.messages) {\n keyValues.push([E.message, typeof message == \"function\" ? message(cxt) : message]);\n }\n if (opts.verbose) {\n keyValues.push([E.schema, schemaValue], [E.parentSchema, (0, codegen_1._) `${topSchemaRef}${schemaPath}`], [names_1.default.data, data]);\n }\n if (propertyName)\n keyValues.push([E.propertyName, propertyName]);\n}\n//# sourceMappingURL=errors.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.boolOrEmptySchema = exports.topBoolOrEmptySchema = void 0;\nconst errors_1 = require(\"../errors\");\nconst codegen_1 = require(\"../codegen\");\nconst names_1 = require(\"../names\");\nconst boolError = {\n message: \"boolean schema is false\",\n};\nfunction topBoolOrEmptySchema(it) {\n const { gen, schema, validateName } = it;\n if (schema === false) {\n falseSchemaError(it, false);\n }\n else if (typeof schema == \"object\" && schema.$async === true) {\n gen.return(names_1.default.data);\n }\n else {\n gen.assign((0, codegen_1._) `${validateName}.errors`, null);\n gen.return(true);\n }\n}\nexports.topBoolOrEmptySchema = topBoolOrEmptySchema;\nfunction boolOrEmptySchema(it, valid) {\n const { gen, schema } = it;\n if (schema === false) {\n gen.var(valid, false); // TODO var\n falseSchemaError(it);\n }\n else {\n gen.var(valid, true); // TODO var\n }\n}\nexports.boolOrEmptySchema = boolOrEmptySchema;\nfunction falseSchemaError(it, overrideAllErrors) {\n const { gen, data } = it;\n // TODO maybe some other interface should be used for non-keyword validation errors...\n const cxt = {\n gen,\n keyword: \"false schema\",\n data,\n schema: false,\n schemaCode: false,\n schemaValue: false,\n params: {},\n it,\n };\n (0, errors_1.reportError)(cxt, boolError, undefined, overrideAllErrors);\n}\n//# sourceMappingURL=boolSchema.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRules = exports.isJSONType = void 0;\nconst _jsonTypes = [\"string\", \"number\", \"integer\", \"boolean\", \"null\", \"object\", \"array\"];\nconst jsonTypes = new Set(_jsonTypes);\nfunction isJSONType(x) {\n return typeof x == \"string\" && jsonTypes.has(x);\n}\nexports.isJSONType = isJSONType;\nfunction getRules() {\n const groups = {\n number: { type: \"number\", rules: [] },\n string: { type: \"string\", rules: [] },\n array: { type: \"array\", rules: [] },\n object: { type: \"object\", rules: [] },\n };\n return {\n types: { ...groups, integer: true, boolean: true, null: true },\n rules: [{ rules: [] }, groups.number, groups.string, groups.array, groups.object],\n post: { rules: [] },\n all: {},\n keywords: {},\n };\n}\nexports.getRules = getRules;\n//# sourceMappingURL=rules.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.shouldUseRule = exports.shouldUseGroup = exports.schemaHasRulesForType = void 0;\nfunction schemaHasRulesForType({ schema, self }, type) {\n const group = self.RULES.types[type];\n return group && group !== true && shouldUseGroup(schema, group);\n}\nexports.schemaHasRulesForType = schemaHasRulesForType;\nfunction shouldUseGroup(schema, group) {\n return group.rules.some((rule) => shouldUseRule(schema, rule));\n}\nexports.shouldUseGroup = shouldUseGroup;\nfunction shouldUseRule(schema, rule) {\n var _a;\n return (schema[rule.keyword] !== undefined ||\n ((_a = rule.definition.implements) === null || _a === void 0 ? void 0 : _a.some((kwd) => schema[kwd] !== undefined)));\n}\nexports.shouldUseRule = shouldUseRule;\n//# sourceMappingURL=applicability.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.reportTypeError = exports.checkDataTypes = exports.checkDataType = exports.coerceAndCheckDataType = exports.getJSONTypes = exports.getSchemaTypes = exports.DataType = void 0;\nconst rules_1 = require(\"../rules\");\nconst applicability_1 = require(\"./applicability\");\nconst errors_1 = require(\"../errors\");\nconst codegen_1 = require(\"../codegen\");\nconst util_1 = require(\"../util\");\nvar DataType;\n(function (DataType) {\n DataType[DataType[\"Correct\"] = 0] = \"Correct\";\n DataType[DataType[\"Wrong\"] = 1] = \"Wrong\";\n})(DataType || (exports.DataType = DataType = {}));\nfunction getSchemaTypes(schema) {\n const types = getJSONTypes(schema.type);\n const hasNull = types.includes(\"null\");\n if (hasNull) {\n if (schema.nullable === false)\n throw new Error(\"type: null contradicts nullable: false\");\n }\n else {\n if (!types.length && schema.nullable !== undefined) {\n throw new Error('\"nullable\" cannot be used without \"type\"');\n }\n if (schema.nullable === true)\n types.push(\"null\");\n }\n return types;\n}\nexports.getSchemaTypes = getSchemaTypes;\n// eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\nfunction getJSONTypes(ts) {\n const types = Array.isArray(ts) ? ts : ts ? [ts] : [];\n if (types.every(rules_1.isJSONType))\n return types;\n throw new Error(\"type must be JSONType or JSONType[]: \" + types.join(\",\"));\n}\nexports.getJSONTypes = getJSONTypes;\nfunction coerceAndCheckDataType(it, types) {\n const { gen, data, opts } = it;\n const coerceTo = coerceToTypes(types, opts.coerceTypes);\n const checkTypes = types.length > 0 &&\n !(coerceTo.length === 0 && types.length === 1 && (0, applicability_1.schemaHasRulesForType)(it, types[0]));\n if (checkTypes) {\n const wrongType = checkDataTypes(types, data, opts.strictNumbers, DataType.Wrong);\n gen.if(wrongType, () => {\n if (coerceTo.length)\n coerceData(it, types, coerceTo);\n else\n reportTypeError(it);\n });\n }\n return checkTypes;\n}\nexports.coerceAndCheckDataType = coerceAndCheckDataType;\nconst COERCIBLE = new Set([\"string\", \"number\", \"integer\", \"boolean\", \"null\"]);\nfunction coerceToTypes(types, coerceTypes) {\n return coerceTypes\n ? types.filter((t) => COERCIBLE.has(t) || (coerceTypes === \"array\" && t === \"array\"))\n : [];\n}\nfunction coerceData(it, types, coerceTo) {\n const { gen, data, opts } = it;\n const dataType = gen.let(\"dataType\", (0, codegen_1._) `typeof ${data}`);\n const coerced = gen.let(\"coerced\", (0, codegen_1._) `undefined`);\n if (opts.coerceTypes === \"array\") {\n gen.if((0, codegen_1._) `${dataType} == 'object' && Array.isArray(${data}) && ${data}.length == 1`, () => gen\n .assign(data, (0, codegen_1._) `${data}[0]`)\n .assign(dataType, (0, codegen_1._) `typeof ${data}`)\n .if(checkDataTypes(types, data, opts.strictNumbers), () => gen.assign(coerced, data)));\n }\n gen.if((0, codegen_1._) `${coerced} !== undefined`);\n for (const t of coerceTo) {\n if (COERCIBLE.has(t) || (t === \"array\" && opts.coerceTypes === \"array\")) {\n coerceSpecificType(t);\n }\n }\n gen.else();\n reportTypeError(it);\n gen.endIf();\n gen.if((0, codegen_1._) `${coerced} !== undefined`, () => {\n gen.assign(data, coerced);\n assignParentData(it, coerced);\n });\n function coerceSpecificType(t) {\n switch (t) {\n case \"string\":\n gen\n .elseIf((0, codegen_1._) `${dataType} == \"number\" || ${dataType} == \"boolean\"`)\n .assign(coerced, (0, codegen_1._) `\"\" + ${data}`)\n .elseIf((0, codegen_1._) `${data} === null`)\n .assign(coerced, (0, codegen_1._) `\"\"`);\n return;\n case \"number\":\n gen\n .elseIf((0, codegen_1._) `${dataType} == \"boolean\" || ${data} === null\n || (${dataType} == \"string\" && ${data} && ${data} == +${data})`)\n .assign(coerced, (0, codegen_1._) `+${data}`);\n return;\n case \"integer\":\n gen\n .elseIf((0, codegen_1._) `${dataType} === \"boolean\" || ${data} === null\n || (${dataType} === \"string\" && ${data} && ${data} == +${data} && !(${data} % 1))`)\n .assign(coerced, (0, codegen_1._) `+${data}`);\n return;\n case \"boolean\":\n gen\n .elseIf((0, codegen_1._) `${data} === \"false\" || ${data} === 0 || ${data} === null`)\n .assign(coerced, false)\n .elseIf((0, codegen_1._) `${data} === \"true\" || ${data} === 1`)\n .assign(coerced, true);\n return;\n case \"null\":\n gen.elseIf((0, codegen_1._) `${data} === \"\" || ${data} === 0 || ${data} === false`);\n gen.assign(coerced, null);\n return;\n case \"array\":\n gen\n .elseIf((0, codegen_1._) `${dataType} === \"string\" || ${dataType} === \"number\"\n || ${dataType} === \"boolean\" || ${data} === null`)\n .assign(coerced, (0, codegen_1._) `[${data}]`);\n }\n }\n}\nfunction assignParentData({ gen, parentData, parentDataProperty }, expr) {\n // TODO use gen.property\n gen.if((0, codegen_1._) `${parentData} !== undefined`, () => gen.assign((0, codegen_1._) `${parentData}[${parentDataProperty}]`, expr));\n}\nfunction checkDataType(dataType, data, strictNums, correct = DataType.Correct) {\n const EQ = correct === DataType.Correct ? codegen_1.operators.EQ : codegen_1.operators.NEQ;\n let cond;\n switch (dataType) {\n case \"null\":\n return (0, codegen_1._) `${data} ${EQ} null`;\n case \"array\":\n cond = (0, codegen_1._) `Array.isArray(${data})`;\n break;\n case \"object\":\n cond = (0, codegen_1._) `${data} && typeof ${data} == \"object\" && !Array.isArray(${data})`;\n break;\n case \"integer\":\n cond = numCond((0, codegen_1._) `!(${data} % 1) && !isNaN(${data})`);\n break;\n case \"number\":\n cond = numCond();\n break;\n default:\n return (0, codegen_1._) `typeof ${data} ${EQ} ${dataType}`;\n }\n return correct === DataType.Correct ? cond : (0, codegen_1.not)(cond);\n function numCond(_cond = codegen_1.nil) {\n return (0, codegen_1.and)((0, codegen_1._) `typeof ${data} == \"number\"`, _cond, strictNums ? (0, codegen_1._) `isFinite(${data})` : codegen_1.nil);\n }\n}\nexports.checkDataType = checkDataType;\nfunction checkDataTypes(dataTypes, data, strictNums, correct) {\n if (dataTypes.length === 1) {\n return checkDataType(dataTypes[0], data, strictNums, correct);\n }\n let cond;\n const types = (0, util_1.toHash)(dataTypes);\n if (types.array && types.object) {\n const notObj = (0, codegen_1._) `typeof ${data} != \"object\"`;\n cond = types.null ? notObj : (0, codegen_1._) `!${data} || ${notObj}`;\n delete types.null;\n delete types.array;\n delete types.object;\n }\n else {\n cond = codegen_1.nil;\n }\n if (types.number)\n delete types.integer;\n for (const t in types)\n cond = (0, codegen_1.and)(cond, checkDataType(t, data, strictNums, correct));\n return cond;\n}\nexports.checkDataTypes = checkDataTypes;\nconst typeError = {\n message: ({ schema }) => `must be ${schema}`,\n params: ({ schema, schemaValue }) => typeof schema == \"string\" ? (0, codegen_1._) `{type: ${schema}}` : (0, codegen_1._) `{type: ${schemaValue}}`,\n};\nfunction reportTypeError(it) {\n const cxt = getTypeErrorContext(it);\n (0, errors_1.reportError)(cxt, typeError);\n}\nexports.reportTypeError = reportTypeError;\nfunction getTypeErrorContext(it) {\n const { gen, data, schema } = it;\n const schemaCode = (0, util_1.schemaRefOrVal)(it, schema, \"type\");\n return {\n gen,\n keyword: \"type\",\n data,\n schema: schema.type,\n schemaCode,\n schemaValue: schemaCode,\n parentSchema: schema,\n params: {},\n it,\n };\n}\n//# sourceMappingURL=dataType.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.assignDefaults = void 0;\nconst codegen_1 = require(\"../codegen\");\nconst util_1 = require(\"../util\");\nfunction assignDefaults(it, ty) {\n const { properties, items } = it.schema;\n if (ty === \"object\" && properties) {\n for (const key in properties) {\n assignDefault(it, key, properties[key].default);\n }\n }\n else if (ty === \"array\" && Array.isArray(items)) {\n items.forEach((sch, i) => assignDefault(it, i, sch.default));\n }\n}\nexports.assignDefaults = assignDefaults;\nfunction assignDefault(it, prop, defaultValue) {\n const { gen, compositeRule, data, opts } = it;\n if (defaultValue === undefined)\n return;\n const childData = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(prop)}`;\n if (compositeRule) {\n (0, util_1.checkStrictMode)(it, `default is ignored for: ${childData}`);\n return;\n }\n let condition = (0, codegen_1._) `${childData} === undefined`;\n if (opts.useDefaults === \"empty\") {\n condition = (0, codegen_1._) `${condition} || ${childData} === null || ${childData} === \"\"`;\n }\n // `${childData} === undefined` +\n // (opts.useDefaults === \"empty\" ? ` || ${childData} === null || ${childData} === \"\"` : \"\")\n gen.if(condition, (0, codegen_1._) `${childData} = ${(0, codegen_1.stringify)(defaultValue)}`);\n}\n//# sourceMappingURL=defaults.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateUnion = exports.validateArray = exports.usePattern = exports.callValidateCode = exports.schemaProperties = exports.allSchemaProperties = exports.noPropertyInData = exports.propertyInData = exports.isOwnProperty = exports.hasPropFunc = exports.reportMissingProp = exports.checkMissingProp = exports.checkReportMissingProp = void 0;\nconst codegen_1 = require(\"../compile/codegen\");\nconst util_1 = require(\"../compile/util\");\nconst names_1 = require(\"../compile/names\");\nconst util_2 = require(\"../compile/util\");\nfunction checkReportMissingProp(cxt, prop) {\n const { gen, data, it } = cxt;\n gen.if(noPropertyInData(gen, data, prop, it.opts.ownProperties), () => {\n cxt.setParams({ missingProperty: (0, codegen_1._) `${prop}` }, true);\n cxt.error();\n });\n}\nexports.checkReportMissingProp = checkReportMissingProp;\nfunction checkMissingProp({ gen, data, it: { opts } }, properties, missing) {\n return (0, codegen_1.or)(...properties.map((prop) => (0, codegen_1.and)(noPropertyInData(gen, data, prop, opts.ownProperties), (0, codegen_1._) `${missing} = ${prop}`)));\n}\nexports.checkMissingProp = checkMissingProp;\nfunction reportMissingProp(cxt, missing) {\n cxt.setParams({ missingProperty: missing }, true);\n cxt.error();\n}\nexports.reportMissingProp = reportMissingProp;\nfunction hasPropFunc(gen) {\n return gen.scopeValue(\"func\", {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n ref: Object.prototype.hasOwnProperty,\n code: (0, codegen_1._) `Object.prototype.hasOwnProperty`,\n });\n}\nexports.hasPropFunc = hasPropFunc;\nfunction isOwnProperty(gen, data, property) {\n return (0, codegen_1._) `${hasPropFunc(gen)}.call(${data}, ${property})`;\n}\nexports.isOwnProperty = isOwnProperty;\nfunction propertyInData(gen, data, property, ownProperties) {\n const cond = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(property)} !== undefined`;\n return ownProperties ? (0, codegen_1._) `${cond} && ${isOwnProperty(gen, data, property)}` : cond;\n}\nexports.propertyInData = propertyInData;\nfunction noPropertyInData(gen, data, property, ownProperties) {\n const cond = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(property)} === undefined`;\n return ownProperties ? (0, codegen_1.or)(cond, (0, codegen_1.not)(isOwnProperty(gen, data, property))) : cond;\n}\nexports.noPropertyInData = noPropertyInData;\nfunction allSchemaProperties(schemaMap) {\n return schemaMap ? Object.keys(schemaMap).filter((p) => p !== \"__proto__\") : [];\n}\nexports.allSchemaProperties = allSchemaProperties;\nfunction schemaProperties(it, schemaMap) {\n return allSchemaProperties(schemaMap).filter((p) => !(0, util_1.alwaysValidSchema)(it, schemaMap[p]));\n}\nexports.schemaProperties = schemaProperties;\nfunction callValidateCode({ schemaCode, data, it: { gen, topSchemaRef, schemaPath, errorPath }, it }, func, context, passSchema) {\n const dataAndSchema = passSchema ? (0, codegen_1._) `${schemaCode}, ${data}, ${topSchemaRef}${schemaPath}` : data;\n const valCxt = [\n [names_1.default.instancePath, (0, codegen_1.strConcat)(names_1.default.instancePath, errorPath)],\n [names_1.default.parentData, it.parentData],\n [names_1.default.parentDataProperty, it.parentDataProperty],\n [names_1.default.rootData, names_1.default.rootData],\n ];\n if (it.opts.dynamicRef)\n valCxt.push([names_1.default.dynamicAnchors, names_1.default.dynamicAnchors]);\n const args = (0, codegen_1._) `${dataAndSchema}, ${gen.object(...valCxt)}`;\n return context !== codegen_1.nil ? (0, codegen_1._) `${func}.call(${context}, ${args})` : (0, codegen_1._) `${func}(${args})`;\n}\nexports.callValidateCode = callValidateCode;\nconst newRegExp = (0, codegen_1._) `new RegExp`;\nfunction usePattern({ gen, it: { opts } }, pattern) {\n const u = opts.unicodeRegExp ? \"u\" : \"\";\n const { regExp } = opts.code;\n const rx = regExp(pattern, u);\n return gen.scopeValue(\"pattern\", {\n key: rx.toString(),\n ref: rx,\n code: (0, codegen_1._) `${regExp.code === \"new RegExp\" ? newRegExp : (0, util_2.useFunc)(gen, regExp)}(${pattern}, ${u})`,\n });\n}\nexports.usePattern = usePattern;\nfunction validateArray(cxt) {\n const { gen, data, keyword, it } = cxt;\n const valid = gen.name(\"valid\");\n if (it.allErrors) {\n const validArr = gen.let(\"valid\", true);\n validateItems(() => gen.assign(validArr, false));\n return validArr;\n }\n gen.var(valid, true);\n validateItems(() => gen.break());\n return valid;\n function validateItems(notValid) {\n const len = gen.const(\"len\", (0, codegen_1._) `${data}.length`);\n gen.forRange(\"i\", 0, len, (i) => {\n cxt.subschema({\n keyword,\n dataProp: i,\n dataPropType: util_1.Type.Num,\n }, valid);\n gen.if((0, codegen_1.not)(valid), notValid);\n });\n }\n}\nexports.validateArray = validateArray;\nfunction validateUnion(cxt) {\n const { gen, schema, keyword, it } = cxt;\n /* istanbul ignore if */\n if (!Array.isArray(schema))\n throw new Error(\"ajv implementation error\");\n const alwaysValid = schema.some((sch) => (0, util_1.alwaysValidSchema)(it, sch));\n if (alwaysValid && !it.opts.unevaluated)\n return;\n const valid = gen.let(\"valid\", false);\n const schValid = gen.name(\"_valid\");\n gen.block(() => schema.forEach((_sch, i) => {\n const schCxt = cxt.subschema({\n keyword,\n schemaProp: i,\n compositeRule: true,\n }, schValid);\n gen.assign(valid, (0, codegen_1._) `${valid} || ${schValid}`);\n const merged = cxt.mergeValidEvaluated(schCxt, schValid);\n // can short-circuit if `unevaluatedProperties/Items` not supported (opts.unevaluated !== true)\n // or if all properties and items were evaluated (it.props === true && it.items === true)\n if (!merged)\n gen.if((0, codegen_1.not)(valid));\n }));\n cxt.result(valid, () => cxt.reset(), () => cxt.error(true));\n}\nexports.validateUnion = validateUnion;\n//# sourceMappingURL=code.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateKeywordUsage = exports.validSchemaType = exports.funcKeywordCode = exports.macroKeywordCode = void 0;\nconst codegen_1 = require(\"../codegen\");\nconst names_1 = require(\"../names\");\nconst code_1 = require(\"../../vocabularies/code\");\nconst errors_1 = require(\"../errors\");\nfunction macroKeywordCode(cxt, def) {\n const { gen, keyword, schema, parentSchema, it } = cxt;\n const macroSchema = def.macro.call(it.self, schema, parentSchema, it);\n const schemaRef = useKeyword(gen, keyword, macroSchema);\n if (it.opts.validateSchema !== false)\n it.self.validateSchema(macroSchema, true);\n const valid = gen.name(\"valid\");\n cxt.subschema({\n schema: macroSchema,\n schemaPath: codegen_1.nil,\n errSchemaPath: `${it.errSchemaPath}/${keyword}`,\n topSchemaRef: schemaRef,\n compositeRule: true,\n }, valid);\n cxt.pass(valid, () => cxt.error(true));\n}\nexports.macroKeywordCode = macroKeywordCode;\nfunction funcKeywordCode(cxt, def) {\n var _a;\n const { gen, keyword, schema, parentSchema, $data, it } = cxt;\n checkAsyncKeyword(it, def);\n const validate = !$data && def.compile ? def.compile.call(it.self, schema, parentSchema, it) : def.validate;\n const validateRef = useKeyword(gen, keyword, validate);\n const valid = gen.let(\"valid\");\n cxt.block$data(valid, validateKeyword);\n cxt.ok((_a = def.valid) !== null && _a !== void 0 ? _a : valid);\n function validateKeyword() {\n if (def.errors === false) {\n assignValid();\n if (def.modifying)\n modifyData(cxt);\n reportErrs(() => cxt.error());\n }\n else {\n const ruleErrs = def.async ? validateAsync() : validateSync();\n if (def.modifying)\n modifyData(cxt);\n reportErrs(() => addErrs(cxt, ruleErrs));\n }\n }\n function validateAsync() {\n const ruleErrs = gen.let(\"ruleErrs\", null);\n gen.try(() => assignValid((0, codegen_1._) `await `), (e) => gen.assign(valid, false).if((0, codegen_1._) `${e} instanceof ${it.ValidationError}`, () => gen.assign(ruleErrs, (0, codegen_1._) `${e}.errors`), () => gen.throw(e)));\n return ruleErrs;\n }\n function validateSync() {\n const validateErrs = (0, codegen_1._) `${validateRef}.errors`;\n gen.assign(validateErrs, null);\n assignValid(codegen_1.nil);\n return validateErrs;\n }\n function assignValid(_await = def.async ? (0, codegen_1._) `await ` : codegen_1.nil) {\n const passCxt = it.opts.passContext ? names_1.default.this : names_1.default.self;\n const passSchema = !((\"compile\" in def && !$data) || def.schema === false);\n gen.assign(valid, (0, codegen_1._) `${_await}${(0, code_1.callValidateCode)(cxt, validateRef, passCxt, passSchema)}`, def.modifying);\n }\n function reportErrs(errors) {\n var _a;\n gen.if((0, codegen_1.not)((_a = def.valid) !== null && _a !== void 0 ? _a : valid), errors);\n }\n}\nexports.funcKeywordCode = funcKeywordCode;\nfunction modifyData(cxt) {\n const { gen, data, it } = cxt;\n gen.if(it.parentData, () => gen.assign(data, (0, codegen_1._) `${it.parentData}[${it.parentDataProperty}]`));\n}\nfunction addErrs(cxt, errs) {\n const { gen } = cxt;\n gen.if((0, codegen_1._) `Array.isArray(${errs})`, () => {\n gen\n .assign(names_1.default.vErrors, (0, codegen_1._) `${names_1.default.vErrors} === null ? ${errs} : ${names_1.default.vErrors}.concat(${errs})`)\n .assign(names_1.default.errors, (0, codegen_1._) `${names_1.default.vErrors}.length`);\n (0, errors_1.extendErrors)(cxt);\n }, () => cxt.error());\n}\nfunction checkAsyncKeyword({ schemaEnv }, def) {\n if (def.async && !schemaEnv.$async)\n throw new Error(\"async keyword in sync schema\");\n}\nfunction useKeyword(gen, keyword, result) {\n if (result === undefined)\n throw new Error(`keyword \"${keyword}\" failed to compile`);\n return gen.scopeValue(\"keyword\", typeof result == \"function\" ? { ref: result } : { ref: result, code: (0, codegen_1.stringify)(result) });\n}\nfunction validSchemaType(schema, schemaType, allowUndefined = false) {\n // TODO add tests\n return (!schemaType.length ||\n schemaType.some((st) => st === \"array\"\n ? Array.isArray(schema)\n : st === \"object\"\n ? schema && typeof schema == \"object\" && !Array.isArray(schema)\n : typeof schema == st || (allowUndefined && typeof schema == \"undefined\")));\n}\nexports.validSchemaType = validSchemaType;\nfunction validateKeywordUsage({ schema, opts, self, errSchemaPath }, def, keyword) {\n /* istanbul ignore if */\n if (Array.isArray(def.keyword) ? !def.keyword.includes(keyword) : def.keyword !== keyword) {\n throw new Error(\"ajv implementation error\");\n }\n const deps = def.dependencies;\n if (deps === null || deps === void 0 ? void 0 : deps.some((kwd) => !Object.prototype.hasOwnProperty.call(schema, kwd))) {\n throw new Error(`parent schema must have dependencies of ${keyword}: ${deps.join(\",\")}`);\n }\n if (def.validateSchema) {\n const valid = def.validateSchema(schema[keyword]);\n if (!valid) {\n const msg = `keyword \"${keyword}\" value is invalid at path \"${errSchemaPath}\": ` +\n self.errorsText(def.validateSchema.errors);\n if (opts.validateSchema === \"log\")\n self.logger.error(msg);\n else\n throw new Error(msg);\n }\n }\n}\nexports.validateKeywordUsage = validateKeywordUsage;\n//# sourceMappingURL=keyword.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.extendSubschemaMode = exports.extendSubschemaData = exports.getSubschema = void 0;\nconst codegen_1 = require(\"../codegen\");\nconst util_1 = require(\"../util\");\nfunction getSubschema(it, { keyword, schemaProp, schema, schemaPath, errSchemaPath, topSchemaRef }) {\n if (keyword !== undefined && schema !== undefined) {\n throw new Error('both \"keyword\" and \"schema\" passed, only one allowed');\n }\n if (keyword !== undefined) {\n const sch = it.schema[keyword];\n return schemaProp === undefined\n ? {\n schema: sch,\n schemaPath: (0, codegen_1._) `${it.schemaPath}${(0, codegen_1.getProperty)(keyword)}`,\n errSchemaPath: `${it.errSchemaPath}/${keyword}`,\n }\n : {\n schema: sch[schemaProp],\n schemaPath: (0, codegen_1._) `${it.schemaPath}${(0, codegen_1.getProperty)(keyword)}${(0, codegen_1.getProperty)(schemaProp)}`,\n errSchemaPath: `${it.errSchemaPath}/${keyword}/${(0, util_1.escapeFragment)(schemaProp)}`,\n };\n }\n if (schema !== undefined) {\n if (schemaPath === undefined || errSchemaPath === undefined || topSchemaRef === undefined) {\n throw new Error('\"schemaPath\", \"errSchemaPath\" and \"topSchemaRef\" are required with \"schema\"');\n }\n return {\n schema,\n schemaPath,\n topSchemaRef,\n errSchemaPath,\n };\n }\n throw new Error('either \"keyword\" or \"schema\" must be passed');\n}\nexports.getSubschema = getSubschema;\nfunction extendSubschemaData(subschema, it, { dataProp, dataPropType: dpType, data, dataTypes, propertyName }) {\n if (data !== undefined && dataProp !== undefined) {\n throw new Error('both \"data\" and \"dataProp\" passed, only one allowed');\n }\n const { gen } = it;\n if (dataProp !== undefined) {\n const { errorPath, dataPathArr, opts } = it;\n const nextData = gen.let(\"data\", (0, codegen_1._) `${it.data}${(0, codegen_1.getProperty)(dataProp)}`, true);\n dataContextProps(nextData);\n subschema.errorPath = (0, codegen_1.str) `${errorPath}${(0, util_1.getErrorPath)(dataProp, dpType, opts.jsPropertySyntax)}`;\n subschema.parentDataProperty = (0, codegen_1._) `${dataProp}`;\n subschema.dataPathArr = [...dataPathArr, subschema.parentDataProperty];\n }\n if (data !== undefined) {\n const nextData = data instanceof codegen_1.Name ? data : gen.let(\"data\", data, true); // replaceable if used once?\n dataContextProps(nextData);\n if (propertyName !== undefined)\n subschema.propertyName = propertyName;\n // TODO something is possibly wrong here with not changing parentDataProperty and not appending dataPathArr\n }\n if (dataTypes)\n subschema.dataTypes = dataTypes;\n function dataContextProps(_nextData) {\n subschema.data = _nextData;\n subschema.dataLevel = it.dataLevel + 1;\n subschema.dataTypes = [];\n it.definedProperties = new Set();\n subschema.parentData = it.data;\n subschema.dataNames = [...it.dataNames, _nextData];\n }\n}\nexports.extendSubschemaData = extendSubschemaData;\nfunction extendSubschemaMode(subschema, { jtdDiscriminator, jtdMetadata, compositeRule, createErrors, allErrors }) {\n if (compositeRule !== undefined)\n subschema.compositeRule = compositeRule;\n if (createErrors !== undefined)\n subschema.createErrors = createErrors;\n if (allErrors !== undefined)\n subschema.allErrors = allErrors;\n subschema.jtdDiscriminator = jtdDiscriminator; // not inherited\n subschema.jtdMetadata = jtdMetadata; // not inherited\n}\nexports.extendSubschemaMode = extendSubschemaMode;\n//# sourceMappingURL=subschema.js.map","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n","'use strict';\n\nvar traverse = module.exports = function (schema, opts, cb) {\n // Legacy support for v0.3.1 and earlier.\n if (typeof opts == 'function') {\n cb = opts;\n opts = {};\n }\n\n cb = opts.cb || cb;\n var pre = (typeof cb == 'function') ? cb : cb.pre || function() {};\n var post = cb.post || function() {};\n\n _traverse(opts, pre, post, schema, '', schema);\n};\n\n\ntraverse.keywords = {\n additionalItems: true,\n items: true,\n contains: true,\n additionalProperties: true,\n propertyNames: true,\n not: true,\n if: true,\n then: true,\n else: true\n};\n\ntraverse.arrayKeywords = {\n items: true,\n allOf: true,\n anyOf: true,\n oneOf: true\n};\n\ntraverse.propsKeywords = {\n $defs: true,\n definitions: true,\n properties: true,\n patternProperties: true,\n dependencies: true\n};\n\ntraverse.skipKeywords = {\n default: true,\n enum: true,\n const: true,\n required: true,\n maximum: true,\n minimum: true,\n exclusiveMaximum: true,\n exclusiveMinimum: true,\n multipleOf: true,\n maxLength: true,\n minLength: true,\n pattern: true,\n format: true,\n maxItems: true,\n minItems: true,\n uniqueItems: true,\n maxProperties: true,\n minProperties: true\n};\n\n\nfunction _traverse(opts, pre, post, schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) {\n if (schema && typeof schema == 'object' && !Array.isArray(schema)) {\n pre(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);\n for (var key in schema) {\n var sch = schema[key];\n if (Array.isArray(sch)) {\n if (key in traverse.arrayKeywords) {\n for (var i=0; i<sch.length; i++)\n _traverse(opts, pre, post, sch[i], jsonPtr + '/' + key + '/' + i, rootSchema, jsonPtr, key, schema, i);\n }\n } else if (key in traverse.propsKeywords) {\n if (sch && typeof sch == 'object') {\n for (var prop in sch)\n _traverse(opts, pre, post, sch[prop], jsonPtr + '/' + key + '/' + escapeJsonPtr(prop), rootSchema, jsonPtr, key, schema, prop);\n }\n } else if (key in traverse.keywords || (opts.allKeys && !(key in traverse.skipKeywords))) {\n _traverse(opts, pre, post, sch, jsonPtr + '/' + key, rootSchema, jsonPtr, key, schema);\n }\n }\n post(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);\n }\n}\n\n\nfunction escapeJsonPtr(str) {\n return str.replace(/~/g, '~0').replace(/\\//g, '~1');\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getSchemaRefs = exports.resolveUrl = exports.normalizeId = exports._getFullPath = exports.getFullPath = exports.inlineRef = void 0;\nconst util_1 = require(\"./util\");\nconst equal = require(\"fast-deep-equal\");\nconst traverse = require(\"json-schema-traverse\");\n// TODO refactor to use keyword definitions\nconst SIMPLE_INLINED = new Set([\n \"type\",\n \"format\",\n \"pattern\",\n \"maxLength\",\n \"minLength\",\n \"maxProperties\",\n \"minProperties\",\n \"maxItems\",\n \"minItems\",\n \"maximum\",\n \"minimum\",\n \"uniqueItems\",\n \"multipleOf\",\n \"required\",\n \"enum\",\n \"const\",\n]);\nfunction inlineRef(schema, limit = true) {\n if (typeof schema == \"boolean\")\n return true;\n if (limit === true)\n return !hasRef(schema);\n if (!limit)\n return false;\n return countKeys(schema) <= limit;\n}\nexports.inlineRef = inlineRef;\nconst REF_KEYWORDS = new Set([\n \"$ref\",\n \"$recursiveRef\",\n \"$recursiveAnchor\",\n \"$dynamicRef\",\n \"$dynamicAnchor\",\n]);\nfunction hasRef(schema) {\n for (const key in schema) {\n if (REF_KEYWORDS.has(key))\n return true;\n const sch = schema[key];\n if (Array.isArray(sch) && sch.some(hasRef))\n return true;\n if (typeof sch == \"object\" && hasRef(sch))\n return true;\n }\n return false;\n}\nfunction countKeys(schema) {\n let count = 0;\n for (const key in schema) {\n if (key === \"$ref\")\n return Infinity;\n count++;\n if (SIMPLE_INLINED.has(key))\n continue;\n if (typeof schema[key] == \"object\") {\n (0, util_1.eachItem)(schema[key], (sch) => (count += countKeys(sch)));\n }\n if (count === Infinity)\n return Infinity;\n }\n return count;\n}\nfunction getFullPath(resolver, id = \"\", normalize) {\n if (normalize !== false)\n id = normalizeId(id);\n const p = resolver.parse(id);\n return _getFullPath(resolver, p);\n}\nexports.getFullPath = getFullPath;\nfunction _getFullPath(resolver, p) {\n const serialized = resolver.serialize(p);\n return serialized.split(\"#\")[0] + \"#\";\n}\nexports._getFullPath = _getFullPath;\nconst TRAILING_SLASH_HASH = /#\\/?$/;\nfunction normalizeId(id) {\n return id ? id.replace(TRAILING_SLASH_HASH, \"\") : \"\";\n}\nexports.normalizeId = normalizeId;\nfunction resolveUrl(resolver, baseId, id) {\n id = normalizeId(id);\n return resolver.resolve(baseId, id);\n}\nexports.resolveUrl = resolveUrl;\nconst ANCHOR = /^[a-z_][-a-z0-9._]*$/i;\nfunction getSchemaRefs(schema, baseId) {\n if (typeof schema == \"boolean\")\n return {};\n const { schemaId, uriResolver } = this.opts;\n const schId = normalizeId(schema[schemaId] || baseId);\n const baseIds = { \"\": schId };\n const pathPrefix = getFullPath(uriResolver, schId, false);\n const localRefs = {};\n const schemaRefs = new Set();\n traverse(schema, { allKeys: true }, (sch, jsonPtr, _, parentJsonPtr) => {\n if (parentJsonPtr === undefined)\n return;\n const fullPath = pathPrefix + jsonPtr;\n let innerBaseId = baseIds[parentJsonPtr];\n if (typeof sch[schemaId] == \"string\")\n innerBaseId = addRef.call(this, sch[schemaId]);\n addAnchor.call(this, sch.$anchor);\n addAnchor.call(this, sch.$dynamicAnchor);\n baseIds[jsonPtr] = innerBaseId;\n function addRef(ref) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const _resolve = this.opts.uriResolver.resolve;\n ref = normalizeId(innerBaseId ? _resolve(innerBaseId, ref) : ref);\n if (schemaRefs.has(ref))\n throw ambiguos(ref);\n schemaRefs.add(ref);\n let schOrRef = this.refs[ref];\n if (typeof schOrRef == \"string\")\n schOrRef = this.refs[schOrRef];\n if (typeof schOrRef == \"object\") {\n checkAmbiguosRef(sch, schOrRef.schema, ref);\n }\n else if (ref !== normalizeId(fullPath)) {\n if (ref[0] === \"#\") {\n checkAmbiguosRef(sch, localRefs[ref], ref);\n localRefs[ref] = sch;\n }\n else {\n this.refs[ref] = fullPath;\n }\n }\n return ref;\n }\n function addAnchor(anchor) {\n if (typeof anchor == \"string\") {\n if (!ANCHOR.test(anchor))\n throw new Error(`invalid anchor \"${anchor}\"`);\n addRef.call(this, `#${anchor}`);\n }\n }\n });\n return localRefs;\n function checkAmbiguosRef(sch1, sch2, ref) {\n if (sch2 !== undefined && !equal(sch1, sch2))\n throw ambiguos(ref);\n }\n function ambiguos(ref) {\n return new Error(`reference \"${ref}\" resolves to more than one schema`);\n }\n}\nexports.getSchemaRefs = getSchemaRefs;\n//# sourceMappingURL=resolve.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getData = exports.KeywordCxt = exports.validateFunctionCode = void 0;\nconst boolSchema_1 = require(\"./boolSchema\");\nconst dataType_1 = require(\"./dataType\");\nconst applicability_1 = require(\"./applicability\");\nconst dataType_2 = require(\"./dataType\");\nconst defaults_1 = require(\"./defaults\");\nconst keyword_1 = require(\"./keyword\");\nconst subschema_1 = require(\"./subschema\");\nconst codegen_1 = require(\"../codegen\");\nconst names_1 = require(\"../names\");\nconst resolve_1 = require(\"../resolve\");\nconst util_1 = require(\"../util\");\nconst errors_1 = require(\"../errors\");\n// schema compilation - generates validation function, subschemaCode (below) is used for subschemas\nfunction validateFunctionCode(it) {\n if (isSchemaObj(it)) {\n checkKeywords(it);\n if (schemaCxtHasRules(it)) {\n topSchemaObjCode(it);\n return;\n }\n }\n validateFunction(it, () => (0, boolSchema_1.topBoolOrEmptySchema)(it));\n}\nexports.validateFunctionCode = validateFunctionCode;\nfunction validateFunction({ gen, validateName, schema, schemaEnv, opts }, body) {\n if (opts.code.es5) {\n gen.func(validateName, (0, codegen_1._) `${names_1.default.data}, ${names_1.default.valCxt}`, schemaEnv.$async, () => {\n gen.code((0, codegen_1._) `\"use strict\"; ${funcSourceUrl(schema, opts)}`);\n destructureValCxtES5(gen, opts);\n gen.code(body);\n });\n }\n else {\n gen.func(validateName, (0, codegen_1._) `${names_1.default.data}, ${destructureValCxt(opts)}`, schemaEnv.$async, () => gen.code(funcSourceUrl(schema, opts)).code(body));\n }\n}\nfunction destructureValCxt(opts) {\n return (0, codegen_1._) `{${names_1.default.instancePath}=\"\", ${names_1.default.parentData}, ${names_1.default.parentDataProperty}, ${names_1.default.rootData}=${names_1.default.data}${opts.dynamicRef ? (0, codegen_1._) `, ${names_1.default.dynamicAnchors}={}` : codegen_1.nil}}={}`;\n}\nfunction destructureValCxtES5(gen, opts) {\n gen.if(names_1.default.valCxt, () => {\n gen.var(names_1.default.instancePath, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.instancePath}`);\n gen.var(names_1.default.parentData, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.parentData}`);\n gen.var(names_1.default.parentDataProperty, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.parentDataProperty}`);\n gen.var(names_1.default.rootData, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.rootData}`);\n if (opts.dynamicRef)\n gen.var(names_1.default.dynamicAnchors, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.dynamicAnchors}`);\n }, () => {\n gen.var(names_1.default.instancePath, (0, codegen_1._) `\"\"`);\n gen.var(names_1.default.parentData, (0, codegen_1._) `undefined`);\n gen.var(names_1.default.parentDataProperty, (0, codegen_1._) `undefined`);\n gen.var(names_1.default.rootData, names_1.default.data);\n if (opts.dynamicRef)\n gen.var(names_1.default.dynamicAnchors, (0, codegen_1._) `{}`);\n });\n}\nfunction topSchemaObjCode(it) {\n const { schema, opts, gen } = it;\n validateFunction(it, () => {\n if (opts.$comment && schema.$comment)\n commentKeyword(it);\n checkNoDefault(it);\n gen.let(names_1.default.vErrors, null);\n gen.let(names_1.default.errors, 0);\n if (opts.unevaluated)\n resetEvaluated(it);\n typeAndKeywords(it);\n returnResults(it);\n });\n return;\n}\nfunction resetEvaluated(it) {\n // TODO maybe some hook to execute it in the end to check whether props/items are Name, as in assignEvaluated\n const { gen, validateName } = it;\n it.evaluated = gen.const(\"evaluated\", (0, codegen_1._) `${validateName}.evaluated`);\n gen.if((0, codegen_1._) `${it.evaluated}.dynamicProps`, () => gen.assign((0, codegen_1._) `${it.evaluated}.props`, (0, codegen_1._) `undefined`));\n gen.if((0, codegen_1._) `${it.evaluated}.dynamicItems`, () => gen.assign((0, codegen_1._) `${it.evaluated}.items`, (0, codegen_1._) `undefined`));\n}\nfunction funcSourceUrl(schema, opts) {\n const schId = typeof schema == \"object\" && schema[opts.schemaId];\n return schId && (opts.code.source || opts.code.process) ? (0, codegen_1._) `/*# sourceURL=${schId} */` : codegen_1.nil;\n}\n// schema compilation - this function is used recursively to generate code for sub-schemas\nfunction subschemaCode(it, valid) {\n if (isSchemaObj(it)) {\n checkKeywords(it);\n if (schemaCxtHasRules(it)) {\n subSchemaObjCode(it, valid);\n return;\n }\n }\n (0, boolSchema_1.boolOrEmptySchema)(it, valid);\n}\nfunction schemaCxtHasRules({ schema, self }) {\n if (typeof schema == \"boolean\")\n return !schema;\n for (const key in schema)\n if (self.RULES.all[key])\n return true;\n return false;\n}\nfunction isSchemaObj(it) {\n return typeof it.schema != \"boolean\";\n}\nfunction subSchemaObjCode(it, valid) {\n const { schema, gen, opts } = it;\n if (opts.$comment && schema.$comment)\n commentKeyword(it);\n updateContext(it);\n checkAsyncSchema(it);\n const errsCount = gen.const(\"_errs\", names_1.default.errors);\n typeAndKeywords(it, errsCount);\n // TODO var\n gen.var(valid, (0, codegen_1._) `${errsCount} === ${names_1.default.errors}`);\n}\nfunction checkKeywords(it) {\n (0, util_1.checkUnknownRules)(it);\n checkRefsAndKeywords(it);\n}\nfunction typeAndKeywords(it, errsCount) {\n if (it.opts.jtd)\n return schemaKeywords(it, [], false, errsCount);\n const types = (0, dataType_1.getSchemaTypes)(it.schema);\n const checkedTypes = (0, dataType_1.coerceAndCheckDataType)(it, types);\n schemaKeywords(it, types, !checkedTypes, errsCount);\n}\nfunction checkRefsAndKeywords(it) {\n const { schema, errSchemaPath, opts, self } = it;\n if (schema.$ref && opts.ignoreKeywordsWithRef && (0, util_1.schemaHasRulesButRef)(schema, self.RULES)) {\n self.logger.warn(`$ref: keywords ignored in schema at path \"${errSchemaPath}\"`);\n }\n}\nfunction checkNoDefault(it) {\n const { schema, opts } = it;\n if (schema.default !== undefined && opts.useDefaults && opts.strictSchema) {\n (0, util_1.checkStrictMode)(it, \"default is ignored in the schema root\");\n }\n}\nfunction updateContext(it) {\n const schId = it.schema[it.opts.schemaId];\n if (schId)\n it.baseId = (0, resolve_1.resolveUrl)(it.opts.uriResolver, it.baseId, schId);\n}\nfunction checkAsyncSchema(it) {\n if (it.schema.$async && !it.schemaEnv.$async)\n throw new Error(\"async schema in sync schema\");\n}\nfunction commentKeyword({ gen, schemaEnv, schema, errSchemaPath, opts }) {\n const msg = schema.$comment;\n if (opts.$comment === true) {\n gen.code((0, codegen_1._) `${names_1.default.self}.logger.log(${msg})`);\n }\n else if (typeof opts.$comment == \"function\") {\n const schemaPath = (0, codegen_1.str) `${errSchemaPath}/$comment`;\n const rootName = gen.scopeValue(\"root\", { ref: schemaEnv.root });\n gen.code((0, codegen_1._) `${names_1.default.self}.opts.$comment(${msg}, ${schemaPath}, ${rootName}.schema)`);\n }\n}\nfunction returnResults(it) {\n const { gen, schemaEnv, validateName, ValidationError, opts } = it;\n if (schemaEnv.$async) {\n // TODO assign unevaluated\n gen.if((0, codegen_1._) `${names_1.default.errors} === 0`, () => gen.return(names_1.default.data), () => gen.throw((0, codegen_1._) `new ${ValidationError}(${names_1.default.vErrors})`));\n }\n else {\n gen.assign((0, codegen_1._) `${validateName}.errors`, names_1.default.vErrors);\n if (opts.unevaluated)\n assignEvaluated(it);\n gen.return((0, codegen_1._) `${names_1.default.errors} === 0`);\n }\n}\nfunction assignEvaluated({ gen, evaluated, props, items }) {\n if (props instanceof codegen_1.Name)\n gen.assign((0, codegen_1._) `${evaluated}.props`, props);\n if (items instanceof codegen_1.Name)\n gen.assign((0, codegen_1._) `${evaluated}.items`, items);\n}\nfunction schemaKeywords(it, types, typeErrors, errsCount) {\n const { gen, schema, data, allErrors, opts, self } = it;\n const { RULES } = self;\n if (schema.$ref && (opts.ignoreKeywordsWithRef || !(0, util_1.schemaHasRulesButRef)(schema, RULES))) {\n gen.block(() => keywordCode(it, \"$ref\", RULES.all.$ref.definition)); // TODO typecast\n return;\n }\n if (!opts.jtd)\n checkStrictTypes(it, types);\n gen.block(() => {\n for (const group of RULES.rules)\n groupKeywords(group);\n groupKeywords(RULES.post);\n });\n function groupKeywords(group) {\n if (!(0, applicability_1.shouldUseGroup)(schema, group))\n return;\n if (group.type) {\n gen.if((0, dataType_2.checkDataType)(group.type, data, opts.strictNumbers));\n iterateKeywords(it, group);\n if (types.length === 1 && types[0] === group.type && typeErrors) {\n gen.else();\n (0, dataType_2.reportTypeError)(it);\n }\n gen.endIf();\n }\n else {\n iterateKeywords(it, group);\n }\n // TODO make it \"ok\" call?\n if (!allErrors)\n gen.if((0, codegen_1._) `${names_1.default.errors} === ${errsCount || 0}`);\n }\n}\nfunction iterateKeywords(it, group) {\n const { gen, schema, opts: { useDefaults }, } = it;\n if (useDefaults)\n (0, defaults_1.assignDefaults)(it, group.type);\n gen.block(() => {\n for (const rule of group.rules) {\n if ((0, applicability_1.shouldUseRule)(schema, rule)) {\n keywordCode(it, rule.keyword, rule.definition, group.type);\n }\n }\n });\n}\nfunction checkStrictTypes(it, types) {\n if (it.schemaEnv.meta || !it.opts.strictTypes)\n return;\n checkContextTypes(it, types);\n if (!it.opts.allowUnionTypes)\n checkMultipleTypes(it, types);\n checkKeywordTypes(it, it.dataTypes);\n}\nfunction checkContextTypes(it, types) {\n if (!types.length)\n return;\n if (!it.dataTypes.length) {\n it.dataTypes = types;\n return;\n }\n types.forEach((t) => {\n if (!includesType(it.dataTypes, t)) {\n strictTypesError(it, `type \"${t}\" not allowed by context \"${it.dataTypes.join(\",\")}\"`);\n }\n });\n narrowSchemaTypes(it, types);\n}\nfunction checkMultipleTypes(it, ts) {\n if (ts.length > 1 && !(ts.length === 2 && ts.includes(\"null\"))) {\n strictTypesError(it, \"use allowUnionTypes to allow union type keyword\");\n }\n}\nfunction checkKeywordTypes(it, ts) {\n const rules = it.self.RULES.all;\n for (const keyword in rules) {\n const rule = rules[keyword];\n if (typeof rule == \"object\" && (0, applicability_1.shouldUseRule)(it.schema, rule)) {\n const { type } = rule.definition;\n if (type.length && !type.some((t) => hasApplicableType(ts, t))) {\n strictTypesError(it, `missing type \"${type.join(\",\")}\" for keyword \"${keyword}\"`);\n }\n }\n }\n}\nfunction hasApplicableType(schTs, kwdT) {\n return schTs.includes(kwdT) || (kwdT === \"number\" && schTs.includes(\"integer\"));\n}\nfunction includesType(ts, t) {\n return ts.includes(t) || (t === \"integer\" && ts.includes(\"number\"));\n}\nfunction narrowSchemaTypes(it, withTypes) {\n const ts = [];\n for (const t of it.dataTypes) {\n if (includesType(withTypes, t))\n ts.push(t);\n else if (withTypes.includes(\"integer\") && t === \"number\")\n ts.push(\"integer\");\n }\n it.dataTypes = ts;\n}\nfunction strictTypesError(it, msg) {\n const schemaPath = it.schemaEnv.baseId + it.errSchemaPath;\n msg += ` at \"${schemaPath}\" (strictTypes)`;\n (0, util_1.checkStrictMode)(it, msg, it.opts.strictTypes);\n}\nclass KeywordCxt {\n constructor(it, def, keyword) {\n (0, keyword_1.validateKeywordUsage)(it, def, keyword);\n this.gen = it.gen;\n this.allErrors = it.allErrors;\n this.keyword = keyword;\n this.data = it.data;\n this.schema = it.schema[keyword];\n this.$data = def.$data && it.opts.$data && this.schema && this.schema.$data;\n this.schemaValue = (0, util_1.schemaRefOrVal)(it, this.schema, keyword, this.$data);\n this.schemaType = def.schemaType;\n this.parentSchema = it.schema;\n this.params = {};\n this.it = it;\n this.def = def;\n if (this.$data) {\n this.schemaCode = it.gen.const(\"vSchema\", getData(this.$data, it));\n }\n else {\n this.schemaCode = this.schemaValue;\n if (!(0, keyword_1.validSchemaType)(this.schema, def.schemaType, def.allowUndefined)) {\n throw new Error(`${keyword} value must be ${JSON.stringify(def.schemaType)}`);\n }\n }\n if (\"code\" in def ? def.trackErrors : def.errors !== false) {\n this.errsCount = it.gen.const(\"_errs\", names_1.default.errors);\n }\n }\n result(condition, successAction, failAction) {\n this.failResult((0, codegen_1.not)(condition), successAction, failAction);\n }\n failResult(condition, successAction, failAction) {\n this.gen.if(condition);\n if (failAction)\n failAction();\n else\n this.error();\n if (successAction) {\n this.gen.else();\n successAction();\n if (this.allErrors)\n this.gen.endIf();\n }\n else {\n if (this.allErrors)\n this.gen.endIf();\n else\n this.gen.else();\n }\n }\n pass(condition, failAction) {\n this.failResult((0, codegen_1.not)(condition), undefined, failAction);\n }\n fail(condition) {\n if (condition === undefined) {\n this.error();\n if (!this.allErrors)\n this.gen.if(false); // this branch will be removed by gen.optimize\n return;\n }\n this.gen.if(condition);\n this.error();\n if (this.allErrors)\n this.gen.endIf();\n else\n this.gen.else();\n }\n fail$data(condition) {\n if (!this.$data)\n return this.fail(condition);\n const { schemaCode } = this;\n this.fail((0, codegen_1._) `${schemaCode} !== undefined && (${(0, codegen_1.or)(this.invalid$data(), condition)})`);\n }\n error(append, errorParams, errorPaths) {\n if (errorParams) {\n this.setParams(errorParams);\n this._error(append, errorPaths);\n this.setParams({});\n return;\n }\n this._error(append, errorPaths);\n }\n _error(append, errorPaths) {\n ;\n (append ? errors_1.reportExtraError : errors_1.reportError)(this, this.def.error, errorPaths);\n }\n $dataError() {\n (0, errors_1.reportError)(this, this.def.$dataError || errors_1.keyword$DataError);\n }\n reset() {\n if (this.errsCount === undefined)\n throw new Error('add \"trackErrors\" to keyword definition');\n (0, errors_1.resetErrorsCount)(this.gen, this.errsCount);\n }\n ok(cond) {\n if (!this.allErrors)\n this.gen.if(cond);\n }\n setParams(obj, assign) {\n if (assign)\n Object.assign(this.params, obj);\n else\n this.params = obj;\n }\n block$data(valid, codeBlock, $dataValid = codegen_1.nil) {\n this.gen.block(() => {\n this.check$data(valid, $dataValid);\n codeBlock();\n });\n }\n check$data(valid = codegen_1.nil, $dataValid = codegen_1.nil) {\n if (!this.$data)\n return;\n const { gen, schemaCode, schemaType, def } = this;\n gen.if((0, codegen_1.or)((0, codegen_1._) `${schemaCode} === undefined`, $dataValid));\n if (valid !== codegen_1.nil)\n gen.assign(valid, true);\n if (schemaType.length || def.validateSchema) {\n gen.elseIf(this.invalid$data());\n this.$dataError();\n if (valid !== codegen_1.nil)\n gen.assign(valid, false);\n }\n gen.else();\n }\n invalid$data() {\n const { gen, schemaCode, schemaType, def, it } = this;\n return (0, codegen_1.or)(wrong$DataType(), invalid$DataSchema());\n function wrong$DataType() {\n if (schemaType.length) {\n /* istanbul ignore if */\n if (!(schemaCode instanceof codegen_1.Name))\n throw new Error(\"ajv implementation error\");\n const st = Array.isArray(schemaType) ? schemaType : [schemaType];\n return (0, codegen_1._) `${(0, dataType_2.checkDataTypes)(st, schemaCode, it.opts.strictNumbers, dataType_2.DataType.Wrong)}`;\n }\n return codegen_1.nil;\n }\n function invalid$DataSchema() {\n if (def.validateSchema) {\n const validateSchemaRef = gen.scopeValue(\"validate$data\", { ref: def.validateSchema }); // TODO value.code for standalone\n return (0, codegen_1._) `!${validateSchemaRef}(${schemaCode})`;\n }\n return codegen_1.nil;\n }\n }\n subschema(appl, valid) {\n const subschema = (0, subschema_1.getSubschema)(this.it, appl);\n (0, subschema_1.extendSubschemaData)(subschema, this.it, appl);\n (0, subschema_1.extendSubschemaMode)(subschema, appl);\n const nextContext = { ...this.it, ...subschema, items: undefined, props: undefined };\n subschemaCode(nextContext, valid);\n return nextContext;\n }\n mergeEvaluated(schemaCxt, toName) {\n const { it, gen } = this;\n if (!it.opts.unevaluated)\n return;\n if (it.props !== true && schemaCxt.props !== undefined) {\n it.props = util_1.mergeEvaluated.props(gen, schemaCxt.props, it.props, toName);\n }\n if (it.items !== true && schemaCxt.items !== undefined) {\n it.items = util_1.mergeEvaluated.items(gen, schemaCxt.items, it.items, toName);\n }\n }\n mergeValidEvaluated(schemaCxt, valid) {\n const { it, gen } = this;\n if (it.opts.unevaluated && (it.props !== true || it.items !== true)) {\n gen.if(valid, () => this.mergeEvaluated(schemaCxt, codegen_1.Name));\n return true;\n }\n }\n}\nexports.KeywordCxt = KeywordCxt;\nfunction keywordCode(it, keyword, def, ruleType) {\n const cxt = new KeywordCxt(it, def, keyword);\n if (\"code\" in def) {\n def.code(cxt, ruleType);\n }\n else if (cxt.$data && def.validate) {\n (0, keyword_1.funcKeywordCode)(cxt, def);\n }\n else if (\"macro\" in def) {\n (0, keyword_1.macroKeywordCode)(cxt, def);\n }\n else if (def.compile || def.validate) {\n (0, keyword_1.funcKeywordCode)(cxt, def);\n }\n}\nconst JSON_POINTER = /^\\/(?:[^~]|~0|~1)*$/;\nconst RELATIVE_JSON_POINTER = /^([0-9]+)(#|\\/(?:[^~]|~0|~1)*)?$/;\nfunction getData($data, { dataLevel, dataNames, dataPathArr }) {\n let jsonPointer;\n let data;\n if ($data === \"\")\n return names_1.default.rootData;\n if ($data[0] === \"/\") {\n if (!JSON_POINTER.test($data))\n throw new Error(`Invalid JSON-pointer: ${$data}`);\n jsonPointer = $data;\n data = names_1.default.rootData;\n }\n else {\n const matches = RELATIVE_JSON_POINTER.exec($data);\n if (!matches)\n throw new Error(`Invalid JSON-pointer: ${$data}`);\n const up = +matches[1];\n jsonPointer = matches[2];\n if (jsonPointer === \"#\") {\n if (up >= dataLevel)\n throw new Error(errorMsg(\"property/index\", up));\n return dataPathArr[dataLevel - up];\n }\n if (up > dataLevel)\n throw new Error(errorMsg(\"data\", up));\n data = dataNames[dataLevel - up];\n if (!jsonPointer)\n return data;\n }\n let expr = data;\n const segments = jsonPointer.split(\"/\");\n for (const segment of segments) {\n if (segment) {\n data = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)((0, util_1.unescapeJsonPointer)(segment))}`;\n expr = (0, codegen_1._) `${expr} && ${data}`;\n }\n }\n return expr;\n function errorMsg(pointerType, up) {\n return `Cannot access ${pointerType} ${up} levels up, current level is ${dataLevel}`;\n }\n}\nexports.getData = getData;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nclass ValidationError extends Error {\n constructor(errors) {\n super(\"validation failed\");\n this.errors = errors;\n this.ajv = this.validation = true;\n }\n}\nexports.default = ValidationError;\n//# sourceMappingURL=validation_error.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst resolve_1 = require(\"./resolve\");\nclass MissingRefError extends Error {\n constructor(resolver, baseId, ref, msg) {\n super(msg || `can't resolve reference ${ref} from id ${baseId}`);\n this.missingRef = (0, resolve_1.resolveUrl)(resolver, baseId, ref);\n this.missingSchema = (0, resolve_1.normalizeId)((0, resolve_1.getFullPath)(resolver, this.missingRef));\n }\n}\nexports.default = MissingRefError;\n//# sourceMappingURL=ref_error.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveSchema = exports.getCompilingSchema = exports.resolveRef = exports.compileSchema = exports.SchemaEnv = void 0;\nconst codegen_1 = require(\"./codegen\");\nconst validation_error_1 = require(\"../runtime/validation_error\");\nconst names_1 = require(\"./names\");\nconst resolve_1 = require(\"./resolve\");\nconst util_1 = require(\"./util\");\nconst validate_1 = require(\"./validate\");\nclass SchemaEnv {\n constructor(env) {\n var _a;\n this.refs = {};\n this.dynamicAnchors = {};\n let schema;\n if (typeof env.schema == \"object\")\n schema = env.schema;\n this.schema = env.schema;\n this.schemaId = env.schemaId;\n this.root = env.root || this;\n this.baseId = (_a = env.baseId) !== null && _a !== void 0 ? _a : (0, resolve_1.normalizeId)(schema === null || schema === void 0 ? void 0 : schema[env.schemaId || \"$id\"]);\n this.schemaPath = env.schemaPath;\n this.localRefs = env.localRefs;\n this.meta = env.meta;\n this.$async = schema === null || schema === void 0 ? void 0 : schema.$async;\n this.refs = {};\n }\n}\nexports.SchemaEnv = SchemaEnv;\n// let codeSize = 0\n// let nodeCount = 0\n// Compiles schema in SchemaEnv\nfunction compileSchema(sch) {\n // TODO refactor - remove compilations\n const _sch = getCompilingSchema.call(this, sch);\n if (_sch)\n return _sch;\n const rootId = (0, resolve_1.getFullPath)(this.opts.uriResolver, sch.root.baseId); // TODO if getFullPath removed 1 tests fails\n const { es5, lines } = this.opts.code;\n const { ownProperties } = this.opts;\n const gen = new codegen_1.CodeGen(this.scope, { es5, lines, ownProperties });\n let _ValidationError;\n if (sch.$async) {\n _ValidationError = gen.scopeValue(\"Error\", {\n ref: validation_error_1.default,\n code: (0, codegen_1._) `require(\"ajv/dist/runtime/validation_error\").default`,\n });\n }\n const validateName = gen.scopeName(\"validate\");\n sch.validateName = validateName;\n const schemaCxt = {\n gen,\n allErrors: this.opts.allErrors,\n data: names_1.default.data,\n parentData: names_1.default.parentData,\n parentDataProperty: names_1.default.parentDataProperty,\n dataNames: [names_1.default.data],\n dataPathArr: [codegen_1.nil], // TODO can its length be used as dataLevel if nil is removed?\n dataLevel: 0,\n dataTypes: [],\n definedProperties: new Set(),\n topSchemaRef: gen.scopeValue(\"schema\", this.opts.code.source === true\n ? { ref: sch.schema, code: (0, codegen_1.stringify)(sch.schema) }\n : { ref: sch.schema }),\n validateName,\n ValidationError: _ValidationError,\n schema: sch.schema,\n schemaEnv: sch,\n rootId,\n baseId: sch.baseId || rootId,\n schemaPath: codegen_1.nil,\n errSchemaPath: sch.schemaPath || (this.opts.jtd ? \"\" : \"#\"),\n errorPath: (0, codegen_1._) `\"\"`,\n opts: this.opts,\n self: this,\n };\n let sourceCode;\n try {\n this._compilations.add(sch);\n (0, validate_1.validateFunctionCode)(schemaCxt);\n gen.optimize(this.opts.code.optimize);\n // gen.optimize(1)\n const validateCode = gen.toString();\n sourceCode = `${gen.scopeRefs(names_1.default.scope)}return ${validateCode}`;\n // console.log((codeSize += sourceCode.length), (nodeCount += gen.nodeCount))\n if (this.opts.code.process)\n sourceCode = this.opts.code.process(sourceCode, sch);\n // console.log(\"\\n\\n\\n *** \\n\", sourceCode)\n const makeValidate = new Function(`${names_1.default.self}`, `${names_1.default.scope}`, sourceCode);\n const validate = makeValidate(this, this.scope.get());\n this.scope.value(validateName, { ref: validate });\n validate.errors = null;\n validate.schema = sch.schema;\n validate.schemaEnv = sch;\n if (sch.$async)\n validate.$async = true;\n if (this.opts.code.source === true) {\n validate.source = { validateName, validateCode, scopeValues: gen._values };\n }\n if (this.opts.unevaluated) {\n const { props, items } = schemaCxt;\n validate.evaluated = {\n props: props instanceof codegen_1.Name ? undefined : props,\n items: items instanceof codegen_1.Name ? undefined : items,\n dynamicProps: props instanceof codegen_1.Name,\n dynamicItems: items instanceof codegen_1.Name,\n };\n if (validate.source)\n validate.source.evaluated = (0, codegen_1.stringify)(validate.evaluated);\n }\n sch.validate = validate;\n return sch;\n }\n catch (e) {\n delete sch.validate;\n delete sch.validateName;\n if (sourceCode)\n this.logger.error(\"Error compiling schema, function code:\", sourceCode);\n // console.log(\"\\n\\n\\n *** \\n\", sourceCode, this.opts)\n throw e;\n }\n finally {\n this._compilations.delete(sch);\n }\n}\nexports.compileSchema = compileSchema;\nfunction resolveRef(root, baseId, ref) {\n var _a;\n ref = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, ref);\n const schOrFunc = root.refs[ref];\n if (schOrFunc)\n return schOrFunc;\n let _sch = resolve.call(this, root, ref);\n if (_sch === undefined) {\n const schema = (_a = root.localRefs) === null || _a === void 0 ? void 0 : _a[ref]; // TODO maybe localRefs should hold SchemaEnv\n const { schemaId } = this.opts;\n if (schema)\n _sch = new SchemaEnv({ schema, schemaId, root, baseId });\n }\n if (_sch === undefined)\n return;\n return (root.refs[ref] = inlineOrCompile.call(this, _sch));\n}\nexports.resolveRef = resolveRef;\nfunction inlineOrCompile(sch) {\n if ((0, resolve_1.inlineRef)(sch.schema, this.opts.inlineRefs))\n return sch.schema;\n return sch.validate ? sch : compileSchema.call(this, sch);\n}\n// Index of schema compilation in the currently compiled list\nfunction getCompilingSchema(schEnv) {\n for (const sch of this._compilations) {\n if (sameSchemaEnv(sch, schEnv))\n return sch;\n }\n}\nexports.getCompilingSchema = getCompilingSchema;\nfunction sameSchemaEnv(s1, s2) {\n return s1.schema === s2.schema && s1.root === s2.root && s1.baseId === s2.baseId;\n}\n// resolve and compile the references ($ref)\n// TODO returns AnySchemaObject (if the schema can be inlined) or validation function\nfunction resolve(root, // information about the root schema for the current schema\nref // reference to resolve\n) {\n let sch;\n while (typeof (sch = this.refs[ref]) == \"string\")\n ref = sch;\n return sch || this.schemas[ref] || resolveSchema.call(this, root, ref);\n}\n// Resolve schema, its root and baseId\nfunction resolveSchema(root, // root object with properties schema, refs TODO below SchemaEnv is assigned to it\nref // reference to resolve\n) {\n const p = this.opts.uriResolver.parse(ref);\n const refPath = (0, resolve_1._getFullPath)(this.opts.uriResolver, p);\n let baseId = (0, resolve_1.getFullPath)(this.opts.uriResolver, root.baseId, undefined);\n // TODO `Object.keys(root.schema).length > 0` should not be needed - but removing breaks 2 tests\n if (Object.keys(root.schema).length > 0 && refPath === baseId) {\n return getJsonPointer.call(this, p, root);\n }\n const id = (0, resolve_1.normalizeId)(refPath);\n const schOrRef = this.refs[id] || this.schemas[id];\n if (typeof schOrRef == \"string\") {\n const sch = resolveSchema.call(this, root, schOrRef);\n if (typeof (sch === null || sch === void 0 ? void 0 : sch.schema) !== \"object\")\n return;\n return getJsonPointer.call(this, p, sch);\n }\n if (typeof (schOrRef === null || schOrRef === void 0 ? void 0 : schOrRef.schema) !== \"object\")\n return;\n if (!schOrRef.validate)\n compileSchema.call(this, schOrRef);\n if (id === (0, resolve_1.normalizeId)(ref)) {\n const { schema } = schOrRef;\n const { schemaId } = this.opts;\n const schId = schema[schemaId];\n if (schId)\n baseId = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schId);\n return new SchemaEnv({ schema, schemaId, root, baseId });\n }\n return getJsonPointer.call(this, p, schOrRef);\n}\nexports.resolveSchema = resolveSchema;\nconst PREVENT_SCOPE_CHANGE = new Set([\n \"properties\",\n \"patternProperties\",\n \"enum\",\n \"dependencies\",\n \"definitions\",\n]);\nfunction getJsonPointer(parsedRef, { baseId, schema, root }) {\n var _a;\n if (((_a = parsedRef.fragment) === null || _a === void 0 ? void 0 : _a[0]) !== \"/\")\n return;\n for (const part of parsedRef.fragment.slice(1).split(\"/\")) {\n if (typeof schema === \"boolean\")\n return;\n const partSchema = schema[(0, util_1.unescapeFragment)(part)];\n if (partSchema === undefined)\n return;\n schema = partSchema;\n // TODO PREVENT_SCOPE_CHANGE could be defined in keyword def?\n const schId = typeof schema === \"object\" && schema[this.opts.schemaId];\n if (!PREVENT_SCOPE_CHANGE.has(part) && schId) {\n baseId = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schId);\n }\n }\n let env;\n if (typeof schema != \"boolean\" && schema.$ref && !(0, util_1.schemaHasRulesButRef)(schema, this.RULES)) {\n const $ref = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schema.$ref);\n env = resolveSchema.call(this, root, $ref);\n }\n // even though resolution failed we need to return SchemaEnv to throw exception\n // so that compileAsync loads missing schema.\n const { schemaId } = this.opts;\n env = env || new SchemaEnv({ schema, schemaId, root, baseId });\n if (env.schema !== env.root.schema)\n return env;\n return undefined;\n}\n//# sourceMappingURL=index.js.map","","'use strict'\n\nconst HEX = {\n 0: 0,\n 1: 1,\n 2: 2,\n 3: 3,\n 4: 4,\n 5: 5,\n 6: 6,\n 7: 7,\n 8: 8,\n 9: 9,\n a: 10,\n A: 10,\n b: 11,\n B: 11,\n c: 12,\n C: 12,\n d: 13,\n D: 13,\n e: 14,\n E: 14,\n f: 15,\n F: 15\n}\n\nmodule.exports = {\n HEX\n}\n","'use strict'\n\nconst { HEX } = require('./scopedChars')\n\nfunction normalizeIPv4 (host) {\n if (findToken(host, '.') < 3) { return { host, isIPV4: false } }\n const matches = host.match(/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/u) || []\n const [address] = matches\n if (address) {\n return { host: stripLeadingZeros(address, '.'), isIPV4: true }\n } else {\n return { host, isIPV4: false }\n }\n}\n\n/**\n * @param {string[]} input\n * @param {boolean} [keepZero=false]\n * @returns {string|undefined}\n */\nfunction stringArrayToHexStripped (input, keepZero = false) {\n let acc = ''\n let strip = true\n for (const c of input) {\n if (HEX[c] === undefined) return undefined\n if (c !== '0' && strip === true) strip = false\n if (!strip) acc += c\n }\n if (keepZero && acc.length === 0) acc = '0'\n return acc\n}\n\nfunction getIPV6 (input) {\n let tokenCount = 0\n const output = { error: false, address: '', zone: '' }\n const address = []\n const buffer = []\n let isZone = false\n let endipv6Encountered = false\n let endIpv6 = false\n\n function consume () {\n if (buffer.length) {\n if (isZone === false) {\n const hex = stringArrayToHexStripped(buffer)\n if (hex !== undefined) {\n address.push(hex)\n } else {\n output.error = true\n return false\n }\n }\n buffer.length = 0\n }\n return true\n }\n\n for (let i = 0; i < input.length; i++) {\n const cursor = input[i]\n if (cursor === '[' || cursor === ']') { continue }\n if (cursor === ':') {\n if (endipv6Encountered === true) {\n endIpv6 = true\n }\n if (!consume()) { break }\n tokenCount++\n address.push(':')\n if (tokenCount > 7) {\n // not valid\n output.error = true\n break\n }\n if (i - 1 >= 0 && input[i - 1] === ':') {\n endipv6Encountered = true\n }\n continue\n } else if (cursor === '%') {\n if (!consume()) { break }\n // switch to zone detection\n isZone = true\n } else {\n buffer.push(cursor)\n continue\n }\n }\n if (buffer.length) {\n if (isZone) {\n output.zone = buffer.join('')\n } else if (endIpv6) {\n address.push(buffer.join(''))\n } else {\n address.push(stringArrayToHexStripped(buffer))\n }\n }\n output.address = address.join('')\n return output\n}\n\nfunction normalizeIPv6 (host, opts = {}) {\n if (findToken(host, ':') < 2) { return { host, isIPV6: false } }\n const ipv6 = getIPV6(host)\n\n if (!ipv6.error) {\n let newHost = ipv6.address\n let escapedHost = ipv6.address\n if (ipv6.zone) {\n newHost += '%' + ipv6.zone\n escapedHost += '%25' + ipv6.zone\n }\n return { host: newHost, escapedHost, isIPV6: true }\n } else {\n return { host, isIPV6: false }\n }\n}\n\nfunction stripLeadingZeros (str, token) {\n let out = ''\n let skip = true\n const l = str.length\n for (let i = 0; i < l; i++) {\n const c = str[i]\n if (c === '0' && skip) {\n if ((i + 1 <= l && str[i + 1] === token) || i + 1 === l) {\n out += c\n skip = false\n }\n } else {\n if (c === token) {\n skip = true\n } else {\n skip = false\n }\n out += c\n }\n }\n return out\n}\n\nfunction findToken (str, token) {\n let ind = 0\n for (let i = 0; i < str.length; i++) {\n if (str[i] === token) ind++\n }\n return ind\n}\n\nconst RDS1 = /^\\.\\.?\\//u\nconst RDS2 = /^\\/\\.(?:\\/|$)/u\nconst RDS3 = /^\\/\\.\\.(?:\\/|$)/u\nconst RDS5 = /^\\/?(?:.|\\n)*?(?=\\/|$)/u\n\nfunction removeDotSegments (input) {\n const output = []\n\n while (input.length) {\n if (input.match(RDS1)) {\n input = input.replace(RDS1, '')\n } else if (input.match(RDS2)) {\n input = input.replace(RDS2, '/')\n } else if (input.match(RDS3)) {\n input = input.replace(RDS3, '/')\n output.pop()\n } else if (input === '.' || input === '..') {\n input = ''\n } else {\n const im = input.match(RDS5)\n if (im) {\n const s = im[0]\n input = input.slice(s.length)\n output.push(s)\n } else {\n throw new Error('Unexpected dot segment condition')\n }\n }\n }\n return output.join('')\n}\n\nfunction normalizeComponentEncoding (components, esc) {\n const func = esc !== true ? escape : unescape\n if (components.scheme !== undefined) {\n components.scheme = func(components.scheme)\n }\n if (components.userinfo !== undefined) {\n components.userinfo = func(components.userinfo)\n }\n if (components.host !== undefined) {\n components.host = func(components.host)\n }\n if (components.path !== undefined) {\n components.path = func(components.path)\n }\n if (components.query !== undefined) {\n components.query = func(components.query)\n }\n if (components.fragment !== undefined) {\n components.fragment = func(components.fragment)\n }\n return components\n}\n\nfunction recomposeAuthority (components, options) {\n const uriTokens = []\n\n if (components.userinfo !== undefined) {\n uriTokens.push(components.userinfo)\n uriTokens.push('@')\n }\n\n if (components.host !== undefined) {\n let host = unescape(components.host)\n const ipV4res = normalizeIPv4(host)\n\n if (ipV4res.isIPV4) {\n host = ipV4res.host\n } else {\n const ipV6res = normalizeIPv6(ipV4res.host, { isIPV4: false })\n if (ipV6res.isIPV6 === true) {\n host = `[${ipV6res.escapedHost}]`\n } else {\n host = components.host\n }\n }\n uriTokens.push(host)\n }\n\n if (typeof components.port === 'number' || typeof components.port === 'string') {\n uriTokens.push(':')\n uriTokens.push(String(components.port))\n }\n\n return uriTokens.length ? uriTokens.join('') : undefined\n};\n\nmodule.exports = {\n recomposeAuthority,\n normalizeComponentEncoding,\n removeDotSegments,\n normalizeIPv4,\n normalizeIPv6,\n stringArrayToHexStripped\n}\n","'use strict'\n\nconst UUID_REG = /^[\\da-f]{8}\\b-[\\da-f]{4}\\b-[\\da-f]{4}\\b-[\\da-f]{4}\\b-[\\da-f]{12}$/iu\nconst URN_REG = /([\\da-z][\\d\\-a-z]{0,31}):((?:[\\w!$'()*+,\\-.:;=@]|%[\\da-f]{2})+)/iu\n\nfunction isSecure (wsComponents) {\n return typeof wsComponents.secure === 'boolean' ? wsComponents.secure : String(wsComponents.scheme).toLowerCase() === 'wss'\n}\n\nfunction httpParse (components) {\n if (!components.host) {\n components.error = components.error || 'HTTP URIs must have a host.'\n }\n\n return components\n}\n\nfunction httpSerialize (components) {\n const secure = String(components.scheme).toLowerCase() === 'https'\n\n // normalize the default port\n if (components.port === (secure ? 443 : 80) || components.port === '') {\n components.port = undefined\n }\n\n // normalize the empty path\n if (!components.path) {\n components.path = '/'\n }\n\n // NOTE: We do not parse query strings for HTTP URIs\n // as WWW Form Url Encoded query strings are part of the HTML4+ spec,\n // and not the HTTP spec.\n\n return components\n}\n\nfunction wsParse (wsComponents) {\n// indicate if the secure flag is set\n wsComponents.secure = isSecure(wsComponents)\n\n // construct resouce name\n wsComponents.resourceName = (wsComponents.path || '/') + (wsComponents.query ? '?' + wsComponents.query : '')\n wsComponents.path = undefined\n wsComponents.query = undefined\n\n return wsComponents\n}\n\nfunction wsSerialize (wsComponents) {\n// normalize the default port\n if (wsComponents.port === (isSecure(wsComponents) ? 443 : 80) || wsComponents.port === '') {\n wsComponents.port = undefined\n }\n\n // ensure scheme matches secure flag\n if (typeof wsComponents.secure === 'boolean') {\n wsComponents.scheme = (wsComponents.secure ? 'wss' : 'ws')\n wsComponents.secure = undefined\n }\n\n // reconstruct path from resource name\n if (wsComponents.resourceName) {\n const [path, query] = wsComponents.resourceName.split('?')\n wsComponents.path = (path && path !== '/' ? path : undefined)\n wsComponents.query = query\n wsComponents.resourceName = undefined\n }\n\n // forbid fragment component\n wsComponents.fragment = undefined\n\n return wsComponents\n}\n\nfunction urnParse (urnComponents, options) {\n if (!urnComponents.path) {\n urnComponents.error = 'URN can not be parsed'\n return urnComponents\n }\n const matches = urnComponents.path.match(URN_REG)\n if (matches) {\n const scheme = options.scheme || urnComponents.scheme || 'urn'\n urnComponents.nid = matches[1].toLowerCase()\n urnComponents.nss = matches[2]\n const urnScheme = `${scheme}:${options.nid || urnComponents.nid}`\n const schemeHandler = SCHEMES[urnScheme]\n urnComponents.path = undefined\n\n if (schemeHandler) {\n urnComponents = schemeHandler.parse(urnComponents, options)\n }\n } else {\n urnComponents.error = urnComponents.error || 'URN can not be parsed.'\n }\n\n return urnComponents\n}\n\nfunction urnSerialize (urnComponents, options) {\n const scheme = options.scheme || urnComponents.scheme || 'urn'\n const nid = urnComponents.nid.toLowerCase()\n const urnScheme = `${scheme}:${options.nid || nid}`\n const schemeHandler = SCHEMES[urnScheme]\n\n if (schemeHandler) {\n urnComponents = schemeHandler.serialize(urnComponents, options)\n }\n\n const uriComponents = urnComponents\n const nss = urnComponents.nss\n uriComponents.path = `${nid || options.nid}:${nss}`\n\n options.skipEscape = true\n return uriComponents\n}\n\nfunction urnuuidParse (urnComponents, options) {\n const uuidComponents = urnComponents\n uuidComponents.uuid = uuidComponents.nss\n uuidComponents.nss = undefined\n\n if (!options.tolerant && (!uuidComponents.uuid || !UUID_REG.test(uuidComponents.uuid))) {\n uuidComponents.error = uuidComponents.error || 'UUID is not valid.'\n }\n\n return uuidComponents\n}\n\nfunction urnuuidSerialize (uuidComponents) {\n const urnComponents = uuidComponents\n // normalize UUID\n urnComponents.nss = (uuidComponents.uuid || '').toLowerCase()\n return urnComponents\n}\n\nconst http = {\n scheme: 'http',\n domainHost: true,\n parse: httpParse,\n serialize: httpSerialize\n}\n\nconst https = {\n scheme: 'https',\n domainHost: http.domainHost,\n parse: httpParse,\n serialize: httpSerialize\n}\n\nconst ws = {\n scheme: 'ws',\n domainHost: true,\n parse: wsParse,\n serialize: wsSerialize\n}\n\nconst wss = {\n scheme: 'wss',\n domainHost: ws.domainHost,\n parse: ws.parse,\n serialize: ws.serialize\n}\n\nconst urn = {\n scheme: 'urn',\n parse: urnParse,\n serialize: urnSerialize,\n skipNormalize: true\n}\n\nconst urnuuid = {\n scheme: 'urn:uuid',\n parse: urnuuidParse,\n serialize: urnuuidSerialize,\n skipNormalize: true\n}\n\nconst SCHEMES = {\n http,\n https,\n ws,\n wss,\n urn,\n 'urn:uuid': urnuuid\n}\n\nmodule.exports = SCHEMES\n","'use strict'\n\nconst { normalizeIPv6, normalizeIPv4, removeDotSegments, recomposeAuthority, normalizeComponentEncoding } = require('./lib/utils')\nconst SCHEMES = require('./lib/schemes')\n\nfunction normalize (uri, options) {\n if (typeof uri === 'string') {\n uri = serialize(parse(uri, options), options)\n } else if (typeof uri === 'object') {\n uri = parse(serialize(uri, options), options)\n }\n return uri\n}\n\nfunction resolve (baseURI, relativeURI, options) {\n const schemelessOptions = Object.assign({ scheme: 'null' }, options)\n const resolved = resolveComponents(parse(baseURI, schemelessOptions), parse(relativeURI, schemelessOptions), schemelessOptions, true)\n return serialize(resolved, { ...schemelessOptions, skipEscape: true })\n}\n\nfunction resolveComponents (base, relative, options, skipNormalization) {\n const target = {}\n if (!skipNormalization) {\n base = parse(serialize(base, options), options) // normalize base components\n relative = parse(serialize(relative, options), options) // normalize relative components\n }\n options = options || {}\n\n if (!options.tolerant && relative.scheme) {\n target.scheme = relative.scheme\n // target.authority = relative.authority;\n target.userinfo = relative.userinfo\n target.host = relative.host\n target.port = relative.port\n target.path = removeDotSegments(relative.path || '')\n target.query = relative.query\n } else {\n if (relative.userinfo !== undefined || relative.host !== undefined || relative.port !== undefined) {\n // target.authority = relative.authority;\n target.userinfo = relative.userinfo\n target.host = relative.host\n target.port = relative.port\n target.path = removeDotSegments(relative.path || '')\n target.query = relative.query\n } else {\n if (!relative.path) {\n target.path = base.path\n if (relative.query !== undefined) {\n target.query = relative.query\n } else {\n target.query = base.query\n }\n } else {\n if (relative.path.charAt(0) === '/') {\n target.path = removeDotSegments(relative.path)\n } else {\n if ((base.userinfo !== undefined || base.host !== undefined || base.port !== undefined) && !base.path) {\n target.path = '/' + relative.path\n } else if (!base.path) {\n target.path = relative.path\n } else {\n target.path = base.path.slice(0, base.path.lastIndexOf('/') + 1) + relative.path\n }\n target.path = removeDotSegments(target.path)\n }\n target.query = relative.query\n }\n // target.authority = base.authority;\n target.userinfo = base.userinfo\n target.host = base.host\n target.port = base.port\n }\n target.scheme = base.scheme\n }\n\n target.fragment = relative.fragment\n\n return target\n}\n\nfunction equal (uriA, uriB, options) {\n if (typeof uriA === 'string') {\n uriA = unescape(uriA)\n uriA = serialize(normalizeComponentEncoding(parse(uriA, options), true), { ...options, skipEscape: true })\n } else if (typeof uriA === 'object') {\n uriA = serialize(normalizeComponentEncoding(uriA, true), { ...options, skipEscape: true })\n }\n\n if (typeof uriB === 'string') {\n uriB = unescape(uriB)\n uriB = serialize(normalizeComponentEncoding(parse(uriB, options), true), { ...options, skipEscape: true })\n } else if (typeof uriB === 'object') {\n uriB = serialize(normalizeComponentEncoding(uriB, true), { ...options, skipEscape: true })\n }\n\n return uriA.toLowerCase() === uriB.toLowerCase()\n}\n\nfunction serialize (cmpts, opts) {\n const components = {\n host: cmpts.host,\n scheme: cmpts.scheme,\n userinfo: cmpts.userinfo,\n port: cmpts.port,\n path: cmpts.path,\n query: cmpts.query,\n nid: cmpts.nid,\n nss: cmpts.nss,\n uuid: cmpts.uuid,\n fragment: cmpts.fragment,\n reference: cmpts.reference,\n resourceName: cmpts.resourceName,\n secure: cmpts.secure,\n error: ''\n }\n const options = Object.assign({}, opts)\n const uriTokens = []\n\n // find scheme handler\n const schemeHandler = SCHEMES[(options.scheme || components.scheme || '').toLowerCase()]\n\n // perform scheme specific serialization\n if (schemeHandler && schemeHandler.serialize) schemeHandler.serialize(components, options)\n\n if (components.path !== undefined) {\n if (!options.skipEscape) {\n components.path = escape(components.path)\n\n if (components.scheme !== undefined) {\n components.path = components.path.split('%3A').join(':')\n }\n } else {\n components.path = unescape(components.path)\n }\n }\n\n if (options.reference !== 'suffix' && components.scheme) {\n uriTokens.push(components.scheme)\n uriTokens.push(':')\n }\n\n const authority = recomposeAuthority(components, options)\n if (authority !== undefined) {\n if (options.reference !== 'suffix') {\n uriTokens.push('//')\n }\n\n uriTokens.push(authority)\n\n if (components.path && components.path.charAt(0) !== '/') {\n uriTokens.push('/')\n }\n }\n if (components.path !== undefined) {\n let s = components.path\n\n if (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) {\n s = removeDotSegments(s)\n }\n\n if (authority === undefined) {\n s = s.replace(/^\\/\\//u, '/%2F') // don't allow the path to start with \"//\"\n }\n\n uriTokens.push(s)\n }\n\n if (components.query !== undefined) {\n uriTokens.push('?')\n uriTokens.push(components.query)\n }\n\n if (components.fragment !== undefined) {\n uriTokens.push('#')\n uriTokens.push(components.fragment)\n }\n return uriTokens.join('')\n}\n\nconst hexLookUp = Array.from({ length: 127 }, (v, k) => /[^!\"$&'()*+,\\-.;=_`a-z{}~]/u.test(String.fromCharCode(k)))\n\nfunction nonSimpleDomain (value) {\n let code = 0\n for (let i = 0, len = value.length; i < len; ++i) {\n code = value.charCodeAt(i)\n if (code > 126 || hexLookUp[code]) {\n return true\n }\n }\n return false\n}\n\nconst URI_PARSE = /^(?:([^#/:?]+):)?(?:\\/\\/((?:([^#/?@]*)@)?(\\[[^#/?\\]]+\\]|[^#/:?]*)(?::(\\d*))?))?([^#?]*)(?:\\?([^#]*))?(?:#((?:.|[\\n\\r])*))?/u\n\nfunction parse (uri, opts) {\n const options = Object.assign({}, opts)\n const parsed = {\n scheme: undefined,\n userinfo: undefined,\n host: '',\n port: undefined,\n path: '',\n query: undefined,\n fragment: undefined\n }\n const gotEncoding = uri.indexOf('%') !== -1\n let isIP = false\n if (options.reference === 'suffix') uri = (options.scheme ? options.scheme + ':' : '') + '//' + uri\n\n const matches = uri.match(URI_PARSE)\n\n if (matches) {\n // store each component\n parsed.scheme = matches[1]\n parsed.userinfo = matches[3]\n parsed.host = matches[4]\n parsed.port = parseInt(matches[5], 10)\n parsed.path = matches[6] || ''\n parsed.query = matches[7]\n parsed.fragment = matches[8]\n\n // fix port number\n if (isNaN(parsed.port)) {\n parsed.port = matches[5]\n }\n if (parsed.host) {\n const ipv4result = normalizeIPv4(parsed.host)\n if (ipv4result.isIPV4 === false) {\n const ipv6result = normalizeIPv6(ipv4result.host, { isIPV4: false })\n parsed.host = ipv6result.host.toLowerCase()\n isIP = ipv6result.isIPV6\n } else {\n parsed.host = ipv4result.host\n isIP = true\n }\n }\n if (parsed.scheme === undefined && parsed.userinfo === undefined && parsed.host === undefined && parsed.port === undefined && !parsed.path && parsed.query === undefined) {\n parsed.reference = 'same-document'\n } else if (parsed.scheme === undefined) {\n parsed.reference = 'relative'\n } else if (parsed.fragment === undefined) {\n parsed.reference = 'absolute'\n } else {\n parsed.reference = 'uri'\n }\n\n // check for reference errors\n if (options.reference && options.reference !== 'suffix' && options.reference !== parsed.reference) {\n parsed.error = parsed.error || 'URI is not a ' + options.reference + ' reference.'\n }\n\n // find scheme handler\n const schemeHandler = SCHEMES[(options.scheme || parsed.scheme || '').toLowerCase()]\n\n // check if scheme can't handle IRIs\n if (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport)) {\n // if host component is a domain name\n if (parsed.host && (options.domainHost || (schemeHandler && schemeHandler.domainHost)) && isIP === false && nonSimpleDomain(parsed.host)) {\n // convert Unicode IDN -> ASCII IDN\n try {\n parsed.host = URL.domainToASCII(parsed.host.toLowerCase())\n } catch (e) {\n parsed.error = parsed.error || \"Host's domain name can not be converted to ASCII: \" + e\n }\n }\n // convert IRI -> URI\n }\n\n if (!schemeHandler || (schemeHandler && !schemeHandler.skipNormalize)) {\n if (gotEncoding && parsed.scheme !== undefined) {\n parsed.scheme = unescape(parsed.scheme)\n }\n if (gotEncoding && parsed.userinfo !== undefined) {\n parsed.userinfo = unescape(parsed.userinfo)\n }\n if (gotEncoding && parsed.host !== undefined) {\n parsed.host = unescape(parsed.host)\n }\n if (parsed.path !== undefined && parsed.path.length) {\n parsed.path = escape(unescape(parsed.path))\n }\n if (parsed.fragment !== undefined && parsed.fragment.length) {\n parsed.fragment = encodeURI(decodeURIComponent(parsed.fragment))\n }\n }\n\n // perform scheme specific parsing\n if (schemeHandler && schemeHandler.parse) {\n schemeHandler.parse(parsed, options)\n }\n } else {\n parsed.error = parsed.error || 'URI can not be parsed.'\n }\n return parsed\n}\n\nconst fastUri = {\n SCHEMES,\n normalize,\n resolve,\n resolveComponents,\n equal,\n serialize,\n parse\n}\n\nmodule.exports = fastUri\nmodule.exports.default = fastUri\nmodule.exports.fastUri = fastUri\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst uri = require(\"fast-uri\");\nuri.code = 'require(\"ajv/dist/runtime/uri\").default';\nexports.default = uri;\n//# sourceMappingURL=uri.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CodeGen = exports.Name = exports.nil = exports.stringify = exports.str = exports._ = exports.KeywordCxt = void 0;\nvar validate_1 = require(\"./compile/validate\");\nObject.defineProperty(exports, \"KeywordCxt\", { enumerable: true, get: function () { return validate_1.KeywordCxt; } });\nvar codegen_1 = require(\"./compile/codegen\");\nObject.defineProperty(exports, \"_\", { enumerable: true, get: function () { return codegen_1._; } });\nObject.defineProperty(exports, \"str\", { enumerable: true, get: function () { return codegen_1.str; } });\nObject.defineProperty(exports, \"stringify\", { enumerable: true, get: function () { return codegen_1.stringify; } });\nObject.defineProperty(exports, \"nil\", { enumerable: true, get: function () { return codegen_1.nil; } });\nObject.defineProperty(exports, \"Name\", { enumerable: true, get: function () { return codegen_1.Name; } });\nObject.defineProperty(exports, \"CodeGen\", { enumerable: true, get: function () { return codegen_1.CodeGen; } });\nconst validation_error_1 = require(\"./runtime/validation_error\");\nconst ref_error_1 = require(\"./compile/ref_error\");\nconst rules_1 = require(\"./compile/rules\");\nconst compile_1 = require(\"./compile\");\nconst codegen_2 = require(\"./compile/codegen\");\nconst resolve_1 = require(\"./compile/resolve\");\nconst dataType_1 = require(\"./compile/validate/dataType\");\nconst util_1 = require(\"./compile/util\");\nconst $dataRefSchema = require(\"./refs/data.json\");\nconst uri_1 = require(\"./runtime/uri\");\nconst defaultRegExp = (str, flags) => new RegExp(str, flags);\ndefaultRegExp.code = \"new RegExp\";\nconst META_IGNORE_OPTIONS = [\"removeAdditional\", \"useDefaults\", \"coerceTypes\"];\nconst EXT_SCOPE_NAMES = new Set([\n \"validate\",\n \"serialize\",\n \"parse\",\n \"wrapper\",\n \"root\",\n \"schema\",\n \"keyword\",\n \"pattern\",\n \"formats\",\n \"validate$data\",\n \"func\",\n \"obj\",\n \"Error\",\n]);\nconst removedOptions = {\n errorDataPath: \"\",\n format: \"`validateFormats: false` can be used instead.\",\n nullable: '\"nullable\" keyword is supported by default.',\n jsonPointers: \"Deprecated jsPropertySyntax can be used instead.\",\n extendRefs: \"Deprecated ignoreKeywordsWithRef can be used instead.\",\n missingRefs: \"Pass empty schema with $id that should be ignored to ajv.addSchema.\",\n processCode: \"Use option `code: {process: (code, schemaEnv: object) => string}`\",\n sourceCode: \"Use option `code: {source: true}`\",\n strictDefaults: \"It is default now, see option `strict`.\",\n strictKeywords: \"It is default now, see option `strict`.\",\n uniqueItems: '\"uniqueItems\" keyword is always validated.',\n unknownFormats: \"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).\",\n cache: \"Map is used as cache, schema object as key.\",\n serialize: \"Map is used as cache, schema object as key.\",\n ajvErrors: \"It is default now.\",\n};\nconst deprecatedOptions = {\n ignoreKeywordsWithRef: \"\",\n jsPropertySyntax: \"\",\n unicode: '\"minLength\"/\"maxLength\" account for unicode characters by default.',\n};\nconst MAX_EXPRESSION = 200;\n// eslint-disable-next-line complexity\nfunction requiredOptions(o) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0;\n const s = o.strict;\n const _optz = (_a = o.code) === null || _a === void 0 ? void 0 : _a.optimize;\n const optimize = _optz === true || _optz === undefined ? 1 : _optz || 0;\n const regExp = (_c = (_b = o.code) === null || _b === void 0 ? void 0 : _b.regExp) !== null && _c !== void 0 ? _c : defaultRegExp;\n const uriResolver = (_d = o.uriResolver) !== null && _d !== void 0 ? _d : uri_1.default;\n return {\n strictSchema: (_f = (_e = o.strictSchema) !== null && _e !== void 0 ? _e : s) !== null && _f !== void 0 ? _f : true,\n strictNumbers: (_h = (_g = o.strictNumbers) !== null && _g !== void 0 ? _g : s) !== null && _h !== void 0 ? _h : true,\n strictTypes: (_k = (_j = o.strictTypes) !== null && _j !== void 0 ? _j : s) !== null && _k !== void 0 ? _k : \"log\",\n strictTuples: (_m = (_l = o.strictTuples) !== null && _l !== void 0 ? _l : s) !== null && _m !== void 0 ? _m : \"log\",\n strictRequired: (_p = (_o = o.strictRequired) !== null && _o !== void 0 ? _o : s) !== null && _p !== void 0 ? _p : false,\n code: o.code ? { ...o.code, optimize, regExp } : { optimize, regExp },\n loopRequired: (_q = o.loopRequired) !== null && _q !== void 0 ? _q : MAX_EXPRESSION,\n loopEnum: (_r = o.loopEnum) !== null && _r !== void 0 ? _r : MAX_EXPRESSION,\n meta: (_s = o.meta) !== null && _s !== void 0 ? _s : true,\n messages: (_t = o.messages) !== null && _t !== void 0 ? _t : true,\n inlineRefs: (_u = o.inlineRefs) !== null && _u !== void 0 ? _u : true,\n schemaId: (_v = o.schemaId) !== null && _v !== void 0 ? _v : \"$id\",\n addUsedSchema: (_w = o.addUsedSchema) !== null && _w !== void 0 ? _w : true,\n validateSchema: (_x = o.validateSchema) !== null && _x !== void 0 ? _x : true,\n validateFormats: (_y = o.validateFormats) !== null && _y !== void 0 ? _y : true,\n unicodeRegExp: (_z = o.unicodeRegExp) !== null && _z !== void 0 ? _z : true,\n int32range: (_0 = o.int32range) !== null && _0 !== void 0 ? _0 : true,\n uriResolver: uriResolver,\n };\n}\nclass Ajv {\n constructor(opts = {}) {\n this.schemas = {};\n this.refs = {};\n this.formats = {};\n this._compilations = new Set();\n this._loading = {};\n this._cache = new Map();\n opts = this.opts = { ...opts, ...requiredOptions(opts) };\n const { es5, lines } = this.opts.code;\n this.scope = new codegen_2.ValueScope({ scope: {}, prefixes: EXT_SCOPE_NAMES, es5, lines });\n this.logger = getLogger(opts.logger);\n const formatOpt = opts.validateFormats;\n opts.validateFormats = false;\n this.RULES = (0, rules_1.getRules)();\n checkOptions.call(this, removedOptions, opts, \"NOT SUPPORTED\");\n checkOptions.call(this, deprecatedOptions, opts, \"DEPRECATED\", \"warn\");\n this._metaOpts = getMetaSchemaOptions.call(this);\n if (opts.formats)\n addInitialFormats.call(this);\n this._addVocabularies();\n this._addDefaultMetaSchema();\n if (opts.keywords)\n addInitialKeywords.call(this, opts.keywords);\n if (typeof opts.meta == \"object\")\n this.addMetaSchema(opts.meta);\n addInitialSchemas.call(this);\n opts.validateFormats = formatOpt;\n }\n _addVocabularies() {\n this.addKeyword(\"$async\");\n }\n _addDefaultMetaSchema() {\n const { $data, meta, schemaId } = this.opts;\n let _dataRefSchema = $dataRefSchema;\n if (schemaId === \"id\") {\n _dataRefSchema = { ...$dataRefSchema };\n _dataRefSchema.id = _dataRefSchema.$id;\n delete _dataRefSchema.$id;\n }\n if (meta && $data)\n this.addMetaSchema(_dataRefSchema, _dataRefSchema[schemaId], false);\n }\n defaultMeta() {\n const { meta, schemaId } = this.opts;\n return (this.opts.defaultMeta = typeof meta == \"object\" ? meta[schemaId] || meta : undefined);\n }\n validate(schemaKeyRef, // key, ref or schema object\n // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\n data // to be validated\n ) {\n let v;\n if (typeof schemaKeyRef == \"string\") {\n v = this.getSchema(schemaKeyRef);\n if (!v)\n throw new Error(`no schema with key or ref \"${schemaKeyRef}\"`);\n }\n else {\n v = this.compile(schemaKeyRef);\n }\n const valid = v(data);\n if (!(\"$async\" in v))\n this.errors = v.errors;\n return valid;\n }\n compile(schema, _meta) {\n const sch = this._addSchema(schema, _meta);\n return (sch.validate || this._compileSchemaEnv(sch));\n }\n compileAsync(schema, meta) {\n if (typeof this.opts.loadSchema != \"function\") {\n throw new Error(\"options.loadSchema should be a function\");\n }\n const { loadSchema } = this.opts;\n return runCompileAsync.call(this, schema, meta);\n async function runCompileAsync(_schema, _meta) {\n await loadMetaSchema.call(this, _schema.$schema);\n const sch = this._addSchema(_schema, _meta);\n return sch.validate || _compileAsync.call(this, sch);\n }\n async function loadMetaSchema($ref) {\n if ($ref && !this.getSchema($ref)) {\n await runCompileAsync.call(this, { $ref }, true);\n }\n }\n async function _compileAsync(sch) {\n try {\n return this._compileSchemaEnv(sch);\n }\n catch (e) {\n if (!(e instanceof ref_error_1.default))\n throw e;\n checkLoaded.call(this, e);\n await loadMissingSchema.call(this, e.missingSchema);\n return _compileAsync.call(this, sch);\n }\n }\n function checkLoaded({ missingSchema: ref, missingRef }) {\n if (this.refs[ref]) {\n throw new Error(`AnySchema ${ref} is loaded but ${missingRef} cannot be resolved`);\n }\n }\n async function loadMissingSchema(ref) {\n const _schema = await _loadSchema.call(this, ref);\n if (!this.refs[ref])\n await loadMetaSchema.call(this, _schema.$schema);\n if (!this.refs[ref])\n this.addSchema(_schema, ref, meta);\n }\n async function _loadSchema(ref) {\n const p = this._loading[ref];\n if (p)\n return p;\n try {\n return await (this._loading[ref] = loadSchema(ref));\n }\n finally {\n delete this._loading[ref];\n }\n }\n }\n // Adds schema to the instance\n addSchema(schema, // If array is passed, `key` will be ignored\n key, // Optional schema key. Can be passed to `validate` method instead of schema object or id/ref. One schema per instance can have empty `id` and `key`.\n _meta, // true if schema is a meta-schema. Used internally, addMetaSchema should be used instead.\n _validateSchema = this.opts.validateSchema // false to skip schema validation. Used internally, option validateSchema should be used instead.\n ) {\n if (Array.isArray(schema)) {\n for (const sch of schema)\n this.addSchema(sch, undefined, _meta, _validateSchema);\n return this;\n }\n let id;\n if (typeof schema === \"object\") {\n const { schemaId } = this.opts;\n id = schema[schemaId];\n if (id !== undefined && typeof id != \"string\") {\n throw new Error(`schema ${schemaId} must be string`);\n }\n }\n key = (0, resolve_1.normalizeId)(key || id);\n this._checkUnique(key);\n this.schemas[key] = this._addSchema(schema, _meta, key, _validateSchema, true);\n return this;\n }\n // Add schema that will be used to validate other schemas\n // options in META_IGNORE_OPTIONS are alway set to false\n addMetaSchema(schema, key, // schema key\n _validateSchema = this.opts.validateSchema // false to skip schema validation, can be used to override validateSchema option for meta-schema\n ) {\n this.addSchema(schema, key, true, _validateSchema);\n return this;\n }\n // Validate schema against its meta-schema\n validateSchema(schema, throwOrLogError) {\n if (typeof schema == \"boolean\")\n return true;\n let $schema;\n $schema = schema.$schema;\n if ($schema !== undefined && typeof $schema != \"string\") {\n throw new Error(\"$schema must be a string\");\n }\n $schema = $schema || this.opts.defaultMeta || this.defaultMeta();\n if (!$schema) {\n this.logger.warn(\"meta-schema not available\");\n this.errors = null;\n return true;\n }\n const valid = this.validate($schema, schema);\n if (!valid && throwOrLogError) {\n const message = \"schema is invalid: \" + this.errorsText();\n if (this.opts.validateSchema === \"log\")\n this.logger.error(message);\n else\n throw new Error(message);\n }\n return valid;\n }\n // Get compiled schema by `key` or `ref`.\n // (`key` that was passed to `addSchema` or full schema reference - `schema.$id` or resolved id)\n getSchema(keyRef) {\n let sch;\n while (typeof (sch = getSchEnv.call(this, keyRef)) == \"string\")\n keyRef = sch;\n if (sch === undefined) {\n const { schemaId } = this.opts;\n const root = new compile_1.SchemaEnv({ schema: {}, schemaId });\n sch = compile_1.resolveSchema.call(this, root, keyRef);\n if (!sch)\n return;\n this.refs[keyRef] = sch;\n }\n return (sch.validate || this._compileSchemaEnv(sch));\n }\n // Remove cached schema(s).\n // If no parameter is passed all schemas but meta-schemas are removed.\n // If RegExp is passed all schemas with key/id matching pattern but meta-schemas are removed.\n // Even if schema is referenced by other schemas it still can be removed as other schemas have local references.\n removeSchema(schemaKeyRef) {\n if (schemaKeyRef instanceof RegExp) {\n this._removeAllSchemas(this.schemas, schemaKeyRef);\n this._removeAllSchemas(this.refs, schemaKeyRef);\n return this;\n }\n switch (typeof schemaKeyRef) {\n case \"undefined\":\n this._removeAllSchemas(this.schemas);\n this._removeAllSchemas(this.refs);\n this._cache.clear();\n return this;\n case \"string\": {\n const sch = getSchEnv.call(this, schemaKeyRef);\n if (typeof sch == \"object\")\n this._cache.delete(sch.schema);\n delete this.schemas[schemaKeyRef];\n delete this.refs[schemaKeyRef];\n return this;\n }\n case \"object\": {\n const cacheKey = schemaKeyRef;\n this._cache.delete(cacheKey);\n let id = schemaKeyRef[this.opts.schemaId];\n if (id) {\n id = (0, resolve_1.normalizeId)(id);\n delete this.schemas[id];\n delete this.refs[id];\n }\n return this;\n }\n default:\n throw new Error(\"ajv.removeSchema: invalid parameter\");\n }\n }\n // add \"vocabulary\" - a collection of keywords\n addVocabulary(definitions) {\n for (const def of definitions)\n this.addKeyword(def);\n return this;\n }\n addKeyword(kwdOrDef, def // deprecated\n ) {\n let keyword;\n if (typeof kwdOrDef == \"string\") {\n keyword = kwdOrDef;\n if (typeof def == \"object\") {\n this.logger.warn(\"these parameters are deprecated, see docs for addKeyword\");\n def.keyword = keyword;\n }\n }\n else if (typeof kwdOrDef == \"object\" && def === undefined) {\n def = kwdOrDef;\n keyword = def.keyword;\n if (Array.isArray(keyword) && !keyword.length) {\n throw new Error(\"addKeywords: keyword must be string or non-empty array\");\n }\n }\n else {\n throw new Error(\"invalid addKeywords parameters\");\n }\n checkKeyword.call(this, keyword, def);\n if (!def) {\n (0, util_1.eachItem)(keyword, (kwd) => addRule.call(this, kwd));\n return this;\n }\n keywordMetaschema.call(this, def);\n const definition = {\n ...def,\n type: (0, dataType_1.getJSONTypes)(def.type),\n schemaType: (0, dataType_1.getJSONTypes)(def.schemaType),\n };\n (0, util_1.eachItem)(keyword, definition.type.length === 0\n ? (k) => addRule.call(this, k, definition)\n : (k) => definition.type.forEach((t) => addRule.call(this, k, definition, t)));\n return this;\n }\n getKeyword(keyword) {\n const rule = this.RULES.all[keyword];\n return typeof rule == \"object\" ? rule.definition : !!rule;\n }\n // Remove keyword\n removeKeyword(keyword) {\n // TODO return type should be Ajv\n const { RULES } = this;\n delete RULES.keywords[keyword];\n delete RULES.all[keyword];\n for (const group of RULES.rules) {\n const i = group.rules.findIndex((rule) => rule.keyword === keyword);\n if (i >= 0)\n group.rules.splice(i, 1);\n }\n return this;\n }\n // Add format\n addFormat(name, format) {\n if (typeof format == \"string\")\n format = new RegExp(format);\n this.formats[name] = format;\n return this;\n }\n errorsText(errors = this.errors, // optional array of validation errors\n { separator = \", \", dataVar = \"data\" } = {} // optional options with properties `separator` and `dataVar`\n ) {\n if (!errors || errors.length === 0)\n return \"No errors\";\n return errors\n .map((e) => `${dataVar}${e.instancePath} ${e.message}`)\n .reduce((text, msg) => text + separator + msg);\n }\n $dataMetaSchema(metaSchema, keywordsJsonPointers) {\n const rules = this.RULES.all;\n metaSchema = JSON.parse(JSON.stringify(metaSchema));\n for (const jsonPointer of keywordsJsonPointers) {\n const segments = jsonPointer.split(\"/\").slice(1); // first segment is an empty string\n let keywords = metaSchema;\n for (const seg of segments)\n keywords = keywords[seg];\n for (const key in rules) {\n const rule = rules[key];\n if (typeof rule != \"object\")\n continue;\n const { $data } = rule.definition;\n const schema = keywords[key];\n if ($data && schema)\n keywords[key] = schemaOrData(schema);\n }\n }\n return metaSchema;\n }\n _removeAllSchemas(schemas, regex) {\n for (const keyRef in schemas) {\n const sch = schemas[keyRef];\n if (!regex || regex.test(keyRef)) {\n if (typeof sch == \"string\") {\n delete schemas[keyRef];\n }\n else if (sch && !sch.meta) {\n this._cache.delete(sch.schema);\n delete schemas[keyRef];\n }\n }\n }\n }\n _addSchema(schema, meta, baseId, validateSchema = this.opts.validateSchema, addSchema = this.opts.addUsedSchema) {\n let id;\n const { schemaId } = this.opts;\n if (typeof schema == \"object\") {\n id = schema[schemaId];\n }\n else {\n if (this.opts.jtd)\n throw new Error(\"schema must be object\");\n else if (typeof schema != \"boolean\")\n throw new Error(\"schema must be object or boolean\");\n }\n let sch = this._cache.get(schema);\n if (sch !== undefined)\n return sch;\n baseId = (0, resolve_1.normalizeId)(id || baseId);\n const localRefs = resolve_1.getSchemaRefs.call(this, schema, baseId);\n sch = new compile_1.SchemaEnv({ schema, schemaId, meta, baseId, localRefs });\n this._cache.set(sch.schema, sch);\n if (addSchema && !baseId.startsWith(\"#\")) {\n // TODO atm it is allowed to overwrite schemas without id (instead of not adding them)\n if (baseId)\n this._checkUnique(baseId);\n this.refs[baseId] = sch;\n }\n if (validateSchema)\n this.validateSchema(schema, true);\n return sch;\n }\n _checkUnique(id) {\n if (this.schemas[id] || this.refs[id]) {\n throw new Error(`schema with key or id \"${id}\" already exists`);\n }\n }\n _compileSchemaEnv(sch) {\n if (sch.meta)\n this._compileMetaSchema(sch);\n else\n compile_1.compileSchema.call(this, sch);\n /* istanbul ignore if */\n if (!sch.validate)\n throw new Error(\"ajv implementation error\");\n return sch.validate;\n }\n _compileMetaSchema(sch) {\n const currentOpts = this.opts;\n this.opts = this._metaOpts;\n try {\n compile_1.compileSchema.call(this, sch);\n }\n finally {\n this.opts = currentOpts;\n }\n }\n}\nAjv.ValidationError = validation_error_1.default;\nAjv.MissingRefError = ref_error_1.default;\nexports.default = Ajv;\nfunction checkOptions(checkOpts, options, msg, log = \"error\") {\n for (const key in checkOpts) {\n const opt = key;\n if (opt in options)\n this.logger[log](`${msg}: option ${key}. ${checkOpts[opt]}`);\n }\n}\nfunction getSchEnv(keyRef) {\n keyRef = (0, resolve_1.normalizeId)(keyRef); // TODO tests fail without this line\n return this.schemas[keyRef] || this.refs[keyRef];\n}\nfunction addInitialSchemas() {\n const optsSchemas = this.opts.schemas;\n if (!optsSchemas)\n return;\n if (Array.isArray(optsSchemas))\n this.addSchema(optsSchemas);\n else\n for (const key in optsSchemas)\n this.addSchema(optsSchemas[key], key);\n}\nfunction addInitialFormats() {\n for (const name in this.opts.formats) {\n const format = this.opts.formats[name];\n if (format)\n this.addFormat(name, format);\n }\n}\nfunction addInitialKeywords(defs) {\n if (Array.isArray(defs)) {\n this.addVocabulary(defs);\n return;\n }\n this.logger.warn(\"keywords option as map is deprecated, pass array\");\n for (const keyword in defs) {\n const def = defs[keyword];\n if (!def.keyword)\n def.keyword = keyword;\n this.addKeyword(def);\n }\n}\nfunction getMetaSchemaOptions() {\n const metaOpts = { ...this.opts };\n for (const opt of META_IGNORE_OPTIONS)\n delete metaOpts[opt];\n return metaOpts;\n}\nconst noLogs = { log() { }, warn() { }, error() { } };\nfunction getLogger(logger) {\n if (logger === false)\n return noLogs;\n if (logger === undefined)\n return console;\n if (logger.log && logger.warn && logger.error)\n return logger;\n throw new Error(\"logger must implement log, warn and error methods\");\n}\nconst KEYWORD_NAME = /^[a-z_$][a-z0-9_$:-]*$/i;\nfunction checkKeyword(keyword, def) {\n const { RULES } = this;\n (0, util_1.eachItem)(keyword, (kwd) => {\n if (RULES.keywords[kwd])\n throw new Error(`Keyword ${kwd} is already defined`);\n if (!KEYWORD_NAME.test(kwd))\n throw new Error(`Keyword ${kwd} has invalid name`);\n });\n if (!def)\n return;\n if (def.$data && !(\"code\" in def || \"validate\" in def)) {\n throw new Error('$data keyword must have \"code\" or \"validate\" function');\n }\n}\nfunction addRule(keyword, definition, dataType) {\n var _a;\n const post = definition === null || definition === void 0 ? void 0 : definition.post;\n if (dataType && post)\n throw new Error('keyword with \"post\" flag cannot have \"type\"');\n const { RULES } = this;\n let ruleGroup = post ? RULES.post : RULES.rules.find(({ type: t }) => t === dataType);\n if (!ruleGroup) {\n ruleGroup = { type: dataType, rules: [] };\n RULES.rules.push(ruleGroup);\n }\n RULES.keywords[keyword] = true;\n if (!definition)\n return;\n const rule = {\n keyword,\n definition: {\n ...definition,\n type: (0, dataType_1.getJSONTypes)(definition.type),\n schemaType: (0, dataType_1.getJSONTypes)(definition.schemaType),\n },\n };\n if (definition.before)\n addBeforeRule.call(this, ruleGroup, rule, definition.before);\n else\n ruleGroup.rules.push(rule);\n RULES.all[keyword] = rule;\n (_a = definition.implements) === null || _a === void 0 ? void 0 : _a.forEach((kwd) => this.addKeyword(kwd));\n}\nfunction addBeforeRule(ruleGroup, rule, before) {\n const i = ruleGroup.rules.findIndex((_rule) => _rule.keyword === before);\n if (i >= 0) {\n ruleGroup.rules.splice(i, 0, rule);\n }\n else {\n ruleGroup.rules.push(rule);\n this.logger.warn(`rule ${before} is not defined`);\n }\n}\nfunction keywordMetaschema(def) {\n let { metaSchema } = def;\n if (metaSchema === undefined)\n return;\n if (def.$data && this.opts.$data)\n metaSchema = schemaOrData(metaSchema);\n def.validateSchema = this.compile(metaSchema, true);\n}\nconst $dataRef = {\n $ref: \"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#\",\n};\nfunction schemaOrData(schema) {\n return { anyOf: [schema, $dataRef] };\n}\n//# sourceMappingURL=core.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst def = {\n keyword: \"id\",\n code() {\n throw new Error('NOT SUPPORTED: keyword \"id\", use \"$id\" for schema ID');\n },\n};\nexports.default = def;\n//# sourceMappingURL=id.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.callRef = exports.getValidate = void 0;\nconst ref_error_1 = require(\"../../compile/ref_error\");\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst names_1 = require(\"../../compile/names\");\nconst compile_1 = require(\"../../compile\");\nconst util_1 = require(\"../../compile/util\");\nconst def = {\n keyword: \"$ref\",\n schemaType: \"string\",\n code(cxt) {\n const { gen, schema: $ref, it } = cxt;\n const { baseId, schemaEnv: env, validateName, opts, self } = it;\n const { root } = env;\n if (($ref === \"#\" || $ref === \"#/\") && baseId === root.baseId)\n return callRootRef();\n const schOrEnv = compile_1.resolveRef.call(self, root, baseId, $ref);\n if (schOrEnv === undefined)\n throw new ref_error_1.default(it.opts.uriResolver, baseId, $ref);\n if (schOrEnv instanceof compile_1.SchemaEnv)\n return callValidate(schOrEnv);\n return inlineRefSchema(schOrEnv);\n function callRootRef() {\n if (env === root)\n return callRef(cxt, validateName, env, env.$async);\n const rootName = gen.scopeValue(\"root\", { ref: root });\n return callRef(cxt, (0, codegen_1._) `${rootName}.validate`, root, root.$async);\n }\n function callValidate(sch) {\n const v = getValidate(cxt, sch);\n callRef(cxt, v, sch, sch.$async);\n }\n function inlineRefSchema(sch) {\n const schName = gen.scopeValue(\"schema\", opts.code.source === true ? { ref: sch, code: (0, codegen_1.stringify)(sch) } : { ref: sch });\n const valid = gen.name(\"valid\");\n const schCxt = cxt.subschema({\n schema: sch,\n dataTypes: [],\n schemaPath: codegen_1.nil,\n topSchemaRef: schName,\n errSchemaPath: $ref,\n }, valid);\n cxt.mergeEvaluated(schCxt);\n cxt.ok(valid);\n }\n },\n};\nfunction getValidate(cxt, sch) {\n const { gen } = cxt;\n return sch.validate\n ? gen.scopeValue(\"validate\", { ref: sch.validate })\n : (0, codegen_1._) `${gen.scopeValue(\"wrapper\", { ref: sch })}.validate`;\n}\nexports.getValidate = getValidate;\nfunction callRef(cxt, v, sch, $async) {\n const { gen, it } = cxt;\n const { allErrors, schemaEnv: env, opts } = it;\n const passCxt = opts.passContext ? names_1.default.this : codegen_1.nil;\n if ($async)\n callAsyncRef();\n else\n callSyncRef();\n function callAsyncRef() {\n if (!env.$async)\n throw new Error(\"async schema referenced by sync schema\");\n const valid = gen.let(\"valid\");\n gen.try(() => {\n gen.code((0, codegen_1._) `await ${(0, code_1.callValidateCode)(cxt, v, passCxt)}`);\n addEvaluatedFrom(v); // TODO will not work with async, it has to be returned with the result\n if (!allErrors)\n gen.assign(valid, true);\n }, (e) => {\n gen.if((0, codegen_1._) `!(${e} instanceof ${it.ValidationError})`, () => gen.throw(e));\n addErrorsFrom(e);\n if (!allErrors)\n gen.assign(valid, false);\n });\n cxt.ok(valid);\n }\n function callSyncRef() {\n cxt.result((0, code_1.callValidateCode)(cxt, v, passCxt), () => addEvaluatedFrom(v), () => addErrorsFrom(v));\n }\n function addErrorsFrom(source) {\n const errs = (0, codegen_1._) `${source}.errors`;\n gen.assign(names_1.default.vErrors, (0, codegen_1._) `${names_1.default.vErrors} === null ? ${errs} : ${names_1.default.vErrors}.concat(${errs})`); // TODO tagged\n gen.assign(names_1.default.errors, (0, codegen_1._) `${names_1.default.vErrors}.length`);\n }\n function addEvaluatedFrom(source) {\n var _a;\n if (!it.opts.unevaluated)\n return;\n const schEvaluated = (_a = sch === null || sch === void 0 ? void 0 : sch.validate) === null || _a === void 0 ? void 0 : _a.evaluated;\n // TODO refactor\n if (it.props !== true) {\n if (schEvaluated && !schEvaluated.dynamicProps) {\n if (schEvaluated.props !== undefined) {\n it.props = util_1.mergeEvaluated.props(gen, schEvaluated.props, it.props);\n }\n }\n else {\n const props = gen.var(\"props\", (0, codegen_1._) `${source}.evaluated.props`);\n it.props = util_1.mergeEvaluated.props(gen, props, it.props, codegen_1.Name);\n }\n }\n if (it.items !== true) {\n if (schEvaluated && !schEvaluated.dynamicItems) {\n if (schEvaluated.items !== undefined) {\n it.items = util_1.mergeEvaluated.items(gen, schEvaluated.items, it.items);\n }\n }\n else {\n const items = gen.var(\"items\", (0, codegen_1._) `${source}.evaluated.items`);\n it.items = util_1.mergeEvaluated.items(gen, items, it.items, codegen_1.Name);\n }\n }\n }\n}\nexports.callRef = callRef;\nexports.default = def;\n//# sourceMappingURL=ref.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst id_1 = require(\"./id\");\nconst ref_1 = require(\"./ref\");\nconst core = [\n \"$schema\",\n \"$id\",\n \"$defs\",\n \"$vocabulary\",\n { keyword: \"$comment\" },\n \"definitions\",\n id_1.default,\n ref_1.default,\n];\nexports.default = core;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst ops = codegen_1.operators;\nconst KWDs = {\n maximum: { okStr: \"<=\", ok: ops.LTE, fail: ops.GT },\n minimum: { okStr: \">=\", ok: ops.GTE, fail: ops.LT },\n exclusiveMaximum: { okStr: \"<\", ok: ops.LT, fail: ops.GTE },\n exclusiveMinimum: { okStr: \">\", ok: ops.GT, fail: ops.LTE },\n};\nconst error = {\n message: ({ keyword, schemaCode }) => (0, codegen_1.str) `must be ${KWDs[keyword].okStr} ${schemaCode}`,\n params: ({ keyword, schemaCode }) => (0, codegen_1._) `{comparison: ${KWDs[keyword].okStr}, limit: ${schemaCode}}`,\n};\nconst def = {\n keyword: Object.keys(KWDs),\n type: \"number\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { keyword, data, schemaCode } = cxt;\n cxt.fail$data((0, codegen_1._) `${data} ${KWDs[keyword].fail} ${schemaCode} || isNaN(${data})`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=limitNumber.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message: ({ schemaCode }) => (0, codegen_1.str) `must be multiple of ${schemaCode}`,\n params: ({ schemaCode }) => (0, codegen_1._) `{multipleOf: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"multipleOf\",\n type: \"number\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, schemaCode, it } = cxt;\n // const bdt = bad$DataType(schemaCode, <string>def.schemaType, $data)\n const prec = it.opts.multipleOfPrecision;\n const res = gen.let(\"res\");\n const invalid = prec\n ? (0, codegen_1._) `Math.abs(Math.round(${res}) - ${res}) > 1e-${prec}`\n : (0, codegen_1._) `${res} !== parseInt(${res})`;\n cxt.fail$data((0, codegen_1._) `(${schemaCode} === 0 || (${res} = ${data}/${schemaCode}, ${invalid}))`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=multipleOf.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// https://mathiasbynens.be/notes/javascript-encoding\n// https://github.com/bestiejs/punycode.js - punycode.ucs2.decode\nfunction ucs2length(str) {\n const len = str.length;\n let length = 0;\n let pos = 0;\n let value;\n while (pos < len) {\n length++;\n value = str.charCodeAt(pos++);\n if (value >= 0xd800 && value <= 0xdbff && pos < len) {\n // high surrogate, and there is a next character\n value = str.charCodeAt(pos);\n if ((value & 0xfc00) === 0xdc00)\n pos++; // low surrogate\n }\n }\n return length;\n}\nexports.default = ucs2length;\nucs2length.code = 'require(\"ajv/dist/runtime/ucs2length\").default';\n//# sourceMappingURL=ucs2length.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst ucs2length_1 = require(\"../../runtime/ucs2length\");\nconst error = {\n message({ keyword, schemaCode }) {\n const comp = keyword === \"maxLength\" ? \"more\" : \"fewer\";\n return (0, codegen_1.str) `must NOT have ${comp} than ${schemaCode} characters`;\n },\n params: ({ schemaCode }) => (0, codegen_1._) `{limit: ${schemaCode}}`,\n};\nconst def = {\n keyword: [\"maxLength\", \"minLength\"],\n type: \"string\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { keyword, data, schemaCode, it } = cxt;\n const op = keyword === \"maxLength\" ? codegen_1.operators.GT : codegen_1.operators.LT;\n const len = it.opts.unicode === false ? (0, codegen_1._) `${data}.length` : (0, codegen_1._) `${(0, util_1.useFunc)(cxt.gen, ucs2length_1.default)}(${data})`;\n cxt.fail$data((0, codegen_1._) `${len} ${op} ${schemaCode}`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=limitLength.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst util_1 = require(\"../../compile/util\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message: ({ schemaCode }) => (0, codegen_1.str) `must match pattern \"${schemaCode}\"`,\n params: ({ schemaCode }) => (0, codegen_1._) `{pattern: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"pattern\",\n type: \"string\",\n schemaType: \"string\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, $data, schema, schemaCode, it } = cxt;\n const u = it.opts.unicodeRegExp ? \"u\" : \"\";\n if ($data) {\n const { regExp } = it.opts.code;\n const regExpCode = regExp.code === \"new RegExp\" ? (0, codegen_1._) `new RegExp` : (0, util_1.useFunc)(gen, regExp);\n const valid = gen.let(\"valid\");\n gen.try(() => gen.assign(valid, (0, codegen_1._) `${regExpCode}(${schemaCode}, ${u}).test(${data})`), () => gen.assign(valid, false));\n cxt.fail$data((0, codegen_1._) `!${valid}`);\n }\n else {\n const regExp = (0, code_1.usePattern)(cxt, schema);\n cxt.fail$data((0, codegen_1._) `!${regExp}.test(${data})`);\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=pattern.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message({ keyword, schemaCode }) {\n const comp = keyword === \"maxProperties\" ? \"more\" : \"fewer\";\n return (0, codegen_1.str) `must NOT have ${comp} than ${schemaCode} properties`;\n },\n params: ({ schemaCode }) => (0, codegen_1._) `{limit: ${schemaCode}}`,\n};\nconst def = {\n keyword: [\"maxProperties\", \"minProperties\"],\n type: \"object\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { keyword, data, schemaCode } = cxt;\n const op = keyword === \"maxProperties\" ? codegen_1.operators.GT : codegen_1.operators.LT;\n cxt.fail$data((0, codegen_1._) `Object.keys(${data}).length ${op} ${schemaCode}`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=limitProperties.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params: { missingProperty } }) => (0, codegen_1.str) `must have required property '${missingProperty}'`,\n params: ({ params: { missingProperty } }) => (0, codegen_1._) `{missingProperty: ${missingProperty}}`,\n};\nconst def = {\n keyword: \"required\",\n type: \"object\",\n schemaType: \"array\",\n $data: true,\n error,\n code(cxt) {\n const { gen, schema, schemaCode, data, $data, it } = cxt;\n const { opts } = it;\n if (!$data && schema.length === 0)\n return;\n const useLoop = schema.length >= opts.loopRequired;\n if (it.allErrors)\n allErrorsMode();\n else\n exitOnErrorMode();\n if (opts.strictRequired) {\n const props = cxt.parentSchema.properties;\n const { definedProperties } = cxt.it;\n for (const requiredKey of schema) {\n if ((props === null || props === void 0 ? void 0 : props[requiredKey]) === undefined && !definedProperties.has(requiredKey)) {\n const schemaPath = it.schemaEnv.baseId + it.errSchemaPath;\n const msg = `required property \"${requiredKey}\" is not defined at \"${schemaPath}\" (strictRequired)`;\n (0, util_1.checkStrictMode)(it, msg, it.opts.strictRequired);\n }\n }\n }\n function allErrorsMode() {\n if (useLoop || $data) {\n cxt.block$data(codegen_1.nil, loopAllRequired);\n }\n else {\n for (const prop of schema) {\n (0, code_1.checkReportMissingProp)(cxt, prop);\n }\n }\n }\n function exitOnErrorMode() {\n const missing = gen.let(\"missing\");\n if (useLoop || $data) {\n const valid = gen.let(\"valid\", true);\n cxt.block$data(valid, () => loopUntilMissing(missing, valid));\n cxt.ok(valid);\n }\n else {\n gen.if((0, code_1.checkMissingProp)(cxt, schema, missing));\n (0, code_1.reportMissingProp)(cxt, missing);\n gen.else();\n }\n }\n function loopAllRequired() {\n gen.forOf(\"prop\", schemaCode, (prop) => {\n cxt.setParams({ missingProperty: prop });\n gen.if((0, code_1.noPropertyInData)(gen, data, prop, opts.ownProperties), () => cxt.error());\n });\n }\n function loopUntilMissing(missing, valid) {\n cxt.setParams({ missingProperty: missing });\n gen.forOf(missing, schemaCode, () => {\n gen.assign(valid, (0, code_1.propertyInData)(gen, data, missing, opts.ownProperties));\n gen.if((0, codegen_1.not)(valid), () => {\n cxt.error();\n gen.break();\n });\n }, codegen_1.nil);\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=required.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message({ keyword, schemaCode }) {\n const comp = keyword === \"maxItems\" ? \"more\" : \"fewer\";\n return (0, codegen_1.str) `must NOT have ${comp} than ${schemaCode} items`;\n },\n params: ({ schemaCode }) => (0, codegen_1._) `{limit: ${schemaCode}}`,\n};\nconst def = {\n keyword: [\"maxItems\", \"minItems\"],\n type: \"array\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { keyword, data, schemaCode } = cxt;\n const op = keyword === \"maxItems\" ? codegen_1.operators.GT : codegen_1.operators.LT;\n cxt.fail$data((0, codegen_1._) `${data}.length ${op} ${schemaCode}`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=limitItems.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// https://github.com/ajv-validator/ajv/issues/889\nconst equal = require(\"fast-deep-equal\");\nequal.code = 'require(\"ajv/dist/runtime/equal\").default';\nexports.default = equal;\n//# sourceMappingURL=equal.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst dataType_1 = require(\"../../compile/validate/dataType\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst equal_1 = require(\"../../runtime/equal\");\nconst error = {\n message: ({ params: { i, j } }) => (0, codegen_1.str) `must NOT have duplicate items (items ## ${j} and ${i} are identical)`,\n params: ({ params: { i, j } }) => (0, codegen_1._) `{i: ${i}, j: ${j}}`,\n};\nconst def = {\n keyword: \"uniqueItems\",\n type: \"array\",\n schemaType: \"boolean\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, $data, schema, parentSchema, schemaCode, it } = cxt;\n if (!$data && !schema)\n return;\n const valid = gen.let(\"valid\");\n const itemTypes = parentSchema.items ? (0, dataType_1.getSchemaTypes)(parentSchema.items) : [];\n cxt.block$data(valid, validateUniqueItems, (0, codegen_1._) `${schemaCode} === false`);\n cxt.ok(valid);\n function validateUniqueItems() {\n const i = gen.let(\"i\", (0, codegen_1._) `${data}.length`);\n const j = gen.let(\"j\");\n cxt.setParams({ i, j });\n gen.assign(valid, true);\n gen.if((0, codegen_1._) `${i} > 1`, () => (canOptimize() ? loopN : loopN2)(i, j));\n }\n function canOptimize() {\n return itemTypes.length > 0 && !itemTypes.some((t) => t === \"object\" || t === \"array\");\n }\n function loopN(i, j) {\n const item = gen.name(\"item\");\n const wrongType = (0, dataType_1.checkDataTypes)(itemTypes, item, it.opts.strictNumbers, dataType_1.DataType.Wrong);\n const indices = gen.const(\"indices\", (0, codegen_1._) `{}`);\n gen.for((0, codegen_1._) `;${i}--;`, () => {\n gen.let(item, (0, codegen_1._) `${data}[${i}]`);\n gen.if(wrongType, (0, codegen_1._) `continue`);\n if (itemTypes.length > 1)\n gen.if((0, codegen_1._) `typeof ${item} == \"string\"`, (0, codegen_1._) `${item} += \"_\"`);\n gen\n .if((0, codegen_1._) `typeof ${indices}[${item}] == \"number\"`, () => {\n gen.assign(j, (0, codegen_1._) `${indices}[${item}]`);\n cxt.error();\n gen.assign(valid, false).break();\n })\n .code((0, codegen_1._) `${indices}[${item}] = ${i}`);\n });\n }\n function loopN2(i, j) {\n const eql = (0, util_1.useFunc)(gen, equal_1.default);\n const outer = gen.name(\"outer\");\n gen.label(outer).for((0, codegen_1._) `;${i}--;`, () => gen.for((0, codegen_1._) `${j} = ${i}; ${j}--;`, () => gen.if((0, codegen_1._) `${eql}(${data}[${i}], ${data}[${j}])`, () => {\n cxt.error();\n gen.assign(valid, false).break(outer);\n })));\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=uniqueItems.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst equal_1 = require(\"../../runtime/equal\");\nconst error = {\n message: \"must be equal to constant\",\n params: ({ schemaCode }) => (0, codegen_1._) `{allowedValue: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"const\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, $data, schemaCode, schema } = cxt;\n if ($data || (schema && typeof schema == \"object\")) {\n cxt.fail$data((0, codegen_1._) `!${(0, util_1.useFunc)(gen, equal_1.default)}(${data}, ${schemaCode})`);\n }\n else {\n cxt.fail((0, codegen_1._) `${schema} !== ${data}`);\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=const.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst equal_1 = require(\"../../runtime/equal\");\nconst error = {\n message: \"must be equal to one of the allowed values\",\n params: ({ schemaCode }) => (0, codegen_1._) `{allowedValues: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"enum\",\n schemaType: \"array\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, $data, schema, schemaCode, it } = cxt;\n if (!$data && schema.length === 0)\n throw new Error(\"enum must have non-empty array\");\n const useLoop = schema.length >= it.opts.loopEnum;\n let eql;\n const getEql = () => (eql !== null && eql !== void 0 ? eql : (eql = (0, util_1.useFunc)(gen, equal_1.default)));\n let valid;\n if (useLoop || $data) {\n valid = gen.let(\"valid\");\n cxt.block$data(valid, loopEnum);\n }\n else {\n /* istanbul ignore if */\n if (!Array.isArray(schema))\n throw new Error(\"ajv implementation error\");\n const vSchema = gen.const(\"vSchema\", schemaCode);\n valid = (0, codegen_1.or)(...schema.map((_x, i) => equalCode(vSchema, i)));\n }\n cxt.pass(valid);\n function loopEnum() {\n gen.assign(valid, false);\n gen.forOf(\"v\", schemaCode, (v) => gen.if((0, codegen_1._) `${getEql()}(${data}, ${v})`, () => gen.assign(valid, true).break()));\n }\n function equalCode(vSchema, i) {\n const sch = schema[i];\n return typeof sch === \"object\" && sch !== null\n ? (0, codegen_1._) `${getEql()}(${data}, ${vSchema}[${i}])`\n : (0, codegen_1._) `${data} === ${sch}`;\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=enum.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst limitNumber_1 = require(\"./limitNumber\");\nconst multipleOf_1 = require(\"./multipleOf\");\nconst limitLength_1 = require(\"./limitLength\");\nconst pattern_1 = require(\"./pattern\");\nconst limitProperties_1 = require(\"./limitProperties\");\nconst required_1 = require(\"./required\");\nconst limitItems_1 = require(\"./limitItems\");\nconst uniqueItems_1 = require(\"./uniqueItems\");\nconst const_1 = require(\"./const\");\nconst enum_1 = require(\"./enum\");\nconst validation = [\n // number\n limitNumber_1.default,\n multipleOf_1.default,\n // string\n limitLength_1.default,\n pattern_1.default,\n // object\n limitProperties_1.default,\n required_1.default,\n // array\n limitItems_1.default,\n uniqueItems_1.default,\n // any\n { keyword: \"type\", schemaType: [\"string\", \"array\"] },\n { keyword: \"nullable\", schemaType: \"boolean\" },\n const_1.default,\n enum_1.default,\n];\nexports.default = validation;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateAdditionalItems = void 0;\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params: { len } }) => (0, codegen_1.str) `must NOT have more than ${len} items`,\n params: ({ params: { len } }) => (0, codegen_1._) `{limit: ${len}}`,\n};\nconst def = {\n keyword: \"additionalItems\",\n type: \"array\",\n schemaType: [\"boolean\", \"object\"],\n before: \"uniqueItems\",\n error,\n code(cxt) {\n const { parentSchema, it } = cxt;\n const { items } = parentSchema;\n if (!Array.isArray(items)) {\n (0, util_1.checkStrictMode)(it, '\"additionalItems\" is ignored when \"items\" is not an array of schemas');\n return;\n }\n validateAdditionalItems(cxt, items);\n },\n};\nfunction validateAdditionalItems(cxt, items) {\n const { gen, schema, data, keyword, it } = cxt;\n it.items = true;\n const len = gen.const(\"len\", (0, codegen_1._) `${data}.length`);\n if (schema === false) {\n cxt.setParams({ len: items.length });\n cxt.pass((0, codegen_1._) `${len} <= ${items.length}`);\n }\n else if (typeof schema == \"object\" && !(0, util_1.alwaysValidSchema)(it, schema)) {\n const valid = gen.var(\"valid\", (0, codegen_1._) `${len} <= ${items.length}`); // TODO var\n gen.if((0, codegen_1.not)(valid), () => validateItems(valid));\n cxt.ok(valid);\n }\n function validateItems(valid) {\n gen.forRange(\"i\", items.length, len, (i) => {\n cxt.subschema({ keyword, dataProp: i, dataPropType: util_1.Type.Num }, valid);\n if (!it.allErrors)\n gen.if((0, codegen_1.not)(valid), () => gen.break());\n });\n }\n}\nexports.validateAdditionalItems = validateAdditionalItems;\nexports.default = def;\n//# sourceMappingURL=additionalItems.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateTuple = void 0;\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst code_1 = require(\"../code\");\nconst def = {\n keyword: \"items\",\n type: \"array\",\n schemaType: [\"object\", \"array\", \"boolean\"],\n before: \"uniqueItems\",\n code(cxt) {\n const { schema, it } = cxt;\n if (Array.isArray(schema))\n return validateTuple(cxt, \"additionalItems\", schema);\n it.items = true;\n if ((0, util_1.alwaysValidSchema)(it, schema))\n return;\n cxt.ok((0, code_1.validateArray)(cxt));\n },\n};\nfunction validateTuple(cxt, extraItems, schArr = cxt.schema) {\n const { gen, parentSchema, data, keyword, it } = cxt;\n checkStrictTuple(parentSchema);\n if (it.opts.unevaluated && schArr.length && it.items !== true) {\n it.items = util_1.mergeEvaluated.items(gen, schArr.length, it.items);\n }\n const valid = gen.name(\"valid\");\n const len = gen.const(\"len\", (0, codegen_1._) `${data}.length`);\n schArr.forEach((sch, i) => {\n if ((0, util_1.alwaysValidSchema)(it, sch))\n return;\n gen.if((0, codegen_1._) `${len} > ${i}`, () => cxt.subschema({\n keyword,\n schemaProp: i,\n dataProp: i,\n }, valid));\n cxt.ok(valid);\n });\n function checkStrictTuple(sch) {\n const { opts, errSchemaPath } = it;\n const l = schArr.length;\n const fullTuple = l === sch.minItems && (l === sch.maxItems || sch[extraItems] === false);\n if (opts.strictTuples && !fullTuple) {\n const msg = `\"${keyword}\" is ${l}-tuple, but minItems or maxItems/${extraItems} are not specified or different at path \"${errSchemaPath}\"`;\n (0, util_1.checkStrictMode)(it, msg, opts.strictTuples);\n }\n }\n}\nexports.validateTuple = validateTuple;\nexports.default = def;\n//# sourceMappingURL=items.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst items_1 = require(\"./items\");\nconst def = {\n keyword: \"prefixItems\",\n type: \"array\",\n schemaType: [\"array\"],\n before: \"uniqueItems\",\n code: (cxt) => (0, items_1.validateTuple)(cxt, \"items\"),\n};\nexports.default = def;\n//# sourceMappingURL=prefixItems.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst code_1 = require(\"../code\");\nconst additionalItems_1 = require(\"./additionalItems\");\nconst error = {\n message: ({ params: { len } }) => (0, codegen_1.str) `must NOT have more than ${len} items`,\n params: ({ params: { len } }) => (0, codegen_1._) `{limit: ${len}}`,\n};\nconst def = {\n keyword: \"items\",\n type: \"array\",\n schemaType: [\"object\", \"boolean\"],\n before: \"uniqueItems\",\n error,\n code(cxt) {\n const { schema, parentSchema, it } = cxt;\n const { prefixItems } = parentSchema;\n it.items = true;\n if ((0, util_1.alwaysValidSchema)(it, schema))\n return;\n if (prefixItems)\n (0, additionalItems_1.validateAdditionalItems)(cxt, prefixItems);\n else\n cxt.ok((0, code_1.validateArray)(cxt));\n },\n};\nexports.default = def;\n//# sourceMappingURL=items2020.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params: { min, max } }) => max === undefined\n ? (0, codegen_1.str) `must contain at least ${min} valid item(s)`\n : (0, codegen_1.str) `must contain at least ${min} and no more than ${max} valid item(s)`,\n params: ({ params: { min, max } }) => max === undefined ? (0, codegen_1._) `{minContains: ${min}}` : (0, codegen_1._) `{minContains: ${min}, maxContains: ${max}}`,\n};\nconst def = {\n keyword: \"contains\",\n type: \"array\",\n schemaType: [\"object\", \"boolean\"],\n before: \"uniqueItems\",\n trackErrors: true,\n error,\n code(cxt) {\n const { gen, schema, parentSchema, data, it } = cxt;\n let min;\n let max;\n const { minContains, maxContains } = parentSchema;\n if (it.opts.next) {\n min = minContains === undefined ? 1 : minContains;\n max = maxContains;\n }\n else {\n min = 1;\n }\n const len = gen.const(\"len\", (0, codegen_1._) `${data}.length`);\n cxt.setParams({ min, max });\n if (max === undefined && min === 0) {\n (0, util_1.checkStrictMode)(it, `\"minContains\" == 0 without \"maxContains\": \"contains\" keyword ignored`);\n return;\n }\n if (max !== undefined && min > max) {\n (0, util_1.checkStrictMode)(it, `\"minContains\" > \"maxContains\" is always invalid`);\n cxt.fail();\n return;\n }\n if ((0, util_1.alwaysValidSchema)(it, schema)) {\n let cond = (0, codegen_1._) `${len} >= ${min}`;\n if (max !== undefined)\n cond = (0, codegen_1._) `${cond} && ${len} <= ${max}`;\n cxt.pass(cond);\n return;\n }\n it.items = true;\n const valid = gen.name(\"valid\");\n if (max === undefined && min === 1) {\n validateItems(valid, () => gen.if(valid, () => gen.break()));\n }\n else if (min === 0) {\n gen.let(valid, true);\n if (max !== undefined)\n gen.if((0, codegen_1._) `${data}.length > 0`, validateItemsWithCount);\n }\n else {\n gen.let(valid, false);\n validateItemsWithCount();\n }\n cxt.result(valid, () => cxt.reset());\n function validateItemsWithCount() {\n const schValid = gen.name(\"_valid\");\n const count = gen.let(\"count\", 0);\n validateItems(schValid, () => gen.if(schValid, () => checkLimits(count)));\n }\n function validateItems(_valid, block) {\n gen.forRange(\"i\", 0, len, (i) => {\n cxt.subschema({\n keyword: \"contains\",\n dataProp: i,\n dataPropType: util_1.Type.Num,\n compositeRule: true,\n }, _valid);\n block();\n });\n }\n function checkLimits(count) {\n gen.code((0, codegen_1._) `${count}++`);\n if (max === undefined) {\n gen.if((0, codegen_1._) `${count} >= ${min}`, () => gen.assign(valid, true).break());\n }\n else {\n gen.if((0, codegen_1._) `${count} > ${max}`, () => gen.assign(valid, false).break());\n if (min === 1)\n gen.assign(valid, true);\n else\n gen.if((0, codegen_1._) `${count} >= ${min}`, () => gen.assign(valid, true));\n }\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=contains.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateSchemaDeps = exports.validatePropertyDeps = exports.error = void 0;\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst code_1 = require(\"../code\");\nexports.error = {\n message: ({ params: { property, depsCount, deps } }) => {\n const property_ies = depsCount === 1 ? \"property\" : \"properties\";\n return (0, codegen_1.str) `must have ${property_ies} ${deps} when property ${property} is present`;\n },\n params: ({ params: { property, depsCount, deps, missingProperty } }) => (0, codegen_1._) `{property: ${property},\n missingProperty: ${missingProperty},\n depsCount: ${depsCount},\n deps: ${deps}}`, // TODO change to reference\n};\nconst def = {\n keyword: \"dependencies\",\n type: \"object\",\n schemaType: \"object\",\n error: exports.error,\n code(cxt) {\n const [propDeps, schDeps] = splitDependencies(cxt);\n validatePropertyDeps(cxt, propDeps);\n validateSchemaDeps(cxt, schDeps);\n },\n};\nfunction splitDependencies({ schema }) {\n const propertyDeps = {};\n const schemaDeps = {};\n for (const key in schema) {\n if (key === \"__proto__\")\n continue;\n const deps = Array.isArray(schema[key]) ? propertyDeps : schemaDeps;\n deps[key] = schema[key];\n }\n return [propertyDeps, schemaDeps];\n}\nfunction validatePropertyDeps(cxt, propertyDeps = cxt.schema) {\n const { gen, data, it } = cxt;\n if (Object.keys(propertyDeps).length === 0)\n return;\n const missing = gen.let(\"missing\");\n for (const prop in propertyDeps) {\n const deps = propertyDeps[prop];\n if (deps.length === 0)\n continue;\n const hasProperty = (0, code_1.propertyInData)(gen, data, prop, it.opts.ownProperties);\n cxt.setParams({\n property: prop,\n depsCount: deps.length,\n deps: deps.join(\", \"),\n });\n if (it.allErrors) {\n gen.if(hasProperty, () => {\n for (const depProp of deps) {\n (0, code_1.checkReportMissingProp)(cxt, depProp);\n }\n });\n }\n else {\n gen.if((0, codegen_1._) `${hasProperty} && (${(0, code_1.checkMissingProp)(cxt, deps, missing)})`);\n (0, code_1.reportMissingProp)(cxt, missing);\n gen.else();\n }\n }\n}\nexports.validatePropertyDeps = validatePropertyDeps;\nfunction validateSchemaDeps(cxt, schemaDeps = cxt.schema) {\n const { gen, data, keyword, it } = cxt;\n const valid = gen.name(\"valid\");\n for (const prop in schemaDeps) {\n if ((0, util_1.alwaysValidSchema)(it, schemaDeps[prop]))\n continue;\n gen.if((0, code_1.propertyInData)(gen, data, prop, it.opts.ownProperties), () => {\n const schCxt = cxt.subschema({ keyword, schemaProp: prop }, valid);\n cxt.mergeValidEvaluated(schCxt, valid);\n }, () => gen.var(valid, true) // TODO var\n );\n cxt.ok(valid);\n }\n}\nexports.validateSchemaDeps = validateSchemaDeps;\nexports.default = def;\n//# sourceMappingURL=dependencies.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: \"property name must be valid\",\n params: ({ params }) => (0, codegen_1._) `{propertyName: ${params.propertyName}}`,\n};\nconst def = {\n keyword: \"propertyNames\",\n type: \"object\",\n schemaType: [\"object\", \"boolean\"],\n error,\n code(cxt) {\n const { gen, schema, data, it } = cxt;\n if ((0, util_1.alwaysValidSchema)(it, schema))\n return;\n const valid = gen.name(\"valid\");\n gen.forIn(\"key\", data, (key) => {\n cxt.setParams({ propertyName: key });\n cxt.subschema({\n keyword: \"propertyNames\",\n data: key,\n dataTypes: [\"string\"],\n propertyName: key,\n compositeRule: true,\n }, valid);\n gen.if((0, codegen_1.not)(valid), () => {\n cxt.error(true);\n if (!it.allErrors)\n gen.break();\n });\n });\n cxt.ok(valid);\n },\n};\nexports.default = def;\n//# sourceMappingURL=propertyNames.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst names_1 = require(\"../../compile/names\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: \"must NOT have additional properties\",\n params: ({ params }) => (0, codegen_1._) `{additionalProperty: ${params.additionalProperty}}`,\n};\nconst def = {\n keyword: \"additionalProperties\",\n type: [\"object\"],\n schemaType: [\"boolean\", \"object\"],\n allowUndefined: true,\n trackErrors: true,\n error,\n code(cxt) {\n const { gen, schema, parentSchema, data, errsCount, it } = cxt;\n /* istanbul ignore if */\n if (!errsCount)\n throw new Error(\"ajv implementation error\");\n const { allErrors, opts } = it;\n it.props = true;\n if (opts.removeAdditional !== \"all\" && (0, util_1.alwaysValidSchema)(it, schema))\n return;\n const props = (0, code_1.allSchemaProperties)(parentSchema.properties);\n const patProps = (0, code_1.allSchemaProperties)(parentSchema.patternProperties);\n checkAdditionalProperties();\n cxt.ok((0, codegen_1._) `${errsCount} === ${names_1.default.errors}`);\n function checkAdditionalProperties() {\n gen.forIn(\"key\", data, (key) => {\n if (!props.length && !patProps.length)\n additionalPropertyCode(key);\n else\n gen.if(isAdditional(key), () => additionalPropertyCode(key));\n });\n }\n function isAdditional(key) {\n let definedProp;\n if (props.length > 8) {\n // TODO maybe an option instead of hard-coded 8?\n const propsSchema = (0, util_1.schemaRefOrVal)(it, parentSchema.properties, \"properties\");\n definedProp = (0, code_1.isOwnProperty)(gen, propsSchema, key);\n }\n else if (props.length) {\n definedProp = (0, codegen_1.or)(...props.map((p) => (0, codegen_1._) `${key} === ${p}`));\n }\n else {\n definedProp = codegen_1.nil;\n }\n if (patProps.length) {\n definedProp = (0, codegen_1.or)(definedProp, ...patProps.map((p) => (0, codegen_1._) `${(0, code_1.usePattern)(cxt, p)}.test(${key})`));\n }\n return (0, codegen_1.not)(definedProp);\n }\n function deleteAdditional(key) {\n gen.code((0, codegen_1._) `delete ${data}[${key}]`);\n }\n function additionalPropertyCode(key) {\n if (opts.removeAdditional === \"all\" || (opts.removeAdditional && schema === false)) {\n deleteAdditional(key);\n return;\n }\n if (schema === false) {\n cxt.setParams({ additionalProperty: key });\n cxt.error();\n if (!allErrors)\n gen.break();\n return;\n }\n if (typeof schema == \"object\" && !(0, util_1.alwaysValidSchema)(it, schema)) {\n const valid = gen.name(\"valid\");\n if (opts.removeAdditional === \"failing\") {\n applyAdditionalSchema(key, valid, false);\n gen.if((0, codegen_1.not)(valid), () => {\n cxt.reset();\n deleteAdditional(key);\n });\n }\n else {\n applyAdditionalSchema(key, valid);\n if (!allErrors)\n gen.if((0, codegen_1.not)(valid), () => gen.break());\n }\n }\n }\n function applyAdditionalSchema(key, valid, errors) {\n const subschema = {\n keyword: \"additionalProperties\",\n dataProp: key,\n dataPropType: util_1.Type.Str,\n };\n if (errors === false) {\n Object.assign(subschema, {\n compositeRule: true,\n createErrors: false,\n allErrors: false,\n });\n }\n cxt.subschema(subschema, valid);\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=additionalProperties.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst validate_1 = require(\"../../compile/validate\");\nconst code_1 = require(\"../code\");\nconst util_1 = require(\"../../compile/util\");\nconst additionalProperties_1 = require(\"./additionalProperties\");\nconst def = {\n keyword: \"properties\",\n type: \"object\",\n schemaType: \"object\",\n code(cxt) {\n const { gen, schema, parentSchema, data, it } = cxt;\n if (it.opts.removeAdditional === \"all\" && parentSchema.additionalProperties === undefined) {\n additionalProperties_1.default.code(new validate_1.KeywordCxt(it, additionalProperties_1.default, \"additionalProperties\"));\n }\n const allProps = (0, code_1.allSchemaProperties)(schema);\n for (const prop of allProps) {\n it.definedProperties.add(prop);\n }\n if (it.opts.unevaluated && allProps.length && it.props !== true) {\n it.props = util_1.mergeEvaluated.props(gen, (0, util_1.toHash)(allProps), it.props);\n }\n const properties = allProps.filter((p) => !(0, util_1.alwaysValidSchema)(it, schema[p]));\n if (properties.length === 0)\n return;\n const valid = gen.name(\"valid\");\n for (const prop of properties) {\n if (hasDefault(prop)) {\n applyPropertySchema(prop);\n }\n else {\n gen.if((0, code_1.propertyInData)(gen, data, prop, it.opts.ownProperties));\n applyPropertySchema(prop);\n if (!it.allErrors)\n gen.else().var(valid, true);\n gen.endIf();\n }\n cxt.it.definedProperties.add(prop);\n cxt.ok(valid);\n }\n function hasDefault(prop) {\n return it.opts.useDefaults && !it.compositeRule && schema[prop].default !== undefined;\n }\n function applyPropertySchema(prop) {\n cxt.subschema({\n keyword: \"properties\",\n schemaProp: prop,\n dataProp: prop,\n }, valid);\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=properties.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst util_2 = require(\"../../compile/util\");\nconst def = {\n keyword: \"patternProperties\",\n type: \"object\",\n schemaType: \"object\",\n code(cxt) {\n const { gen, schema, data, parentSchema, it } = cxt;\n const { opts } = it;\n const patterns = (0, code_1.allSchemaProperties)(schema);\n const alwaysValidPatterns = patterns.filter((p) => (0, util_1.alwaysValidSchema)(it, schema[p]));\n if (patterns.length === 0 ||\n (alwaysValidPatterns.length === patterns.length &&\n (!it.opts.unevaluated || it.props === true))) {\n return;\n }\n const checkProperties = opts.strictSchema && !opts.allowMatchingProperties && parentSchema.properties;\n const valid = gen.name(\"valid\");\n if (it.props !== true && !(it.props instanceof codegen_1.Name)) {\n it.props = (0, util_2.evaluatedPropsToName)(gen, it.props);\n }\n const { props } = it;\n validatePatternProperties();\n function validatePatternProperties() {\n for (const pat of patterns) {\n if (checkProperties)\n checkMatchingProperties(pat);\n if (it.allErrors) {\n validateProperties(pat);\n }\n else {\n gen.var(valid, true); // TODO var\n validateProperties(pat);\n gen.if(valid);\n }\n }\n }\n function checkMatchingProperties(pat) {\n for (const prop in checkProperties) {\n if (new RegExp(pat).test(prop)) {\n (0, util_1.checkStrictMode)(it, `property ${prop} matches pattern ${pat} (use allowMatchingProperties)`);\n }\n }\n }\n function validateProperties(pat) {\n gen.forIn(\"key\", data, (key) => {\n gen.if((0, codegen_1._) `${(0, code_1.usePattern)(cxt, pat)}.test(${key})`, () => {\n const alwaysValid = alwaysValidPatterns.includes(pat);\n if (!alwaysValid) {\n cxt.subschema({\n keyword: \"patternProperties\",\n schemaProp: pat,\n dataProp: key,\n dataPropType: util_2.Type.Str,\n }, valid);\n }\n if (it.opts.unevaluated && props !== true) {\n gen.assign((0, codegen_1._) `${props}[${key}]`, true);\n }\n else if (!alwaysValid && !it.allErrors) {\n // can short-circuit if `unevaluatedProperties` is not supported (opts.next === false)\n // or if all properties were evaluated (props === true)\n gen.if((0, codegen_1.not)(valid), () => gen.break());\n }\n });\n });\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=patternProperties.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst util_1 = require(\"../../compile/util\");\nconst def = {\n keyword: \"not\",\n schemaType: [\"object\", \"boolean\"],\n trackErrors: true,\n code(cxt) {\n const { gen, schema, it } = cxt;\n if ((0, util_1.alwaysValidSchema)(it, schema)) {\n cxt.fail();\n return;\n }\n const valid = gen.name(\"valid\");\n cxt.subschema({\n keyword: \"not\",\n compositeRule: true,\n createErrors: false,\n allErrors: false,\n }, valid);\n cxt.failResult(valid, () => cxt.reset(), () => cxt.error());\n },\n error: { message: \"must NOT be valid\" },\n};\nexports.default = def;\n//# sourceMappingURL=not.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst def = {\n keyword: \"anyOf\",\n schemaType: \"array\",\n trackErrors: true,\n code: code_1.validateUnion,\n error: { message: \"must match a schema in anyOf\" },\n};\nexports.default = def;\n//# sourceMappingURL=anyOf.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: \"must match exactly one schema in oneOf\",\n params: ({ params }) => (0, codegen_1._) `{passingSchemas: ${params.passing}}`,\n};\nconst def = {\n keyword: \"oneOf\",\n schemaType: \"array\",\n trackErrors: true,\n error,\n code(cxt) {\n const { gen, schema, parentSchema, it } = cxt;\n /* istanbul ignore if */\n if (!Array.isArray(schema))\n throw new Error(\"ajv implementation error\");\n if (it.opts.discriminator && parentSchema.discriminator)\n return;\n const schArr = schema;\n const valid = gen.let(\"valid\", false);\n const passing = gen.let(\"passing\", null);\n const schValid = gen.name(\"_valid\");\n cxt.setParams({ passing });\n // TODO possibly fail straight away (with warning or exception) if there are two empty always valid schemas\n gen.block(validateOneOf);\n cxt.result(valid, () => cxt.reset(), () => cxt.error(true));\n function validateOneOf() {\n schArr.forEach((sch, i) => {\n let schCxt;\n if ((0, util_1.alwaysValidSchema)(it, sch)) {\n gen.var(schValid, true);\n }\n else {\n schCxt = cxt.subschema({\n keyword: \"oneOf\",\n schemaProp: i,\n compositeRule: true,\n }, schValid);\n }\n if (i > 0) {\n gen\n .if((0, codegen_1._) `${schValid} && ${valid}`)\n .assign(valid, false)\n .assign(passing, (0, codegen_1._) `[${passing}, ${i}]`)\n .else();\n }\n gen.if(schValid, () => {\n gen.assign(valid, true);\n gen.assign(passing, i);\n if (schCxt)\n cxt.mergeEvaluated(schCxt, codegen_1.Name);\n });\n });\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=oneOf.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst util_1 = require(\"../../compile/util\");\nconst def = {\n keyword: \"allOf\",\n schemaType: \"array\",\n code(cxt) {\n const { gen, schema, it } = cxt;\n /* istanbul ignore if */\n if (!Array.isArray(schema))\n throw new Error(\"ajv implementation error\");\n const valid = gen.name(\"valid\");\n schema.forEach((sch, i) => {\n if ((0, util_1.alwaysValidSchema)(it, sch))\n return;\n const schCxt = cxt.subschema({ keyword: \"allOf\", schemaProp: i }, valid);\n cxt.ok(valid);\n cxt.mergeEvaluated(schCxt);\n });\n },\n};\nexports.default = def;\n//# sourceMappingURL=allOf.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params }) => (0, codegen_1.str) `must match \"${params.ifClause}\" schema`,\n params: ({ params }) => (0, codegen_1._) `{failingKeyword: ${params.ifClause}}`,\n};\nconst def = {\n keyword: \"if\",\n schemaType: [\"object\", \"boolean\"],\n trackErrors: true,\n error,\n code(cxt) {\n const { gen, parentSchema, it } = cxt;\n if (parentSchema.then === undefined && parentSchema.else === undefined) {\n (0, util_1.checkStrictMode)(it, '\"if\" without \"then\" and \"else\" is ignored');\n }\n const hasThen = hasSchema(it, \"then\");\n const hasElse = hasSchema(it, \"else\");\n if (!hasThen && !hasElse)\n return;\n const valid = gen.let(\"valid\", true);\n const schValid = gen.name(\"_valid\");\n validateIf();\n cxt.reset();\n if (hasThen && hasElse) {\n const ifClause = gen.let(\"ifClause\");\n cxt.setParams({ ifClause });\n gen.if(schValid, validateClause(\"then\", ifClause), validateClause(\"else\", ifClause));\n }\n else if (hasThen) {\n gen.if(schValid, validateClause(\"then\"));\n }\n else {\n gen.if((0, codegen_1.not)(schValid), validateClause(\"else\"));\n }\n cxt.pass(valid, () => cxt.error(true));\n function validateIf() {\n const schCxt = cxt.subschema({\n keyword: \"if\",\n compositeRule: true,\n createErrors: false,\n allErrors: false,\n }, schValid);\n cxt.mergeEvaluated(schCxt);\n }\n function validateClause(keyword, ifClause) {\n return () => {\n const schCxt = cxt.subschema({ keyword }, schValid);\n gen.assign(valid, schValid);\n cxt.mergeValidEvaluated(schCxt, valid);\n if (ifClause)\n gen.assign(ifClause, (0, codegen_1._) `${keyword}`);\n else\n cxt.setParams({ ifClause: keyword });\n };\n }\n },\n};\nfunction hasSchema(it, keyword) {\n const schema = it.schema[keyword];\n return schema !== undefined && !(0, util_1.alwaysValidSchema)(it, schema);\n}\nexports.default = def;\n//# sourceMappingURL=if.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst util_1 = require(\"../../compile/util\");\nconst def = {\n keyword: [\"then\", \"else\"],\n schemaType: [\"object\", \"boolean\"],\n code({ keyword, parentSchema, it }) {\n if (parentSchema.if === undefined)\n (0, util_1.checkStrictMode)(it, `\"${keyword}\" without \"if\" is ignored`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=thenElse.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst additionalItems_1 = require(\"./additionalItems\");\nconst prefixItems_1 = require(\"./prefixItems\");\nconst items_1 = require(\"./items\");\nconst items2020_1 = require(\"./items2020\");\nconst contains_1 = require(\"./contains\");\nconst dependencies_1 = require(\"./dependencies\");\nconst propertyNames_1 = require(\"./propertyNames\");\nconst additionalProperties_1 = require(\"./additionalProperties\");\nconst properties_1 = require(\"./properties\");\nconst patternProperties_1 = require(\"./patternProperties\");\nconst not_1 = require(\"./not\");\nconst anyOf_1 = require(\"./anyOf\");\nconst oneOf_1 = require(\"./oneOf\");\nconst allOf_1 = require(\"./allOf\");\nconst if_1 = require(\"./if\");\nconst thenElse_1 = require(\"./thenElse\");\nfunction getApplicator(draft2020 = false) {\n const applicator = [\n // any\n not_1.default,\n anyOf_1.default,\n oneOf_1.default,\n allOf_1.default,\n if_1.default,\n thenElse_1.default,\n // object\n propertyNames_1.default,\n additionalProperties_1.default,\n dependencies_1.default,\n properties_1.default,\n patternProperties_1.default,\n ];\n // array\n if (draft2020)\n applicator.push(prefixItems_1.default, items2020_1.default);\n else\n applicator.push(additionalItems_1.default, items_1.default);\n applicator.push(contains_1.default);\n return applicator;\n}\nexports.default = getApplicator;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.dynamicAnchor = void 0;\nconst codegen_1 = require(\"../../compile/codegen\");\nconst names_1 = require(\"../../compile/names\");\nconst compile_1 = require(\"../../compile\");\nconst ref_1 = require(\"../core/ref\");\nconst def = {\n keyword: \"$dynamicAnchor\",\n schemaType: \"string\",\n code: (cxt) => dynamicAnchor(cxt, cxt.schema),\n};\nfunction dynamicAnchor(cxt, anchor) {\n const { gen, it } = cxt;\n it.schemaEnv.root.dynamicAnchors[anchor] = true;\n const v = (0, codegen_1._) `${names_1.default.dynamicAnchors}${(0, codegen_1.getProperty)(anchor)}`;\n const validate = it.errSchemaPath === \"#\" ? it.validateName : _getValidate(cxt);\n gen.if((0, codegen_1._) `!${v}`, () => gen.assign(v, validate));\n}\nexports.dynamicAnchor = dynamicAnchor;\nfunction _getValidate(cxt) {\n const { schemaEnv, schema, self } = cxt.it;\n const { root, baseId, localRefs, meta } = schemaEnv.root;\n const { schemaId } = self.opts;\n const sch = new compile_1.SchemaEnv({ schema, schemaId, root, baseId, localRefs, meta });\n compile_1.compileSchema.call(self, sch);\n return (0, ref_1.getValidate)(cxt, sch);\n}\nexports.default = def;\n//# sourceMappingURL=dynamicAnchor.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.dynamicRef = void 0;\nconst codegen_1 = require(\"../../compile/codegen\");\nconst names_1 = require(\"../../compile/names\");\nconst ref_1 = require(\"../core/ref\");\nconst def = {\n keyword: \"$dynamicRef\",\n schemaType: \"string\",\n code: (cxt) => dynamicRef(cxt, cxt.schema),\n};\nfunction dynamicRef(cxt, ref) {\n const { gen, keyword, it } = cxt;\n if (ref[0] !== \"#\")\n throw new Error(`\"${keyword}\" only supports hash fragment reference`);\n const anchor = ref.slice(1);\n if (it.allErrors) {\n _dynamicRef();\n }\n else {\n const valid = gen.let(\"valid\", false);\n _dynamicRef(valid);\n cxt.ok(valid);\n }\n function _dynamicRef(valid) {\n // TODO the assumption here is that `recursiveRef: #` always points to the root\n // of the schema object, which is not correct, because there may be $id that\n // makes # point to it, and the target schema may not contain dynamic/recursiveAnchor.\n // Because of that 2 tests in recursiveRef.json fail.\n // This is a similar problem to #815 (`$id` doesn't alter resolution scope for `{ \"$ref\": \"#\" }`).\n // (This problem is not tested in JSON-Schema-Test-Suite)\n if (it.schemaEnv.root.dynamicAnchors[anchor]) {\n const v = gen.let(\"_v\", (0, codegen_1._) `${names_1.default.dynamicAnchors}${(0, codegen_1.getProperty)(anchor)}`);\n gen.if(v, _callRef(v, valid), _callRef(it.validateName, valid));\n }\n else {\n _callRef(it.validateName, valid)();\n }\n }\n function _callRef(validate, valid) {\n return valid\n ? () => gen.block(() => {\n (0, ref_1.callRef)(cxt, validate);\n gen.let(valid, true);\n })\n : () => (0, ref_1.callRef)(cxt, validate);\n }\n}\nexports.dynamicRef = dynamicRef;\nexports.default = def;\n//# sourceMappingURL=dynamicRef.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst dynamicAnchor_1 = require(\"./dynamicAnchor\");\nconst util_1 = require(\"../../compile/util\");\nconst def = {\n keyword: \"$recursiveAnchor\",\n schemaType: \"boolean\",\n code(cxt) {\n if (cxt.schema)\n (0, dynamicAnchor_1.dynamicAnchor)(cxt, \"\");\n else\n (0, util_1.checkStrictMode)(cxt.it, \"$recursiveAnchor: false is ignored\");\n },\n};\nexports.default = def;\n//# sourceMappingURL=recursiveAnchor.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst dynamicRef_1 = require(\"./dynamicRef\");\nconst def = {\n keyword: \"$recursiveRef\",\n schemaType: \"string\",\n code: (cxt) => (0, dynamicRef_1.dynamicRef)(cxt, cxt.schema),\n};\nexports.default = def;\n//# sourceMappingURL=recursiveRef.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst dynamicAnchor_1 = require(\"./dynamicAnchor\");\nconst dynamicRef_1 = require(\"./dynamicRef\");\nconst recursiveAnchor_1 = require(\"./recursiveAnchor\");\nconst recursiveRef_1 = require(\"./recursiveRef\");\nconst dynamic = [dynamicAnchor_1.default, dynamicRef_1.default, recursiveAnchor_1.default, recursiveRef_1.default];\nexports.default = dynamic;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst dependencies_1 = require(\"../applicator/dependencies\");\nconst def = {\n keyword: \"dependentRequired\",\n type: \"object\",\n schemaType: \"object\",\n error: dependencies_1.error,\n code: (cxt) => (0, dependencies_1.validatePropertyDeps)(cxt),\n};\nexports.default = def;\n//# sourceMappingURL=dependentRequired.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst dependencies_1 = require(\"./dependencies\");\nconst def = {\n keyword: \"dependentSchemas\",\n type: \"object\",\n schemaType: \"object\",\n code: (cxt) => (0, dependencies_1.validateSchemaDeps)(cxt),\n};\nexports.default = def;\n//# sourceMappingURL=dependentSchemas.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst util_1 = require(\"../../compile/util\");\nconst def = {\n keyword: [\"maxContains\", \"minContains\"],\n type: \"array\",\n schemaType: \"number\",\n code({ keyword, parentSchema, it }) {\n if (parentSchema.contains === undefined) {\n (0, util_1.checkStrictMode)(it, `\"${keyword}\" without \"contains\" is ignored`);\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=limitContains.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst dependentRequired_1 = require(\"./validation/dependentRequired\");\nconst dependentSchemas_1 = require(\"./applicator/dependentSchemas\");\nconst limitContains_1 = require(\"./validation/limitContains\");\nconst next = [dependentRequired_1.default, dependentSchemas_1.default, limitContains_1.default];\nexports.default = next;\n//# sourceMappingURL=next.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst names_1 = require(\"../../compile/names\");\nconst error = {\n message: \"must NOT have unevaluated properties\",\n params: ({ params }) => (0, codegen_1._) `{unevaluatedProperty: ${params.unevaluatedProperty}}`,\n};\nconst def = {\n keyword: \"unevaluatedProperties\",\n type: \"object\",\n schemaType: [\"boolean\", \"object\"],\n trackErrors: true,\n error,\n code(cxt) {\n const { gen, schema, data, errsCount, it } = cxt;\n /* istanbul ignore if */\n if (!errsCount)\n throw new Error(\"ajv implementation error\");\n const { allErrors, props } = it;\n if (props instanceof codegen_1.Name) {\n gen.if((0, codegen_1._) `${props} !== true`, () => gen.forIn(\"key\", data, (key) => gen.if(unevaluatedDynamic(props, key), () => unevaluatedPropCode(key))));\n }\n else if (props !== true) {\n gen.forIn(\"key\", data, (key) => props === undefined\n ? unevaluatedPropCode(key)\n : gen.if(unevaluatedStatic(props, key), () => unevaluatedPropCode(key)));\n }\n it.props = true;\n cxt.ok((0, codegen_1._) `${errsCount} === ${names_1.default.errors}`);\n function unevaluatedPropCode(key) {\n if (schema === false) {\n cxt.setParams({ unevaluatedProperty: key });\n cxt.error();\n if (!allErrors)\n gen.break();\n return;\n }\n if (!(0, util_1.alwaysValidSchema)(it, schema)) {\n const valid = gen.name(\"valid\");\n cxt.subschema({\n keyword: \"unevaluatedProperties\",\n dataProp: key,\n dataPropType: util_1.Type.Str,\n }, valid);\n if (!allErrors)\n gen.if((0, codegen_1.not)(valid), () => gen.break());\n }\n }\n function unevaluatedDynamic(evaluatedProps, key) {\n return (0, codegen_1._) `!${evaluatedProps} || !${evaluatedProps}[${key}]`;\n }\n function unevaluatedStatic(evaluatedProps, key) {\n const ps = [];\n for (const p in evaluatedProps) {\n if (evaluatedProps[p] === true)\n ps.push((0, codegen_1._) `${key} !== ${p}`);\n }\n return (0, codegen_1.and)(...ps);\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=unevaluatedProperties.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params: { len } }) => (0, codegen_1.str) `must NOT have more than ${len} items`,\n params: ({ params: { len } }) => (0, codegen_1._) `{limit: ${len}}`,\n};\nconst def = {\n keyword: \"unevaluatedItems\",\n type: \"array\",\n schemaType: [\"boolean\", \"object\"],\n error,\n code(cxt) {\n const { gen, schema, data, it } = cxt;\n const items = it.items || 0;\n if (items === true)\n return;\n const len = gen.const(\"len\", (0, codegen_1._) `${data}.length`);\n if (schema === false) {\n cxt.setParams({ len: items });\n cxt.fail((0, codegen_1._) `${len} > ${items}`);\n }\n else if (typeof schema == \"object\" && !(0, util_1.alwaysValidSchema)(it, schema)) {\n const valid = gen.var(\"valid\", (0, codegen_1._) `${len} <= ${items}`);\n gen.if((0, codegen_1.not)(valid), () => validateItems(valid, items));\n cxt.ok(valid);\n }\n it.items = true;\n function validateItems(valid, from) {\n gen.forRange(\"i\", from, len, (i) => {\n cxt.subschema({ keyword: \"unevaluatedItems\", dataProp: i, dataPropType: util_1.Type.Num }, valid);\n if (!it.allErrors)\n gen.if((0, codegen_1.not)(valid), () => gen.break());\n });\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=unevaluatedItems.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst unevaluatedProperties_1 = require(\"./unevaluatedProperties\");\nconst unevaluatedItems_1 = require(\"./unevaluatedItems\");\nconst unevaluated = [unevaluatedProperties_1.default, unevaluatedItems_1.default];\nexports.default = unevaluated;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message: ({ schemaCode }) => (0, codegen_1.str) `must match format \"${schemaCode}\"`,\n params: ({ schemaCode }) => (0, codegen_1._) `{format: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"format\",\n type: [\"number\", \"string\"],\n schemaType: \"string\",\n $data: true,\n error,\n code(cxt, ruleType) {\n const { gen, data, $data, schema, schemaCode, it } = cxt;\n const { opts, errSchemaPath, schemaEnv, self } = it;\n if (!opts.validateFormats)\n return;\n if ($data)\n validate$DataFormat();\n else\n validateFormat();\n function validate$DataFormat() {\n const fmts = gen.scopeValue(\"formats\", {\n ref: self.formats,\n code: opts.code.formats,\n });\n const fDef = gen.const(\"fDef\", (0, codegen_1._) `${fmts}[${schemaCode}]`);\n const fType = gen.let(\"fType\");\n const format = gen.let(\"format\");\n // TODO simplify\n gen.if((0, codegen_1._) `typeof ${fDef} == \"object\" && !(${fDef} instanceof RegExp)`, () => gen.assign(fType, (0, codegen_1._) `${fDef}.type || \"string\"`).assign(format, (0, codegen_1._) `${fDef}.validate`), () => gen.assign(fType, (0, codegen_1._) `\"string\"`).assign(format, fDef));\n cxt.fail$data((0, codegen_1.or)(unknownFmt(), invalidFmt()));\n function unknownFmt() {\n if (opts.strictSchema === false)\n return codegen_1.nil;\n return (0, codegen_1._) `${schemaCode} && !${format}`;\n }\n function invalidFmt() {\n const callFormat = schemaEnv.$async\n ? (0, codegen_1._) `(${fDef}.async ? await ${format}(${data}) : ${format}(${data}))`\n : (0, codegen_1._) `${format}(${data})`;\n const validData = (0, codegen_1._) `(typeof ${format} == \"function\" ? ${callFormat} : ${format}.test(${data}))`;\n return (0, codegen_1._) `${format} && ${format} !== true && ${fType} === ${ruleType} && !${validData}`;\n }\n }\n function validateFormat() {\n const formatDef = self.formats[schema];\n if (!formatDef) {\n unknownFormat();\n return;\n }\n if (formatDef === true)\n return;\n const [fmtType, format, fmtRef] = getFormat(formatDef);\n if (fmtType === ruleType)\n cxt.pass(validCondition());\n function unknownFormat() {\n if (opts.strictSchema === false) {\n self.logger.warn(unknownMsg());\n return;\n }\n throw new Error(unknownMsg());\n function unknownMsg() {\n return `unknown format \"${schema}\" ignored in schema at path \"${errSchemaPath}\"`;\n }\n }\n function getFormat(fmtDef) {\n const code = fmtDef instanceof RegExp\n ? (0, codegen_1.regexpCode)(fmtDef)\n : opts.code.formats\n ? (0, codegen_1._) `${opts.code.formats}${(0, codegen_1.getProperty)(schema)}`\n : undefined;\n const fmt = gen.scopeValue(\"formats\", { key: schema, ref: fmtDef, code });\n if (typeof fmtDef == \"object\" && !(fmtDef instanceof RegExp)) {\n return [fmtDef.type || \"string\", fmtDef.validate, (0, codegen_1._) `${fmt}.validate`];\n }\n return [\"string\", fmtDef, fmt];\n }\n function validCondition() {\n if (typeof formatDef == \"object\" && !(formatDef instanceof RegExp) && formatDef.async) {\n if (!schemaEnv.$async)\n throw new Error(\"async format in sync schema\");\n return (0, codegen_1._) `await ${fmtRef}(${data})`;\n }\n return typeof format == \"function\" ? (0, codegen_1._) `${fmtRef}(${data})` : (0, codegen_1._) `${fmtRef}.test(${data})`;\n }\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=format.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst format_1 = require(\"./format\");\nconst format = [format_1.default];\nexports.default = format;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.contentVocabulary = exports.metadataVocabulary = void 0;\nexports.metadataVocabulary = [\n \"title\",\n \"description\",\n \"default\",\n \"deprecated\",\n \"readOnly\",\n \"writeOnly\",\n \"examples\",\n];\nexports.contentVocabulary = [\n \"contentMediaType\",\n \"contentEncoding\",\n \"contentSchema\",\n];\n//# sourceMappingURL=metadata.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst core_1 = require(\"./core\");\nconst validation_1 = require(\"./validation\");\nconst applicator_1 = require(\"./applicator\");\nconst dynamic_1 = require(\"./dynamic\");\nconst next_1 = require(\"./next\");\nconst unevaluated_1 = require(\"./unevaluated\");\nconst format_1 = require(\"./format\");\nconst metadata_1 = require(\"./metadata\");\nconst draft2020Vocabularies = [\n dynamic_1.default,\n core_1.default,\n validation_1.default,\n (0, applicator_1.default)(true),\n format_1.default,\n metadata_1.metadataVocabulary,\n metadata_1.contentVocabulary,\n next_1.default,\n unevaluated_1.default,\n];\nexports.default = draft2020Vocabularies;\n//# sourceMappingURL=draft2020.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DiscrError = void 0;\nvar DiscrError;\n(function (DiscrError) {\n DiscrError[\"Tag\"] = \"tag\";\n DiscrError[\"Mapping\"] = \"mapping\";\n})(DiscrError || (exports.DiscrError = DiscrError = {}));\n//# sourceMappingURL=types.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst types_1 = require(\"../discriminator/types\");\nconst compile_1 = require(\"../../compile\");\nconst ref_error_1 = require(\"../../compile/ref_error\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params: { discrError, tagName } }) => discrError === types_1.DiscrError.Tag\n ? `tag \"${tagName}\" must be string`\n : `value of tag \"${tagName}\" must be in oneOf`,\n params: ({ params: { discrError, tag, tagName } }) => (0, codegen_1._) `{error: ${discrError}, tag: ${tagName}, tagValue: ${tag}}`,\n};\nconst def = {\n keyword: \"discriminator\",\n type: \"object\",\n schemaType: \"object\",\n error,\n code(cxt) {\n const { gen, data, schema, parentSchema, it } = cxt;\n const { oneOf } = parentSchema;\n if (!it.opts.discriminator) {\n throw new Error(\"discriminator: requires discriminator option\");\n }\n const tagName = schema.propertyName;\n if (typeof tagName != \"string\")\n throw new Error(\"discriminator: requires propertyName\");\n if (schema.mapping)\n throw new Error(\"discriminator: mapping is not supported\");\n if (!oneOf)\n throw new Error(\"discriminator: requires oneOf keyword\");\n const valid = gen.let(\"valid\", false);\n const tag = gen.const(\"tag\", (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(tagName)}`);\n gen.if((0, codegen_1._) `typeof ${tag} == \"string\"`, () => validateMapping(), () => cxt.error(false, { discrError: types_1.DiscrError.Tag, tag, tagName }));\n cxt.ok(valid);\n function validateMapping() {\n const mapping = getMapping();\n gen.if(false);\n for (const tagValue in mapping) {\n gen.elseIf((0, codegen_1._) `${tag} === ${tagValue}`);\n gen.assign(valid, applyTagSchema(mapping[tagValue]));\n }\n gen.else();\n cxt.error(false, { discrError: types_1.DiscrError.Mapping, tag, tagName });\n gen.endIf();\n }\n function applyTagSchema(schemaProp) {\n const _valid = gen.name(\"valid\");\n const schCxt = cxt.subschema({ keyword: \"oneOf\", schemaProp }, _valid);\n cxt.mergeEvaluated(schCxt, codegen_1.Name);\n return _valid;\n }\n function getMapping() {\n var _a;\n const oneOfMapping = {};\n const topRequired = hasRequired(parentSchema);\n let tagRequired = true;\n for (let i = 0; i < oneOf.length; i++) {\n let sch = oneOf[i];\n if ((sch === null || sch === void 0 ? void 0 : sch.$ref) && !(0, util_1.schemaHasRulesButRef)(sch, it.self.RULES)) {\n const ref = sch.$ref;\n sch = compile_1.resolveRef.call(it.self, it.schemaEnv.root, it.baseId, ref);\n if (sch instanceof compile_1.SchemaEnv)\n sch = sch.schema;\n if (sch === undefined)\n throw new ref_error_1.default(it.opts.uriResolver, it.baseId, ref);\n }\n const propSch = (_a = sch === null || sch === void 0 ? void 0 : sch.properties) === null || _a === void 0 ? void 0 : _a[tagName];\n if (typeof propSch != \"object\") {\n throw new Error(`discriminator: oneOf subschemas (or referenced schemas) must have \"properties/${tagName}\"`);\n }\n tagRequired = tagRequired && (topRequired || hasRequired(sch));\n addMappings(propSch, i);\n }\n if (!tagRequired)\n throw new Error(`discriminator: \"${tagName}\" must be required`);\n return oneOfMapping;\n function hasRequired({ required }) {\n return Array.isArray(required) && required.includes(tagName);\n }\n function addMappings(sch, i) {\n if (sch.const) {\n addMapping(sch.const, i);\n }\n else if (sch.enum) {\n for (const tagValue of sch.enum) {\n addMapping(tagValue, i);\n }\n }\n else {\n throw new Error(`discriminator: \"properties/${tagName}\" must have \"const\" or \"enum\"`);\n }\n }\n function addMapping(tagValue, i) {\n if (typeof tagValue != \"string\" || tagValue in oneOfMapping) {\n throw new Error(`discriminator: \"${tagName}\" values must be unique strings`);\n }\n oneOfMapping[tagValue] = i;\n }\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=index.js.map","","","","","","","","","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst metaSchema = require(\"./schema.json\");\nconst applicator = require(\"./meta/applicator.json\");\nconst unevaluated = require(\"./meta/unevaluated.json\");\nconst content = require(\"./meta/content.json\");\nconst core = require(\"./meta/core.json\");\nconst format = require(\"./meta/format-annotation.json\");\nconst metadata = require(\"./meta/meta-data.json\");\nconst validation = require(\"./meta/validation.json\");\nconst META_SUPPORT_DATA = [\"/properties\"];\nfunction addMetaSchema2020($data) {\n ;\n [\n metaSchema,\n applicator,\n unevaluated,\n content,\n core,\n with$data(this, format),\n metadata,\n with$data(this, validation),\n ].forEach((sch) => this.addMetaSchema(sch, undefined, false));\n return this;\n function with$data(ajv, sch) {\n return $data ? ajv.$dataMetaSchema(sch, META_SUPPORT_DATA) : sch;\n }\n}\nexports.default = addMetaSchema2020;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MissingRefError = exports.ValidationError = exports.CodeGen = exports.Name = exports.nil = exports.stringify = exports.str = exports._ = exports.KeywordCxt = exports.Ajv2020 = void 0;\nconst core_1 = require(\"./core\");\nconst draft2020_1 = require(\"./vocabularies/draft2020\");\nconst discriminator_1 = require(\"./vocabularies/discriminator\");\nconst json_schema_2020_12_1 = require(\"./refs/json-schema-2020-12\");\nconst META_SCHEMA_ID = \"https://json-schema.org/draft/2020-12/schema\";\nclass Ajv2020 extends core_1.default {\n constructor(opts = {}) {\n super({\n ...opts,\n dynamicRef: true,\n next: true,\n unevaluated: true,\n });\n }\n _addVocabularies() {\n super._addVocabularies();\n draft2020_1.default.forEach((v) => this.addVocabulary(v));\n if (this.opts.discriminator)\n this.addKeyword(discriminator_1.default);\n }\n _addDefaultMetaSchema() {\n super._addDefaultMetaSchema();\n const { $data, meta } = this.opts;\n if (!meta)\n return;\n json_schema_2020_12_1.default.call(this, $data);\n this.refs[\"http://json-schema.org/schema\"] = META_SCHEMA_ID;\n }\n defaultMeta() {\n return (this.opts.defaultMeta =\n super.defaultMeta() || (this.getSchema(META_SCHEMA_ID) ? META_SCHEMA_ID : undefined));\n }\n}\nexports.Ajv2020 = Ajv2020;\nmodule.exports = exports = Ajv2020;\nmodule.exports.Ajv2020 = Ajv2020;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = Ajv2020;\nvar validate_1 = require(\"./compile/validate\");\nObject.defineProperty(exports, \"KeywordCxt\", { enumerable: true, get: function () { return validate_1.KeywordCxt; } });\nvar codegen_1 = require(\"./compile/codegen\");\nObject.defineProperty(exports, \"_\", { enumerable: true, get: function () { return codegen_1._; } });\nObject.defineProperty(exports, \"str\", { enumerable: true, get: function () { return codegen_1.str; } });\nObject.defineProperty(exports, \"stringify\", { enumerable: true, get: function () { return codegen_1.stringify; } });\nObject.defineProperty(exports, \"nil\", { enumerable: true, get: function () { return codegen_1.nil; } });\nObject.defineProperty(exports, \"Name\", { enumerable: true, get: function () { return codegen_1.Name; } });\nObject.defineProperty(exports, \"CodeGen\", { enumerable: true, get: function () { return codegen_1.CodeGen; } });\nvar validation_error_1 = require(\"./runtime/validation_error\");\nObject.defineProperty(exports, \"ValidationError\", { enumerable: true, get: function () { return validation_error_1.default; } });\nvar ref_error_1 = require(\"./compile/ref_error\");\nObject.defineProperty(exports, \"MissingRefError\", { enumerable: true, get: function () { return ref_error_1.default; } });\n//# sourceMappingURL=2020.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.formatNames = exports.fastFormats = exports.fullFormats = void 0;\nfunction fmtDef(validate, compare) {\n return { validate, compare };\n}\nexports.fullFormats = {\n // date: http://tools.ietf.org/html/rfc3339#section-5.6\n date: fmtDef(date, compareDate),\n // date-time: http://tools.ietf.org/html/rfc3339#section-5.6\n time: fmtDef(getTime(true), compareTime),\n \"date-time\": fmtDef(getDateTime(true), compareDateTime),\n \"iso-time\": fmtDef(getTime(), compareIsoTime),\n \"iso-date-time\": fmtDef(getDateTime(), compareIsoDateTime),\n // duration: https://tools.ietf.org/html/rfc3339#appendix-A\n duration: /^P(?!$)((\\d+Y)?(\\d+M)?(\\d+D)?(T(?=\\d)(\\d+H)?(\\d+M)?(\\d+S)?)?|(\\d+W)?)$/,\n uri,\n \"uri-reference\": /^(?:[a-z][a-z0-9+\\-.]*:)?(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'\"()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\\?(?:[a-z0-9\\-._~!$&'\"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'\"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,\n // uri-template: https://tools.ietf.org/html/rfc6570\n \"uri-template\": /^(?:(?:[^\\x00-\\x20\"'<>%\\\\^`{|}]|%[0-9a-f]{2})|\\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?)*\\})*$/i,\n // For the source: https://gist.github.com/dperini/729294\n // For test cases: https://mathiasbynens.be/demo/url-regex\n url: /^(?:https?|ftp):\\/\\/(?:\\S+(?::\\S*)?@)?(?:(?!(?:10|127)(?:\\.\\d{1,3}){3})(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z0-9\\u{00a1}-\\u{ffff}]+-)*[a-z0-9\\u{00a1}-\\u{ffff}]+)(?:\\.(?:[a-z0-9\\u{00a1}-\\u{ffff}]+-)*[a-z0-9\\u{00a1}-\\u{ffff}]+)*(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}]{2,})))(?::\\d{2,5})?(?:\\/[^\\s]*)?$/iu,\n email: /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,\n hostname: /^(?=.{1,253}\\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\\.?$/i,\n // optimized https://www.safaribooksonline.com/library/view/regular-expressions-cookbook/9780596802837/ch07s16.html\n ipv4: /^(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)$/,\n ipv6: /^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))$/i,\n regex,\n // uuid: http://tools.ietf.org/html/rfc4122\n uuid: /^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,\n // JSON-pointer: https://tools.ietf.org/html/rfc6901\n // uri fragment: https://tools.ietf.org/html/rfc3986#appendix-A\n \"json-pointer\": /^(?:\\/(?:[^~/]|~0|~1)*)*$/,\n \"json-pointer-uri-fragment\": /^#(?:\\/(?:[a-z0-9_\\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,\n // relative JSON-pointer: http://tools.ietf.org/html/draft-luff-relative-json-pointer-00\n \"relative-json-pointer\": /^(?:0|[1-9][0-9]*)(?:#|(?:\\/(?:[^~/]|~0|~1)*)*)$/,\n // the following formats are used by the openapi specification: https://spec.openapis.org/oas/v3.0.0#data-types\n // byte: https://github.com/miguelmota/is-base64\n byte,\n // signed 32 bit integer\n int32: { type: \"number\", validate: validateInt32 },\n // signed 64 bit integer\n int64: { type: \"number\", validate: validateInt64 },\n // C-type float\n float: { type: \"number\", validate: validateNumber },\n // C-type double\n double: { type: \"number\", validate: validateNumber },\n // hint to the UI to hide input strings\n password: true,\n // unchecked string payload\n binary: true,\n};\nexports.fastFormats = {\n ...exports.fullFormats,\n date: fmtDef(/^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d$/, compareDate),\n time: fmtDef(/^(?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)$/i, compareTime),\n \"date-time\": fmtDef(/^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\dt(?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)$/i, compareDateTime),\n \"iso-time\": fmtDef(/^(?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)?$/i, compareIsoTime),\n \"iso-date-time\": fmtDef(/^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d[t\\s](?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)?$/i, compareIsoDateTime),\n // uri: https://github.com/mafintosh/is-my-json-valid/blob/master/formats.js\n uri: /^(?:[a-z][a-z0-9+\\-.]*:)(?:\\/?\\/)?[^\\s]*$/i,\n \"uri-reference\": /^(?:(?:[a-z][a-z0-9+\\-.]*:)?\\/?\\/)?(?:[^\\\\\\s#][^\\s#]*)?(?:#[^\\\\\\s]*)?$/i,\n // email (sources from jsen validator):\n // http://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-an-email-address#answer-8829363\n // http://www.w3.org/TR/html5/forms.html#valid-e-mail-address (search for 'wilful violation')\n email: /^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,\n};\nexports.formatNames = Object.keys(exports.fullFormats);\nfunction isLeapYear(year) {\n // https://tools.ietf.org/html/rfc3339#appendix-C\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n}\nconst DATE = /^(\\d\\d\\d\\d)-(\\d\\d)-(\\d\\d)$/;\nconst DAYS = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nfunction date(str) {\n // full-date from http://tools.ietf.org/html/rfc3339#section-5.6\n const matches = DATE.exec(str);\n if (!matches)\n return false;\n const year = +matches[1];\n const month = +matches[2];\n const day = +matches[3];\n return (month >= 1 &&\n month <= 12 &&\n day >= 1 &&\n day <= (month === 2 && isLeapYear(year) ? 29 : DAYS[month]));\n}\nfunction compareDate(d1, d2) {\n if (!(d1 && d2))\n return undefined;\n if (d1 > d2)\n return 1;\n if (d1 < d2)\n return -1;\n return 0;\n}\nconst TIME = /^(\\d\\d):(\\d\\d):(\\d\\d(?:\\.\\d+)?)(z|([+-])(\\d\\d)(?::?(\\d\\d))?)?$/i;\nfunction getTime(strictTimeZone) {\n return function time(str) {\n const matches = TIME.exec(str);\n if (!matches)\n return false;\n const hr = +matches[1];\n const min = +matches[2];\n const sec = +matches[3];\n const tz = matches[4];\n const tzSign = matches[5] === \"-\" ? -1 : 1;\n const tzH = +(matches[6] || 0);\n const tzM = +(matches[7] || 0);\n if (tzH > 23 || tzM > 59 || (strictTimeZone && !tz))\n return false;\n if (hr <= 23 && min <= 59 && sec < 60)\n return true;\n // leap second\n const utcMin = min - tzM * tzSign;\n const utcHr = hr - tzH * tzSign - (utcMin < 0 ? 1 : 0);\n return (utcHr === 23 || utcHr === -1) && (utcMin === 59 || utcMin === -1) && sec < 61;\n };\n}\nfunction compareTime(s1, s2) {\n if (!(s1 && s2))\n return undefined;\n const t1 = new Date(\"2020-01-01T\" + s1).valueOf();\n const t2 = new Date(\"2020-01-01T\" + s2).valueOf();\n if (!(t1 && t2))\n return undefined;\n return t1 - t2;\n}\nfunction compareIsoTime(t1, t2) {\n if (!(t1 && t2))\n return undefined;\n const a1 = TIME.exec(t1);\n const a2 = TIME.exec(t2);\n if (!(a1 && a2))\n return undefined;\n t1 = a1[1] + a1[2] + a1[3];\n t2 = a2[1] + a2[2] + a2[3];\n if (t1 > t2)\n return 1;\n if (t1 < t2)\n return -1;\n return 0;\n}\nconst DATE_TIME_SEPARATOR = /t|\\s/i;\nfunction getDateTime(strictTimeZone) {\n const time = getTime(strictTimeZone);\n return function date_time(str) {\n // http://tools.ietf.org/html/rfc3339#section-5.6\n const dateTime = str.split(DATE_TIME_SEPARATOR);\n return dateTime.length === 2 && date(dateTime[0]) && time(dateTime[1]);\n };\n}\nfunction compareDateTime(dt1, dt2) {\n if (!(dt1 && dt2))\n return undefined;\n const d1 = new Date(dt1).valueOf();\n const d2 = new Date(dt2).valueOf();\n if (!(d1 && d2))\n return undefined;\n return d1 - d2;\n}\nfunction compareIsoDateTime(dt1, dt2) {\n if (!(dt1 && dt2))\n return undefined;\n const [d1, t1] = dt1.split(DATE_TIME_SEPARATOR);\n const [d2, t2] = dt2.split(DATE_TIME_SEPARATOR);\n const res = compareDate(d1, d2);\n if (res === undefined)\n return undefined;\n return res || compareTime(t1, t2);\n}\nconst NOT_URI_FRAGMENT = /\\/|:/;\nconst URI = /^(?:[a-z][a-z0-9+\\-.]*:)(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\\?(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;\nfunction uri(str) {\n // http://jmrware.com/articles/2009/uri_regexp/URI_regex.html + optional protocol + required \".\"\n return NOT_URI_FRAGMENT.test(str) && URI.test(str);\n}\nconst BYTE = /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm;\nfunction byte(str) {\n BYTE.lastIndex = 0;\n return BYTE.test(str);\n}\nconst MIN_INT32 = -(2 ** 31);\nconst MAX_INT32 = 2 ** 31 - 1;\nfunction validateInt32(value) {\n return Number.isInteger(value) && value <= MAX_INT32 && value >= MIN_INT32;\n}\nfunction validateInt64(value) {\n // JSON and javascript max Int is 2**53, so any int that passes isInteger is valid for Int64\n return Number.isInteger(value);\n}\nfunction validateNumber() {\n return true;\n}\nconst Z_ANCHOR = /[^\\\\]\\\\Z/;\nfunction regex(str) {\n if (Z_ANCHOR.test(str))\n return false;\n try {\n new RegExp(str);\n return true;\n }\n catch (e) {\n return false;\n }\n}\n//# sourceMappingURL=formats.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst core_1 = require(\"./core\");\nconst validation_1 = require(\"./validation\");\nconst applicator_1 = require(\"./applicator\");\nconst format_1 = require(\"./format\");\nconst metadata_1 = require(\"./metadata\");\nconst draft7Vocabularies = [\n core_1.default,\n validation_1.default,\n (0, applicator_1.default)(),\n format_1.default,\n metadata_1.metadataVocabulary,\n metadata_1.contentVocabulary,\n];\nexports.default = draft7Vocabularies;\n//# sourceMappingURL=draft7.js.map","","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MissingRefError = exports.ValidationError = exports.CodeGen = exports.Name = exports.nil = exports.stringify = exports.str = exports._ = exports.KeywordCxt = exports.Ajv = void 0;\nconst core_1 = require(\"./core\");\nconst draft7_1 = require(\"./vocabularies/draft7\");\nconst discriminator_1 = require(\"./vocabularies/discriminator\");\nconst draft7MetaSchema = require(\"./refs/json-schema-draft-07.json\");\nconst META_SUPPORT_DATA = [\"/properties\"];\nconst META_SCHEMA_ID = \"http://json-schema.org/draft-07/schema\";\nclass Ajv extends core_1.default {\n _addVocabularies() {\n super._addVocabularies();\n draft7_1.default.forEach((v) => this.addVocabulary(v));\n if (this.opts.discriminator)\n this.addKeyword(discriminator_1.default);\n }\n _addDefaultMetaSchema() {\n super._addDefaultMetaSchema();\n if (!this.opts.meta)\n return;\n const metaSchema = this.opts.$data\n ? this.$dataMetaSchema(draft7MetaSchema, META_SUPPORT_DATA)\n : draft7MetaSchema;\n this.addMetaSchema(metaSchema, META_SCHEMA_ID, false);\n this.refs[\"http://json-schema.org/schema\"] = META_SCHEMA_ID;\n }\n defaultMeta() {\n return (this.opts.defaultMeta =\n super.defaultMeta() || (this.getSchema(META_SCHEMA_ID) ? META_SCHEMA_ID : undefined));\n }\n}\nexports.Ajv = Ajv;\nmodule.exports = exports = Ajv;\nmodule.exports.Ajv = Ajv;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = Ajv;\nvar validate_1 = require(\"./compile/validate\");\nObject.defineProperty(exports, \"KeywordCxt\", { enumerable: true, get: function () { return validate_1.KeywordCxt; } });\nvar codegen_1 = require(\"./compile/codegen\");\nObject.defineProperty(exports, \"_\", { enumerable: true, get: function () { return codegen_1._; } });\nObject.defineProperty(exports, \"str\", { enumerable: true, get: function () { return codegen_1.str; } });\nObject.defineProperty(exports, \"stringify\", { enumerable: true, get: function () { return codegen_1.stringify; } });\nObject.defineProperty(exports, \"nil\", { enumerable: true, get: function () { return codegen_1.nil; } });\nObject.defineProperty(exports, \"Name\", { enumerable: true, get: function () { return codegen_1.Name; } });\nObject.defineProperty(exports, \"CodeGen\", { enumerable: true, get: function () { return codegen_1.CodeGen; } });\nvar validation_error_1 = require(\"./runtime/validation_error\");\nObject.defineProperty(exports, \"ValidationError\", { enumerable: true, get: function () { return validation_error_1.default; } });\nvar ref_error_1 = require(\"./compile/ref_error\");\nObject.defineProperty(exports, \"MissingRefError\", { enumerable: true, get: function () { return ref_error_1.default; } });\n//# sourceMappingURL=ajv.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.formatLimitDefinition = void 0;\nconst ajv_1 = require(\"ajv\");\nconst codegen_1 = require(\"ajv/dist/compile/codegen\");\nconst ops = codegen_1.operators;\nconst KWDs = {\n formatMaximum: { okStr: \"<=\", ok: ops.LTE, fail: ops.GT },\n formatMinimum: { okStr: \">=\", ok: ops.GTE, fail: ops.LT },\n formatExclusiveMaximum: { okStr: \"<\", ok: ops.LT, fail: ops.GTE },\n formatExclusiveMinimum: { okStr: \">\", ok: ops.GT, fail: ops.LTE },\n};\nconst error = {\n message: ({ keyword, schemaCode }) => (0, codegen_1.str) `should be ${KWDs[keyword].okStr} ${schemaCode}`,\n params: ({ keyword, schemaCode }) => (0, codegen_1._) `{comparison: ${KWDs[keyword].okStr}, limit: ${schemaCode}}`,\n};\nexports.formatLimitDefinition = {\n keyword: Object.keys(KWDs),\n type: \"string\",\n schemaType: \"string\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, schemaCode, keyword, it } = cxt;\n const { opts, self } = it;\n if (!opts.validateFormats)\n return;\n const fCxt = new ajv_1.KeywordCxt(it, self.RULES.all.format.definition, \"format\");\n if (fCxt.$data)\n validate$DataFormat();\n else\n validateFormat();\n function validate$DataFormat() {\n const fmts = gen.scopeValue(\"formats\", {\n ref: self.formats,\n code: opts.code.formats,\n });\n const fmt = gen.const(\"fmt\", (0, codegen_1._) `${fmts}[${fCxt.schemaCode}]`);\n cxt.fail$data((0, codegen_1.or)((0, codegen_1._) `typeof ${fmt} != \"object\"`, (0, codegen_1._) `${fmt} instanceof RegExp`, (0, codegen_1._) `typeof ${fmt}.compare != \"function\"`, compareCode(fmt)));\n }\n function validateFormat() {\n const format = fCxt.schema;\n const fmtDef = self.formats[format];\n if (!fmtDef || fmtDef === true)\n return;\n if (typeof fmtDef != \"object\" ||\n fmtDef instanceof RegExp ||\n typeof fmtDef.compare != \"function\") {\n throw new Error(`\"${keyword}\": format \"${format}\" does not define \"compare\" function`);\n }\n const fmt = gen.scopeValue(\"formats\", {\n key: format,\n ref: fmtDef,\n code: opts.code.formats ? (0, codegen_1._) `${opts.code.formats}${(0, codegen_1.getProperty)(format)}` : undefined,\n });\n cxt.fail$data(compareCode(fmt));\n }\n function compareCode(fmt) {\n return (0, codegen_1._) `${fmt}.compare(${data}, ${schemaCode}) ${KWDs[keyword].fail} 0`;\n }\n },\n dependencies: [\"format\"],\n};\nconst formatLimitPlugin = (ajv) => {\n ajv.addKeyword(exports.formatLimitDefinition);\n return ajv;\n};\nexports.default = formatLimitPlugin;\n//# sourceMappingURL=limit.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst formats_1 = require(\"./formats\");\nconst limit_1 = require(\"./limit\");\nconst codegen_1 = require(\"ajv/dist/compile/codegen\");\nconst fullName = new codegen_1.Name(\"fullFormats\");\nconst fastName = new codegen_1.Name(\"fastFormats\");\nconst formatsPlugin = (ajv, opts = { keywords: true }) => {\n if (Array.isArray(opts)) {\n addFormats(ajv, opts, formats_1.fullFormats, fullName);\n return ajv;\n }\n const [formats, exportName] = opts.mode === \"fast\" ? [formats_1.fastFormats, fastName] : [formats_1.fullFormats, fullName];\n const list = opts.formats || formats_1.formatNames;\n addFormats(ajv, list, formats, exportName);\n if (opts.keywords)\n (0, limit_1.default)(ajv);\n return ajv;\n};\nformatsPlugin.get = (name, mode = \"full\") => {\n const formats = mode === \"fast\" ? formats_1.fastFormats : formats_1.fullFormats;\n const f = formats[name];\n if (!f)\n throw new Error(`Unknown format \"${name}\"`);\n return f;\n};\nfunction addFormats(ajv, list, fs, exportName) {\n var _a;\n var _b;\n (_a = (_b = ajv.opts.code).formats) !== null && _a !== void 0 ? _a : (_b.formats = (0, codegen_1._) `require(\"ajv-formats/dist/formats\").${exportName}`);\n for (const f of list)\n ajv.addFormat(f, fs[f]);\n}\nmodule.exports = exports = formatsPlugin;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = formatsPlugin;\n//# sourceMappingURL=index.js.map","","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\n/**\n * A map of type names and their corresponding schema\n */\nexport const validationPointers = {\n Workflow: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#',\n A2AArguments:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/callTask/oneOf/4/allOf/1/properties/with',\n AllEventConsumptionStrategy:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/eventConsumptionStrategy/oneOf/0',\n AllEventConsumptionStrategyConfiguration:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/eventConsumptionStrategy/oneOf/0/properties/all',\n AnyEventConsumptionStrategy:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/eventConsumptionStrategy/oneOf/1',\n AnyEventConsumptionStrategyConfiguration:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/eventConsumptionStrategy/oneOf/1/properties/any',\n AnyEventConsumptionStrategyUntil:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/eventConsumptionStrategy/oneOf/1/properties/until',\n AnyEventUntilConsumed:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/eventConsumptionStrategy/oneOf/1/properties/until/oneOf/1',\n AsyncApiArguments:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/callTask/oneOf/0/allOf/1/properties/with',\n AuthenticationPolicy: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/authenticationPolicy',\n AuthenticationPolicyReference:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/referenceableAuthenticationPolicy/oneOf/0',\n BasicAuthenticationPolicy:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/authenticationPolicy/oneOf/0',\n BasicAuthenticationPolicyConfiguration:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/authenticationPolicy/oneOf/0/properties/basic',\n BasicAuthenticationProperties:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/authenticationPolicy/oneOf/0/properties/basic/oneOf/0',\n BearerAuthenticationPolicy:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/authenticationPolicy/oneOf/1',\n BearerAuthenticationPolicyConfiguration:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/authenticationPolicy/oneOf/1/properties/bearer',\n BearerAuthenticationProperties:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/authenticationPolicy/oneOf/1/properties/bearer/oneOf/0',\n CallA2A: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/callTask/oneOf/4',\n CallAsyncAPI: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/callTask/oneOf/0',\n CallFunction: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/callTask/oneOf/6',\n CallGRPC: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/callTask/oneOf/1',\n CallHTTP: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/callTask/oneOf/2',\n CallMCP: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/callTask/oneOf/5',\n CallOpenAPI: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/callTask/oneOf/3',\n CallTask: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/callTask',\n Catalog: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/catalog',\n CatchErrors:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/tryTask/allOf/1/properties/catch/properties/errors',\n ConstantBackoff:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/retryPolicy/properties/backoff/oneOf/0',\n Container:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/runTask/allOf/1/properties/run/oneOf/0/properties/container',\n ContainerArguments:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/runTask/allOf/1/properties/run/oneOf/0/properties/container/properties/arguments',\n ContainerEnvironment:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/runTask/allOf/1/properties/run/oneOf/0/properties/container/properties/environment',\n ContainerLifetime:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/runTask/allOf/1/properties/run/oneOf/0/properties/container/properties/lifetime',\n ContainerPorts:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/runTask/allOf/1/properties/run/oneOf/0/properties/container/properties/ports',\n ContainerVolumes:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/runTask/allOf/1/properties/run/oneOf/0/properties/container/properties/volumes',\n DigestAuthenticationPolicy:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/authenticationPolicy/oneOf/2',\n DigestAuthenticationPolicyConfiguration:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/authenticationPolicy/oneOf/2/properties/digest',\n DigestAuthenticationProperties:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/authenticationPolicy/oneOf/2/properties/digest/oneOf/0',\n Document: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/properties/document',\n DoTask: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/doTask',\n Duration: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/duration',\n DurationInline: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/duration/oneOf/0',\n EmitEventDefinition:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/emitTask/allOf/1/properties/emit/properties/event',\n EmitEventWith:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/emitTask/allOf/1/properties/emit/properties/event/properties/with',\n EmitTask: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/emitTask',\n EmitTaskConfiguration:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/emitTask/allOf/1/properties/emit',\n Endpoint: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/endpoint',\n EndpointConfiguration: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/endpoint/oneOf/2',\n EndpointUri: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/endpoint/oneOf/2/properties/uri',\n Error: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/error',\n ErrorDetails: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/error/properties/detail',\n ErrorFilter: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/errorFilter',\n ErrorInstance: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/error/properties/instance',\n ErrorTitle: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/error/properties/title',\n ErrorType: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/error/properties/type',\n EventConsumptionStrategy: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/eventConsumptionStrategy',\n EventData: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/eventProperties/properties/data',\n EventDataschema:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/eventProperties/properties/dataschema',\n EventFilter: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/eventFilter',\n EventFilterCorrelate:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/eventFilter/properties/correlate',\n EventSource: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/eventProperties/properties/source',\n EventTime: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/eventProperties/properties/time',\n ExponentialBackOff:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/retryPolicy/properties/backoff/oneOf/1',\n Export: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/export',\n ExportAs: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/export/properties/as',\n Extension: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/extension',\n ExtensionItem:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/properties/use/properties/extensions/items',\n ExternalResource: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/externalResource',\n ExternalScript:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/runTask/allOf/1/properties/run/oneOf/1/properties/script/oneOf/1',\n FlowDirective: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/flowDirective',\n ForkTask: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/forkTask',\n ForkTaskConfiguration:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/forkTask/allOf/1/properties/fork',\n ForTask: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/forTask',\n ForTaskConfiguration:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/forTask/allOf/1/properties/for',\n FunctionArguments:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/callTask/oneOf/6/allOf/1/properties/with',\n GRPCArguments:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/callTask/oneOf/1/allOf/1/properties/with',\n HTTPArguments:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/callTask/oneOf/2/allOf/1/properties/with',\n HTTPBody:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/callTask/oneOf/2/allOf/1/properties/with/properties/body',\n HTTPHeaders:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/callTask/oneOf/2/allOf/1/properties/with/properties/headers',\n HTTPQuery:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/callTask/oneOf/2/allOf/1/properties/with/properties/query',\n InlineScript:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/runTask/allOf/1/properties/run/oneOf/1/properties/script/oneOf/0',\n Input: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/properties/input',\n InputFrom: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/input/properties/from',\n LinearBackoff:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/retryPolicy/properties/backoff/oneOf/2',\n ListenTask: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/listenTask',\n ListenTaskConfiguration:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/listenTask/allOf/1/properties/listen',\n MCPArguments:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/callTask/oneOf/5/allOf/1/properties/with',\n McpCallTransport:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/callTask/oneOf/5/allOf/1/properties/with/properties/transport',\n McpClient:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/callTask/oneOf/5/allOf/1/properties/with/properties/client',\n McpMethodParameters:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/callTask/oneOf/5/allOf/1/properties/with/properties/parameters',\n OAuth2AuthenticationData:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/oauth2AuthenticationProperties',\n OAuth2AuthenticationDataAudiences:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/oauth2AuthenticationProperties/properties/audiences',\n OAuth2AuthenticationDataClient:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/oauth2AuthenticationProperties/properties/client',\n OAuth2AuthenticationDataScopes:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/oauth2AuthenticationProperties/properties/scopes',\n OAuth2AuthenticationPolicy:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/authenticationPolicy/oneOf/3',\n OAuth2AuthenticationPolicyConfiguration:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/authenticationPolicy/oneOf/3/properties/oauth2',\n OAuth2AuthenticationPropertiesEndpoints:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/authenticationPolicy/oneOf/3/properties/oauth2/oneOf/0/properties/endpoints',\n OAuth2ConnectAuthenticationProperties:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/authenticationPolicy/oneOf/3/properties/oauth2/oneOf/0',\n OAuth2Issuers:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/oauth2AuthenticationProperties/properties/issuers',\n OAuth2TokenDefinition: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/oauth2Token',\n OAuth2TokenRequest:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/oauth2AuthenticationProperties/properties/request',\n OneEventConsumptionStrategy:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/eventConsumptionStrategy/oneOf/2',\n OpenAPIArguments:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/callTask/oneOf/3/allOf/1/properties/with',\n OpenIdConnectAuthenticationPolicy:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/authenticationPolicy/oneOf/4',\n OpenIdConnectAuthenticationPolicyConfiguration:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/authenticationPolicy/oneOf/4/properties/oidc',\n OpenIdConnectAuthenticationProperties:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/authenticationPolicy/oneOf/4/properties/oidc/oneOf/0',\n Output: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/properties/output',\n OutputAs: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/output/properties/as',\n RaiseTask: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/raiseTask',\n RaiseTaskConfiguration:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/raiseTask/allOf/1/properties/raise',\n RaiseTaskError:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/raiseTask/allOf/1/properties/raise/properties/error',\n ReferenceableAuthenticationPolicy:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/referenceableAuthenticationPolicy',\n RetryBackoff: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/retryPolicy/properties/backoff',\n RetryLimit: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/retryPolicy/properties/limit',\n RetryLimitAttempt:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/retryPolicy/properties/limit/properties/attempt',\n RetryPolicy: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/retryPolicy',\n RetryPolicyJitter: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/retryPolicy/properties/jitter',\n RunContainer:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/runTask/allOf/1/properties/run/oneOf/0',\n RunScript: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/runTask/allOf/1/properties/run/oneOf/1',\n RunShell: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/runTask/allOf/1/properties/run/oneOf/2',\n RunTask: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/runTask',\n RunTaskConfiguration:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/runTask/allOf/1/properties/run',\n RuntimeExpression: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/runtimeExpression',\n RunWorkflow:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/runTask/allOf/1/properties/run/oneOf/3',\n Schedule: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/properties/schedule',\n Schema: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/schema',\n SchemaExternal: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/schema/oneOf/1',\n SchemaInline: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/schema/oneOf/0',\n Script:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/runTask/allOf/1/properties/run/oneOf/1/properties/script',\n SecretBasedAuthenticationPolicy:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/secretBasedAuthenticationPolicy',\n SetTask: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/setTask',\n SetTaskConfiguration:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/setTask/allOf/1/properties/set',\n Shell:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/runTask/allOf/1/properties/run/oneOf/2/properties/shell',\n ShellArguments:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/runTask/allOf/1/properties/run/oneOf/2/properties/shell/properties/arguments',\n ShellEnvironment:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/runTask/allOf/1/properties/run/oneOf/2/properties/shell/properties/environment',\n SubflowConfiguration:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/runTask/allOf/1/properties/run/oneOf/3/properties/workflow',\n SubflowInput:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/runTask/allOf/1/properties/run/oneOf/3/properties/workflow/properties/input',\n SubscriptionIterator: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/subscriptionIterator',\n SwitchCase:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/switchTask/allOf/1/properties/switch/items/additionalProperties',\n SwitchItem:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/switchTask/allOf/1/properties/switch/items',\n SwitchTask: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/switchTask',\n SwitchTaskConfiguration:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/switchTask/allOf/1/properties/switch',\n Task: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/task',\n TaskBase: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/taskBase',\n TaskBaseIf: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/taskBase/properties/if',\n TaskItem: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/taskList/items',\n TaskList: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/taskList',\n TaskMetadata: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/taskBase/properties/metadata',\n TaskTimeout: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/taskBase/properties/timeout',\n Timeout: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/timeout',\n TryTask: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/tryTask',\n TryTaskCatch: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/tryTask/allOf/1/properties/catch',\n TryTaskCatchRetry:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/tryTask/allOf/1/properties/catch/properties/retry',\n UriTemplate: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/uriTemplate',\n Use: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/properties/use',\n UseAuthentications:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/properties/use/properties/authentications',\n UseCatalogs: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/properties/use/properties/catalogs',\n UseErrors: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/properties/use/properties/errors',\n UseExtensions: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/properties/use/properties/extensions',\n UseFunctions: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/properties/use/properties/functions',\n UseRetries: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/properties/use/properties/retries',\n UseSecrets: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/properties/use/properties/secrets',\n UseTimeouts: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/properties/use/properties/timeouts',\n WaitTask: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/waitTask',\n WithA2AParameters:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/callTask/oneOf/4/allOf/1/properties/with/properties/parameters',\n WithEvent: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/eventFilter/properties/with',\n WithGRPCArguments:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/callTask/oneOf/1/allOf/1/properties/with/properties/arguments',\n WithGRPCService:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/callTask/oneOf/1/allOf/1/properties/with/properties/service',\n WithOpenAPIParameters:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/$defs/callTask/oneOf/3/allOf/1/properties/with/properties/parameters',\n WorkflowMetadata:\n 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/properties/document/properties/metadata',\n WorkflowTags: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/properties/document/properties/tags',\n WorkflowTimeout: 'https://serverlessworkflow.io/schemas/1.0.3/workflow.json#/properties/timeout',\n};\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * oUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\nimport Ajv, { ValidateFunction } from 'ajv/dist/2020.js';\nimport addFormats from 'ajv-formats';\nimport workflowSchema from './generated/schema/workflow.json';\nimport { validationPointers } from './generated/validation';\nimport { deepCopy } from './utils';\nimport { getLifecycleHooks } from './lifecycle-hooks';\nimport { Specification } from './generated/definitions';\n\nconst ajv = new Ajv({\n schemas: [workflowSchema],\n strict: false,\n});\naddFormats(ajv);\n\n/**\n * A Map of validation functions, where the key is the name of the schema to validate with\n */\nconst validators: Map<string, ValidateFunction> = new Map<string, ValidateFunction>(\n Object.entries(validationPointers).map(([typeName, jsonPointer]) => {\n if (!jsonPointer) throw new Error(`No JSON pointer provided for type '${typeName}'`);\n const validate = ajv.getSchema(jsonPointer);\n if (!validate) throw new Error(`Unable to find schema '${jsonPointer}' for type '${typeName}'`);\n return [typeName, validate as ValidateFunction];\n }),\n);\n\n/**\n * Validates the provided data or throws an error\n * @param typeName The data type to validate\n * @param data The data to validate\n * @param workflow A workflow instance, used for DSL level validation\n * @returns Throws if invalid\n */\nexport const validate = <T>(typeName: string, data: T, workflow?: Partial<Specification.Workflow>) => {\n getLifecycleHooks(typeName)?.preValidation?.(data, workflow);\n const validateFn: ValidateFunction | undefined = validators.get(typeName);\n if (!validateFn) {\n throw new Error(`Unable to find a validation function for '${typeName}'`);\n }\n // prevents possible data mutation and invalid \"additional properties\" from the classes like constructor/validate/normalize\n if (!validateFn(deepCopy(data))) {\n throw new Error(\n `'${typeName}' is invalid:\n${validateFn.errors?.reduce((acc, error) => acc + `- ${error.instancePath} | ${error.schemaPath} | ${error.message} | ${JSON.stringify(error.params)}\\n`, '') ?? ''}\n\ndata: ${JSON.stringify(data, null, 4)}`,\n );\n }\n getLifecycleHooks(typeName)?.postValidation?.(data, workflow);\n};\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the BasicAuthenticationPolicyConfiguration class and type\n */\nexport type BasicAuthenticationPolicyConfigurationIntersection = BasicAuthenticationPolicyConfiguration &\n Specification.BasicAuthenticationPolicyConfiguration;\n\n/**\n * Represents a constructor for the intersection of the BasicAuthenticationPolicyConfiguration class and type\n */\nexport interface BasicAuthenticationPolicyConfigurationConstructor {\n new (\n model?: Partial<Specification.BasicAuthenticationPolicyConfiguration>,\n ): BasicAuthenticationPolicyConfigurationIntersection;\n}\n\n/**\n * Represents a BasicAuthenticationPolicyConfiguration with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class BasicAuthenticationPolicyConfiguration extends ObjectHydrator<Specification.BasicAuthenticationPolicyConfiguration> {\n /**\n * Instanciates a new instance of the BasicAuthenticationPolicyConfiguration class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the BasicAuthenticationPolicyConfiguration.\n */\n constructor(model?: Partial<Specification.BasicAuthenticationPolicyConfiguration>) {\n super(model);\n\n getLifecycleHooks('BasicAuthenticationPolicyConfiguration')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the BasicAuthenticationPolicyConfiguration.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new BasicAuthenticationPolicyConfiguration(\n this as any,\n ) as BasicAuthenticationPolicyConfigurationIntersection;\n validate('BasicAuthenticationPolicyConfiguration', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the BasicAuthenticationPolicyConfiguration.\n * Creates a copy of the BasicAuthenticationPolicyConfiguration, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the BasicAuthenticationPolicyConfiguration instance.\n */\n normalize(): BasicAuthenticationPolicyConfiguration & Specification.BasicAuthenticationPolicyConfiguration {\n const copy = new BasicAuthenticationPolicyConfiguration(\n this as any,\n ) as BasicAuthenticationPolicyConfigurationIntersection;\n return getLifecycleHooks('BasicAuthenticationPolicyConfiguration')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _BasicAuthenticationPolicyConfiguration =\n BasicAuthenticationPolicyConfiguration as BasicAuthenticationPolicyConfigurationConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the BearerAuthenticationPolicyConfiguration class and type\n */\nexport type BearerAuthenticationPolicyConfigurationIntersection = BearerAuthenticationPolicyConfiguration &\n Specification.BearerAuthenticationPolicyConfiguration;\n\n/**\n * Represents a constructor for the intersection of the BearerAuthenticationPolicyConfiguration class and type\n */\nexport interface BearerAuthenticationPolicyConfigurationConstructor {\n new (\n model?: Partial<Specification.BearerAuthenticationPolicyConfiguration>,\n ): BearerAuthenticationPolicyConfigurationIntersection;\n}\n\n/**\n * Represents a BearerAuthenticationPolicyConfiguration with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class BearerAuthenticationPolicyConfiguration extends ObjectHydrator<Specification.BearerAuthenticationPolicyConfiguration> {\n /**\n * Instanciates a new instance of the BearerAuthenticationPolicyConfiguration class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the BearerAuthenticationPolicyConfiguration.\n */\n constructor(model?: Partial<Specification.BearerAuthenticationPolicyConfiguration>) {\n super(model);\n\n getLifecycleHooks('BearerAuthenticationPolicyConfiguration')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the BearerAuthenticationPolicyConfiguration.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new BearerAuthenticationPolicyConfiguration(\n this as any,\n ) as BearerAuthenticationPolicyConfigurationIntersection;\n validate('BearerAuthenticationPolicyConfiguration', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the BearerAuthenticationPolicyConfiguration.\n * Creates a copy of the BearerAuthenticationPolicyConfiguration, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the BearerAuthenticationPolicyConfiguration instance.\n */\n normalize(): BearerAuthenticationPolicyConfiguration & Specification.BearerAuthenticationPolicyConfiguration {\n const copy = new BearerAuthenticationPolicyConfiguration(\n this as any,\n ) as BearerAuthenticationPolicyConfigurationIntersection;\n return getLifecycleHooks('BearerAuthenticationPolicyConfiguration')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _BearerAuthenticationPolicyConfiguration =\n BearerAuthenticationPolicyConfiguration as BearerAuthenticationPolicyConfigurationConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the DigestAuthenticationPolicyConfiguration class and type\n */\nexport type DigestAuthenticationPolicyConfigurationIntersection = DigestAuthenticationPolicyConfiguration &\n Specification.DigestAuthenticationPolicyConfiguration;\n\n/**\n * Represents a constructor for the intersection of the DigestAuthenticationPolicyConfiguration class and type\n */\nexport interface DigestAuthenticationPolicyConfigurationConstructor {\n new (\n model?: Partial<Specification.DigestAuthenticationPolicyConfiguration>,\n ): DigestAuthenticationPolicyConfigurationIntersection;\n}\n\n/**\n * Represents a DigestAuthenticationPolicyConfiguration with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class DigestAuthenticationPolicyConfiguration extends ObjectHydrator<Specification.DigestAuthenticationPolicyConfiguration> {\n /**\n * Instanciates a new instance of the DigestAuthenticationPolicyConfiguration class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the DigestAuthenticationPolicyConfiguration.\n */\n constructor(model?: Partial<Specification.DigestAuthenticationPolicyConfiguration>) {\n super(model);\n\n getLifecycleHooks('DigestAuthenticationPolicyConfiguration')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the DigestAuthenticationPolicyConfiguration.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new DigestAuthenticationPolicyConfiguration(\n this as any,\n ) as DigestAuthenticationPolicyConfigurationIntersection;\n validate('DigestAuthenticationPolicyConfiguration', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the DigestAuthenticationPolicyConfiguration.\n * Creates a copy of the DigestAuthenticationPolicyConfiguration, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the DigestAuthenticationPolicyConfiguration instance.\n */\n normalize(): DigestAuthenticationPolicyConfiguration & Specification.DigestAuthenticationPolicyConfiguration {\n const copy = new DigestAuthenticationPolicyConfiguration(\n this as any,\n ) as DigestAuthenticationPolicyConfigurationIntersection;\n return getLifecycleHooks('DigestAuthenticationPolicyConfiguration')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _DigestAuthenticationPolicyConfiguration =\n DigestAuthenticationPolicyConfiguration as DigestAuthenticationPolicyConfigurationConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the OAuth2AuthenticationDataClient class and type\n */\nexport type OAuth2AuthenticationDataClientIntersection = OAuth2AuthenticationDataClient &\n Specification.OAuth2AuthenticationDataClient;\n\n/**\n * Represents a constructor for the intersection of the OAuth2AuthenticationDataClient class and type\n */\nexport interface OAuth2AuthenticationDataClientConstructor {\n new (model?: Partial<Specification.OAuth2AuthenticationDataClient>): OAuth2AuthenticationDataClientIntersection;\n}\n\n/**\n * Represents a OAuth2AuthenticationDataClient with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class OAuth2AuthenticationDataClient extends ObjectHydrator<Specification.OAuth2AuthenticationDataClient> {\n /**\n * Instanciates a new instance of the OAuth2AuthenticationDataClient class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the OAuth2AuthenticationDataClient.\n */\n constructor(model?: Partial<Specification.OAuth2AuthenticationDataClient>) {\n super(model);\n\n getLifecycleHooks('OAuth2AuthenticationDataClient')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the OAuth2AuthenticationDataClient.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new OAuth2AuthenticationDataClient(this as any) as OAuth2AuthenticationDataClientIntersection;\n validate('OAuth2AuthenticationDataClient', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the OAuth2AuthenticationDataClient.\n * Creates a copy of the OAuth2AuthenticationDataClient, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the OAuth2AuthenticationDataClient instance.\n */\n normalize(): OAuth2AuthenticationDataClient & Specification.OAuth2AuthenticationDataClient {\n const copy = new OAuth2AuthenticationDataClient(this as any) as OAuth2AuthenticationDataClientIntersection;\n return getLifecycleHooks('OAuth2AuthenticationDataClient')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _OAuth2AuthenticationDataClient =\n OAuth2AuthenticationDataClient as OAuth2AuthenticationDataClientConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the OAuth2TokenRequest class and type\n */\nexport type OAuth2TokenRequestIntersection = OAuth2TokenRequest & Specification.OAuth2TokenRequest;\n\n/**\n * Represents a constructor for the intersection of the OAuth2TokenRequest class and type\n */\nexport interface OAuth2TokenRequestConstructor {\n new (model?: Partial<Specification.OAuth2TokenRequest>): OAuth2TokenRequestIntersection;\n}\n\n/**\n * Represents a OAuth2TokenRequest with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class OAuth2TokenRequest extends ObjectHydrator<Specification.OAuth2TokenRequest> {\n /**\n * Instanciates a new instance of the OAuth2TokenRequest class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the OAuth2TokenRequest.\n */\n constructor(model?: Partial<Specification.OAuth2TokenRequest>) {\n super(model);\n\n getLifecycleHooks('OAuth2TokenRequest')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the OAuth2TokenRequest.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new OAuth2TokenRequest(this as any) as OAuth2TokenRequestIntersection;\n validate('OAuth2TokenRequest', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the OAuth2TokenRequest.\n * Creates a copy of the OAuth2TokenRequest, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the OAuth2TokenRequest instance.\n */\n normalize(): OAuth2TokenRequest & Specification.OAuth2TokenRequest {\n const copy = new OAuth2TokenRequest(this as any) as OAuth2TokenRequestIntersection;\n return getLifecycleHooks('OAuth2TokenRequest')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _OAuth2TokenRequest = OAuth2TokenRequest as OAuth2TokenRequestConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the OAuth2TokenDefinition class and type\n */\nexport type OAuth2TokenDefinitionIntersection = OAuth2TokenDefinition & Specification.OAuth2TokenDefinition;\n\n/**\n * Represents a constructor for the intersection of the OAuth2TokenDefinition class and type\n */\nexport interface OAuth2TokenDefinitionConstructor {\n new (model?: Partial<Specification.OAuth2TokenDefinition>): OAuth2TokenDefinitionIntersection;\n}\n\n/**\n * Represents a OAuth2TokenDefinition with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class OAuth2TokenDefinition extends ObjectHydrator<Specification.OAuth2TokenDefinition> {\n /**\n * Instanciates a new instance of the OAuth2TokenDefinition class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the OAuth2TokenDefinition.\n */\n constructor(model?: Partial<Specification.OAuth2TokenDefinition>) {\n super(model);\n\n getLifecycleHooks('OAuth2TokenDefinition')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the OAuth2TokenDefinition.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new OAuth2TokenDefinition(this as any) as OAuth2TokenDefinitionIntersection;\n validate('OAuth2TokenDefinition', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the OAuth2TokenDefinition.\n * Creates a copy of the OAuth2TokenDefinition, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the OAuth2TokenDefinition instance.\n */\n normalize(): OAuth2TokenDefinition & Specification.OAuth2TokenDefinition {\n const copy = new OAuth2TokenDefinition(this as any) as OAuth2TokenDefinitionIntersection;\n return getLifecycleHooks('OAuth2TokenDefinition')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _OAuth2TokenDefinition = OAuth2TokenDefinition as OAuth2TokenDefinitionConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the OAuth2AuthenticationPropertiesEndpoints class and type\n */\nexport type OAuth2AuthenticationPropertiesEndpointsIntersection = OAuth2AuthenticationPropertiesEndpoints &\n Specification.OAuth2AuthenticationPropertiesEndpoints;\n\n/**\n * Represents a constructor for the intersection of the OAuth2AuthenticationPropertiesEndpoints class and type\n */\nexport interface OAuth2AuthenticationPropertiesEndpointsConstructor {\n new (\n model?: Partial<Specification.OAuth2AuthenticationPropertiesEndpoints>,\n ): OAuth2AuthenticationPropertiesEndpointsIntersection;\n}\n\n/**\n * Represents a OAuth2AuthenticationPropertiesEndpoints with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class OAuth2AuthenticationPropertiesEndpoints extends ObjectHydrator<Specification.OAuth2AuthenticationPropertiesEndpoints> {\n /**\n * Instanciates a new instance of the OAuth2AuthenticationPropertiesEndpoints class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the OAuth2AuthenticationPropertiesEndpoints.\n */\n constructor(model?: Partial<Specification.OAuth2AuthenticationPropertiesEndpoints>) {\n super(model);\n\n getLifecycleHooks('OAuth2AuthenticationPropertiesEndpoints')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the OAuth2AuthenticationPropertiesEndpoints.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new OAuth2AuthenticationPropertiesEndpoints(\n this as any,\n ) as OAuth2AuthenticationPropertiesEndpointsIntersection;\n validate('OAuth2AuthenticationPropertiesEndpoints', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the OAuth2AuthenticationPropertiesEndpoints.\n * Creates a copy of the OAuth2AuthenticationPropertiesEndpoints, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the OAuth2AuthenticationPropertiesEndpoints instance.\n */\n normalize(): OAuth2AuthenticationPropertiesEndpoints & Specification.OAuth2AuthenticationPropertiesEndpoints {\n const copy = new OAuth2AuthenticationPropertiesEndpoints(\n this as any,\n ) as OAuth2AuthenticationPropertiesEndpointsIntersection;\n return getLifecycleHooks('OAuth2AuthenticationPropertiesEndpoints')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _OAuth2AuthenticationPropertiesEndpoints =\n OAuth2AuthenticationPropertiesEndpoints as OAuth2AuthenticationPropertiesEndpointsConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _OAuth2AuthenticationDataClient } from './oauth2-authentication-data-client';\nimport { _OAuth2TokenRequest } from './oauth2-token-request';\nimport { _OAuth2TokenDefinition } from './oauth2-token-definition';\nimport { _OAuth2AuthenticationPropertiesEndpoints } from './oauth2-authentication-properties-endpoints';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the OAuth2AuthenticationPolicyConfiguration class and type\n */\nexport type OAuth2AuthenticationPolicyConfigurationIntersection = OAuth2AuthenticationPolicyConfiguration &\n Specification.OAuth2AuthenticationPolicyConfiguration;\n\n/**\n * Represents a constructor for the intersection of the OAuth2AuthenticationPolicyConfiguration class and type\n */\nexport interface OAuth2AuthenticationPolicyConfigurationConstructor {\n new (\n model?: Partial<Specification.OAuth2AuthenticationPolicyConfiguration>,\n ): OAuth2AuthenticationPolicyConfigurationIntersection;\n}\n\n/**\n * Represents a OAuth2AuthenticationPolicyConfiguration with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class OAuth2AuthenticationPolicyConfiguration extends ObjectHydrator<Specification.OAuth2AuthenticationPolicyConfiguration> {\n /**\n * Instanciates a new instance of the OAuth2AuthenticationPolicyConfiguration class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the OAuth2AuthenticationPolicyConfiguration.\n */\n constructor(model?: Partial<Specification.OAuth2AuthenticationPolicyConfiguration>) {\n super(model);\n const self = this as unknown as Specification.OAuth2AuthenticationPolicyConfiguration & object;\n if (isObject(model)) {\n if (typeof (model as Specification.OAuth2AuthenticationData).client === 'object')\n (self as Specification.OAuth2AuthenticationData).client = new _OAuth2AuthenticationDataClient(\n (model as Specification.OAuth2AuthenticationData).client as Specification.OAuth2AuthenticationDataClient,\n );\n if (typeof (model as Specification.OAuth2AuthenticationData).request === 'object')\n (self as Specification.OAuth2AuthenticationData).request = new _OAuth2TokenRequest(\n (model as Specification.OAuth2AuthenticationData).request as Specification.OAuth2TokenRequest,\n );\n if (typeof (model as Specification.OAuth2AuthenticationData).subject === 'object')\n (self as Specification.OAuth2AuthenticationData).subject = new _OAuth2TokenDefinition(\n (model as Specification.OAuth2AuthenticationData).subject as Specification.OAuth2TokenDefinition,\n );\n if (typeof (model as Specification.OAuth2AuthenticationData).actor === 'object')\n (self as Specification.OAuth2AuthenticationData).actor = new _OAuth2TokenDefinition(\n (model as Specification.OAuth2AuthenticationData).actor as Specification.OAuth2TokenDefinition,\n );\n if (\n typeof (\n model as {\n [k: string]: unknown;\n endpoints?: Specification.OAuth2AuthenticationPropertiesEndpoints | undefined;\n }\n ).endpoints === 'object'\n )\n (\n self as {\n [k: string]: unknown;\n endpoints?: Specification.OAuth2AuthenticationPropertiesEndpoints | undefined;\n }\n ).endpoints = new _OAuth2AuthenticationPropertiesEndpoints(\n (\n model as {\n [k: string]: unknown;\n endpoints?: Specification.OAuth2AuthenticationPropertiesEndpoints | undefined;\n }\n ).endpoints as Specification.OAuth2AuthenticationPropertiesEndpoints,\n );\n }\n getLifecycleHooks('OAuth2AuthenticationPolicyConfiguration')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the OAuth2AuthenticationPolicyConfiguration.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new OAuth2AuthenticationPolicyConfiguration(\n this as any,\n ) as OAuth2AuthenticationPolicyConfigurationIntersection;\n validate('OAuth2AuthenticationPolicyConfiguration', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the OAuth2AuthenticationPolicyConfiguration.\n * Creates a copy of the OAuth2AuthenticationPolicyConfiguration, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the OAuth2AuthenticationPolicyConfiguration instance.\n */\n normalize(): OAuth2AuthenticationPolicyConfiguration & Specification.OAuth2AuthenticationPolicyConfiguration {\n const copy = new OAuth2AuthenticationPolicyConfiguration(\n this as any,\n ) as OAuth2AuthenticationPolicyConfigurationIntersection;\n return getLifecycleHooks('OAuth2AuthenticationPolicyConfiguration')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _OAuth2AuthenticationPolicyConfiguration =\n OAuth2AuthenticationPolicyConfiguration as OAuth2AuthenticationPolicyConfigurationConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _OAuth2AuthenticationDataClient } from './oauth2-authentication-data-client';\nimport { _OAuth2TokenRequest } from './oauth2-token-request';\nimport { _OAuth2TokenDefinition } from './oauth2-token-definition';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the OpenIdConnectAuthenticationPolicyConfiguration class and type\n */\nexport type OpenIdConnectAuthenticationPolicyConfigurationIntersection =\n OpenIdConnectAuthenticationPolicyConfiguration & Specification.OpenIdConnectAuthenticationPolicyConfiguration;\n\n/**\n * Represents a constructor for the intersection of the OpenIdConnectAuthenticationPolicyConfiguration class and type\n */\nexport interface OpenIdConnectAuthenticationPolicyConfigurationConstructor {\n new (\n model?: Partial<Specification.OpenIdConnectAuthenticationPolicyConfiguration>,\n ): OpenIdConnectAuthenticationPolicyConfigurationIntersection;\n}\n\n/**\n * Represents a OpenIdConnectAuthenticationPolicyConfiguration with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class OpenIdConnectAuthenticationPolicyConfiguration extends ObjectHydrator<Specification.OpenIdConnectAuthenticationPolicyConfiguration> {\n /**\n * Instanciates a new instance of the OpenIdConnectAuthenticationPolicyConfiguration class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the OpenIdConnectAuthenticationPolicyConfiguration.\n */\n constructor(model?: Partial<Specification.OpenIdConnectAuthenticationPolicyConfiguration>) {\n super(model);\n const self = this as unknown as Specification.OpenIdConnectAuthenticationPolicyConfiguration & object;\n if (isObject(model)) {\n if (typeof (model as Specification.OpenIdConnectAuthenticationProperties).client === 'object')\n (self as Specification.OpenIdConnectAuthenticationProperties).client = new _OAuth2AuthenticationDataClient(\n (model as Specification.OpenIdConnectAuthenticationProperties)\n .client as Specification.OAuth2AuthenticationDataClient,\n );\n if (typeof (model as Specification.OpenIdConnectAuthenticationProperties).request === 'object')\n (self as Specification.OpenIdConnectAuthenticationProperties).request = new _OAuth2TokenRequest(\n (model as Specification.OpenIdConnectAuthenticationProperties).request as Specification.OAuth2TokenRequest,\n );\n if (typeof (model as Specification.OpenIdConnectAuthenticationProperties).subject === 'object')\n (self as Specification.OpenIdConnectAuthenticationProperties).subject = new _OAuth2TokenDefinition(\n (model as Specification.OpenIdConnectAuthenticationProperties).subject as Specification.OAuth2TokenDefinition,\n );\n if (typeof (model as Specification.OpenIdConnectAuthenticationProperties).actor === 'object')\n (self as Specification.OpenIdConnectAuthenticationProperties).actor = new _OAuth2TokenDefinition(\n (model as Specification.OpenIdConnectAuthenticationProperties).actor as Specification.OAuth2TokenDefinition,\n );\n }\n getLifecycleHooks('OpenIdConnectAuthenticationPolicyConfiguration')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the OpenIdConnectAuthenticationPolicyConfiguration.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new OpenIdConnectAuthenticationPolicyConfiguration(\n this as any,\n ) as OpenIdConnectAuthenticationPolicyConfigurationIntersection;\n validate('OpenIdConnectAuthenticationPolicyConfiguration', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the OpenIdConnectAuthenticationPolicyConfiguration.\n * Creates a copy of the OpenIdConnectAuthenticationPolicyConfiguration, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the OpenIdConnectAuthenticationPolicyConfiguration instance.\n */\n normalize(): OpenIdConnectAuthenticationPolicyConfiguration &\n Specification.OpenIdConnectAuthenticationPolicyConfiguration {\n const copy = new OpenIdConnectAuthenticationPolicyConfiguration(\n this as any,\n ) as OpenIdConnectAuthenticationPolicyConfigurationIntersection;\n return getLifecycleHooks('OpenIdConnectAuthenticationPolicyConfiguration')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _OpenIdConnectAuthenticationPolicyConfiguration =\n OpenIdConnectAuthenticationPolicyConfiguration as OpenIdConnectAuthenticationPolicyConfigurationConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _BasicAuthenticationPolicyConfiguration } from './basic-authentication-policy-configuration';\nimport { _BearerAuthenticationPolicyConfiguration } from './bearer-authentication-policy-configuration';\nimport { _DigestAuthenticationPolicyConfiguration } from './digest-authentication-policy-configuration';\nimport { _OAuth2AuthenticationPolicyConfiguration } from './oauth2-authentication-policy-configuration';\nimport { _OpenIdConnectAuthenticationPolicyConfiguration } from './open-id-connect-authentication-policy-configuration';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the ReferenceableAuthenticationPolicy class and type\n */\nexport type ReferenceableAuthenticationPolicyIntersection = ReferenceableAuthenticationPolicy &\n Specification.ReferenceableAuthenticationPolicy;\n\n/**\n * Represents a constructor for the intersection of the ReferenceableAuthenticationPolicy class and type\n */\nexport interface ReferenceableAuthenticationPolicyConstructor {\n new (model?: Partial<Specification.ReferenceableAuthenticationPolicy>): ReferenceableAuthenticationPolicyIntersection;\n}\n\n/**\n * Represents a ReferenceableAuthenticationPolicy with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class ReferenceableAuthenticationPolicy extends ObjectHydrator<Specification.ReferenceableAuthenticationPolicy> {\n /**\n * Instanciates a new instance of the ReferenceableAuthenticationPolicy class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the ReferenceableAuthenticationPolicy.\n */\n constructor(model?: Partial<Specification.ReferenceableAuthenticationPolicy>) {\n super(model);\n const self = this as unknown as Specification.ReferenceableAuthenticationPolicy & object;\n if (isObject(model)) {\n if (typeof (model as Specification.BasicAuthenticationPolicy).basic === 'object')\n (self as Specification.BasicAuthenticationPolicy).basic = new _BasicAuthenticationPolicyConfiguration(\n (model as Specification.BasicAuthenticationPolicy)\n .basic as Specification.BasicAuthenticationPolicyConfiguration,\n );\n if (typeof (model as Specification.BearerAuthenticationPolicy).bearer === 'object')\n (self as Specification.BearerAuthenticationPolicy).bearer = new _BearerAuthenticationPolicyConfiguration(\n (model as Specification.BearerAuthenticationPolicy)\n .bearer as Specification.BearerAuthenticationPolicyConfiguration,\n );\n if (typeof (model as Specification.DigestAuthenticationPolicy).digest === 'object')\n (self as Specification.DigestAuthenticationPolicy).digest = new _DigestAuthenticationPolicyConfiguration(\n (model as Specification.DigestAuthenticationPolicy)\n .digest as Specification.DigestAuthenticationPolicyConfiguration,\n );\n if (typeof (model as Specification.OAuth2AuthenticationPolicy).oauth2 === 'object')\n (self as Specification.OAuth2AuthenticationPolicy).oauth2 = new _OAuth2AuthenticationPolicyConfiguration(\n (model as Specification.OAuth2AuthenticationPolicy)\n .oauth2 as Specification.OAuth2AuthenticationPolicyConfiguration,\n );\n if (typeof (model as Specification.OpenIdConnectAuthenticationPolicy).oidc === 'object')\n (self as Specification.OpenIdConnectAuthenticationPolicy).oidc =\n new _OpenIdConnectAuthenticationPolicyConfiguration(\n (model as Specification.OpenIdConnectAuthenticationPolicy)\n .oidc as Specification.OpenIdConnectAuthenticationPolicyConfiguration,\n );\n }\n getLifecycleHooks('ReferenceableAuthenticationPolicy')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the ReferenceableAuthenticationPolicy.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new ReferenceableAuthenticationPolicy(this as any) as ReferenceableAuthenticationPolicyIntersection;\n validate('ReferenceableAuthenticationPolicy', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the ReferenceableAuthenticationPolicy.\n * Creates a copy of the ReferenceableAuthenticationPolicy, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the ReferenceableAuthenticationPolicy instance.\n */\n normalize(): ReferenceableAuthenticationPolicy & Specification.ReferenceableAuthenticationPolicy {\n const copy = new ReferenceableAuthenticationPolicy(this as any) as ReferenceableAuthenticationPolicyIntersection;\n return getLifecycleHooks('ReferenceableAuthenticationPolicy')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _ReferenceableAuthenticationPolicy =\n ReferenceableAuthenticationPolicy as ReferenceableAuthenticationPolicyConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _ReferenceableAuthenticationPolicy } from './referenceable-authentication-policy';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the Endpoint class and type\n */\nexport type EndpointIntersection = Endpoint & Specification.Endpoint;\n\n/**\n * Represents a constructor for the intersection of the Endpoint class and type\n */\nexport interface EndpointConstructor {\n new (model?: Partial<Specification.Endpoint>): EndpointIntersection;\n}\n\n/**\n * Represents a Endpoint with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class Endpoint extends ObjectHydrator<Specification.Endpoint> {\n /**\n * Instanciates a new instance of the Endpoint class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the Endpoint.\n */\n constructor(model?: Partial<Specification.Endpoint>) {\n super(model);\n const self = this as unknown as Specification.Endpoint & object;\n if (isObject(model)) {\n if (typeof (model as Specification.EndpointConfiguration).authentication === 'object')\n (self as Specification.EndpointConfiguration).authentication = new _ReferenceableAuthenticationPolicy(\n (model as Specification.EndpointConfiguration)\n .authentication as Specification.ReferenceableAuthenticationPolicy,\n );\n }\n getLifecycleHooks('Endpoint')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the Endpoint.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new Endpoint(this as any) as EndpointIntersection;\n validate('Endpoint', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the Endpoint.\n * Creates a copy of the Endpoint, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the Endpoint instance.\n */\n normalize(): Endpoint & Specification.Endpoint {\n const copy = new Endpoint(this as any) as EndpointIntersection;\n return getLifecycleHooks('Endpoint')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _Endpoint = Endpoint as EndpointConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _Endpoint } from './endpoint';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the ExternalResource class and type\n */\nexport type ExternalResourceIntersection = ExternalResource & Specification.ExternalResource;\n\n/**\n * Represents a constructor for the intersection of the ExternalResource class and type\n */\nexport interface ExternalResourceConstructor {\n new (model?: Partial<Specification.ExternalResource>): ExternalResourceIntersection;\n}\n\n/**\n * Represents a ExternalResource with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class ExternalResource extends ObjectHydrator<Specification.ExternalResource> {\n /**\n * Instanciates a new instance of the ExternalResource class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the ExternalResource.\n */\n constructor(model?: Partial<Specification.ExternalResource>) {\n super(model);\n const self = this as unknown as Specification.ExternalResource & object;\n if (isObject(model)) {\n if (typeof model.endpoint === 'object') self.endpoint = new _Endpoint(model.endpoint);\n }\n getLifecycleHooks('ExternalResource')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the ExternalResource.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new ExternalResource(this as any) as ExternalResourceIntersection;\n validate('ExternalResource', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the ExternalResource.\n * Creates a copy of the ExternalResource, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the ExternalResource instance.\n */\n normalize(): ExternalResource & Specification.ExternalResource {\n const copy = new ExternalResource(this as any) as ExternalResourceIntersection;\n return getLifecycleHooks('ExternalResource')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _ExternalResource = ExternalResource as ExternalResourceConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _ExternalResource } from './external-resource';\nimport { _Endpoint } from './endpoint';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the A2AArguments class and type\n */\nexport type A2AArgumentsIntersection = A2AArguments & Specification.A2AArguments;\n\n/**\n * Represents a constructor for the intersection of the A2AArguments class and type\n */\nexport interface A2AArgumentsConstructor {\n new (model?: Partial<Specification.A2AArguments>): A2AArgumentsIntersection;\n}\n\n/**\n * Represents a A2AArguments with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class A2AArguments extends ObjectHydrator<Specification.A2AArguments> {\n /**\n * Instanciates a new instance of the A2AArguments class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the A2AArguments.\n */\n constructor(model?: Partial<Specification.A2AArguments>) {\n super(model);\n const self = this as unknown as Specification.A2AArguments & object;\n if (isObject(model)) {\n if (typeof model.agentCard === 'object') self.agentCard = new _ExternalResource(model.agentCard);\n if (typeof model.server === 'object') self.server = new _Endpoint(model.server);\n }\n getLifecycleHooks('A2AArguments')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the A2AArguments.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new A2AArguments(this as any) as A2AArgumentsIntersection;\n validate('A2AArguments', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the A2AArguments.\n * Creates a copy of the A2AArguments, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the A2AArguments instance.\n */\n normalize(): A2AArguments & Specification.A2AArguments {\n const copy = new A2AArguments(this as any) as A2AArgumentsIntersection;\n return getLifecycleHooks('A2AArguments')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _A2AArguments = A2AArguments as A2AArgumentsConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the WithEvent class and type\n */\nexport type WithEventIntersection = WithEvent & Specification.WithEvent;\n\n/**\n * Represents a constructor for the intersection of the WithEvent class and type\n */\nexport interface WithEventConstructor {\n new (model?: Partial<Specification.WithEvent>): WithEventIntersection;\n}\n\n/**\n * Represents a WithEvent with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class WithEvent extends ObjectHydrator<Specification.WithEvent> {\n /**\n * Instanciates a new instance of the WithEvent class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the WithEvent.\n */\n constructor(model?: Partial<Specification.WithEvent>) {\n super(model);\n\n getLifecycleHooks('WithEvent')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the WithEvent.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new WithEvent(this as any) as WithEventIntersection;\n validate('WithEvent', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the WithEvent.\n * Creates a copy of the WithEvent, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the WithEvent instance.\n */\n normalize(): WithEvent & Specification.WithEvent {\n const copy = new WithEvent(this as any) as WithEventIntersection;\n return getLifecycleHooks('WithEvent')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _WithEvent = WithEvent as WithEventConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the EventFilterCorrelate class and type\n */\nexport type EventFilterCorrelateIntersection = EventFilterCorrelate & Specification.EventFilterCorrelate;\n\n/**\n * Represents a constructor for the intersection of the EventFilterCorrelate class and type\n */\nexport interface EventFilterCorrelateConstructor {\n new (model?: Partial<Specification.EventFilterCorrelate>): EventFilterCorrelateIntersection;\n}\n\n/**\n * Represents a EventFilterCorrelate with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class EventFilterCorrelate extends ObjectHydrator<Specification.EventFilterCorrelate> {\n /**\n * Instanciates a new instance of the EventFilterCorrelate class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the EventFilterCorrelate.\n */\n constructor(model?: Partial<Specification.EventFilterCorrelate>) {\n super(model);\n\n getLifecycleHooks('EventFilterCorrelate')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the EventFilterCorrelate.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new EventFilterCorrelate(this as any) as EventFilterCorrelateIntersection;\n validate('EventFilterCorrelate', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the EventFilterCorrelate.\n * Creates a copy of the EventFilterCorrelate, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the EventFilterCorrelate instance.\n */\n normalize(): EventFilterCorrelate & Specification.EventFilterCorrelate {\n const copy = new EventFilterCorrelate(this as any) as EventFilterCorrelateIntersection;\n return getLifecycleHooks('EventFilterCorrelate')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _EventFilterCorrelate = EventFilterCorrelate as EventFilterCorrelateConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _WithEvent } from './with-event';\nimport { _EventFilterCorrelate } from './event-filter-correlate';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the EventFilter class and type\n */\nexport type EventFilterIntersection = EventFilter & Specification.EventFilter;\n\n/**\n * Represents a constructor for the intersection of the EventFilter class and type\n */\nexport interface EventFilterConstructor {\n new (model?: Partial<Specification.EventFilter>): EventFilterIntersection;\n}\n\n/**\n * Represents a EventFilter with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class EventFilter extends ObjectHydrator<Specification.EventFilter> {\n /**\n * Instanciates a new instance of the EventFilter class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the EventFilter.\n */\n constructor(model?: Partial<Specification.EventFilter>) {\n super(model);\n const self = this as unknown as Specification.EventFilter & object;\n if (isObject(model)) {\n if (typeof model.with === 'object') self.with = new _WithEvent(model.with);\n if (typeof model.correlate === 'object') self.correlate = new _EventFilterCorrelate(model.correlate);\n }\n getLifecycleHooks('EventFilter')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the EventFilter.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new EventFilter(this as any) as EventFilterIntersection;\n validate('EventFilter', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the EventFilter.\n * Creates a copy of the EventFilter, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the EventFilter instance.\n */\n normalize(): EventFilter & Specification.EventFilter {\n const copy = new EventFilter(this as any) as EventFilterIntersection;\n return getLifecycleHooks('EventFilter')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _EventFilter = EventFilter as EventFilterConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _EventFilter } from './event-filter';\nimport { Specification } from '../definitions';\nimport { ArrayHydrator } from '../../hydrator';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the AllEventConsumptionStrategyConfiguration class and type\n */\nexport type AllEventConsumptionStrategyConfigurationIntersection = AllEventConsumptionStrategyConfiguration &\n Specification.AllEventConsumptionStrategyConfiguration;\n\n/**\n * Represents a constructor for the intersection of the AllEventConsumptionStrategyConfiguration class and type\n */\nexport interface AllEventConsumptionStrategyConfigurationConstructor {\n new (model?: Array<Specification.EventFilter> | number): AllEventConsumptionStrategyConfigurationIntersection;\n}\n\n/**\n * Represents a collection of Specification.EventFilter.\n * Inherits from ArrayHydrator to handle array-specific hydration.\n */\nexport class AllEventConsumptionStrategyConfiguration extends ArrayHydrator<Specification.EventFilter> {\n /**\n * Constructs a new instance of the AllEventConsumptionStrategyConfiguration class.\n *\n * @param model - Optional parameter which can be an array of objects or a number representing the array length.\n */\n constructor(model?: Array<Specification.EventFilter> | number) {\n super(model);\n if (Array.isArray(model)) {\n if (model?.length) {\n this.splice(0, this.length);\n model.forEach((item) => this.push(new _EventFilter(item)));\n }\n }\n Object.setPrototypeOf(this, Object.create(AllEventConsumptionStrategyConfiguration.prototype));\n getLifecycleHooks('AllEventConsumptionStrategyConfiguration')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the AllEventConsumptionStrategyConfiguration.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new AllEventConsumptionStrategyConfiguration(this);\n validate('AllEventConsumptionStrategyConfiguration', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the AllEventConsumptionStrategyConfiguration.\n * Creates a copy of the AllEventConsumptionStrategyConfiguration, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the AllEventConsumptionStrategyConfiguration instance.\n */\n normalize(): AllEventConsumptionStrategyConfiguration {\n const copy = new AllEventConsumptionStrategyConfiguration(this);\n return getLifecycleHooks('AllEventConsumptionStrategyConfiguration')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _AllEventConsumptionStrategyConfiguration =\n AllEventConsumptionStrategyConfiguration as unknown as AllEventConsumptionStrategyConfigurationConstructor;\n//export const _AllEventConsumptionStrategyConfiguration = AllEventConsumptionStrategyConfiguration; // could be exported directly, but it makes the job of building the index more straightforward as it's consistant with \"object\" classes\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _AllEventConsumptionStrategyConfiguration } from './all-event-consumption-strategy-configuration';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the AllEventConsumptionStrategy class and type\n */\nexport type AllEventConsumptionStrategyIntersection = AllEventConsumptionStrategy &\n Specification.AllEventConsumptionStrategy;\n\n/**\n * Represents a constructor for the intersection of the AllEventConsumptionStrategy class and type\n */\nexport interface AllEventConsumptionStrategyConstructor {\n new (model?: Partial<Specification.AllEventConsumptionStrategy>): AllEventConsumptionStrategyIntersection;\n}\n\n/**\n * Represents a AllEventConsumptionStrategy with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class AllEventConsumptionStrategy extends ObjectHydrator<Specification.AllEventConsumptionStrategy> {\n /**\n * Instanciates a new instance of the AllEventConsumptionStrategy class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the AllEventConsumptionStrategy.\n */\n constructor(model?: Partial<Specification.AllEventConsumptionStrategy>) {\n super(model);\n const self = this as unknown as Specification.AllEventConsumptionStrategy & object;\n if (isObject(model)) {\n if (typeof model.all === 'object') self.all = new _AllEventConsumptionStrategyConfiguration(model.all);\n }\n getLifecycleHooks('AllEventConsumptionStrategy')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the AllEventConsumptionStrategy.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new AllEventConsumptionStrategy(this as any) as AllEventConsumptionStrategyIntersection;\n validate('AllEventConsumptionStrategy', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the AllEventConsumptionStrategy.\n * Creates a copy of the AllEventConsumptionStrategy, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the AllEventConsumptionStrategy instance.\n */\n normalize(): AllEventConsumptionStrategy & Specification.AllEventConsumptionStrategy {\n const copy = new AllEventConsumptionStrategy(this as any) as AllEventConsumptionStrategyIntersection;\n return getLifecycleHooks('AllEventConsumptionStrategy')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _AllEventConsumptionStrategy = AllEventConsumptionStrategy as AllEventConsumptionStrategyConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _EventFilter } from './event-filter';\nimport { Specification } from '../definitions';\nimport { ArrayHydrator } from '../../hydrator';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the AnyEventConsumptionStrategyConfiguration class and type\n */\nexport type AnyEventConsumptionStrategyConfigurationIntersection = AnyEventConsumptionStrategyConfiguration &\n Specification.AnyEventConsumptionStrategyConfiguration;\n\n/**\n * Represents a constructor for the intersection of the AnyEventConsumptionStrategyConfiguration class and type\n */\nexport interface AnyEventConsumptionStrategyConfigurationConstructor {\n new (model?: Array<Specification.EventFilter> | number): AnyEventConsumptionStrategyConfigurationIntersection;\n}\n\n/**\n * Represents a collection of Specification.EventFilter.\n * Inherits from ArrayHydrator to handle array-specific hydration.\n */\nexport class AnyEventConsumptionStrategyConfiguration extends ArrayHydrator<Specification.EventFilter> {\n /**\n * Constructs a new instance of the AnyEventConsumptionStrategyConfiguration class.\n *\n * @param model - Optional parameter which can be an array of objects or a number representing the array length.\n */\n constructor(model?: Array<Specification.EventFilter> | number) {\n super(model);\n if (Array.isArray(model)) {\n if (model?.length) {\n this.splice(0, this.length);\n model.forEach((item) => this.push(new _EventFilter(item)));\n }\n }\n Object.setPrototypeOf(this, Object.create(AnyEventConsumptionStrategyConfiguration.prototype));\n getLifecycleHooks('AnyEventConsumptionStrategyConfiguration')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the AnyEventConsumptionStrategyConfiguration.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new AnyEventConsumptionStrategyConfiguration(this);\n validate('AnyEventConsumptionStrategyConfiguration', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the AnyEventConsumptionStrategyConfiguration.\n * Creates a copy of the AnyEventConsumptionStrategyConfiguration, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the AnyEventConsumptionStrategyConfiguration instance.\n */\n normalize(): AnyEventConsumptionStrategyConfiguration {\n const copy = new AnyEventConsumptionStrategyConfiguration(this);\n return getLifecycleHooks('AnyEventConsumptionStrategyConfiguration')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _AnyEventConsumptionStrategyConfiguration =\n AnyEventConsumptionStrategyConfiguration as unknown as AnyEventConsumptionStrategyConfigurationConstructor;\n//export const _AnyEventConsumptionStrategyConfiguration = AnyEventConsumptionStrategyConfiguration; // could be exported directly, but it makes the job of building the index more straightforward as it's consistant with \"object\" classes\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _AllEventConsumptionStrategyConfiguration } from './all-event-consumption-strategy-configuration';\nimport { _AnyEventConsumptionStrategyConfiguration } from './any-event-consumption-strategy-configuration';\nimport { _EventFilter } from './event-filter';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the AnyEventConsumptionStrategyUntil class and type\n */\nexport type AnyEventConsumptionStrategyUntilIntersection = AnyEventConsumptionStrategyUntil &\n Specification.AnyEventConsumptionStrategyUntil;\n\n/**\n * Represents a constructor for the intersection of the AnyEventConsumptionStrategyUntil class and type\n */\nexport interface AnyEventConsumptionStrategyUntilConstructor {\n new (model?: Partial<Specification.AnyEventConsumptionStrategyUntil>): AnyEventConsumptionStrategyUntilIntersection;\n}\n\n/**\n * Represents a AnyEventConsumptionStrategyUntil with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class AnyEventConsumptionStrategyUntil extends ObjectHydrator<Specification.AnyEventConsumptionStrategyUntil> {\n /**\n * Instanciates a new instance of the AnyEventConsumptionStrategyUntil class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the AnyEventConsumptionStrategyUntil.\n */\n constructor(model?: Partial<Specification.AnyEventConsumptionStrategyUntil>) {\n super(model);\n const self = this as unknown as Specification.AnyEventConsumptionStrategyUntil & object;\n if (isObject(model)) {\n if (typeof (model as Specification.AllEventConsumptionStrategy).all === 'object')\n (self as Specification.AllEventConsumptionStrategy).all = new _AllEventConsumptionStrategyConfiguration(\n (model as Specification.AllEventConsumptionStrategy)\n .all as Specification.AllEventConsumptionStrategyConfiguration,\n );\n if (typeof (model as Specification.AnyEventConsumptionStrategy).any === 'object')\n (self as Specification.AnyEventConsumptionStrategy).any = new _AnyEventConsumptionStrategyConfiguration(\n (model as Specification.AnyEventConsumptionStrategy)\n .any as Specification.AnyEventConsumptionStrategyConfiguration,\n );\n if (typeof (model as Specification.OneEventConsumptionStrategy).one === 'object')\n (self as Specification.OneEventConsumptionStrategy).one = new _EventFilter(\n (model as Specification.OneEventConsumptionStrategy).one as Specification.EventFilter,\n );\n }\n getLifecycleHooks('AnyEventConsumptionStrategyUntil')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the AnyEventConsumptionStrategyUntil.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new AnyEventConsumptionStrategyUntil(this as any) as AnyEventConsumptionStrategyUntilIntersection;\n validate('AnyEventConsumptionStrategyUntil', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the AnyEventConsumptionStrategyUntil.\n * Creates a copy of the AnyEventConsumptionStrategyUntil, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the AnyEventConsumptionStrategyUntil instance.\n */\n normalize(): AnyEventConsumptionStrategyUntil & Specification.AnyEventConsumptionStrategyUntil {\n const copy = new AnyEventConsumptionStrategyUntil(this as any) as AnyEventConsumptionStrategyUntilIntersection;\n return getLifecycleHooks('AnyEventConsumptionStrategyUntil')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _AnyEventConsumptionStrategyUntil =\n AnyEventConsumptionStrategyUntil as AnyEventConsumptionStrategyUntilConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _AnyEventConsumptionStrategyConfiguration } from './any-event-consumption-strategy-configuration';\nimport { _AnyEventConsumptionStrategyUntil } from './any-event-consumption-strategy-until';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the AnyEventConsumptionStrategy class and type\n */\nexport type AnyEventConsumptionStrategyIntersection = AnyEventConsumptionStrategy &\n Specification.AnyEventConsumptionStrategy;\n\n/**\n * Represents a constructor for the intersection of the AnyEventConsumptionStrategy class and type\n */\nexport interface AnyEventConsumptionStrategyConstructor {\n new (model?: Partial<Specification.AnyEventConsumptionStrategy>): AnyEventConsumptionStrategyIntersection;\n}\n\n/**\n * Represents a AnyEventConsumptionStrategy with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class AnyEventConsumptionStrategy extends ObjectHydrator<Specification.AnyEventConsumptionStrategy> {\n /**\n * Instanciates a new instance of the AnyEventConsumptionStrategy class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the AnyEventConsumptionStrategy.\n */\n constructor(model?: Partial<Specification.AnyEventConsumptionStrategy>) {\n super(model);\n const self = this as unknown as Specification.AnyEventConsumptionStrategy & object;\n if (isObject(model)) {\n if (typeof model.any === 'object') self.any = new _AnyEventConsumptionStrategyConfiguration(model.any);\n if (typeof model.until === 'object') self.until = new _AnyEventConsumptionStrategyUntil(model.until);\n }\n getLifecycleHooks('AnyEventConsumptionStrategy')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the AnyEventConsumptionStrategy.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new AnyEventConsumptionStrategy(this as any) as AnyEventConsumptionStrategyIntersection;\n validate('AnyEventConsumptionStrategy', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the AnyEventConsumptionStrategy.\n * Creates a copy of the AnyEventConsumptionStrategy, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the AnyEventConsumptionStrategy instance.\n */\n normalize(): AnyEventConsumptionStrategy & Specification.AnyEventConsumptionStrategy {\n const copy = new AnyEventConsumptionStrategy(this as any) as AnyEventConsumptionStrategyIntersection;\n return getLifecycleHooks('AnyEventConsumptionStrategy')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _AnyEventConsumptionStrategy = AnyEventConsumptionStrategy as AnyEventConsumptionStrategyConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _AllEventConsumptionStrategyConfiguration } from './all-event-consumption-strategy-configuration';\nimport { _AnyEventConsumptionStrategyConfiguration } from './any-event-consumption-strategy-configuration';\nimport { _EventFilter } from './event-filter';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the AnyEventUntilConsumed class and type\n */\nexport type AnyEventUntilConsumedIntersection = AnyEventUntilConsumed & Specification.AnyEventUntilConsumed;\n\n/**\n * Represents a constructor for the intersection of the AnyEventUntilConsumed class and type\n */\nexport interface AnyEventUntilConsumedConstructor {\n new (model?: Partial<Specification.AnyEventUntilConsumed>): AnyEventUntilConsumedIntersection;\n}\n\n/**\n * Represents a AnyEventUntilConsumed with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class AnyEventUntilConsumed extends ObjectHydrator<Specification.AnyEventUntilConsumed> {\n /**\n * Instanciates a new instance of the AnyEventUntilConsumed class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the AnyEventUntilConsumed.\n */\n constructor(model?: Partial<Specification.AnyEventUntilConsumed>) {\n super(model);\n const self = this as unknown as Specification.AnyEventUntilConsumed & object;\n if (isObject(model)) {\n if (typeof (model as Specification.AllEventConsumptionStrategy).all === 'object')\n (self as Specification.AllEventConsumptionStrategy).all = new _AllEventConsumptionStrategyConfiguration(\n (model as Specification.AllEventConsumptionStrategy)\n .all as Specification.AllEventConsumptionStrategyConfiguration,\n );\n if (typeof (model as Specification.AnyEventConsumptionStrategy).any === 'object')\n (self as Specification.AnyEventConsumptionStrategy).any = new _AnyEventConsumptionStrategyConfiguration(\n (model as Specification.AnyEventConsumptionStrategy)\n .any as Specification.AnyEventConsumptionStrategyConfiguration,\n );\n if (typeof (model as Specification.OneEventConsumptionStrategy).one === 'object')\n (self as Specification.OneEventConsumptionStrategy).one = new _EventFilter(\n (model as Specification.OneEventConsumptionStrategy).one as Specification.EventFilter,\n );\n }\n getLifecycleHooks('AnyEventUntilConsumed')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the AnyEventUntilConsumed.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new AnyEventUntilConsumed(this as any) as AnyEventUntilConsumedIntersection;\n validate('AnyEventUntilConsumed', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the AnyEventUntilConsumed.\n * Creates a copy of the AnyEventUntilConsumed, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the AnyEventUntilConsumed instance.\n */\n normalize(): AnyEventUntilConsumed & Specification.AnyEventUntilConsumed {\n const copy = new AnyEventUntilConsumed(this as any) as AnyEventUntilConsumedIntersection;\n return getLifecycleHooks('AnyEventUntilConsumed')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _AnyEventUntilConsumed = AnyEventUntilConsumed as AnyEventUntilConsumedConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the AsyncApiArguments class and type\n */\nexport type AsyncApiArgumentsIntersection = AsyncApiArguments & Specification.AsyncApiArguments;\n\n/**\n * Represents a constructor for the intersection of the AsyncApiArguments class and type\n */\nexport interface AsyncApiArgumentsConstructor {\n new (model?: Partial<Specification.AsyncApiArguments>): AsyncApiArgumentsIntersection;\n}\n\n/**\n * Represents a AsyncApiArguments with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class AsyncApiArguments extends ObjectHydrator<Specification.AsyncApiArguments> {\n /**\n * Instanciates a new instance of the AsyncApiArguments class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the AsyncApiArguments.\n */\n constructor(model?: Partial<Specification.AsyncApiArguments>) {\n super(model);\n\n getLifecycleHooks('AsyncApiArguments')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the AsyncApiArguments.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new AsyncApiArguments(this as any) as AsyncApiArgumentsIntersection;\n validate('AsyncApiArguments', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the AsyncApiArguments.\n * Creates a copy of the AsyncApiArguments, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the AsyncApiArguments instance.\n */\n normalize(): AsyncApiArguments & Specification.AsyncApiArguments {\n const copy = new AsyncApiArguments(this as any) as AsyncApiArgumentsIntersection;\n return getLifecycleHooks('AsyncApiArguments')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _AsyncApiArguments = AsyncApiArguments as AsyncApiArgumentsConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _BasicAuthenticationPolicyConfiguration } from './basic-authentication-policy-configuration';\nimport { _BearerAuthenticationPolicyConfiguration } from './bearer-authentication-policy-configuration';\nimport { _DigestAuthenticationPolicyConfiguration } from './digest-authentication-policy-configuration';\nimport { _OAuth2AuthenticationPolicyConfiguration } from './oauth2-authentication-policy-configuration';\nimport { _OpenIdConnectAuthenticationPolicyConfiguration } from './open-id-connect-authentication-policy-configuration';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the AuthenticationPolicy class and type\n */\nexport type AuthenticationPolicyIntersection = AuthenticationPolicy & Specification.AuthenticationPolicy;\n\n/**\n * Represents a constructor for the intersection of the AuthenticationPolicy class and type\n */\nexport interface AuthenticationPolicyConstructor {\n new (model?: Partial<Specification.AuthenticationPolicy>): AuthenticationPolicyIntersection;\n}\n\n/**\n * Represents a AuthenticationPolicy with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class AuthenticationPolicy extends ObjectHydrator<Specification.AuthenticationPolicy> {\n /**\n * Instanciates a new instance of the AuthenticationPolicy class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the AuthenticationPolicy.\n */\n constructor(model?: Partial<Specification.AuthenticationPolicy>) {\n super(model);\n const self = this as unknown as Specification.AuthenticationPolicy & object;\n if (isObject(model)) {\n if (typeof (model as Specification.BasicAuthenticationPolicy).basic === 'object')\n (self as Specification.BasicAuthenticationPolicy).basic = new _BasicAuthenticationPolicyConfiguration(\n (model as Specification.BasicAuthenticationPolicy)\n .basic as Specification.BasicAuthenticationPolicyConfiguration,\n );\n if (typeof (model as Specification.BearerAuthenticationPolicy).bearer === 'object')\n (self as Specification.BearerAuthenticationPolicy).bearer = new _BearerAuthenticationPolicyConfiguration(\n (model as Specification.BearerAuthenticationPolicy)\n .bearer as Specification.BearerAuthenticationPolicyConfiguration,\n );\n if (typeof (model as Specification.DigestAuthenticationPolicy).digest === 'object')\n (self as Specification.DigestAuthenticationPolicy).digest = new _DigestAuthenticationPolicyConfiguration(\n (model as Specification.DigestAuthenticationPolicy)\n .digest as Specification.DigestAuthenticationPolicyConfiguration,\n );\n if (typeof (model as Specification.OAuth2AuthenticationPolicy).oauth2 === 'object')\n (self as Specification.OAuth2AuthenticationPolicy).oauth2 = new _OAuth2AuthenticationPolicyConfiguration(\n (model as Specification.OAuth2AuthenticationPolicy)\n .oauth2 as Specification.OAuth2AuthenticationPolicyConfiguration,\n );\n if (typeof (model as Specification.OpenIdConnectAuthenticationPolicy).oidc === 'object')\n (self as Specification.OpenIdConnectAuthenticationPolicy).oidc =\n new _OpenIdConnectAuthenticationPolicyConfiguration(\n (model as Specification.OpenIdConnectAuthenticationPolicy)\n .oidc as Specification.OpenIdConnectAuthenticationPolicyConfiguration,\n );\n }\n getLifecycleHooks('AuthenticationPolicy')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the AuthenticationPolicy.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new AuthenticationPolicy(this as any) as AuthenticationPolicyIntersection;\n validate('AuthenticationPolicy', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the AuthenticationPolicy.\n * Creates a copy of the AuthenticationPolicy, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the AuthenticationPolicy instance.\n */\n normalize(): AuthenticationPolicy & Specification.AuthenticationPolicy {\n const copy = new AuthenticationPolicy(this as any) as AuthenticationPolicyIntersection;\n return getLifecycleHooks('AuthenticationPolicy')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _AuthenticationPolicy = AuthenticationPolicy as AuthenticationPolicyConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the AuthenticationPolicyReference class and type\n */\nexport type AuthenticationPolicyReferenceIntersection = AuthenticationPolicyReference &\n Specification.AuthenticationPolicyReference;\n\n/**\n * Represents a constructor for the intersection of the AuthenticationPolicyReference class and type\n */\nexport interface AuthenticationPolicyReferenceConstructor {\n new (model?: Partial<Specification.AuthenticationPolicyReference>): AuthenticationPolicyReferenceIntersection;\n}\n\n/**\n * Represents a AuthenticationPolicyReference with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class AuthenticationPolicyReference extends ObjectHydrator<Specification.AuthenticationPolicyReference> {\n /**\n * Instanciates a new instance of the AuthenticationPolicyReference class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the AuthenticationPolicyReference.\n */\n constructor(model?: Partial<Specification.AuthenticationPolicyReference>) {\n super(model);\n\n getLifecycleHooks('AuthenticationPolicyReference')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the AuthenticationPolicyReference.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new AuthenticationPolicyReference(this as any) as AuthenticationPolicyReferenceIntersection;\n validate('AuthenticationPolicyReference', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the AuthenticationPolicyReference.\n * Creates a copy of the AuthenticationPolicyReference, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the AuthenticationPolicyReference instance.\n */\n normalize(): AuthenticationPolicyReference & Specification.AuthenticationPolicyReference {\n const copy = new AuthenticationPolicyReference(this as any) as AuthenticationPolicyReferenceIntersection;\n return getLifecycleHooks('AuthenticationPolicyReference')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _AuthenticationPolicyReference = AuthenticationPolicyReference as AuthenticationPolicyReferenceConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _BasicAuthenticationPolicyConfiguration } from './basic-authentication-policy-configuration';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the BasicAuthenticationPolicy class and type\n */\nexport type BasicAuthenticationPolicyIntersection = BasicAuthenticationPolicy & Specification.BasicAuthenticationPolicy;\n\n/**\n * Represents a constructor for the intersection of the BasicAuthenticationPolicy class and type\n */\nexport interface BasicAuthenticationPolicyConstructor {\n new (model?: Partial<Specification.BasicAuthenticationPolicy>): BasicAuthenticationPolicyIntersection;\n}\n\n/**\n * Represents a BasicAuthenticationPolicy with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class BasicAuthenticationPolicy extends ObjectHydrator<Specification.BasicAuthenticationPolicy> {\n /**\n * Instanciates a new instance of the BasicAuthenticationPolicy class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the BasicAuthenticationPolicy.\n */\n constructor(model?: Partial<Specification.BasicAuthenticationPolicy>) {\n super(model);\n const self = this as unknown as Specification.BasicAuthenticationPolicy & object;\n if (isObject(model)) {\n if (typeof model.basic === 'object') self.basic = new _BasicAuthenticationPolicyConfiguration(model.basic);\n }\n getLifecycleHooks('BasicAuthenticationPolicy')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the BasicAuthenticationPolicy.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new BasicAuthenticationPolicy(this as any) as BasicAuthenticationPolicyIntersection;\n validate('BasicAuthenticationPolicy', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the BasicAuthenticationPolicy.\n * Creates a copy of the BasicAuthenticationPolicy, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the BasicAuthenticationPolicy instance.\n */\n normalize(): BasicAuthenticationPolicy & Specification.BasicAuthenticationPolicy {\n const copy = new BasicAuthenticationPolicy(this as any) as BasicAuthenticationPolicyIntersection;\n return getLifecycleHooks('BasicAuthenticationPolicy')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _BasicAuthenticationPolicy = BasicAuthenticationPolicy as BasicAuthenticationPolicyConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the BasicAuthenticationProperties class and type\n */\nexport type BasicAuthenticationPropertiesIntersection = BasicAuthenticationProperties &\n Specification.BasicAuthenticationProperties;\n\n/**\n * Represents a constructor for the intersection of the BasicAuthenticationProperties class and type\n */\nexport interface BasicAuthenticationPropertiesConstructor {\n new (model?: Partial<Specification.BasicAuthenticationProperties>): BasicAuthenticationPropertiesIntersection;\n}\n\n/**\n * Represents a BasicAuthenticationProperties with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class BasicAuthenticationProperties extends ObjectHydrator<Specification.BasicAuthenticationProperties> {\n /**\n * Instanciates a new instance of the BasicAuthenticationProperties class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the BasicAuthenticationProperties.\n */\n constructor(model?: Partial<Specification.BasicAuthenticationProperties>) {\n super(model);\n\n getLifecycleHooks('BasicAuthenticationProperties')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the BasicAuthenticationProperties.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new BasicAuthenticationProperties(this as any) as BasicAuthenticationPropertiesIntersection;\n validate('BasicAuthenticationProperties', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the BasicAuthenticationProperties.\n * Creates a copy of the BasicAuthenticationProperties, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the BasicAuthenticationProperties instance.\n */\n normalize(): BasicAuthenticationProperties & Specification.BasicAuthenticationProperties {\n const copy = new BasicAuthenticationProperties(this as any) as BasicAuthenticationPropertiesIntersection;\n return getLifecycleHooks('BasicAuthenticationProperties')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _BasicAuthenticationProperties = BasicAuthenticationProperties as BasicAuthenticationPropertiesConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _BearerAuthenticationPolicyConfiguration } from './bearer-authentication-policy-configuration';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the BearerAuthenticationPolicy class and type\n */\nexport type BearerAuthenticationPolicyIntersection = BearerAuthenticationPolicy &\n Specification.BearerAuthenticationPolicy;\n\n/**\n * Represents a constructor for the intersection of the BearerAuthenticationPolicy class and type\n */\nexport interface BearerAuthenticationPolicyConstructor {\n new (model?: Partial<Specification.BearerAuthenticationPolicy>): BearerAuthenticationPolicyIntersection;\n}\n\n/**\n * Represents a BearerAuthenticationPolicy with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class BearerAuthenticationPolicy extends ObjectHydrator<Specification.BearerAuthenticationPolicy> {\n /**\n * Instanciates a new instance of the BearerAuthenticationPolicy class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the BearerAuthenticationPolicy.\n */\n constructor(model?: Partial<Specification.BearerAuthenticationPolicy>) {\n super(model);\n const self = this as unknown as Specification.BearerAuthenticationPolicy & object;\n if (isObject(model)) {\n if (typeof model.bearer === 'object') self.bearer = new _BearerAuthenticationPolicyConfiguration(model.bearer);\n }\n getLifecycleHooks('BearerAuthenticationPolicy')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the BearerAuthenticationPolicy.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new BearerAuthenticationPolicy(this as any) as BearerAuthenticationPolicyIntersection;\n validate('BearerAuthenticationPolicy', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the BearerAuthenticationPolicy.\n * Creates a copy of the BearerAuthenticationPolicy, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the BearerAuthenticationPolicy instance.\n */\n normalize(): BearerAuthenticationPolicy & Specification.BearerAuthenticationPolicy {\n const copy = new BearerAuthenticationPolicy(this as any) as BearerAuthenticationPolicyIntersection;\n return getLifecycleHooks('BearerAuthenticationPolicy')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _BearerAuthenticationPolicy = BearerAuthenticationPolicy as BearerAuthenticationPolicyConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the BearerAuthenticationProperties class and type\n */\nexport type BearerAuthenticationPropertiesIntersection = BearerAuthenticationProperties &\n Specification.BearerAuthenticationProperties;\n\n/**\n * Represents a constructor for the intersection of the BearerAuthenticationProperties class and type\n */\nexport interface BearerAuthenticationPropertiesConstructor {\n new (model?: Partial<Specification.BearerAuthenticationProperties>): BearerAuthenticationPropertiesIntersection;\n}\n\n/**\n * Represents a BearerAuthenticationProperties with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class BearerAuthenticationProperties extends ObjectHydrator<Specification.BearerAuthenticationProperties> {\n /**\n * Instanciates a new instance of the BearerAuthenticationProperties class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the BearerAuthenticationProperties.\n */\n constructor(model?: Partial<Specification.BearerAuthenticationProperties>) {\n super(model);\n\n getLifecycleHooks('BearerAuthenticationProperties')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the BearerAuthenticationProperties.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new BearerAuthenticationProperties(this as any) as BearerAuthenticationPropertiesIntersection;\n validate('BearerAuthenticationProperties', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the BearerAuthenticationProperties.\n * Creates a copy of the BearerAuthenticationProperties, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the BearerAuthenticationProperties instance.\n */\n normalize(): BearerAuthenticationProperties & Specification.BearerAuthenticationProperties {\n const copy = new BearerAuthenticationProperties(this as any) as BearerAuthenticationPropertiesIntersection;\n return getLifecycleHooks('BearerAuthenticationProperties')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _BearerAuthenticationProperties =\n BearerAuthenticationProperties as BearerAuthenticationPropertiesConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _ExternalResource } from './external-resource';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the Schema class and type\n */\nexport type SchemaIntersection = Schema & Specification.Schema;\n\n/**\n * Represents a constructor for the intersection of the Schema class and type\n */\nexport interface SchemaConstructor {\n new (model?: Partial<Specification.Schema>): SchemaIntersection;\n}\n\n/**\n * Represents a Schema with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class Schema extends ObjectHydrator<Specification.Schema> {\n /**\n * Instanciates a new instance of the Schema class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the Schema.\n */\n constructor(model?: Partial<Specification.Schema>) {\n super(model);\n const self = this as unknown as Specification.Schema & object;\n if (isObject(model)) {\n if (typeof (model as Specification.SchemaExternal).resource === 'object')\n (self as Specification.SchemaExternal).resource = new _ExternalResource(\n (model as Specification.SchemaExternal).resource as Specification.ExternalResource,\n );\n }\n getLifecycleHooks('Schema')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the Schema.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new Schema(this as any) as SchemaIntersection;\n validate('Schema', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the Schema.\n * Creates a copy of the Schema, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the Schema instance.\n */\n normalize(): Schema & Specification.Schema {\n const copy = new Schema(this as any) as SchemaIntersection;\n return getLifecycleHooks('Schema')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _Schema = Schema as SchemaConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _Schema } from './schema';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the Input class and type\n */\nexport type InputIntersection = Input & Specification.Input;\n\n/**\n * Represents a constructor for the intersection of the Input class and type\n */\nexport interface InputConstructor {\n new (model?: Partial<Specification.Input>): InputIntersection;\n}\n\n/**\n * Represents a Input with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class Input extends ObjectHydrator<Specification.Input> {\n /**\n * Instanciates a new instance of the Input class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the Input.\n */\n constructor(model?: Partial<Specification.Input>) {\n super(model);\n const self = this as unknown as Specification.Input & object;\n if (isObject(model)) {\n if (typeof model.schema === 'object') self.schema = new _Schema(model.schema);\n }\n getLifecycleHooks('Input')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the Input.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new Input(this as any) as InputIntersection;\n validate('Input', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the Input.\n * Creates a copy of the Input, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the Input instance.\n */\n normalize(): Input & Specification.Input {\n const copy = new Input(this as any) as InputIntersection;\n return getLifecycleHooks('Input')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _Input = Input as InputConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _Schema } from './schema';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the Output class and type\n */\nexport type OutputIntersection = Output & Specification.Output;\n\n/**\n * Represents a constructor for the intersection of the Output class and type\n */\nexport interface OutputConstructor {\n new (model?: Partial<Specification.Output>): OutputIntersection;\n}\n\n/**\n * Represents a Output with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class Output extends ObjectHydrator<Specification.Output> {\n /**\n * Instanciates a new instance of the Output class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the Output.\n */\n constructor(model?: Partial<Specification.Output>) {\n super(model);\n const self = this as unknown as Specification.Output & object;\n if (isObject(model)) {\n if (typeof model.schema === 'object') self.schema = new _Schema(model.schema);\n }\n getLifecycleHooks('Output')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the Output.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new Output(this as any) as OutputIntersection;\n validate('Output', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the Output.\n * Creates a copy of the Output, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the Output instance.\n */\n normalize(): Output & Specification.Output {\n const copy = new Output(this as any) as OutputIntersection;\n return getLifecycleHooks('Output')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _Output = Output as OutputConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _Schema } from './schema';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the Export class and type\n */\nexport type ExportIntersection = Export & Specification.Export;\n\n/**\n * Represents a constructor for the intersection of the Export class and type\n */\nexport interface ExportConstructor {\n new (model?: Partial<Specification.Export>): ExportIntersection;\n}\n\n/**\n * Represents a Export with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class Export extends ObjectHydrator<Specification.Export> {\n /**\n * Instanciates a new instance of the Export class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the Export.\n */\n constructor(model?: Partial<Specification.Export>) {\n super(model);\n const self = this as unknown as Specification.Export & object;\n if (isObject(model)) {\n if (typeof model.schema === 'object') self.schema = new _Schema(model.schema);\n }\n getLifecycleHooks('Export')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the Export.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new Export(this as any) as ExportIntersection;\n validate('Export', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the Export.\n * Creates a copy of the Export, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the Export instance.\n */\n normalize(): Export & Specification.Export {\n const copy = new Export(this as any) as ExportIntersection;\n return getLifecycleHooks('Export')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _Export = Export as ExportConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the Duration class and type\n */\nexport type DurationIntersection = Duration & Specification.Duration;\n\n/**\n * Represents a constructor for the intersection of the Duration class and type\n */\nexport interface DurationConstructor {\n new (model?: Partial<Specification.Duration>): DurationIntersection;\n}\n\n/**\n * Represents a Duration with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class Duration extends ObjectHydrator<Specification.Duration> {\n /**\n * Instanciates a new instance of the Duration class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the Duration.\n */\n constructor(model?: Partial<Specification.Duration>) {\n super(model);\n\n getLifecycleHooks('Duration')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the Duration.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new Duration(this as any) as DurationIntersection;\n validate('Duration', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the Duration.\n * Creates a copy of the Duration, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the Duration instance.\n */\n normalize(): Duration & Specification.Duration {\n const copy = new Duration(this as any) as DurationIntersection;\n return getLifecycleHooks('Duration')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _Duration = Duration as DurationConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _Duration } from './duration';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the TaskTimeout class and type\n */\nexport type TaskTimeoutIntersection = TaskTimeout & Specification.TaskTimeout;\n\n/**\n * Represents a constructor for the intersection of the TaskTimeout class and type\n */\nexport interface TaskTimeoutConstructor {\n new (model?: Partial<Specification.TaskTimeout>): TaskTimeoutIntersection;\n}\n\n/**\n * Represents a TaskTimeout with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class TaskTimeout extends ObjectHydrator<Specification.TaskTimeout> {\n /**\n * Instanciates a new instance of the TaskTimeout class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the TaskTimeout.\n */\n constructor(model?: Partial<Specification.TaskTimeout>) {\n super(model);\n const self = this as unknown as Specification.TaskTimeout & object;\n if (isObject(model)) {\n if (typeof (model as Specification.Timeout).after === 'object')\n (self as Specification.Timeout).after = new _Duration(\n (model as Specification.Timeout).after as Specification.Duration,\n );\n }\n getLifecycleHooks('TaskTimeout')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the TaskTimeout.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new TaskTimeout(this as any) as TaskTimeoutIntersection;\n validate('TaskTimeout', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the TaskTimeout.\n * Creates a copy of the TaskTimeout, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the TaskTimeout instance.\n */\n normalize(): TaskTimeout & Specification.TaskTimeout {\n const copy = new TaskTimeout(this as any) as TaskTimeoutIntersection;\n return getLifecycleHooks('TaskTimeout')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _TaskTimeout = TaskTimeout as TaskTimeoutConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the TaskMetadata class and type\n */\nexport type TaskMetadataIntersection = TaskMetadata & Specification.TaskMetadata;\n\n/**\n * Represents a constructor for the intersection of the TaskMetadata class and type\n */\nexport interface TaskMetadataConstructor {\n new (model?: Partial<Specification.TaskMetadata>): TaskMetadataIntersection;\n}\n\n/**\n * Represents a TaskMetadata with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class TaskMetadata extends ObjectHydrator<Specification.TaskMetadata> {\n /**\n * Instanciates a new instance of the TaskMetadata class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the TaskMetadata.\n */\n constructor(model?: Partial<Specification.TaskMetadata>) {\n super(model);\n\n getLifecycleHooks('TaskMetadata')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the TaskMetadata.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new TaskMetadata(this as any) as TaskMetadataIntersection;\n validate('TaskMetadata', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the TaskMetadata.\n * Creates a copy of the TaskMetadata, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the TaskMetadata instance.\n */\n normalize(): TaskMetadata & Specification.TaskMetadata {\n const copy = new TaskMetadata(this as any) as TaskMetadataIntersection;\n return getLifecycleHooks('TaskMetadata')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _TaskMetadata = TaskMetadata as TaskMetadataConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _Input } from './input';\nimport { _Output } from './output';\nimport { _Export } from './export';\nimport { _TaskTimeout } from './task-timeout';\nimport { _TaskMetadata } from './task-metadata';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the TaskBase class and type\n */\nexport type TaskBaseIntersection = TaskBase & Specification.TaskBase;\n\n/**\n * Represents a constructor for the intersection of the TaskBase class and type\n */\nexport interface TaskBaseConstructor {\n new (model?: Partial<Specification.TaskBase>): TaskBaseIntersection;\n}\n\n/**\n * Represents a TaskBase with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class TaskBase extends ObjectHydrator<Specification.TaskBase> {\n /**\n * Instanciates a new instance of the TaskBase class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the TaskBase.\n */\n constructor(model?: Partial<Specification.TaskBase>) {\n super(model);\n const self = this as unknown as Specification.TaskBase & object;\n if (isObject(model)) {\n if (typeof model.input === 'object') self.input = new _Input(model.input);\n if (typeof model.output === 'object') self.output = new _Output(model.output);\n if (typeof model.export === 'object') self.export = new _Export(model.export);\n if (typeof model.timeout === 'object') self.timeout = new _TaskTimeout(model.timeout);\n if (typeof model.metadata === 'object') self.metadata = new _TaskMetadata(model.metadata);\n }\n getLifecycleHooks('TaskBase')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the TaskBase.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new TaskBase(this as any) as TaskBaseIntersection;\n validate('TaskBase', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the TaskBase.\n * Creates a copy of the TaskBase, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the TaskBase instance.\n */\n normalize(): TaskBase & Specification.TaskBase {\n const copy = new TaskBase(this as any) as TaskBaseIntersection;\n return getLifecycleHooks('TaskBase')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _TaskBase = TaskBase as TaskBaseConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _Input } from './input';\nimport { _Output } from './output';\nimport { _Export } from './export';\nimport { _TaskTimeout } from './task-timeout';\nimport { _TaskMetadata } from './task-metadata';\nimport { _A2AArguments } from './a2a-arguments';\nimport { _TaskBase } from './task-base';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the CallA2A class and type\n */\nexport type CallA2AIntersection = CallA2A & Specification.CallA2A;\n\n/**\n * Represents a constructor for the intersection of the CallA2A class and type\n */\nexport interface CallA2AConstructor {\n new (model?: Partial<Specification.CallA2A>): CallA2AIntersection;\n}\n\n/**\n * Represents a CallA2A with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class CallA2A extends _TaskBase {\n /**\n * Instanciates a new instance of the CallA2A class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the CallA2A.\n */\n constructor(model?: Partial<Specification.CallA2A>) {\n super(model);\n const self = this as unknown as Specification.CallA2A & object;\n if (isObject(model)) {\n self.call = 'a2a' as const;\n if (typeof model.input === 'object') self.input = new _Input(model.input);\n if (typeof model.output === 'object') self.output = new _Output(model.output);\n if (typeof model.export === 'object') self.export = new _Export(model.export);\n if (typeof model.timeout === 'object') self.timeout = new _TaskTimeout(model.timeout);\n if (typeof model.metadata === 'object') self.metadata = new _TaskMetadata(model.metadata);\n if (typeof model.with === 'object') self.with = new _A2AArguments(model.with);\n }\n getLifecycleHooks('CallA2A')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the CallA2A.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new CallA2A(this as any) as CallA2AIntersection;\n validate('CallA2A', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the CallA2A.\n * Creates a copy of the CallA2A, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the CallA2A instance.\n */\n normalize(): CallA2A & Specification.CallA2A {\n const copy = new CallA2A(this as any) as CallA2AIntersection;\n return getLifecycleHooks('CallA2A')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _CallA2A = CallA2A as CallA2AConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _Input } from './input';\nimport { _Output } from './output';\nimport { _Export } from './export';\nimport { _TaskTimeout } from './task-timeout';\nimport { _TaskMetadata } from './task-metadata';\nimport { _TaskBase } from './task-base';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the CallAsyncAPI class and type\n */\nexport type CallAsyncAPIIntersection = CallAsyncAPI & Specification.CallAsyncAPI;\n\n/**\n * Represents a constructor for the intersection of the CallAsyncAPI class and type\n */\nexport interface CallAsyncAPIConstructor {\n new (model?: Partial<Specification.CallAsyncAPI>): CallAsyncAPIIntersection;\n}\n\n/**\n * Represents a CallAsyncAPI with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class CallAsyncAPI extends _TaskBase {\n /**\n * Instanciates a new instance of the CallAsyncAPI class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the CallAsyncAPI.\n */\n constructor(model?: Partial<Specification.CallAsyncAPI>) {\n super(model);\n const self = this as unknown as Specification.CallAsyncAPI & object;\n if (isObject(model)) {\n self.call = 'asyncapi' as const;\n if (typeof model.input === 'object') self.input = new _Input(model.input);\n if (typeof model.output === 'object') self.output = new _Output(model.output);\n if (typeof model.export === 'object') self.export = new _Export(model.export);\n if (typeof model.timeout === 'object') self.timeout = new _TaskTimeout(model.timeout);\n if (typeof model.metadata === 'object') self.metadata = new _TaskMetadata(model.metadata);\n }\n getLifecycleHooks('CallAsyncAPI')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the CallAsyncAPI.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new CallAsyncAPI(this as any) as CallAsyncAPIIntersection;\n validate('CallAsyncAPI', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the CallAsyncAPI.\n * Creates a copy of the CallAsyncAPI, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the CallAsyncAPI instance.\n */\n normalize(): CallAsyncAPI & Specification.CallAsyncAPI {\n const copy = new CallAsyncAPI(this as any) as CallAsyncAPIIntersection;\n return getLifecycleHooks('CallAsyncAPI')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _CallAsyncAPI = CallAsyncAPI as CallAsyncAPIConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the FunctionArguments class and type\n */\nexport type FunctionArgumentsIntersection = FunctionArguments & Specification.FunctionArguments;\n\n/**\n * Represents a constructor for the intersection of the FunctionArguments class and type\n */\nexport interface FunctionArgumentsConstructor {\n new (model?: Partial<Specification.FunctionArguments>): FunctionArgumentsIntersection;\n}\n\n/**\n * Represents a FunctionArguments with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class FunctionArguments extends ObjectHydrator<Specification.FunctionArguments> {\n /**\n * Instanciates a new instance of the FunctionArguments class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the FunctionArguments.\n */\n constructor(model?: Partial<Specification.FunctionArguments>) {\n super(model);\n\n getLifecycleHooks('FunctionArguments')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the FunctionArguments.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new FunctionArguments(this as any) as FunctionArgumentsIntersection;\n validate('FunctionArguments', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the FunctionArguments.\n * Creates a copy of the FunctionArguments, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the FunctionArguments instance.\n */\n normalize(): FunctionArguments & Specification.FunctionArguments {\n const copy = new FunctionArguments(this as any) as FunctionArgumentsIntersection;\n return getLifecycleHooks('FunctionArguments')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _FunctionArguments = FunctionArguments as FunctionArgumentsConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _Input } from './input';\nimport { _Output } from './output';\nimport { _Export } from './export';\nimport { _TaskTimeout } from './task-timeout';\nimport { _TaskMetadata } from './task-metadata';\nimport { _FunctionArguments } from './function-arguments';\nimport { _TaskBase } from './task-base';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the CallFunction class and type\n */\nexport type CallFunctionIntersection = CallFunction & Specification.CallFunction;\n\n/**\n * Represents a constructor for the intersection of the CallFunction class and type\n */\nexport interface CallFunctionConstructor {\n new (model?: Partial<Specification.CallFunction>): CallFunctionIntersection;\n}\n\n/**\n * Represents a CallFunction with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class CallFunction extends _TaskBase {\n /**\n * Instanciates a new instance of the CallFunction class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the CallFunction.\n */\n constructor(model?: Partial<Specification.CallFunction>) {\n super(model);\n const self = this as unknown as Specification.CallFunction & object;\n if (isObject(model)) {\n if (typeof model.input === 'object') self.input = new _Input(model.input);\n if (typeof model.output === 'object') self.output = new _Output(model.output);\n if (typeof model.export === 'object') self.export = new _Export(model.export);\n if (typeof model.timeout === 'object') self.timeout = new _TaskTimeout(model.timeout);\n if (typeof model.metadata === 'object') self.metadata = new _TaskMetadata(model.metadata);\n if (typeof model.with === 'object') self.with = new _FunctionArguments(model.with);\n }\n getLifecycleHooks('CallFunction')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the CallFunction.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new CallFunction(this as any) as CallFunctionIntersection;\n validate('CallFunction', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the CallFunction.\n * Creates a copy of the CallFunction, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the CallFunction instance.\n */\n normalize(): CallFunction & Specification.CallFunction {\n const copy = new CallFunction(this as any) as CallFunctionIntersection;\n return getLifecycleHooks('CallFunction')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _CallFunction = CallFunction as CallFunctionConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _ReferenceableAuthenticationPolicy } from './referenceable-authentication-policy';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the WithGRPCService class and type\n */\nexport type WithGRPCServiceIntersection = WithGRPCService & Specification.WithGRPCService;\n\n/**\n * Represents a constructor for the intersection of the WithGRPCService class and type\n */\nexport interface WithGRPCServiceConstructor {\n new (model?: Partial<Specification.WithGRPCService>): WithGRPCServiceIntersection;\n}\n\n/**\n * Represents a WithGRPCService with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class WithGRPCService extends ObjectHydrator<Specification.WithGRPCService> {\n /**\n * Instanciates a new instance of the WithGRPCService class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the WithGRPCService.\n */\n constructor(model?: Partial<Specification.WithGRPCService>) {\n super(model);\n const self = this as unknown as Specification.WithGRPCService & object;\n if (isObject(model)) {\n if (typeof model.authentication === 'object')\n self.authentication = new _ReferenceableAuthenticationPolicy(model.authentication);\n }\n getLifecycleHooks('WithGRPCService')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the WithGRPCService.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new WithGRPCService(this as any) as WithGRPCServiceIntersection;\n validate('WithGRPCService', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the WithGRPCService.\n * Creates a copy of the WithGRPCService, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the WithGRPCService instance.\n */\n normalize(): WithGRPCService & Specification.WithGRPCService {\n const copy = new WithGRPCService(this as any) as WithGRPCServiceIntersection;\n return getLifecycleHooks('WithGRPCService')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _WithGRPCService = WithGRPCService as WithGRPCServiceConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the WithGRPCArguments class and type\n */\nexport type WithGRPCArgumentsIntersection = WithGRPCArguments & Specification.WithGRPCArguments;\n\n/**\n * Represents a constructor for the intersection of the WithGRPCArguments class and type\n */\nexport interface WithGRPCArgumentsConstructor {\n new (model?: Partial<Specification.WithGRPCArguments>): WithGRPCArgumentsIntersection;\n}\n\n/**\n * Represents a WithGRPCArguments with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class WithGRPCArguments extends ObjectHydrator<Specification.WithGRPCArguments> {\n /**\n * Instanciates a new instance of the WithGRPCArguments class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the WithGRPCArguments.\n */\n constructor(model?: Partial<Specification.WithGRPCArguments>) {\n super(model);\n\n getLifecycleHooks('WithGRPCArguments')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the WithGRPCArguments.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new WithGRPCArguments(this as any) as WithGRPCArgumentsIntersection;\n validate('WithGRPCArguments', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the WithGRPCArguments.\n * Creates a copy of the WithGRPCArguments, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the WithGRPCArguments instance.\n */\n normalize(): WithGRPCArguments & Specification.WithGRPCArguments {\n const copy = new WithGRPCArguments(this as any) as WithGRPCArgumentsIntersection;\n return getLifecycleHooks('WithGRPCArguments')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _WithGRPCArguments = WithGRPCArguments as WithGRPCArgumentsConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _ExternalResource } from './external-resource';\nimport { _WithGRPCService } from './with-grpc-service';\nimport { _WithGRPCArguments } from './with-grpc-arguments';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the GRPCArguments class and type\n */\nexport type GRPCArgumentsIntersection = GRPCArguments & Specification.GRPCArguments;\n\n/**\n * Represents a constructor for the intersection of the GRPCArguments class and type\n */\nexport interface GRPCArgumentsConstructor {\n new (model?: Partial<Specification.GRPCArguments>): GRPCArgumentsIntersection;\n}\n\n/**\n * Represents a GRPCArguments with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class GRPCArguments extends ObjectHydrator<Specification.GRPCArguments> {\n /**\n * Instanciates a new instance of the GRPCArguments class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the GRPCArguments.\n */\n constructor(model?: Partial<Specification.GRPCArguments>) {\n super(model);\n const self = this as unknown as Specification.GRPCArguments & object;\n if (isObject(model)) {\n if (typeof model.proto === 'object') self.proto = new _ExternalResource(model.proto);\n if (typeof model.service === 'object') self.service = new _WithGRPCService(model.service);\n if (typeof model.arguments === 'object') self.arguments = new _WithGRPCArguments(model.arguments);\n }\n getLifecycleHooks('GRPCArguments')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the GRPCArguments.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new GRPCArguments(this as any) as GRPCArgumentsIntersection;\n validate('GRPCArguments', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the GRPCArguments.\n * Creates a copy of the GRPCArguments, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the GRPCArguments instance.\n */\n normalize(): GRPCArguments & Specification.GRPCArguments {\n const copy = new GRPCArguments(this as any) as GRPCArgumentsIntersection;\n return getLifecycleHooks('GRPCArguments')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _GRPCArguments = GRPCArguments as GRPCArgumentsConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _Input } from './input';\nimport { _Output } from './output';\nimport { _Export } from './export';\nimport { _TaskTimeout } from './task-timeout';\nimport { _TaskMetadata } from './task-metadata';\nimport { _GRPCArguments } from './grpc-arguments';\nimport { _TaskBase } from './task-base';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the CallGRPC class and type\n */\nexport type CallGRPCIntersection = CallGRPC & Specification.CallGRPC;\n\n/**\n * Represents a constructor for the intersection of the CallGRPC class and type\n */\nexport interface CallGRPCConstructor {\n new (model?: Partial<Specification.CallGRPC>): CallGRPCIntersection;\n}\n\n/**\n * Represents a CallGRPC with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class CallGRPC extends _TaskBase {\n /**\n * Instanciates a new instance of the CallGRPC class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the CallGRPC.\n */\n constructor(model?: Partial<Specification.CallGRPC>) {\n super(model);\n const self = this as unknown as Specification.CallGRPC & object;\n if (isObject(model)) {\n self.call = 'grpc' as const;\n if (typeof model.input === 'object') self.input = new _Input(model.input);\n if (typeof model.output === 'object') self.output = new _Output(model.output);\n if (typeof model.export === 'object') self.export = new _Export(model.export);\n if (typeof model.timeout === 'object') self.timeout = new _TaskTimeout(model.timeout);\n if (typeof model.metadata === 'object') self.metadata = new _TaskMetadata(model.metadata);\n if (typeof model.with === 'object') self.with = new _GRPCArguments(model.with);\n }\n getLifecycleHooks('CallGRPC')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the CallGRPC.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new CallGRPC(this as any) as CallGRPCIntersection;\n validate('CallGRPC', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the CallGRPC.\n * Creates a copy of the CallGRPC, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the CallGRPC instance.\n */\n normalize(): CallGRPC & Specification.CallGRPC {\n const copy = new CallGRPC(this as any) as CallGRPCIntersection;\n return getLifecycleHooks('CallGRPC')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _CallGRPC = CallGRPC as CallGRPCConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the HTTPBody class and type\n */\nexport type HTTPBodyIntersection = HTTPBody & Specification.HTTPBody;\n\n/**\n * Represents a constructor for the intersection of the HTTPBody class and type\n */\nexport interface HTTPBodyConstructor {\n new (model?: Partial<Specification.HTTPBody>): HTTPBodyIntersection;\n}\n\n/**\n * Represents a HTTPBody with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class HTTPBody extends ObjectHydrator<Specification.HTTPBody> {\n /**\n * Instanciates a new instance of the HTTPBody class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the HTTPBody.\n */\n constructor(model?: Partial<Specification.HTTPBody>) {\n super(model);\n\n getLifecycleHooks('HTTPBody')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the HTTPBody.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new HTTPBody(this as any) as HTTPBodyIntersection;\n validate('HTTPBody', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the HTTPBody.\n * Creates a copy of the HTTPBody, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the HTTPBody instance.\n */\n normalize(): HTTPBody & Specification.HTTPBody {\n const copy = new HTTPBody(this as any) as HTTPBodyIntersection;\n return getLifecycleHooks('HTTPBody')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _HTTPBody = HTTPBody as HTTPBodyConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _Endpoint } from './endpoint';\nimport { _HTTPBody } from './http-body';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the HTTPArguments class and type\n */\nexport type HTTPArgumentsIntersection = HTTPArguments & Specification.HTTPArguments;\n\n/**\n * Represents a constructor for the intersection of the HTTPArguments class and type\n */\nexport interface HTTPArgumentsConstructor {\n new (model?: Partial<Specification.HTTPArguments>): HTTPArgumentsIntersection;\n}\n\n/**\n * Represents a HTTPArguments with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class HTTPArguments extends ObjectHydrator<Specification.HTTPArguments> {\n /**\n * Instanciates a new instance of the HTTPArguments class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the HTTPArguments.\n */\n constructor(model?: Partial<Specification.HTTPArguments>) {\n super(model);\n const self = this as unknown as Specification.HTTPArguments & object;\n if (isObject(model)) {\n if (typeof model.endpoint === 'object') self.endpoint = new _Endpoint(model.endpoint);\n if (typeof model.body === 'object') self.body = new _HTTPBody(model.body);\n }\n getLifecycleHooks('HTTPArguments')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the HTTPArguments.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new HTTPArguments(this as any) as HTTPArgumentsIntersection;\n validate('HTTPArguments', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the HTTPArguments.\n * Creates a copy of the HTTPArguments, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the HTTPArguments instance.\n */\n normalize(): HTTPArguments & Specification.HTTPArguments {\n const copy = new HTTPArguments(this as any) as HTTPArgumentsIntersection;\n return getLifecycleHooks('HTTPArguments')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _HTTPArguments = HTTPArguments as HTTPArgumentsConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _Input } from './input';\nimport { _Output } from './output';\nimport { _Export } from './export';\nimport { _TaskTimeout } from './task-timeout';\nimport { _TaskMetadata } from './task-metadata';\nimport { _HTTPArguments } from './http-arguments';\nimport { _TaskBase } from './task-base';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the CallHTTP class and type\n */\nexport type CallHTTPIntersection = CallHTTP & Specification.CallHTTP;\n\n/**\n * Represents a constructor for the intersection of the CallHTTP class and type\n */\nexport interface CallHTTPConstructor {\n new (model?: Partial<Specification.CallHTTP>): CallHTTPIntersection;\n}\n\n/**\n * Represents a CallHTTP with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class CallHTTP extends _TaskBase {\n /**\n * Instanciates a new instance of the CallHTTP class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the CallHTTP.\n */\n constructor(model?: Partial<Specification.CallHTTP>) {\n super(model);\n const self = this as unknown as Specification.CallHTTP & object;\n if (isObject(model)) {\n self.call = 'http' as const;\n if (typeof model.input === 'object') self.input = new _Input(model.input);\n if (typeof model.output === 'object') self.output = new _Output(model.output);\n if (typeof model.export === 'object') self.export = new _Export(model.export);\n if (typeof model.timeout === 'object') self.timeout = new _TaskTimeout(model.timeout);\n if (typeof model.metadata === 'object') self.metadata = new _TaskMetadata(model.metadata);\n if (typeof model.with === 'object') self.with = new _HTTPArguments(model.with);\n }\n getLifecycleHooks('CallHTTP')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the CallHTTP.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new CallHTTP(this as any) as CallHTTPIntersection;\n validate('CallHTTP', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the CallHTTP.\n * Creates a copy of the CallHTTP, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the CallHTTP instance.\n */\n normalize(): CallHTTP & Specification.CallHTTP {\n const copy = new CallHTTP(this as any) as CallHTTPIntersection;\n return getLifecycleHooks('CallHTTP')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _CallHTTP = CallHTTP as CallHTTPConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the McpClient class and type\n */\nexport type McpClientIntersection = McpClient & Specification.McpClient;\n\n/**\n * Represents a constructor for the intersection of the McpClient class and type\n */\nexport interface McpClientConstructor {\n new (model?: Partial<Specification.McpClient>): McpClientIntersection;\n}\n\n/**\n * Represents a McpClient with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class McpClient extends ObjectHydrator<Specification.McpClient> {\n /**\n * Instanciates a new instance of the McpClient class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the McpClient.\n */\n constructor(model?: Partial<Specification.McpClient>) {\n super(model);\n\n getLifecycleHooks('McpClient')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the McpClient.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new McpClient(this as any) as McpClientIntersection;\n validate('McpClient', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the McpClient.\n * Creates a copy of the McpClient, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the McpClient instance.\n */\n normalize(): McpClient & Specification.McpClient {\n const copy = new McpClient(this as any) as McpClientIntersection;\n return getLifecycleHooks('McpClient')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _McpClient = McpClient as McpClientConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _Duration } from './duration';\nimport { _McpClient } from './mcp-client';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the MCPArguments class and type\n */\nexport type MCPArgumentsIntersection = MCPArguments & Specification.MCPArguments;\n\n/**\n * Represents a constructor for the intersection of the MCPArguments class and type\n */\nexport interface MCPArgumentsConstructor {\n new (model?: Partial<Specification.MCPArguments>): MCPArgumentsIntersection;\n}\n\n/**\n * Represents a MCPArguments with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class MCPArguments extends ObjectHydrator<Specification.MCPArguments> {\n /**\n * Instanciates a new instance of the MCPArguments class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the MCPArguments.\n */\n constructor(model?: Partial<Specification.MCPArguments>) {\n super(model);\n const self = this as unknown as Specification.MCPArguments & object;\n if (isObject(model)) {\n if (typeof model.timeout === 'object') self.timeout = new _Duration(model.timeout);\n if (typeof model.client === 'object') self.client = new _McpClient(model.client);\n }\n getLifecycleHooks('MCPArguments')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the MCPArguments.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new MCPArguments(this as any) as MCPArgumentsIntersection;\n validate('MCPArguments', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the MCPArguments.\n * Creates a copy of the MCPArguments, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the MCPArguments instance.\n */\n normalize(): MCPArguments & Specification.MCPArguments {\n const copy = new MCPArguments(this as any) as MCPArgumentsIntersection;\n return getLifecycleHooks('MCPArguments')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _MCPArguments = MCPArguments as MCPArgumentsConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _Input } from './input';\nimport { _Output } from './output';\nimport { _Export } from './export';\nimport { _TaskTimeout } from './task-timeout';\nimport { _TaskMetadata } from './task-metadata';\nimport { _MCPArguments } from './mcp-arguments';\nimport { _TaskBase } from './task-base';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the CallMCP class and type\n */\nexport type CallMCPIntersection = CallMCP & Specification.CallMCP;\n\n/**\n * Represents a constructor for the intersection of the CallMCP class and type\n */\nexport interface CallMCPConstructor {\n new (model?: Partial<Specification.CallMCP>): CallMCPIntersection;\n}\n\n/**\n * Represents a CallMCP with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class CallMCP extends _TaskBase {\n /**\n * Instanciates a new instance of the CallMCP class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the CallMCP.\n */\n constructor(model?: Partial<Specification.CallMCP>) {\n super(model);\n const self = this as unknown as Specification.CallMCP & object;\n if (isObject(model)) {\n self.call = 'mcp' as const;\n if (typeof model.input === 'object') self.input = new _Input(model.input);\n if (typeof model.output === 'object') self.output = new _Output(model.output);\n if (typeof model.export === 'object') self.export = new _Export(model.export);\n if (typeof model.timeout === 'object') self.timeout = new _TaskTimeout(model.timeout);\n if (typeof model.metadata === 'object') self.metadata = new _TaskMetadata(model.metadata);\n if (typeof model.with === 'object') self.with = new _MCPArguments(model.with);\n }\n getLifecycleHooks('CallMCP')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the CallMCP.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new CallMCP(this as any) as CallMCPIntersection;\n validate('CallMCP', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the CallMCP.\n * Creates a copy of the CallMCP, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the CallMCP instance.\n */\n normalize(): CallMCP & Specification.CallMCP {\n const copy = new CallMCP(this as any) as CallMCPIntersection;\n return getLifecycleHooks('CallMCP')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _CallMCP = CallMCP as CallMCPConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the WithOpenAPIParameters class and type\n */\nexport type WithOpenAPIParametersIntersection = WithOpenAPIParameters & Specification.WithOpenAPIParameters;\n\n/**\n * Represents a constructor for the intersection of the WithOpenAPIParameters class and type\n */\nexport interface WithOpenAPIParametersConstructor {\n new (model?: Partial<Specification.WithOpenAPIParameters>): WithOpenAPIParametersIntersection;\n}\n\n/**\n * Represents a WithOpenAPIParameters with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class WithOpenAPIParameters extends ObjectHydrator<Specification.WithOpenAPIParameters> {\n /**\n * Instanciates a new instance of the WithOpenAPIParameters class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the WithOpenAPIParameters.\n */\n constructor(model?: Partial<Specification.WithOpenAPIParameters>) {\n super(model);\n\n getLifecycleHooks('WithOpenAPIParameters')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the WithOpenAPIParameters.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new WithOpenAPIParameters(this as any) as WithOpenAPIParametersIntersection;\n validate('WithOpenAPIParameters', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the WithOpenAPIParameters.\n * Creates a copy of the WithOpenAPIParameters, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the WithOpenAPIParameters instance.\n */\n normalize(): WithOpenAPIParameters & Specification.WithOpenAPIParameters {\n const copy = new WithOpenAPIParameters(this as any) as WithOpenAPIParametersIntersection;\n return getLifecycleHooks('WithOpenAPIParameters')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _WithOpenAPIParameters = WithOpenAPIParameters as WithOpenAPIParametersConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _ExternalResource } from './external-resource';\nimport { _WithOpenAPIParameters } from './with-open-api-parameters';\nimport { _ReferenceableAuthenticationPolicy } from './referenceable-authentication-policy';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the OpenAPIArguments class and type\n */\nexport type OpenAPIArgumentsIntersection = OpenAPIArguments & Specification.OpenAPIArguments;\n\n/**\n * Represents a constructor for the intersection of the OpenAPIArguments class and type\n */\nexport interface OpenAPIArgumentsConstructor {\n new (model?: Partial<Specification.OpenAPIArguments>): OpenAPIArgumentsIntersection;\n}\n\n/**\n * Represents a OpenAPIArguments with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class OpenAPIArguments extends ObjectHydrator<Specification.OpenAPIArguments> {\n /**\n * Instanciates a new instance of the OpenAPIArguments class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the OpenAPIArguments.\n */\n constructor(model?: Partial<Specification.OpenAPIArguments>) {\n super(model);\n const self = this as unknown as Specification.OpenAPIArguments & object;\n if (isObject(model)) {\n if (typeof model.document === 'object') self.document = new _ExternalResource(model.document);\n if (typeof model.parameters === 'object') self.parameters = new _WithOpenAPIParameters(model.parameters);\n if (typeof model.authentication === 'object')\n self.authentication = new _ReferenceableAuthenticationPolicy(model.authentication);\n }\n getLifecycleHooks('OpenAPIArguments')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the OpenAPIArguments.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new OpenAPIArguments(this as any) as OpenAPIArgumentsIntersection;\n validate('OpenAPIArguments', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the OpenAPIArguments.\n * Creates a copy of the OpenAPIArguments, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the OpenAPIArguments instance.\n */\n normalize(): OpenAPIArguments & Specification.OpenAPIArguments {\n const copy = new OpenAPIArguments(this as any) as OpenAPIArgumentsIntersection;\n return getLifecycleHooks('OpenAPIArguments')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _OpenAPIArguments = OpenAPIArguments as OpenAPIArgumentsConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _Input } from './input';\nimport { _Output } from './output';\nimport { _Export } from './export';\nimport { _TaskTimeout } from './task-timeout';\nimport { _TaskMetadata } from './task-metadata';\nimport { _OpenAPIArguments } from './open-api-arguments';\nimport { _TaskBase } from './task-base';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the CallOpenAPI class and type\n */\nexport type CallOpenAPIIntersection = CallOpenAPI & Specification.CallOpenAPI;\n\n/**\n * Represents a constructor for the intersection of the CallOpenAPI class and type\n */\nexport interface CallOpenAPIConstructor {\n new (model?: Partial<Specification.CallOpenAPI>): CallOpenAPIIntersection;\n}\n\n/**\n * Represents a CallOpenAPI with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class CallOpenAPI extends _TaskBase {\n /**\n * Instanciates a new instance of the CallOpenAPI class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the CallOpenAPI.\n */\n constructor(model?: Partial<Specification.CallOpenAPI>) {\n super(model);\n const self = this as unknown as Specification.CallOpenAPI & object;\n if (isObject(model)) {\n self.call = 'openapi' as const;\n if (typeof model.input === 'object') self.input = new _Input(model.input);\n if (typeof model.output === 'object') self.output = new _Output(model.output);\n if (typeof model.export === 'object') self.export = new _Export(model.export);\n if (typeof model.timeout === 'object') self.timeout = new _TaskTimeout(model.timeout);\n if (typeof model.metadata === 'object') self.metadata = new _TaskMetadata(model.metadata);\n if (typeof model.with === 'object') self.with = new _OpenAPIArguments(model.with);\n }\n getLifecycleHooks('CallOpenAPI')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the CallOpenAPI.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new CallOpenAPI(this as any) as CallOpenAPIIntersection;\n validate('CallOpenAPI', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the CallOpenAPI.\n * Creates a copy of the CallOpenAPI, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the CallOpenAPI instance.\n */\n normalize(): CallOpenAPI & Specification.CallOpenAPI {\n const copy = new CallOpenAPI(this as any) as CallOpenAPIIntersection;\n return getLifecycleHooks('CallOpenAPI')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _CallOpenAPI = CallOpenAPI as CallOpenAPIConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _Input } from './input';\nimport { _Output } from './output';\nimport { _Export } from './export';\nimport { _TaskTimeout } from './task-timeout';\nimport { _TaskMetadata } from './task-metadata';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the CallTask class and type\n */\nexport type CallTaskIntersection = CallTask & Specification.CallTask;\n\n/**\n * Represents a constructor for the intersection of the CallTask class and type\n */\nexport interface CallTaskConstructor {\n new (model?: Partial<Specification.CallTask>): CallTaskIntersection;\n}\n\n/**\n * Represents a CallTask with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class CallTask extends ObjectHydrator<Specification.CallTask> {\n /**\n * Instanciates a new instance of the CallTask class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the CallTask.\n */\n constructor(model?: Partial<Specification.CallTask>) {\n super(model);\n const self = this as unknown as Specification.CallTask & object;\n if (isObject(model)) {\n if (typeof (model as Specification.TaskBase).input === 'object')\n (self as Specification.TaskBase).input = new _Input(\n (model as Specification.TaskBase).input as Specification.Input,\n );\n if (typeof (model as Specification.TaskBase).output === 'object')\n (self as Specification.TaskBase).output = new _Output(\n (model as Specification.TaskBase).output as Specification.Output,\n );\n if (typeof (model as Specification.TaskBase).export === 'object')\n (self as Specification.TaskBase).export = new _Export(\n (model as Specification.TaskBase).export as Specification.Export,\n );\n if (typeof (model as Specification.TaskBase).timeout === 'object')\n (self as Specification.TaskBase).timeout = new _TaskTimeout(\n (model as Specification.TaskBase).timeout as Specification.TaskTimeout,\n );\n if (typeof (model as Specification.TaskBase).metadata === 'object')\n (self as Specification.TaskBase).metadata = new _TaskMetadata(\n (model as Specification.TaskBase).metadata as Specification.TaskMetadata,\n );\n }\n getLifecycleHooks('CallTask')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the CallTask.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new CallTask(this as any) as CallTaskIntersection;\n validate('CallTask', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the CallTask.\n * Creates a copy of the CallTask, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the CallTask instance.\n */\n normalize(): CallTask & Specification.CallTask {\n const copy = new CallTask(this as any) as CallTaskIntersection;\n return getLifecycleHooks('CallTask')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _CallTask = CallTask as CallTaskConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _Endpoint } from './endpoint';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the Catalog class and type\n */\nexport type CatalogIntersection = Catalog & Specification.Catalog;\n\n/**\n * Represents a constructor for the intersection of the Catalog class and type\n */\nexport interface CatalogConstructor {\n new (model?: Partial<Specification.Catalog>): CatalogIntersection;\n}\n\n/**\n * Represents a Catalog with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class Catalog extends ObjectHydrator<Specification.Catalog> {\n /**\n * Instanciates a new instance of the Catalog class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the Catalog.\n */\n constructor(model?: Partial<Specification.Catalog>) {\n super(model);\n const self = this as unknown as Specification.Catalog & object;\n if (isObject(model)) {\n if (typeof model.endpoint === 'object') self.endpoint = new _Endpoint(model.endpoint);\n }\n getLifecycleHooks('Catalog')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the Catalog.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new Catalog(this as any) as CatalogIntersection;\n validate('Catalog', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the Catalog.\n * Creates a copy of the Catalog, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the Catalog instance.\n */\n normalize(): Catalog & Specification.Catalog {\n const copy = new Catalog(this as any) as CatalogIntersection;\n return getLifecycleHooks('Catalog')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _Catalog = Catalog as CatalogConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the ErrorFilter class and type\n */\nexport type ErrorFilterIntersection = ErrorFilter & Specification.ErrorFilter;\n\n/**\n * Represents a constructor for the intersection of the ErrorFilter class and type\n */\nexport interface ErrorFilterConstructor {\n new (model?: Partial<Specification.ErrorFilter>): ErrorFilterIntersection;\n}\n\n/**\n * Represents a ErrorFilter with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class ErrorFilter extends ObjectHydrator<Specification.ErrorFilter> {\n /**\n * Instanciates a new instance of the ErrorFilter class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the ErrorFilter.\n */\n constructor(model?: Partial<Specification.ErrorFilter>) {\n super(model);\n\n getLifecycleHooks('ErrorFilter')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the ErrorFilter.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new ErrorFilter(this as any) as ErrorFilterIntersection;\n validate('ErrorFilter', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the ErrorFilter.\n * Creates a copy of the ErrorFilter, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the ErrorFilter instance.\n */\n normalize(): ErrorFilter & Specification.ErrorFilter {\n const copy = new ErrorFilter(this as any) as ErrorFilterIntersection;\n return getLifecycleHooks('ErrorFilter')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _ErrorFilter = ErrorFilter as ErrorFilterConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _ErrorFilter } from './error-filter';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the CatchErrors class and type\n */\nexport type CatchErrorsIntersection = CatchErrors & Specification.CatchErrors;\n\n/**\n * Represents a constructor for the intersection of the CatchErrors class and type\n */\nexport interface CatchErrorsConstructor {\n new (model?: Partial<Specification.CatchErrors>): CatchErrorsIntersection;\n}\n\n/**\n * Represents a CatchErrors with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class CatchErrors extends ObjectHydrator<Specification.CatchErrors> {\n /**\n * Instanciates a new instance of the CatchErrors class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the CatchErrors.\n */\n constructor(model?: Partial<Specification.CatchErrors>) {\n super(model);\n const self = this as unknown as Specification.CatchErrors & object;\n if (isObject(model)) {\n if (typeof model.with === 'object') self.with = new _ErrorFilter(model.with);\n }\n getLifecycleHooks('CatchErrors')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the CatchErrors.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new CatchErrors(this as any) as CatchErrorsIntersection;\n validate('CatchErrors', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the CatchErrors.\n * Creates a copy of the CatchErrors, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the CatchErrors instance.\n */\n normalize(): CatchErrors & Specification.CatchErrors {\n const copy = new CatchErrors(this as any) as CatchErrorsIntersection;\n return getLifecycleHooks('CatchErrors')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _CatchErrors = CatchErrors as CatchErrorsConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the ConstantBackoff class and type\n */\nexport type ConstantBackoffIntersection = ConstantBackoff & Specification.ConstantBackoff;\n\n/**\n * Represents a constructor for the intersection of the ConstantBackoff class and type\n */\nexport interface ConstantBackoffConstructor {\n new (model?: Partial<Specification.ConstantBackoff>): ConstantBackoffIntersection;\n}\n\n/**\n * Represents a ConstantBackoff with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class ConstantBackoff extends ObjectHydrator<Specification.ConstantBackoff> {\n /**\n * Instanciates a new instance of the ConstantBackoff class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the ConstantBackoff.\n */\n constructor(model?: Partial<Specification.ConstantBackoff>) {\n super(model);\n\n getLifecycleHooks('ConstantBackoff')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the ConstantBackoff.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new ConstantBackoff(this as any) as ConstantBackoffIntersection;\n validate('ConstantBackoff', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the ConstantBackoff.\n * Creates a copy of the ConstantBackoff, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the ConstantBackoff instance.\n */\n normalize(): ConstantBackoff & Specification.ConstantBackoff {\n const copy = new ConstantBackoff(this as any) as ConstantBackoffIntersection;\n return getLifecycleHooks('ConstantBackoff')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _ConstantBackoff = ConstantBackoff as ConstantBackoffConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the ContainerPorts class and type\n */\nexport type ContainerPortsIntersection = ContainerPorts & Specification.ContainerPorts;\n\n/**\n * Represents a constructor for the intersection of the ContainerPorts class and type\n */\nexport interface ContainerPortsConstructor {\n new (model?: Partial<Specification.ContainerPorts>): ContainerPortsIntersection;\n}\n\n/**\n * Represents a ContainerPorts with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class ContainerPorts extends ObjectHydrator<Specification.ContainerPorts> {\n /**\n * Instanciates a new instance of the ContainerPorts class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the ContainerPorts.\n */\n constructor(model?: Partial<Specification.ContainerPorts>) {\n super(model);\n\n getLifecycleHooks('ContainerPorts')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the ContainerPorts.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new ContainerPorts(this as any) as ContainerPortsIntersection;\n validate('ContainerPorts', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the ContainerPorts.\n * Creates a copy of the ContainerPorts, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the ContainerPorts instance.\n */\n normalize(): ContainerPorts & Specification.ContainerPorts {\n const copy = new ContainerPorts(this as any) as ContainerPortsIntersection;\n return getLifecycleHooks('ContainerPorts')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _ContainerPorts = ContainerPorts as ContainerPortsConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the ContainerVolumes class and type\n */\nexport type ContainerVolumesIntersection = ContainerVolumes & Specification.ContainerVolumes;\n\n/**\n * Represents a constructor for the intersection of the ContainerVolumes class and type\n */\nexport interface ContainerVolumesConstructor {\n new (model?: Partial<Specification.ContainerVolumes>): ContainerVolumesIntersection;\n}\n\n/**\n * Represents a ContainerVolumes with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class ContainerVolumes extends ObjectHydrator<Specification.ContainerVolumes> {\n /**\n * Instanciates a new instance of the ContainerVolumes class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the ContainerVolumes.\n */\n constructor(model?: Partial<Specification.ContainerVolumes>) {\n super(model);\n\n getLifecycleHooks('ContainerVolumes')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the ContainerVolumes.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new ContainerVolumes(this as any) as ContainerVolumesIntersection;\n validate('ContainerVolumes', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the ContainerVolumes.\n * Creates a copy of the ContainerVolumes, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the ContainerVolumes instance.\n */\n normalize(): ContainerVolumes & Specification.ContainerVolumes {\n const copy = new ContainerVolumes(this as any) as ContainerVolumesIntersection;\n return getLifecycleHooks('ContainerVolumes')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _ContainerVolumes = ContainerVolumes as ContainerVolumesConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the ContainerEnvironment class and type\n */\nexport type ContainerEnvironmentIntersection = ContainerEnvironment & Specification.ContainerEnvironment;\n\n/**\n * Represents a constructor for the intersection of the ContainerEnvironment class and type\n */\nexport interface ContainerEnvironmentConstructor {\n new (model?: Partial<Specification.ContainerEnvironment>): ContainerEnvironmentIntersection;\n}\n\n/**\n * Represents a ContainerEnvironment with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class ContainerEnvironment extends ObjectHydrator<Specification.ContainerEnvironment> {\n /**\n * Instanciates a new instance of the ContainerEnvironment class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the ContainerEnvironment.\n */\n constructor(model?: Partial<Specification.ContainerEnvironment>) {\n super(model);\n\n getLifecycleHooks('ContainerEnvironment')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the ContainerEnvironment.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new ContainerEnvironment(this as any) as ContainerEnvironmentIntersection;\n validate('ContainerEnvironment', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the ContainerEnvironment.\n * Creates a copy of the ContainerEnvironment, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the ContainerEnvironment instance.\n */\n normalize(): ContainerEnvironment & Specification.ContainerEnvironment {\n const copy = new ContainerEnvironment(this as any) as ContainerEnvironmentIntersection;\n return getLifecycleHooks('ContainerEnvironment')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _ContainerEnvironment = ContainerEnvironment as ContainerEnvironmentConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _Duration } from './duration';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the ContainerLifetime class and type\n */\nexport type ContainerLifetimeIntersection = ContainerLifetime & Specification.ContainerLifetime;\n\n/**\n * Represents a constructor for the intersection of the ContainerLifetime class and type\n */\nexport interface ContainerLifetimeConstructor {\n new (model?: Partial<Specification.ContainerLifetime>): ContainerLifetimeIntersection;\n}\n\n/**\n * Represents a ContainerLifetime with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class ContainerLifetime extends ObjectHydrator<Specification.ContainerLifetime> {\n /**\n * Instanciates a new instance of the ContainerLifetime class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the ContainerLifetime.\n */\n constructor(model?: Partial<Specification.ContainerLifetime>) {\n super(model);\n const self = this as unknown as Specification.ContainerLifetime & object;\n if (isObject(model)) {\n if (typeof model.after === 'object') self.after = new _Duration(model.after);\n }\n getLifecycleHooks('ContainerLifetime')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the ContainerLifetime.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new ContainerLifetime(this as any) as ContainerLifetimeIntersection;\n validate('ContainerLifetime', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the ContainerLifetime.\n * Creates a copy of the ContainerLifetime, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the ContainerLifetime instance.\n */\n normalize(): ContainerLifetime & Specification.ContainerLifetime {\n const copy = new ContainerLifetime(this as any) as ContainerLifetimeIntersection;\n return getLifecycleHooks('ContainerLifetime')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _ContainerLifetime = ContainerLifetime as ContainerLifetimeConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _ContainerPorts } from './container-ports';\nimport { _ContainerVolumes } from './container-volumes';\nimport { _ContainerEnvironment } from './container-environment';\nimport { _ContainerLifetime } from './container-lifetime';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the Container class and type\n */\nexport type ContainerIntersection = Container & Specification.Container;\n\n/**\n * Represents a constructor for the intersection of the Container class and type\n */\nexport interface ContainerConstructor {\n new (model?: Partial<Specification.Container>): ContainerIntersection;\n}\n\n/**\n * Represents a Container with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class Container extends ObjectHydrator<Specification.Container> {\n /**\n * Instanciates a new instance of the Container class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the Container.\n */\n constructor(model?: Partial<Specification.Container>) {\n super(model);\n const self = this as unknown as Specification.Container & object;\n if (isObject(model)) {\n if (typeof model.ports === 'object') self.ports = new _ContainerPorts(model.ports);\n if (typeof model.volumes === 'object') self.volumes = new _ContainerVolumes(model.volumes);\n if (typeof model.environment === 'object') self.environment = new _ContainerEnvironment(model.environment);\n if (typeof model.lifetime === 'object') self.lifetime = new _ContainerLifetime(model.lifetime);\n }\n getLifecycleHooks('Container')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the Container.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new Container(this as any) as ContainerIntersection;\n validate('Container', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the Container.\n * Creates a copy of the Container, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the Container instance.\n */\n normalize(): Container & Specification.Container {\n const copy = new Container(this as any) as ContainerIntersection;\n return getLifecycleHooks('Container')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _Container = Container as ContainerConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { Specification } from '../definitions';\nimport { ArrayHydrator } from '../../hydrator';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the ContainerArguments class and type\n */\nexport type ContainerArgumentsIntersection = ContainerArguments & Specification.ContainerArguments;\n\n/**\n * Represents a constructor for the intersection of the ContainerArguments class and type\n */\nexport interface ContainerArgumentsConstructor {\n new (model?: Array<string> | number): ContainerArgumentsIntersection;\n}\n\n/**\n * Represents a collection of string.\n * Inherits from ArrayHydrator to handle array-specific hydration.\n */\nexport class ContainerArguments extends ArrayHydrator<string> {\n /**\n * Constructs a new instance of the ContainerArguments class.\n *\n * @param model - Optional parameter which can be an array of objects or a number representing the array length.\n */\n constructor(model?: Array<string> | number) {\n super(model);\n if (Array.isArray(model)) {\n if (model?.length) {\n this.splice(0, this.length);\n model.forEach((item) => this.push(item));\n }\n }\n Object.setPrototypeOf(this, Object.create(ContainerArguments.prototype));\n getLifecycleHooks('ContainerArguments')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the ContainerArguments.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new ContainerArguments(this);\n validate('ContainerArguments', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the ContainerArguments.\n * Creates a copy of the ContainerArguments, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the ContainerArguments instance.\n */\n normalize(): ContainerArguments {\n const copy = new ContainerArguments(this);\n return getLifecycleHooks('ContainerArguments')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _ContainerArguments = ContainerArguments as unknown as ContainerArgumentsConstructor;\n//export const _ContainerArguments = ContainerArguments; // could be exported directly, but it makes the job of building the index more straightforward as it's consistant with \"object\" classes\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _DigestAuthenticationPolicyConfiguration } from './digest-authentication-policy-configuration';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the DigestAuthenticationPolicy class and type\n */\nexport type DigestAuthenticationPolicyIntersection = DigestAuthenticationPolicy &\n Specification.DigestAuthenticationPolicy;\n\n/**\n * Represents a constructor for the intersection of the DigestAuthenticationPolicy class and type\n */\nexport interface DigestAuthenticationPolicyConstructor {\n new (model?: Partial<Specification.DigestAuthenticationPolicy>): DigestAuthenticationPolicyIntersection;\n}\n\n/**\n * Represents a DigestAuthenticationPolicy with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class DigestAuthenticationPolicy extends ObjectHydrator<Specification.DigestAuthenticationPolicy> {\n /**\n * Instanciates a new instance of the DigestAuthenticationPolicy class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the DigestAuthenticationPolicy.\n */\n constructor(model?: Partial<Specification.DigestAuthenticationPolicy>) {\n super(model);\n const self = this as unknown as Specification.DigestAuthenticationPolicy & object;\n if (isObject(model)) {\n if (typeof model.digest === 'object') self.digest = new _DigestAuthenticationPolicyConfiguration(model.digest);\n }\n getLifecycleHooks('DigestAuthenticationPolicy')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the DigestAuthenticationPolicy.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new DigestAuthenticationPolicy(this as any) as DigestAuthenticationPolicyIntersection;\n validate('DigestAuthenticationPolicy', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the DigestAuthenticationPolicy.\n * Creates a copy of the DigestAuthenticationPolicy, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the DigestAuthenticationPolicy instance.\n */\n normalize(): DigestAuthenticationPolicy & Specification.DigestAuthenticationPolicy {\n const copy = new DigestAuthenticationPolicy(this as any) as DigestAuthenticationPolicyIntersection;\n return getLifecycleHooks('DigestAuthenticationPolicy')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _DigestAuthenticationPolicy = DigestAuthenticationPolicy as DigestAuthenticationPolicyConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the DigestAuthenticationProperties class and type\n */\nexport type DigestAuthenticationPropertiesIntersection = DigestAuthenticationProperties &\n Specification.DigestAuthenticationProperties;\n\n/**\n * Represents a constructor for the intersection of the DigestAuthenticationProperties class and type\n */\nexport interface DigestAuthenticationPropertiesConstructor {\n new (model?: Partial<Specification.DigestAuthenticationProperties>): DigestAuthenticationPropertiesIntersection;\n}\n\n/**\n * Represents a DigestAuthenticationProperties with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class DigestAuthenticationProperties extends ObjectHydrator<Specification.DigestAuthenticationProperties> {\n /**\n * Instanciates a new instance of the DigestAuthenticationProperties class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the DigestAuthenticationProperties.\n */\n constructor(model?: Partial<Specification.DigestAuthenticationProperties>) {\n super(model);\n\n getLifecycleHooks('DigestAuthenticationProperties')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the DigestAuthenticationProperties.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new DigestAuthenticationProperties(this as any) as DigestAuthenticationPropertiesIntersection;\n validate('DigestAuthenticationProperties', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the DigestAuthenticationProperties.\n * Creates a copy of the DigestAuthenticationProperties, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the DigestAuthenticationProperties instance.\n */\n normalize(): DigestAuthenticationProperties & Specification.DigestAuthenticationProperties {\n const copy = new DigestAuthenticationProperties(this as any) as DigestAuthenticationPropertiesIntersection;\n return getLifecycleHooks('DigestAuthenticationProperties')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _DigestAuthenticationProperties =\n DigestAuthenticationProperties as DigestAuthenticationPropertiesConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the WorkflowTags class and type\n */\nexport type WorkflowTagsIntersection = WorkflowTags & Specification.WorkflowTags;\n\n/**\n * Represents a constructor for the intersection of the WorkflowTags class and type\n */\nexport interface WorkflowTagsConstructor {\n new (model?: Partial<Specification.WorkflowTags>): WorkflowTagsIntersection;\n}\n\n/**\n * Represents a WorkflowTags with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class WorkflowTags extends ObjectHydrator<Specification.WorkflowTags> {\n /**\n * Instanciates a new instance of the WorkflowTags class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the WorkflowTags.\n */\n constructor(model?: Partial<Specification.WorkflowTags>) {\n super(model);\n\n getLifecycleHooks('WorkflowTags')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the WorkflowTags.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new WorkflowTags(this as any) as WorkflowTagsIntersection;\n validate('WorkflowTags', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the WorkflowTags.\n * Creates a copy of the WorkflowTags, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the WorkflowTags instance.\n */\n normalize(): WorkflowTags & Specification.WorkflowTags {\n const copy = new WorkflowTags(this as any) as WorkflowTagsIntersection;\n return getLifecycleHooks('WorkflowTags')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _WorkflowTags = WorkflowTags as WorkflowTagsConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the WorkflowMetadata class and type\n */\nexport type WorkflowMetadataIntersection = WorkflowMetadata & Specification.WorkflowMetadata;\n\n/**\n * Represents a constructor for the intersection of the WorkflowMetadata class and type\n */\nexport interface WorkflowMetadataConstructor {\n new (model?: Partial<Specification.WorkflowMetadata>): WorkflowMetadataIntersection;\n}\n\n/**\n * Represents a WorkflowMetadata with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class WorkflowMetadata extends ObjectHydrator<Specification.WorkflowMetadata> {\n /**\n * Instanciates a new instance of the WorkflowMetadata class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the WorkflowMetadata.\n */\n constructor(model?: Partial<Specification.WorkflowMetadata>) {\n super(model);\n\n getLifecycleHooks('WorkflowMetadata')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the WorkflowMetadata.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new WorkflowMetadata(this as any) as WorkflowMetadataIntersection;\n validate('WorkflowMetadata', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the WorkflowMetadata.\n * Creates a copy of the WorkflowMetadata, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the WorkflowMetadata instance.\n */\n normalize(): WorkflowMetadata & Specification.WorkflowMetadata {\n const copy = new WorkflowMetadata(this as any) as WorkflowMetadataIntersection;\n return getLifecycleHooks('WorkflowMetadata')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _WorkflowMetadata = WorkflowMetadata as WorkflowMetadataConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _WorkflowTags } from './workflow-tags';\nimport { _WorkflowMetadata } from './workflow-metadata';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the Document class and type\n */\nexport type DocumentIntersection = Document & Specification.Document;\n\n/**\n * Represents a constructor for the intersection of the Document class and type\n */\nexport interface DocumentConstructor {\n new (model?: Partial<Specification.Document>): DocumentIntersection;\n}\n\n/**\n * Represents a Document with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class Document extends ObjectHydrator<Specification.Document> {\n /**\n * Instanciates a new instance of the Document class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the Document.\n */\n constructor(model?: Partial<Specification.Document>) {\n super(model);\n const self = this as unknown as Specification.Document & object;\n if (isObject(model)) {\n if (typeof model.tags === 'object') self.tags = new _WorkflowTags(model.tags);\n if (typeof model.metadata === 'object') self.metadata = new _WorkflowMetadata(model.metadata);\n }\n getLifecycleHooks('Document')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the Document.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new Document(this as any) as DocumentIntersection;\n validate('Document', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the Document.\n * Creates a copy of the Document, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the Document instance.\n */\n normalize(): Document & Specification.Document {\n const copy = new Document(this as any) as DocumentIntersection;\n return getLifecycleHooks('Document')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _Document = Document as DocumentConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _TaskList } from './task-list';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the ForkTaskConfiguration class and type\n */\nexport type ForkTaskConfigurationIntersection = ForkTaskConfiguration & Specification.ForkTaskConfiguration;\n\n/**\n * Represents a constructor for the intersection of the ForkTaskConfiguration class and type\n */\nexport interface ForkTaskConfigurationConstructor {\n new (model?: Partial<Specification.ForkTaskConfiguration>): ForkTaskConfigurationIntersection;\n}\n\n/**\n * Represents a ForkTaskConfiguration with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class ForkTaskConfiguration extends ObjectHydrator<Specification.ForkTaskConfiguration> {\n /**\n * Instanciates a new instance of the ForkTaskConfiguration class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the ForkTaskConfiguration.\n */\n constructor(model?: Partial<Specification.ForkTaskConfiguration>) {\n super(model);\n const self = this as unknown as Specification.ForkTaskConfiguration & object;\n if (isObject(model)) {\n if (typeof model.branches === 'object') self.branches = new _TaskList(model.branches);\n }\n getLifecycleHooks('ForkTaskConfiguration')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the ForkTaskConfiguration.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new ForkTaskConfiguration(this as any) as ForkTaskConfigurationIntersection;\n validate('ForkTaskConfiguration', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the ForkTaskConfiguration.\n * Creates a copy of the ForkTaskConfiguration, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the ForkTaskConfiguration instance.\n */\n normalize(): ForkTaskConfiguration & Specification.ForkTaskConfiguration {\n const copy = new ForkTaskConfiguration(this as any) as ForkTaskConfigurationIntersection;\n return getLifecycleHooks('ForkTaskConfiguration')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _ForkTaskConfiguration = ForkTaskConfiguration as ForkTaskConfigurationConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the EmitEventWith class and type\n */\nexport type EmitEventWithIntersection = EmitEventWith & Specification.EmitEventWith;\n\n/**\n * Represents a constructor for the intersection of the EmitEventWith class and type\n */\nexport interface EmitEventWithConstructor {\n new (model?: Partial<Specification.EmitEventWith>): EmitEventWithIntersection;\n}\n\n/**\n * Represents a EmitEventWith with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class EmitEventWith extends ObjectHydrator<Specification.EmitEventWith> {\n /**\n * Instanciates a new instance of the EmitEventWith class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the EmitEventWith.\n */\n constructor(model?: Partial<Specification.EmitEventWith>) {\n super(model);\n\n getLifecycleHooks('EmitEventWith')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the EmitEventWith.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new EmitEventWith(this as any) as EmitEventWithIntersection;\n validate('EmitEventWith', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the EmitEventWith.\n * Creates a copy of the EmitEventWith, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the EmitEventWith instance.\n */\n normalize(): EmitEventWith & Specification.EmitEventWith {\n const copy = new EmitEventWith(this as any) as EmitEventWithIntersection;\n return getLifecycleHooks('EmitEventWith')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _EmitEventWith = EmitEventWith as EmitEventWithConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _EmitEventWith } from './emit-event-with';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the EmitEventDefinition class and type\n */\nexport type EmitEventDefinitionIntersection = EmitEventDefinition & Specification.EmitEventDefinition;\n\n/**\n * Represents a constructor for the intersection of the EmitEventDefinition class and type\n */\nexport interface EmitEventDefinitionConstructor {\n new (model?: Partial<Specification.EmitEventDefinition>): EmitEventDefinitionIntersection;\n}\n\n/**\n * Represents a EmitEventDefinition with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class EmitEventDefinition extends ObjectHydrator<Specification.EmitEventDefinition> {\n /**\n * Instanciates a new instance of the EmitEventDefinition class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the EmitEventDefinition.\n */\n constructor(model?: Partial<Specification.EmitEventDefinition>) {\n super(model);\n const self = this as unknown as Specification.EmitEventDefinition & object;\n if (isObject(model)) {\n if (typeof model.with === 'object') self.with = new _EmitEventWith(model.with);\n }\n getLifecycleHooks('EmitEventDefinition')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the EmitEventDefinition.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new EmitEventDefinition(this as any) as EmitEventDefinitionIntersection;\n validate('EmitEventDefinition', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the EmitEventDefinition.\n * Creates a copy of the EmitEventDefinition, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the EmitEventDefinition instance.\n */\n normalize(): EmitEventDefinition & Specification.EmitEventDefinition {\n const copy = new EmitEventDefinition(this as any) as EmitEventDefinitionIntersection;\n return getLifecycleHooks('EmitEventDefinition')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _EmitEventDefinition = EmitEventDefinition as EmitEventDefinitionConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _EmitEventDefinition } from './emit-event-definition';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the EmitTaskConfiguration class and type\n */\nexport type EmitTaskConfigurationIntersection = EmitTaskConfiguration & Specification.EmitTaskConfiguration;\n\n/**\n * Represents a constructor for the intersection of the EmitTaskConfiguration class and type\n */\nexport interface EmitTaskConfigurationConstructor {\n new (model?: Partial<Specification.EmitTaskConfiguration>): EmitTaskConfigurationIntersection;\n}\n\n/**\n * Represents a EmitTaskConfiguration with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class EmitTaskConfiguration extends ObjectHydrator<Specification.EmitTaskConfiguration> {\n /**\n * Instanciates a new instance of the EmitTaskConfiguration class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the EmitTaskConfiguration.\n */\n constructor(model?: Partial<Specification.EmitTaskConfiguration>) {\n super(model);\n const self = this as unknown as Specification.EmitTaskConfiguration & object;\n if (isObject(model)) {\n if (typeof model.event === 'object') self.event = new _EmitEventDefinition(model.event);\n }\n getLifecycleHooks('EmitTaskConfiguration')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the EmitTaskConfiguration.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new EmitTaskConfiguration(this as any) as EmitTaskConfigurationIntersection;\n validate('EmitTaskConfiguration', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the EmitTaskConfiguration.\n * Creates a copy of the EmitTaskConfiguration, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the EmitTaskConfiguration instance.\n */\n normalize(): EmitTaskConfiguration & Specification.EmitTaskConfiguration {\n const copy = new EmitTaskConfiguration(this as any) as EmitTaskConfigurationIntersection;\n return getLifecycleHooks('EmitTaskConfiguration')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _EmitTaskConfiguration = EmitTaskConfiguration as EmitTaskConfigurationConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the ForTaskConfiguration class and type\n */\nexport type ForTaskConfigurationIntersection = ForTaskConfiguration & Specification.ForTaskConfiguration;\n\n/**\n * Represents a constructor for the intersection of the ForTaskConfiguration class and type\n */\nexport interface ForTaskConfigurationConstructor {\n new (model?: Partial<Specification.ForTaskConfiguration>): ForTaskConfigurationIntersection;\n}\n\n/**\n * Represents a ForTaskConfiguration with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class ForTaskConfiguration extends ObjectHydrator<Specification.ForTaskConfiguration> {\n /**\n * Instanciates a new instance of the ForTaskConfiguration class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the ForTaskConfiguration.\n */\n constructor(model?: Partial<Specification.ForTaskConfiguration>) {\n super(model);\n\n getLifecycleHooks('ForTaskConfiguration')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the ForTaskConfiguration.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new ForTaskConfiguration(this as any) as ForTaskConfigurationIntersection;\n validate('ForTaskConfiguration', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the ForTaskConfiguration.\n * Creates a copy of the ForTaskConfiguration, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the ForTaskConfiguration instance.\n */\n normalize(): ForTaskConfiguration & Specification.ForTaskConfiguration {\n const copy = new ForTaskConfiguration(this as any) as ForTaskConfigurationIntersection;\n return getLifecycleHooks('ForTaskConfiguration')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _ForTaskConfiguration = ForTaskConfiguration as ForTaskConfigurationConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _AllEventConsumptionStrategyConfiguration } from './all-event-consumption-strategy-configuration';\nimport { _AnyEventConsumptionStrategyConfiguration } from './any-event-consumption-strategy-configuration';\nimport { _AnyEventConsumptionStrategyUntil } from './any-event-consumption-strategy-until';\nimport { _EventFilter } from './event-filter';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the EventConsumptionStrategy class and type\n */\nexport type EventConsumptionStrategyIntersection = EventConsumptionStrategy & Specification.EventConsumptionStrategy;\n\n/**\n * Represents a constructor for the intersection of the EventConsumptionStrategy class and type\n */\nexport interface EventConsumptionStrategyConstructor {\n new (model?: Partial<Specification.EventConsumptionStrategy>): EventConsumptionStrategyIntersection;\n}\n\n/**\n * Represents a EventConsumptionStrategy with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class EventConsumptionStrategy extends ObjectHydrator<Specification.EventConsumptionStrategy> {\n /**\n * Instanciates a new instance of the EventConsumptionStrategy class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the EventConsumptionStrategy.\n */\n constructor(model?: Partial<Specification.EventConsumptionStrategy>) {\n super(model);\n const self = this as unknown as Specification.EventConsumptionStrategy & object;\n if (isObject(model)) {\n if (typeof (model as Specification.AllEventConsumptionStrategy).all === 'object')\n (self as Specification.AllEventConsumptionStrategy).all = new _AllEventConsumptionStrategyConfiguration(\n (model as Specification.AllEventConsumptionStrategy)\n .all as Specification.AllEventConsumptionStrategyConfiguration,\n );\n if (typeof (model as Specification.AnyEventConsumptionStrategy).any === 'object')\n (self as Specification.AnyEventConsumptionStrategy).any = new _AnyEventConsumptionStrategyConfiguration(\n (model as Specification.AnyEventConsumptionStrategy)\n .any as Specification.AnyEventConsumptionStrategyConfiguration,\n );\n if (typeof (model as Specification.AnyEventConsumptionStrategy).until === 'object')\n (self as Specification.AnyEventConsumptionStrategy).until = new _AnyEventConsumptionStrategyUntil(\n (model as Specification.AnyEventConsumptionStrategy).until as Specification.AnyEventConsumptionStrategyUntil,\n );\n if (typeof (model as Specification.OneEventConsumptionStrategy).one === 'object')\n (self as Specification.OneEventConsumptionStrategy).one = new _EventFilter(\n (model as Specification.OneEventConsumptionStrategy).one as Specification.EventFilter,\n );\n }\n getLifecycleHooks('EventConsumptionStrategy')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the EventConsumptionStrategy.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new EventConsumptionStrategy(this as any) as EventConsumptionStrategyIntersection;\n validate('EventConsumptionStrategy', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the EventConsumptionStrategy.\n * Creates a copy of the EventConsumptionStrategy, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the EventConsumptionStrategy instance.\n */\n normalize(): EventConsumptionStrategy & Specification.EventConsumptionStrategy {\n const copy = new EventConsumptionStrategy(this as any) as EventConsumptionStrategyIntersection;\n return getLifecycleHooks('EventConsumptionStrategy')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _EventConsumptionStrategy = EventConsumptionStrategy as EventConsumptionStrategyConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _EventConsumptionStrategy } from './event-consumption-strategy';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the ListenTaskConfiguration class and type\n */\nexport type ListenTaskConfigurationIntersection = ListenTaskConfiguration & Specification.ListenTaskConfiguration;\n\n/**\n * Represents a constructor for the intersection of the ListenTaskConfiguration class and type\n */\nexport interface ListenTaskConfigurationConstructor {\n new (model?: Partial<Specification.ListenTaskConfiguration>): ListenTaskConfigurationIntersection;\n}\n\n/**\n * Represents a ListenTaskConfiguration with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class ListenTaskConfiguration extends ObjectHydrator<Specification.ListenTaskConfiguration> {\n /**\n * Instanciates a new instance of the ListenTaskConfiguration class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the ListenTaskConfiguration.\n */\n constructor(model?: Partial<Specification.ListenTaskConfiguration>) {\n super(model);\n const self = this as unknown as Specification.ListenTaskConfiguration & object;\n if (isObject(model)) {\n if (typeof model.to === 'object') self.to = new _EventConsumptionStrategy(model.to);\n }\n getLifecycleHooks('ListenTaskConfiguration')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the ListenTaskConfiguration.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new ListenTaskConfiguration(this as any) as ListenTaskConfigurationIntersection;\n validate('ListenTaskConfiguration', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the ListenTaskConfiguration.\n * Creates a copy of the ListenTaskConfiguration, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the ListenTaskConfiguration instance.\n */\n normalize(): ListenTaskConfiguration & Specification.ListenTaskConfiguration {\n const copy = new ListenTaskConfiguration(this as any) as ListenTaskConfigurationIntersection;\n return getLifecycleHooks('ListenTaskConfiguration')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _ListenTaskConfiguration = ListenTaskConfiguration as ListenTaskConfigurationConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _TaskList } from './task-list';\nimport { _Output } from './output';\nimport { _Export } from './export';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the SubscriptionIterator class and type\n */\nexport type SubscriptionIteratorIntersection = SubscriptionIterator & Specification.SubscriptionIterator;\n\n/**\n * Represents a constructor for the intersection of the SubscriptionIterator class and type\n */\nexport interface SubscriptionIteratorConstructor {\n new (model?: Partial<Specification.SubscriptionIterator>): SubscriptionIteratorIntersection;\n}\n\n/**\n * Represents a SubscriptionIterator with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class SubscriptionIterator extends ObjectHydrator<Specification.SubscriptionIterator> {\n /**\n * Instanciates a new instance of the SubscriptionIterator class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the SubscriptionIterator.\n */\n constructor(model?: Partial<Specification.SubscriptionIterator>) {\n super(model);\n const self = this as unknown as Specification.SubscriptionIterator & object;\n if (isObject(model)) {\n if (typeof model.do === 'object') self.do = new _TaskList(model.do);\n if (typeof model.output === 'object') self.output = new _Output(model.output);\n if (typeof model.export === 'object') self.export = new _Export(model.export);\n }\n getLifecycleHooks('SubscriptionIterator')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the SubscriptionIterator.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new SubscriptionIterator(this as any) as SubscriptionIteratorIntersection;\n validate('SubscriptionIterator', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the SubscriptionIterator.\n * Creates a copy of the SubscriptionIterator, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the SubscriptionIterator instance.\n */\n normalize(): SubscriptionIterator & Specification.SubscriptionIterator {\n const copy = new SubscriptionIterator(this as any) as SubscriptionIteratorIntersection;\n return getLifecycleHooks('SubscriptionIterator')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _SubscriptionIterator = SubscriptionIterator as SubscriptionIteratorConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the RaiseTaskError class and type\n */\nexport type RaiseTaskErrorIntersection = RaiseTaskError & Specification.RaiseTaskError;\n\n/**\n * Represents a constructor for the intersection of the RaiseTaskError class and type\n */\nexport interface RaiseTaskErrorConstructor {\n new (model?: Partial<Specification.RaiseTaskError>): RaiseTaskErrorIntersection;\n}\n\n/**\n * Represents a RaiseTaskError with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class RaiseTaskError extends ObjectHydrator<Specification.RaiseTaskError> {\n /**\n * Instanciates a new instance of the RaiseTaskError class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the RaiseTaskError.\n */\n constructor(model?: Partial<Specification.RaiseTaskError>) {\n super(model);\n\n getLifecycleHooks('RaiseTaskError')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the RaiseTaskError.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new RaiseTaskError(this as any) as RaiseTaskErrorIntersection;\n validate('RaiseTaskError', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the RaiseTaskError.\n * Creates a copy of the RaiseTaskError, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the RaiseTaskError instance.\n */\n normalize(): RaiseTaskError & Specification.RaiseTaskError {\n const copy = new RaiseTaskError(this as any) as RaiseTaskErrorIntersection;\n return getLifecycleHooks('RaiseTaskError')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _RaiseTaskError = RaiseTaskError as RaiseTaskErrorConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _RaiseTaskError } from './raise-task-error';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the RaiseTaskConfiguration class and type\n */\nexport type RaiseTaskConfigurationIntersection = RaiseTaskConfiguration & Specification.RaiseTaskConfiguration;\n\n/**\n * Represents a constructor for the intersection of the RaiseTaskConfiguration class and type\n */\nexport interface RaiseTaskConfigurationConstructor {\n new (model?: Partial<Specification.RaiseTaskConfiguration>): RaiseTaskConfigurationIntersection;\n}\n\n/**\n * Represents a RaiseTaskConfiguration with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class RaiseTaskConfiguration extends ObjectHydrator<Specification.RaiseTaskConfiguration> {\n /**\n * Instanciates a new instance of the RaiseTaskConfiguration class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the RaiseTaskConfiguration.\n */\n constructor(model?: Partial<Specification.RaiseTaskConfiguration>) {\n super(model);\n const self = this as unknown as Specification.RaiseTaskConfiguration & object;\n if (isObject(model)) {\n if (typeof model.error === 'object') self.error = new _RaiseTaskError(model.error);\n }\n getLifecycleHooks('RaiseTaskConfiguration')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the RaiseTaskConfiguration.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new RaiseTaskConfiguration(this as any) as RaiseTaskConfigurationIntersection;\n validate('RaiseTaskConfiguration', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the RaiseTaskConfiguration.\n * Creates a copy of the RaiseTaskConfiguration, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the RaiseTaskConfiguration instance.\n */\n normalize(): RaiseTaskConfiguration & Specification.RaiseTaskConfiguration {\n const copy = new RaiseTaskConfiguration(this as any) as RaiseTaskConfigurationIntersection;\n return getLifecycleHooks('RaiseTaskConfiguration')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _RaiseTaskConfiguration = RaiseTaskConfiguration as RaiseTaskConfigurationConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _ExternalResource } from './external-resource';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the Script class and type\n */\nexport type ScriptIntersection = Script & Specification.Script;\n\n/**\n * Represents a constructor for the intersection of the Script class and type\n */\nexport interface ScriptConstructor {\n new (model?: Partial<Specification.Script>): ScriptIntersection;\n}\n\n/**\n * Represents a Script with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class Script extends ObjectHydrator<Specification.Script> {\n /**\n * Instanciates a new instance of the Script class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the Script.\n */\n constructor(model?: Partial<Specification.Script>) {\n super(model);\n const self = this as unknown as Specification.Script & object;\n if (isObject(model)) {\n if (typeof (model as Specification.ExternalScript).source === 'object')\n (self as Specification.ExternalScript).source = new _ExternalResource(\n (model as Specification.ExternalScript).source as Specification.ExternalResource,\n );\n }\n getLifecycleHooks('Script')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the Script.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new Script(this as any) as ScriptIntersection;\n validate('Script', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the Script.\n * Creates a copy of the Script, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the Script instance.\n */\n normalize(): Script & Specification.Script {\n const copy = new Script(this as any) as ScriptIntersection;\n return getLifecycleHooks('Script')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _Script = Script as ScriptConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the ShellEnvironment class and type\n */\nexport type ShellEnvironmentIntersection = ShellEnvironment & Specification.ShellEnvironment;\n\n/**\n * Represents a constructor for the intersection of the ShellEnvironment class and type\n */\nexport interface ShellEnvironmentConstructor {\n new (model?: Partial<Specification.ShellEnvironment>): ShellEnvironmentIntersection;\n}\n\n/**\n * Represents a ShellEnvironment with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class ShellEnvironment extends ObjectHydrator<Specification.ShellEnvironment> {\n /**\n * Instanciates a new instance of the ShellEnvironment class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the ShellEnvironment.\n */\n constructor(model?: Partial<Specification.ShellEnvironment>) {\n super(model);\n\n getLifecycleHooks('ShellEnvironment')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the ShellEnvironment.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new ShellEnvironment(this as any) as ShellEnvironmentIntersection;\n validate('ShellEnvironment', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the ShellEnvironment.\n * Creates a copy of the ShellEnvironment, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the ShellEnvironment instance.\n */\n normalize(): ShellEnvironment & Specification.ShellEnvironment {\n const copy = new ShellEnvironment(this as any) as ShellEnvironmentIntersection;\n return getLifecycleHooks('ShellEnvironment')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _ShellEnvironment = ShellEnvironment as ShellEnvironmentConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _ShellEnvironment } from './shell-environment';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the Shell class and type\n */\nexport type ShellIntersection = Shell & Specification.Shell;\n\n/**\n * Represents a constructor for the intersection of the Shell class and type\n */\nexport interface ShellConstructor {\n new (model?: Partial<Specification.Shell>): ShellIntersection;\n}\n\n/**\n * Represents a Shell with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class Shell extends ObjectHydrator<Specification.Shell> {\n /**\n * Instanciates a new instance of the Shell class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the Shell.\n */\n constructor(model?: Partial<Specification.Shell>) {\n super(model);\n const self = this as unknown as Specification.Shell & object;\n if (isObject(model)) {\n if (typeof model.environment === 'object') self.environment = new _ShellEnvironment(model.environment);\n }\n getLifecycleHooks('Shell')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the Shell.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new Shell(this as any) as ShellIntersection;\n validate('Shell', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the Shell.\n * Creates a copy of the Shell, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the Shell instance.\n */\n normalize(): Shell & Specification.Shell {\n const copy = new Shell(this as any) as ShellIntersection;\n return getLifecycleHooks('Shell')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _Shell = Shell as ShellConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the SubflowInput class and type\n */\nexport type SubflowInputIntersection = SubflowInput & Specification.SubflowInput;\n\n/**\n * Represents a constructor for the intersection of the SubflowInput class and type\n */\nexport interface SubflowInputConstructor {\n new (model?: Partial<Specification.SubflowInput>): SubflowInputIntersection;\n}\n\n/**\n * Represents a SubflowInput with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class SubflowInput extends ObjectHydrator<Specification.SubflowInput> {\n /**\n * Instanciates a new instance of the SubflowInput class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the SubflowInput.\n */\n constructor(model?: Partial<Specification.SubflowInput>) {\n super(model);\n\n getLifecycleHooks('SubflowInput')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the SubflowInput.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new SubflowInput(this as any) as SubflowInputIntersection;\n validate('SubflowInput', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the SubflowInput.\n * Creates a copy of the SubflowInput, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the SubflowInput instance.\n */\n normalize(): SubflowInput & Specification.SubflowInput {\n const copy = new SubflowInput(this as any) as SubflowInputIntersection;\n return getLifecycleHooks('SubflowInput')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _SubflowInput = SubflowInput as SubflowInputConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _SubflowInput } from './subflow-input';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the SubflowConfiguration class and type\n */\nexport type SubflowConfigurationIntersection = SubflowConfiguration & Specification.SubflowConfiguration;\n\n/**\n * Represents a constructor for the intersection of the SubflowConfiguration class and type\n */\nexport interface SubflowConfigurationConstructor {\n new (model?: Partial<Specification.SubflowConfiguration>): SubflowConfigurationIntersection;\n}\n\n/**\n * Represents a SubflowConfiguration with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class SubflowConfiguration extends ObjectHydrator<Specification.SubflowConfiguration> {\n /**\n * Instanciates a new instance of the SubflowConfiguration class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the SubflowConfiguration.\n */\n constructor(model?: Partial<Specification.SubflowConfiguration>) {\n super(model);\n const self = this as unknown as Specification.SubflowConfiguration & object;\n if (isObject(model)) {\n if (typeof model.input === 'object') self.input = new _SubflowInput(model.input);\n }\n getLifecycleHooks('SubflowConfiguration')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the SubflowConfiguration.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new SubflowConfiguration(this as any) as SubflowConfigurationIntersection;\n validate('SubflowConfiguration', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the SubflowConfiguration.\n * Creates a copy of the SubflowConfiguration, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the SubflowConfiguration instance.\n */\n normalize(): SubflowConfiguration & Specification.SubflowConfiguration {\n const copy = new SubflowConfiguration(this as any) as SubflowConfigurationIntersection;\n return getLifecycleHooks('SubflowConfiguration')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _SubflowConfiguration = SubflowConfiguration as SubflowConfigurationConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _Container } from './container';\nimport { _Script } from './script';\nimport { _Shell } from './shell';\nimport { _SubflowConfiguration } from './subflow-configuration';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the RunTaskConfiguration class and type\n */\nexport type RunTaskConfigurationIntersection = RunTaskConfiguration & Specification.RunTaskConfiguration;\n\n/**\n * Represents a constructor for the intersection of the RunTaskConfiguration class and type\n */\nexport interface RunTaskConfigurationConstructor {\n new (model?: Partial<Specification.RunTaskConfiguration>): RunTaskConfigurationIntersection;\n}\n\n/**\n * Represents a RunTaskConfiguration with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class RunTaskConfiguration extends ObjectHydrator<Specification.RunTaskConfiguration> {\n /**\n * Instanciates a new instance of the RunTaskConfiguration class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the RunTaskConfiguration.\n */\n constructor(model?: Partial<Specification.RunTaskConfiguration>) {\n super(model);\n const self = this as unknown as Specification.RunTaskConfiguration & object;\n if (isObject(model)) {\n if (typeof (model as Specification.RunContainer).container === 'object')\n (self as Specification.RunContainer).container = new _Container(\n (model as Specification.RunContainer).container as Specification.Container,\n );\n if (typeof (model as Specification.RunScript).script === 'object')\n (self as Specification.RunScript).script = new _Script(\n (model as Specification.RunScript).script as Specification.Script,\n );\n if (typeof (model as Specification.RunShell).shell === 'object')\n (self as Specification.RunShell).shell = new _Shell(\n (model as Specification.RunShell).shell as Specification.Shell,\n );\n if (typeof (model as Specification.RunWorkflow).workflow === 'object')\n (self as Specification.RunWorkflow).workflow = new _SubflowConfiguration(\n (model as Specification.RunWorkflow).workflow as Specification.SubflowConfiguration,\n );\n }\n getLifecycleHooks('RunTaskConfiguration')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the RunTaskConfiguration.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new RunTaskConfiguration(this as any) as RunTaskConfigurationIntersection;\n validate('RunTaskConfiguration', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the RunTaskConfiguration.\n * Creates a copy of the RunTaskConfiguration, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the RunTaskConfiguration instance.\n */\n normalize(): RunTaskConfiguration & Specification.RunTaskConfiguration {\n const copy = new RunTaskConfiguration(this as any) as RunTaskConfigurationIntersection;\n return getLifecycleHooks('RunTaskConfiguration')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _RunTaskConfiguration = RunTaskConfiguration as RunTaskConfigurationConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the SwitchCase class and type\n */\nexport type SwitchCaseIntersection = SwitchCase & Specification.SwitchCase;\n\n/**\n * Represents a constructor for the intersection of the SwitchCase class and type\n */\nexport interface SwitchCaseConstructor {\n new (model?: Partial<Specification.SwitchCase>): SwitchCaseIntersection;\n}\n\n/**\n * Represents a SwitchCase with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class SwitchCase extends ObjectHydrator<Specification.SwitchCase> {\n /**\n * Instanciates a new instance of the SwitchCase class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the SwitchCase.\n */\n constructor(model?: Partial<Specification.SwitchCase>) {\n super(model);\n\n getLifecycleHooks('SwitchCase')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the SwitchCase.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new SwitchCase(this as any) as SwitchCaseIntersection;\n validate('SwitchCase', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the SwitchCase.\n * Creates a copy of the SwitchCase, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the SwitchCase instance.\n */\n normalize(): SwitchCase & Specification.SwitchCase {\n const copy = new SwitchCase(this as any) as SwitchCaseIntersection;\n return getLifecycleHooks('SwitchCase')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _SwitchCase = SwitchCase as SwitchCaseConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _SwitchCase } from './switch-case';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the SwitchItem class and type\n */\nexport type SwitchItemIntersection = SwitchItem & Specification.SwitchItem;\n\n/**\n * Represents a constructor for the intersection of the SwitchItem class and type\n */\nexport interface SwitchItemConstructor {\n new (model?: Partial<Specification.SwitchItem>): SwitchItemIntersection;\n}\n\n/**\n * Represents a SwitchItem with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class SwitchItem extends ObjectHydrator<Specification.SwitchItem> {\n /**\n * Instanciates a new instance of the SwitchItem class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the SwitchItem.\n */\n constructor(model?: Partial<Specification.SwitchItem>) {\n super(model);\n const self = this as unknown as Specification.SwitchItem & object;\n if (isObject(model)) {\n const knownProperties: string[] = [];\n Object.entries(model)\n .filter(([key]) => !knownProperties.includes(key))\n .forEach(([key, value]) => {\n self[key] = new _SwitchCase(value);\n });\n }\n getLifecycleHooks('SwitchItem')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the SwitchItem.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new SwitchItem(this as any) as SwitchItemIntersection;\n validate('SwitchItem', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the SwitchItem.\n * Creates a copy of the SwitchItem, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the SwitchItem instance.\n */\n normalize(): SwitchItem & Specification.SwitchItem {\n const copy = new SwitchItem(this as any) as SwitchItemIntersection;\n return getLifecycleHooks('SwitchItem')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _SwitchItem = SwitchItem as SwitchItemConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _SwitchItem } from './switch-item';\nimport { Specification } from '../definitions';\nimport { ArrayHydrator } from '../../hydrator';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the SwitchTaskConfiguration class and type\n */\nexport type SwitchTaskConfigurationIntersection = SwitchTaskConfiguration & Specification.SwitchTaskConfiguration;\n\n/**\n * Represents a constructor for the intersection of the SwitchTaskConfiguration class and type\n */\nexport interface SwitchTaskConfigurationConstructor {\n new (model?: Array<Specification.SwitchItem> | number): SwitchTaskConfigurationIntersection;\n}\n\n/**\n * Represents a collection of Specification.SwitchItem.\n * Inherits from ArrayHydrator to handle array-specific hydration.\n */\nexport class SwitchTaskConfiguration extends ArrayHydrator<Specification.SwitchItem> {\n /**\n * Constructs a new instance of the SwitchTaskConfiguration class.\n *\n * @param model - Optional parameter which can be an array of objects or a number representing the array length.\n */\n constructor(model?: Array<Specification.SwitchItem> | number) {\n super(model);\n if (Array.isArray(model)) {\n if (model?.length) {\n this.splice(0, this.length);\n model.forEach((item) => this.push(new _SwitchItem(item)));\n }\n }\n Object.setPrototypeOf(this, Object.create(SwitchTaskConfiguration.prototype));\n getLifecycleHooks('SwitchTaskConfiguration')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the SwitchTaskConfiguration.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new SwitchTaskConfiguration(this);\n validate('SwitchTaskConfiguration', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the SwitchTaskConfiguration.\n * Creates a copy of the SwitchTaskConfiguration, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the SwitchTaskConfiguration instance.\n */\n normalize(): SwitchTaskConfiguration {\n const copy = new SwitchTaskConfiguration(this);\n return getLifecycleHooks('SwitchTaskConfiguration')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _SwitchTaskConfiguration = SwitchTaskConfiguration as unknown as SwitchTaskConfigurationConstructor;\n//export const _SwitchTaskConfiguration = SwitchTaskConfiguration; // could be exported directly, but it makes the job of building the index more straightforward as it's consistant with \"object\" classes\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the RetryBackoff class and type\n */\nexport type RetryBackoffIntersection = RetryBackoff & Specification.RetryBackoff;\n\n/**\n * Represents a constructor for the intersection of the RetryBackoff class and type\n */\nexport interface RetryBackoffConstructor {\n new (model?: Partial<Specification.RetryBackoff>): RetryBackoffIntersection;\n}\n\n/**\n * Represents a RetryBackoff with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class RetryBackoff extends ObjectHydrator<Specification.RetryBackoff> {\n /**\n * Instanciates a new instance of the RetryBackoff class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the RetryBackoff.\n */\n constructor(model?: Partial<Specification.RetryBackoff>) {\n super(model);\n\n getLifecycleHooks('RetryBackoff')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the RetryBackoff.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new RetryBackoff(this as any) as RetryBackoffIntersection;\n validate('RetryBackoff', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the RetryBackoff.\n * Creates a copy of the RetryBackoff, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the RetryBackoff instance.\n */\n normalize(): RetryBackoff & Specification.RetryBackoff {\n const copy = new RetryBackoff(this as any) as RetryBackoffIntersection;\n return getLifecycleHooks('RetryBackoff')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _RetryBackoff = RetryBackoff as RetryBackoffConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _Duration } from './duration';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the RetryLimitAttempt class and type\n */\nexport type RetryLimitAttemptIntersection = RetryLimitAttempt & Specification.RetryLimitAttempt;\n\n/**\n * Represents a constructor for the intersection of the RetryLimitAttempt class and type\n */\nexport interface RetryLimitAttemptConstructor {\n new (model?: Partial<Specification.RetryLimitAttempt>): RetryLimitAttemptIntersection;\n}\n\n/**\n * Represents a RetryLimitAttempt with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class RetryLimitAttempt extends ObjectHydrator<Specification.RetryLimitAttempt> {\n /**\n * Instanciates a new instance of the RetryLimitAttempt class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the RetryLimitAttempt.\n */\n constructor(model?: Partial<Specification.RetryLimitAttempt>) {\n super(model);\n const self = this as unknown as Specification.RetryLimitAttempt & object;\n if (isObject(model)) {\n if (typeof model.duration === 'object') self.duration = new _Duration(model.duration);\n }\n getLifecycleHooks('RetryLimitAttempt')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the RetryLimitAttempt.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new RetryLimitAttempt(this as any) as RetryLimitAttemptIntersection;\n validate('RetryLimitAttempt', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the RetryLimitAttempt.\n * Creates a copy of the RetryLimitAttempt, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the RetryLimitAttempt instance.\n */\n normalize(): RetryLimitAttempt & Specification.RetryLimitAttempt {\n const copy = new RetryLimitAttempt(this as any) as RetryLimitAttemptIntersection;\n return getLifecycleHooks('RetryLimitAttempt')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _RetryLimitAttempt = RetryLimitAttempt as RetryLimitAttemptConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _RetryLimitAttempt } from './retry-limit-attempt';\nimport { _Duration } from './duration';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the RetryLimit class and type\n */\nexport type RetryLimitIntersection = RetryLimit & Specification.RetryLimit;\n\n/**\n * Represents a constructor for the intersection of the RetryLimit class and type\n */\nexport interface RetryLimitConstructor {\n new (model?: Partial<Specification.RetryLimit>): RetryLimitIntersection;\n}\n\n/**\n * Represents a RetryLimit with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class RetryLimit extends ObjectHydrator<Specification.RetryLimit> {\n /**\n * Instanciates a new instance of the RetryLimit class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the RetryLimit.\n */\n constructor(model?: Partial<Specification.RetryLimit>) {\n super(model);\n const self = this as unknown as Specification.RetryLimit & object;\n if (isObject(model)) {\n if (typeof model.attempt === 'object') self.attempt = new _RetryLimitAttempt(model.attempt);\n if (typeof model.duration === 'object') self.duration = new _Duration(model.duration);\n }\n getLifecycleHooks('RetryLimit')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the RetryLimit.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new RetryLimit(this as any) as RetryLimitIntersection;\n validate('RetryLimit', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the RetryLimit.\n * Creates a copy of the RetryLimit, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the RetryLimit instance.\n */\n normalize(): RetryLimit & Specification.RetryLimit {\n const copy = new RetryLimit(this as any) as RetryLimitIntersection;\n return getLifecycleHooks('RetryLimit')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _RetryLimit = RetryLimit as RetryLimitConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _Duration } from './duration';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the RetryPolicyJitter class and type\n */\nexport type RetryPolicyJitterIntersection = RetryPolicyJitter & Specification.RetryPolicyJitter;\n\n/**\n * Represents a constructor for the intersection of the RetryPolicyJitter class and type\n */\nexport interface RetryPolicyJitterConstructor {\n new (model?: Partial<Specification.RetryPolicyJitter>): RetryPolicyJitterIntersection;\n}\n\n/**\n * Represents a RetryPolicyJitter with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class RetryPolicyJitter extends ObjectHydrator<Specification.RetryPolicyJitter> {\n /**\n * Instanciates a new instance of the RetryPolicyJitter class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the RetryPolicyJitter.\n */\n constructor(model?: Partial<Specification.RetryPolicyJitter>) {\n super(model);\n const self = this as unknown as Specification.RetryPolicyJitter & object;\n if (isObject(model)) {\n if (typeof model.from === 'object') self.from = new _Duration(model.from);\n if (typeof model.to === 'object') self.to = new _Duration(model.to);\n }\n getLifecycleHooks('RetryPolicyJitter')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the RetryPolicyJitter.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new RetryPolicyJitter(this as any) as RetryPolicyJitterIntersection;\n validate('RetryPolicyJitter', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the RetryPolicyJitter.\n * Creates a copy of the RetryPolicyJitter, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the RetryPolicyJitter instance.\n */\n normalize(): RetryPolicyJitter & Specification.RetryPolicyJitter {\n const copy = new RetryPolicyJitter(this as any) as RetryPolicyJitterIntersection;\n return getLifecycleHooks('RetryPolicyJitter')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _RetryPolicyJitter = RetryPolicyJitter as RetryPolicyJitterConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _Duration } from './duration';\nimport { _RetryBackoff } from './retry-backoff';\nimport { _RetryLimit } from './retry-limit';\nimport { _RetryPolicyJitter } from './retry-policy-jitter';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the TryTaskCatchRetry class and type\n */\nexport type TryTaskCatchRetryIntersection = TryTaskCatchRetry & Specification.TryTaskCatchRetry;\n\n/**\n * Represents a constructor for the intersection of the TryTaskCatchRetry class and type\n */\nexport interface TryTaskCatchRetryConstructor {\n new (model?: Partial<Specification.TryTaskCatchRetry>): TryTaskCatchRetryIntersection;\n}\n\n/**\n * Represents a TryTaskCatchRetry with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class TryTaskCatchRetry extends ObjectHydrator<Specification.TryTaskCatchRetry> {\n /**\n * Instanciates a new instance of the TryTaskCatchRetry class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the TryTaskCatchRetry.\n */\n constructor(model?: Partial<Specification.TryTaskCatchRetry>) {\n super(model);\n const self = this as unknown as Specification.TryTaskCatchRetry & object;\n if (isObject(model)) {\n if (typeof (model as Specification.RetryPolicy).delay === 'object')\n (self as Specification.RetryPolicy).delay = new _Duration(\n (model as Specification.RetryPolicy).delay as Specification.Duration,\n );\n if (typeof (model as Specification.RetryPolicy).backoff === 'object')\n (self as Specification.RetryPolicy).backoff = new _RetryBackoff(\n (model as Specification.RetryPolicy).backoff as Specification.RetryBackoff,\n );\n if (typeof (model as Specification.RetryPolicy).limit === 'object')\n (self as Specification.RetryPolicy).limit = new _RetryLimit(\n (model as Specification.RetryPolicy).limit as Specification.RetryLimit,\n );\n if (typeof (model as Specification.RetryPolicy).jitter === 'object')\n (self as Specification.RetryPolicy).jitter = new _RetryPolicyJitter(\n (model as Specification.RetryPolicy).jitter as Specification.RetryPolicyJitter,\n );\n }\n getLifecycleHooks('TryTaskCatchRetry')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the TryTaskCatchRetry.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new TryTaskCatchRetry(this as any) as TryTaskCatchRetryIntersection;\n validate('TryTaskCatchRetry', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the TryTaskCatchRetry.\n * Creates a copy of the TryTaskCatchRetry, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the TryTaskCatchRetry instance.\n */\n normalize(): TryTaskCatchRetry & Specification.TryTaskCatchRetry {\n const copy = new TryTaskCatchRetry(this as any) as TryTaskCatchRetryIntersection;\n return getLifecycleHooks('TryTaskCatchRetry')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _TryTaskCatchRetry = TryTaskCatchRetry as TryTaskCatchRetryConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _CatchErrors } from './catch-errors';\nimport { _TryTaskCatchRetry } from './try-task-catch-retry';\nimport { _TaskList } from './task-list';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the TryTaskCatch class and type\n */\nexport type TryTaskCatchIntersection = TryTaskCatch & Specification.TryTaskCatch;\n\n/**\n * Represents a constructor for the intersection of the TryTaskCatch class and type\n */\nexport interface TryTaskCatchConstructor {\n new (model?: Partial<Specification.TryTaskCatch>): TryTaskCatchIntersection;\n}\n\n/**\n * Represents a TryTaskCatch with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class TryTaskCatch extends ObjectHydrator<Specification.TryTaskCatch> {\n /**\n * Instanciates a new instance of the TryTaskCatch class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the TryTaskCatch.\n */\n constructor(model?: Partial<Specification.TryTaskCatch>) {\n super(model);\n const self = this as unknown as Specification.TryTaskCatch & object;\n if (isObject(model)) {\n if (typeof model.errors === 'object') self.errors = new _CatchErrors(model.errors);\n if (typeof model.retry === 'object') self.retry = new _TryTaskCatchRetry(model.retry);\n if (typeof model.do === 'object') self.do = new _TaskList(model.do);\n }\n getLifecycleHooks('TryTaskCatch')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the TryTaskCatch.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new TryTaskCatch(this as any) as TryTaskCatchIntersection;\n validate('TryTaskCatch', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the TryTaskCatch.\n * Creates a copy of the TryTaskCatch, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the TryTaskCatch instance.\n */\n normalize(): TryTaskCatch & Specification.TryTaskCatch {\n const copy = new TryTaskCatch(this as any) as TryTaskCatchIntersection;\n return getLifecycleHooks('TryTaskCatch')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _TryTaskCatch = TryTaskCatch as TryTaskCatchConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _Input } from './input';\nimport { _Output } from './output';\nimport { _Export } from './export';\nimport { _TaskTimeout } from './task-timeout';\nimport { _TaskMetadata } from './task-metadata';\nimport { _ForkTaskConfiguration } from './fork-task-configuration';\nimport { _EmitTaskConfiguration } from './emit-task-configuration';\nimport { _ForTaskConfiguration } from './for-task-configuration';\nimport { _ListenTaskConfiguration } from './listen-task-configuration';\nimport { _SubscriptionIterator } from './subscription-iterator';\nimport { _RaiseTaskConfiguration } from './raise-task-configuration';\nimport { _RunTaskConfiguration } from './run-task-configuration';\nimport { _SwitchTaskConfiguration } from './switch-task-configuration';\nimport { _TaskList } from './task-list';\nimport { _TryTaskCatch } from './try-task-catch';\nimport { _Duration } from './duration';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the Task class and type\n */\nexport type TaskIntersection = Task & Specification.Task;\n\n/**\n * Represents a constructor for the intersection of the Task class and type\n */\nexport interface TaskConstructor {\n new (model?: Partial<Specification.Task>): TaskIntersection;\n}\n\n/**\n * Represents a Task with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class Task extends ObjectHydrator<Specification.Task> {\n /**\n * Instanciates a new instance of the Task class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the Task.\n */\n constructor(model?: Partial<Specification.Task>) {\n super(model);\n const self = this as unknown as Specification.Task & object;\n if (isObject(model)) {\n if (typeof (model as Specification.TaskBase).input === 'object')\n (self as Specification.TaskBase).input = new _Input(\n (model as Specification.TaskBase).input as Specification.Input,\n );\n if (typeof (model as Specification.TaskBase).output === 'object')\n (self as Specification.TaskBase).output = new _Output(\n (model as Specification.TaskBase).output as Specification.Output,\n );\n if (typeof (model as Specification.TaskBase).export === 'object')\n (self as Specification.TaskBase).export = new _Export(\n (model as Specification.TaskBase).export as Specification.Export,\n );\n if (typeof (model as Specification.TaskBase).timeout === 'object')\n (self as Specification.TaskBase).timeout = new _TaskTimeout(\n (model as Specification.TaskBase).timeout as Specification.TaskTimeout,\n );\n if (typeof (model as Specification.TaskBase).metadata === 'object')\n (self as Specification.TaskBase).metadata = new _TaskMetadata(\n (model as Specification.TaskBase).metadata as Specification.TaskMetadata,\n );\n if (\n typeof (model as { [k: string]: unknown; fork?: Specification.ForkTaskConfiguration | undefined }).fork ===\n 'object'\n )\n (self as { [k: string]: unknown; fork?: Specification.ForkTaskConfiguration | undefined }).fork =\n new _ForkTaskConfiguration(\n (model as { [k: string]: unknown; fork?: Specification.ForkTaskConfiguration | undefined })\n .fork as Specification.ForkTaskConfiguration,\n );\n if (\n typeof (model as { [k: string]: unknown; emit?: Specification.EmitTaskConfiguration | undefined }).emit ===\n 'object'\n )\n (self as { [k: string]: unknown; emit?: Specification.EmitTaskConfiguration | undefined }).emit =\n new _EmitTaskConfiguration(\n (model as { [k: string]: unknown; emit?: Specification.EmitTaskConfiguration | undefined })\n .emit as Specification.EmitTaskConfiguration,\n );\n if (\n typeof (\n model as {\n [k: string]: unknown;\n for?: Specification.ForTaskConfiguration | undefined;\n while?: string | undefined;\n do?: Specification.TaskList | undefined;\n }\n ).for === 'object'\n )\n (\n self as {\n [k: string]: unknown;\n for?: Specification.ForTaskConfiguration | undefined;\n while?: string | undefined;\n do?: Specification.TaskList | undefined;\n }\n ).for = new _ForTaskConfiguration(\n (\n model as {\n [k: string]: unknown;\n for?: Specification.ForTaskConfiguration | undefined;\n while?: string | undefined;\n do?: Specification.TaskList | undefined;\n }\n ).for as Specification.ForTaskConfiguration,\n );\n if (\n typeof (\n model as {\n [k: string]: unknown;\n listen?: Specification.ListenTaskConfiguration | undefined;\n foreach?: Specification.SubscriptionIterator | undefined;\n }\n ).listen === 'object'\n )\n (\n self as {\n [k: string]: unknown;\n listen?: Specification.ListenTaskConfiguration | undefined;\n foreach?: Specification.SubscriptionIterator | undefined;\n }\n ).listen = new _ListenTaskConfiguration(\n (\n model as {\n [k: string]: unknown;\n listen?: Specification.ListenTaskConfiguration | undefined;\n foreach?: Specification.SubscriptionIterator | undefined;\n }\n ).listen as Specification.ListenTaskConfiguration,\n );\n if (\n typeof (\n model as {\n [k: string]: unknown;\n listen?: Specification.ListenTaskConfiguration | undefined;\n foreach?: Specification.SubscriptionIterator | undefined;\n }\n ).foreach === 'object'\n )\n (\n self as {\n [k: string]: unknown;\n listen?: Specification.ListenTaskConfiguration | undefined;\n foreach?: Specification.SubscriptionIterator | undefined;\n }\n ).foreach = new _SubscriptionIterator(\n (\n model as {\n [k: string]: unknown;\n listen?: Specification.ListenTaskConfiguration | undefined;\n foreach?: Specification.SubscriptionIterator | undefined;\n }\n ).foreach as Specification.SubscriptionIterator,\n );\n if (\n typeof (model as { [k: string]: unknown; raise?: Specification.RaiseTaskConfiguration | undefined }).raise ===\n 'object'\n )\n (self as { [k: string]: unknown; raise?: Specification.RaiseTaskConfiguration | undefined }).raise =\n new _RaiseTaskConfiguration(\n (model as { [k: string]: unknown; raise?: Specification.RaiseTaskConfiguration | undefined })\n .raise as Specification.RaiseTaskConfiguration,\n );\n if (\n typeof (model as { [k: string]: unknown; run?: Specification.RunTaskConfiguration | undefined }).run ===\n 'object'\n )\n (self as { [k: string]: unknown; run?: Specification.RunTaskConfiguration | undefined }).run =\n new _RunTaskConfiguration(\n (model as { [k: string]: unknown; run?: Specification.RunTaskConfiguration | undefined })\n .run as Specification.RunTaskConfiguration,\n );\n if (\n typeof (model as { [k: string]: unknown; switch?: Specification.SwitchTaskConfiguration | undefined })\n .switch === 'object'\n )\n (self as { [k: string]: unknown; switch?: Specification.SwitchTaskConfiguration | undefined }).switch =\n new _SwitchTaskConfiguration(\n (model as { [k: string]: unknown; switch?: Specification.SwitchTaskConfiguration | undefined })\n .switch as Specification.SwitchTaskConfiguration,\n ) as unknown as Specification.SwitchTaskConfiguration;\n if (\n typeof (\n model as {\n [k: string]: unknown;\n try?: Specification.TaskList | undefined;\n catch?: Specification.TryTaskCatch | undefined;\n }\n ).try === 'object'\n )\n (\n self as {\n [k: string]: unknown;\n try?: Specification.TaskList | undefined;\n catch?: Specification.TryTaskCatch | undefined;\n }\n ).try = new _TaskList(\n (\n model as {\n [k: string]: unknown;\n try?: Specification.TaskList | undefined;\n catch?: Specification.TryTaskCatch | undefined;\n }\n ).try as Specification.TaskList,\n );\n if (\n typeof (\n model as {\n [k: string]: unknown;\n try?: Specification.TaskList | undefined;\n catch?: Specification.TryTaskCatch | undefined;\n }\n ).catch === 'object'\n )\n (\n self as {\n [k: string]: unknown;\n try?: Specification.TaskList | undefined;\n catch?: Specification.TryTaskCatch | undefined;\n }\n ).catch = new _TryTaskCatch(\n (\n model as {\n [k: string]: unknown;\n try?: Specification.TaskList | undefined;\n catch?: Specification.TryTaskCatch | undefined;\n }\n ).catch as Specification.TryTaskCatch,\n );\n if (typeof (model as { [k: string]: unknown; wait?: Specification.Duration | undefined }).wait === 'object')\n (self as { [k: string]: unknown; wait?: Specification.Duration | undefined }).wait = new _Duration(\n (model as { [k: string]: unknown; wait?: Specification.Duration | undefined }).wait as Specification.Duration,\n );\n }\n getLifecycleHooks('Task')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the Task.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new Task(this as any) as TaskIntersection;\n validate('Task', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the Task.\n * Creates a copy of the Task, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the Task instance.\n */\n normalize(): Task & Specification.Task {\n const copy = new Task(this as any) as TaskIntersection;\n return getLifecycleHooks('Task')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _Task = Task as TaskConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _Task } from './task';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the TaskItem class and type\n */\nexport type TaskItemIntersection = TaskItem & Specification.TaskItem;\n\n/**\n * Represents a constructor for the intersection of the TaskItem class and type\n */\nexport interface TaskItemConstructor {\n new (model?: Partial<Specification.TaskItem>): TaskItemIntersection;\n}\n\n/**\n * Represents a TaskItem with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class TaskItem extends ObjectHydrator<Specification.TaskItem> {\n /**\n * Instanciates a new instance of the TaskItem class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the TaskItem.\n */\n constructor(model?: Partial<Specification.TaskItem>) {\n super(model);\n const self = this as unknown as Specification.TaskItem & object;\n if (isObject(model)) {\n const knownProperties: string[] = [];\n Object.entries(model)\n .filter(([key]) => !knownProperties.includes(key))\n .forEach(([key, value]) => {\n self[key] = new _Task(value);\n });\n }\n getLifecycleHooks('TaskItem')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the TaskItem.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new TaskItem(this as any) as TaskItemIntersection;\n validate('TaskItem', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the TaskItem.\n * Creates a copy of the TaskItem, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the TaskItem instance.\n */\n normalize(): TaskItem & Specification.TaskItem {\n const copy = new TaskItem(this as any) as TaskItemIntersection;\n return getLifecycleHooks('TaskItem')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _TaskItem = TaskItem as TaskItemConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _TaskItem } from './task-item';\nimport { Specification } from '../definitions';\nimport { ArrayHydrator } from '../../hydrator';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the TaskList class and type\n */\nexport type TaskListIntersection = TaskList & Specification.TaskList;\n\n/**\n * Represents a constructor for the intersection of the TaskList class and type\n */\nexport interface TaskListConstructor {\n new (model?: Array<Specification.TaskItem> | number): TaskListIntersection;\n}\n\n/**\n * Represents a collection of Specification.TaskItem.\n * Inherits from ArrayHydrator to handle array-specific hydration.\n */\nexport class TaskList extends ArrayHydrator<Specification.TaskItem> {\n /**\n * Constructs a new instance of the TaskList class.\n *\n * @param model - Optional parameter which can be an array of objects or a number representing the array length.\n */\n constructor(model?: Array<Specification.TaskItem> | number) {\n super(model);\n if (Array.isArray(model)) {\n if (model?.length) {\n this.splice(0, this.length);\n model.forEach((item) => this.push(new _TaskItem(item)));\n }\n }\n Object.setPrototypeOf(this, Object.create(TaskList.prototype));\n getLifecycleHooks('TaskList')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the TaskList.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new TaskList(this);\n validate('TaskList', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the TaskList.\n * Creates a copy of the TaskList, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the TaskList instance.\n */\n normalize(): TaskList {\n const copy = new TaskList(this);\n return getLifecycleHooks('TaskList')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _TaskList = TaskList as unknown as TaskListConstructor;\n//export const _TaskList = TaskList; // could be exported directly, but it makes the job of building the index more straightforward as it's consistant with \"object\" classes\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _Input } from './input';\nimport { _Output } from './output';\nimport { _Export } from './export';\nimport { _TaskTimeout } from './task-timeout';\nimport { _TaskMetadata } from './task-metadata';\nimport { _TaskList } from './task-list';\nimport { _TaskBase } from './task-base';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the DoTask class and type\n */\nexport type DoTaskIntersection = DoTask & Specification.DoTask;\n\n/**\n * Represents a constructor for the intersection of the DoTask class and type\n */\nexport interface DoTaskConstructor {\n new (model?: Partial<Specification.DoTask>): DoTaskIntersection;\n}\n\n/**\n * Represents a DoTask with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class DoTask extends _TaskBase {\n /**\n * Instanciates a new instance of the DoTask class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the DoTask.\n */\n constructor(model?: Partial<Specification.DoTask>) {\n super(model);\n const self = this as unknown as Specification.DoTask & object;\n if (isObject(model)) {\n if (typeof model.input === 'object') self.input = new _Input(model.input);\n if (typeof model.output === 'object') self.output = new _Output(model.output);\n if (typeof model.export === 'object') self.export = new _Export(model.export);\n if (typeof model.timeout === 'object') self.timeout = new _TaskTimeout(model.timeout);\n if (typeof model.metadata === 'object') self.metadata = new _TaskMetadata(model.metadata);\n if (typeof model.do === 'object') self.do = new _TaskList(model.do);\n }\n getLifecycleHooks('DoTask')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the DoTask.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new DoTask(this as any) as DoTaskIntersection;\n validate('DoTask', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the DoTask.\n * Creates a copy of the DoTask, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the DoTask instance.\n */\n normalize(): DoTask & Specification.DoTask {\n const copy = new DoTask(this as any) as DoTaskIntersection;\n return getLifecycleHooks('DoTask')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _DoTask = DoTask as DoTaskConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the DurationInline class and type\n */\nexport type DurationInlineIntersection = DurationInline & Specification.DurationInline;\n\n/**\n * Represents a constructor for the intersection of the DurationInline class and type\n */\nexport interface DurationInlineConstructor {\n new (model?: Partial<Specification.DurationInline>): DurationInlineIntersection;\n}\n\n/**\n * Represents a DurationInline with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class DurationInline extends ObjectHydrator<Specification.DurationInline> {\n /**\n * Instanciates a new instance of the DurationInline class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the DurationInline.\n */\n constructor(model?: Partial<Specification.DurationInline>) {\n super(model);\n\n getLifecycleHooks('DurationInline')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the DurationInline.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new DurationInline(this as any) as DurationInlineIntersection;\n validate('DurationInline', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the DurationInline.\n * Creates a copy of the DurationInline, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the DurationInline instance.\n */\n normalize(): DurationInline & Specification.DurationInline {\n const copy = new DurationInline(this as any) as DurationInlineIntersection;\n return getLifecycleHooks('DurationInline')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _DurationInline = DurationInline as DurationInlineConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _Input } from './input';\nimport { _Output } from './output';\nimport { _Export } from './export';\nimport { _TaskTimeout } from './task-timeout';\nimport { _TaskMetadata } from './task-metadata';\nimport { _EmitTaskConfiguration } from './emit-task-configuration';\nimport { _TaskBase } from './task-base';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the EmitTask class and type\n */\nexport type EmitTaskIntersection = EmitTask & Specification.EmitTask;\n\n/**\n * Represents a constructor for the intersection of the EmitTask class and type\n */\nexport interface EmitTaskConstructor {\n new (model?: Partial<Specification.EmitTask>): EmitTaskIntersection;\n}\n\n/**\n * Represents a EmitTask with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class EmitTask extends _TaskBase {\n /**\n * Instanciates a new instance of the EmitTask class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the EmitTask.\n */\n constructor(model?: Partial<Specification.EmitTask>) {\n super(model);\n const self = this as unknown as Specification.EmitTask & object;\n if (isObject(model)) {\n if (typeof model.input === 'object') self.input = new _Input(model.input);\n if (typeof model.output === 'object') self.output = new _Output(model.output);\n if (typeof model.export === 'object') self.export = new _Export(model.export);\n if (typeof model.timeout === 'object') self.timeout = new _TaskTimeout(model.timeout);\n if (typeof model.metadata === 'object') self.metadata = new _TaskMetadata(model.metadata);\n if (typeof model.emit === 'object') self.emit = new _EmitTaskConfiguration(model.emit);\n }\n getLifecycleHooks('EmitTask')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the EmitTask.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new EmitTask(this as any) as EmitTaskIntersection;\n validate('EmitTask', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the EmitTask.\n * Creates a copy of the EmitTask, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the EmitTask instance.\n */\n normalize(): EmitTask & Specification.EmitTask {\n const copy = new EmitTask(this as any) as EmitTaskIntersection;\n return getLifecycleHooks('EmitTask')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _EmitTask = EmitTask as EmitTaskConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _ReferenceableAuthenticationPolicy } from './referenceable-authentication-policy';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the EndpointConfiguration class and type\n */\nexport type EndpointConfigurationIntersection = EndpointConfiguration & Specification.EndpointConfiguration;\n\n/**\n * Represents a constructor for the intersection of the EndpointConfiguration class and type\n */\nexport interface EndpointConfigurationConstructor {\n new (model?: Partial<Specification.EndpointConfiguration>): EndpointConfigurationIntersection;\n}\n\n/**\n * Represents a EndpointConfiguration with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class EndpointConfiguration extends ObjectHydrator<Specification.EndpointConfiguration> {\n /**\n * Instanciates a new instance of the EndpointConfiguration class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the EndpointConfiguration.\n */\n constructor(model?: Partial<Specification.EndpointConfiguration>) {\n super(model);\n const self = this as unknown as Specification.EndpointConfiguration & object;\n if (isObject(model)) {\n if (typeof model.authentication === 'object')\n self.authentication = new _ReferenceableAuthenticationPolicy(model.authentication);\n }\n getLifecycleHooks('EndpointConfiguration')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the EndpointConfiguration.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new EndpointConfiguration(this as any) as EndpointConfigurationIntersection;\n validate('EndpointConfiguration', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the EndpointConfiguration.\n * Creates a copy of the EndpointConfiguration, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the EndpointConfiguration instance.\n */\n normalize(): EndpointConfiguration & Specification.EndpointConfiguration {\n const copy = new EndpointConfiguration(this as any) as EndpointConfigurationIntersection;\n return getLifecycleHooks('EndpointConfiguration')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _EndpointConfiguration = EndpointConfiguration as EndpointConfigurationConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the EndpointUri class and type\n */\nexport type EndpointUriIntersection = EndpointUri & Specification.EndpointUri;\n\n/**\n * Represents a constructor for the intersection of the EndpointUri class and type\n */\nexport interface EndpointUriConstructor {\n new (model?: Partial<Specification.EndpointUri>): EndpointUriIntersection;\n}\n\n/**\n * Represents a EndpointUri with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class EndpointUri extends ObjectHydrator<Specification.EndpointUri> {\n /**\n * Instanciates a new instance of the EndpointUri class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the EndpointUri.\n */\n constructor(model?: Partial<Specification.EndpointUri>) {\n super(model);\n\n getLifecycleHooks('EndpointUri')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the EndpointUri.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new EndpointUri(this as any) as EndpointUriIntersection;\n validate('EndpointUri', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the EndpointUri.\n * Creates a copy of the EndpointUri, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the EndpointUri instance.\n */\n normalize(): EndpointUri & Specification.EndpointUri {\n const copy = new EndpointUri(this as any) as EndpointUriIntersection;\n return getLifecycleHooks('EndpointUri')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _EndpointUri = EndpointUri as EndpointUriConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the Error class and type\n */\nexport type ErrorIntersection = Error & Specification.Error;\n\n/**\n * Represents a constructor for the intersection of the Error class and type\n */\nexport interface ErrorConstructor {\n new (model?: Partial<Specification.Error>): ErrorIntersection;\n}\n\n/**\n * Represents a Error with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class Error extends ObjectHydrator<Specification.Error> {\n /**\n * Instanciates a new instance of the Error class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the Error.\n */\n constructor(model?: Partial<Specification.Error>) {\n super(model);\n\n getLifecycleHooks('Error')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the Error.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new Error(this as any) as ErrorIntersection;\n validate('Error', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the Error.\n * Creates a copy of the Error, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the Error instance.\n */\n normalize(): Error & Specification.Error {\n const copy = new Error(this as any) as ErrorIntersection;\n return getLifecycleHooks('Error')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _Error = Error as ErrorConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the ErrorDetails class and type\n */\nexport type ErrorDetailsIntersection = ErrorDetails & Specification.ErrorDetails;\n\n/**\n * Represents a constructor for the intersection of the ErrorDetails class and type\n */\nexport interface ErrorDetailsConstructor {\n new (model?: Partial<Specification.ErrorDetails>): ErrorDetailsIntersection;\n}\n\n/**\n * Represents a ErrorDetails with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class ErrorDetails extends ObjectHydrator<Specification.ErrorDetails> {\n /**\n * Instanciates a new instance of the ErrorDetails class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the ErrorDetails.\n */\n constructor(model?: Partial<Specification.ErrorDetails>) {\n super(model);\n\n getLifecycleHooks('ErrorDetails')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the ErrorDetails.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new ErrorDetails(this as any) as ErrorDetailsIntersection;\n validate('ErrorDetails', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the ErrorDetails.\n * Creates a copy of the ErrorDetails, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the ErrorDetails instance.\n */\n normalize(): ErrorDetails & Specification.ErrorDetails {\n const copy = new ErrorDetails(this as any) as ErrorDetailsIntersection;\n return getLifecycleHooks('ErrorDetails')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _ErrorDetails = ErrorDetails as ErrorDetailsConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the ErrorInstance class and type\n */\nexport type ErrorInstanceIntersection = ErrorInstance & Specification.ErrorInstance;\n\n/**\n * Represents a constructor for the intersection of the ErrorInstance class and type\n */\nexport interface ErrorInstanceConstructor {\n new (model?: Partial<Specification.ErrorInstance>): ErrorInstanceIntersection;\n}\n\n/**\n * Represents a ErrorInstance with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class ErrorInstance extends ObjectHydrator<Specification.ErrorInstance> {\n /**\n * Instanciates a new instance of the ErrorInstance class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the ErrorInstance.\n */\n constructor(model?: Partial<Specification.ErrorInstance>) {\n super(model);\n\n getLifecycleHooks('ErrorInstance')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the ErrorInstance.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new ErrorInstance(this as any) as ErrorInstanceIntersection;\n validate('ErrorInstance', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the ErrorInstance.\n * Creates a copy of the ErrorInstance, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the ErrorInstance instance.\n */\n normalize(): ErrorInstance & Specification.ErrorInstance {\n const copy = new ErrorInstance(this as any) as ErrorInstanceIntersection;\n return getLifecycleHooks('ErrorInstance')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _ErrorInstance = ErrorInstance as ErrorInstanceConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the ErrorTitle class and type\n */\nexport type ErrorTitleIntersection = ErrorTitle & Specification.ErrorTitle;\n\n/**\n * Represents a constructor for the intersection of the ErrorTitle class and type\n */\nexport interface ErrorTitleConstructor {\n new (model?: Partial<Specification.ErrorTitle>): ErrorTitleIntersection;\n}\n\n/**\n * Represents a ErrorTitle with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class ErrorTitle extends ObjectHydrator<Specification.ErrorTitle> {\n /**\n * Instanciates a new instance of the ErrorTitle class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the ErrorTitle.\n */\n constructor(model?: Partial<Specification.ErrorTitle>) {\n super(model);\n\n getLifecycleHooks('ErrorTitle')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the ErrorTitle.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new ErrorTitle(this as any) as ErrorTitleIntersection;\n validate('ErrorTitle', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the ErrorTitle.\n * Creates a copy of the ErrorTitle, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the ErrorTitle instance.\n */\n normalize(): ErrorTitle & Specification.ErrorTitle {\n const copy = new ErrorTitle(this as any) as ErrorTitleIntersection;\n return getLifecycleHooks('ErrorTitle')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _ErrorTitle = ErrorTitle as ErrorTitleConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the ErrorType class and type\n */\nexport type ErrorTypeIntersection = ErrorType & Specification.ErrorType;\n\n/**\n * Represents a constructor for the intersection of the ErrorType class and type\n */\nexport interface ErrorTypeConstructor {\n new (model?: Partial<Specification.ErrorType>): ErrorTypeIntersection;\n}\n\n/**\n * Represents a ErrorType with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class ErrorType extends ObjectHydrator<Specification.ErrorType> {\n /**\n * Instanciates a new instance of the ErrorType class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the ErrorType.\n */\n constructor(model?: Partial<Specification.ErrorType>) {\n super(model);\n\n getLifecycleHooks('ErrorType')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the ErrorType.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new ErrorType(this as any) as ErrorTypeIntersection;\n validate('ErrorType', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the ErrorType.\n * Creates a copy of the ErrorType, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the ErrorType instance.\n */\n normalize(): ErrorType & Specification.ErrorType {\n const copy = new ErrorType(this as any) as ErrorTypeIntersection;\n return getLifecycleHooks('ErrorType')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _ErrorType = ErrorType as ErrorTypeConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the EventData class and type\n */\nexport type EventDataIntersection = EventData & Specification.EventData;\n\n/**\n * Represents a constructor for the intersection of the EventData class and type\n */\nexport interface EventDataConstructor {\n new (model?: Partial<Specification.EventData>): EventDataIntersection;\n}\n\n/**\n * Represents a EventData with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class EventData extends ObjectHydrator<Specification.EventData> {\n /**\n * Instanciates a new instance of the EventData class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the EventData.\n */\n constructor(model?: Partial<Specification.EventData>) {\n super(model);\n\n getLifecycleHooks('EventData')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the EventData.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new EventData(this as any) as EventDataIntersection;\n validate('EventData', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the EventData.\n * Creates a copy of the EventData, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the EventData instance.\n */\n normalize(): EventData & Specification.EventData {\n const copy = new EventData(this as any) as EventDataIntersection;\n return getLifecycleHooks('EventData')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _EventData = EventData as EventDataConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the EventDataschema class and type\n */\nexport type EventDataschemaIntersection = EventDataschema & Specification.EventDataschema;\n\n/**\n * Represents a constructor for the intersection of the EventDataschema class and type\n */\nexport interface EventDataschemaConstructor {\n new (model?: Partial<Specification.EventDataschema>): EventDataschemaIntersection;\n}\n\n/**\n * Represents a EventDataschema with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class EventDataschema extends ObjectHydrator<Specification.EventDataschema> {\n /**\n * Instanciates a new instance of the EventDataschema class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the EventDataschema.\n */\n constructor(model?: Partial<Specification.EventDataschema>) {\n super(model);\n\n getLifecycleHooks('EventDataschema')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the EventDataschema.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new EventDataschema(this as any) as EventDataschemaIntersection;\n validate('EventDataschema', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the EventDataschema.\n * Creates a copy of the EventDataschema, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the EventDataschema instance.\n */\n normalize(): EventDataschema & Specification.EventDataschema {\n const copy = new EventDataschema(this as any) as EventDataschemaIntersection;\n return getLifecycleHooks('EventDataschema')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _EventDataschema = EventDataschema as EventDataschemaConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the EventSource class and type\n */\nexport type EventSourceIntersection = EventSource & Specification.EventSource;\n\n/**\n * Represents a constructor for the intersection of the EventSource class and type\n */\nexport interface EventSourceConstructor {\n new (model?: Partial<Specification.EventSource>): EventSourceIntersection;\n}\n\n/**\n * Represents a EventSource with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class EventSource extends ObjectHydrator<Specification.EventSource> {\n /**\n * Instanciates a new instance of the EventSource class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the EventSource.\n */\n constructor(model?: Partial<Specification.EventSource>) {\n super(model);\n\n getLifecycleHooks('EventSource')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the EventSource.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new EventSource(this as any) as EventSourceIntersection;\n validate('EventSource', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the EventSource.\n * Creates a copy of the EventSource, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the EventSource instance.\n */\n normalize(): EventSource & Specification.EventSource {\n const copy = new EventSource(this as any) as EventSourceIntersection;\n return getLifecycleHooks('EventSource')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _EventSource = EventSource as EventSourceConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the EventTime class and type\n */\nexport type EventTimeIntersection = EventTime & Specification.EventTime;\n\n/**\n * Represents a constructor for the intersection of the EventTime class and type\n */\nexport interface EventTimeConstructor {\n new (model?: Partial<Specification.EventTime>): EventTimeIntersection;\n}\n\n/**\n * Represents a EventTime with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class EventTime extends ObjectHydrator<Specification.EventTime> {\n /**\n * Instanciates a new instance of the EventTime class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the EventTime.\n */\n constructor(model?: Partial<Specification.EventTime>) {\n super(model);\n\n getLifecycleHooks('EventTime')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the EventTime.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new EventTime(this as any) as EventTimeIntersection;\n validate('EventTime', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the EventTime.\n * Creates a copy of the EventTime, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the EventTime instance.\n */\n normalize(): EventTime & Specification.EventTime {\n const copy = new EventTime(this as any) as EventTimeIntersection;\n return getLifecycleHooks('EventTime')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _EventTime = EventTime as EventTimeConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the ExponentialBackOff class and type\n */\nexport type ExponentialBackOffIntersection = ExponentialBackOff & Specification.ExponentialBackOff;\n\n/**\n * Represents a constructor for the intersection of the ExponentialBackOff class and type\n */\nexport interface ExponentialBackOffConstructor {\n new (model?: Partial<Specification.ExponentialBackOff>): ExponentialBackOffIntersection;\n}\n\n/**\n * Represents a ExponentialBackOff with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class ExponentialBackOff extends ObjectHydrator<Specification.ExponentialBackOff> {\n /**\n * Instanciates a new instance of the ExponentialBackOff class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the ExponentialBackOff.\n */\n constructor(model?: Partial<Specification.ExponentialBackOff>) {\n super(model);\n\n getLifecycleHooks('ExponentialBackOff')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the ExponentialBackOff.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new ExponentialBackOff(this as any) as ExponentialBackOffIntersection;\n validate('ExponentialBackOff', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the ExponentialBackOff.\n * Creates a copy of the ExponentialBackOff, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the ExponentialBackOff instance.\n */\n normalize(): ExponentialBackOff & Specification.ExponentialBackOff {\n const copy = new ExponentialBackOff(this as any) as ExponentialBackOffIntersection;\n return getLifecycleHooks('ExponentialBackOff')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _ExponentialBackOff = ExponentialBackOff as ExponentialBackOffConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the ExportAs class and type\n */\nexport type ExportAsIntersection = ExportAs & Specification.ExportAs;\n\n/**\n * Represents a constructor for the intersection of the ExportAs class and type\n */\nexport interface ExportAsConstructor {\n new (model?: Partial<Specification.ExportAs>): ExportAsIntersection;\n}\n\n/**\n * Represents a ExportAs with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class ExportAs extends ObjectHydrator<Specification.ExportAs> {\n /**\n * Instanciates a new instance of the ExportAs class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the ExportAs.\n */\n constructor(model?: Partial<Specification.ExportAs>) {\n super(model);\n\n getLifecycleHooks('ExportAs')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the ExportAs.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new ExportAs(this as any) as ExportAsIntersection;\n validate('ExportAs', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the ExportAs.\n * Creates a copy of the ExportAs, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the ExportAs instance.\n */\n normalize(): ExportAs & Specification.ExportAs {\n const copy = new ExportAs(this as any) as ExportAsIntersection;\n return getLifecycleHooks('ExportAs')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _ExportAs = ExportAs as ExportAsConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _TaskList } from './task-list';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the Extension class and type\n */\nexport type ExtensionIntersection = Extension & Specification.Extension;\n\n/**\n * Represents a constructor for the intersection of the Extension class and type\n */\nexport interface ExtensionConstructor {\n new (model?: Partial<Specification.Extension>): ExtensionIntersection;\n}\n\n/**\n * Represents a Extension with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class Extension extends ObjectHydrator<Specification.Extension> {\n /**\n * Instanciates a new instance of the Extension class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the Extension.\n */\n constructor(model?: Partial<Specification.Extension>) {\n super(model);\n const self = this as unknown as Specification.Extension & object;\n if (isObject(model)) {\n if (typeof model.before === 'object') self.before = new _TaskList(model.before);\n if (typeof model.after === 'object') self.after = new _TaskList(model.after);\n }\n getLifecycleHooks('Extension')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the Extension.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new Extension(this as any) as ExtensionIntersection;\n validate('Extension', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the Extension.\n * Creates a copy of the Extension, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the Extension instance.\n */\n normalize(): Extension & Specification.Extension {\n const copy = new Extension(this as any) as ExtensionIntersection;\n return getLifecycleHooks('Extension')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _Extension = Extension as ExtensionConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _Extension } from './extension';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the ExtensionItem class and type\n */\nexport type ExtensionItemIntersection = ExtensionItem & Specification.ExtensionItem;\n\n/**\n * Represents a constructor for the intersection of the ExtensionItem class and type\n */\nexport interface ExtensionItemConstructor {\n new (model?: Partial<Specification.ExtensionItem>): ExtensionItemIntersection;\n}\n\n/**\n * Represents a ExtensionItem with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class ExtensionItem extends ObjectHydrator<Specification.ExtensionItem> {\n /**\n * Instanciates a new instance of the ExtensionItem class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the ExtensionItem.\n */\n constructor(model?: Partial<Specification.ExtensionItem>) {\n super(model);\n const self = this as unknown as Specification.ExtensionItem & object;\n if (isObject(model)) {\n const knownProperties: string[] = [];\n Object.entries(model)\n .filter(([key]) => !knownProperties.includes(key))\n .forEach(([key, value]) => {\n self[key] = new _Extension(value);\n });\n }\n getLifecycleHooks('ExtensionItem')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the ExtensionItem.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new ExtensionItem(this as any) as ExtensionItemIntersection;\n validate('ExtensionItem', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the ExtensionItem.\n * Creates a copy of the ExtensionItem, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the ExtensionItem instance.\n */\n normalize(): ExtensionItem & Specification.ExtensionItem {\n const copy = new ExtensionItem(this as any) as ExtensionItemIntersection;\n return getLifecycleHooks('ExtensionItem')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _ExtensionItem = ExtensionItem as ExtensionItemConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _ExternalResource } from './external-resource';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the ExternalScript class and type\n */\nexport type ExternalScriptIntersection = ExternalScript & Specification.ExternalScript;\n\n/**\n * Represents a constructor for the intersection of the ExternalScript class and type\n */\nexport interface ExternalScriptConstructor {\n new (model?: Partial<Specification.ExternalScript>): ExternalScriptIntersection;\n}\n\n/**\n * Represents a ExternalScript with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class ExternalScript extends ObjectHydrator<Specification.ExternalScript> {\n /**\n * Instanciates a new instance of the ExternalScript class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the ExternalScript.\n */\n constructor(model?: Partial<Specification.ExternalScript>) {\n super(model);\n const self = this as unknown as Specification.ExternalScript & object;\n if (isObject(model)) {\n if (typeof model.source === 'object') self.source = new _ExternalResource(model.source);\n }\n getLifecycleHooks('ExternalScript')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the ExternalScript.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new ExternalScript(this as any) as ExternalScriptIntersection;\n validate('ExternalScript', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the ExternalScript.\n * Creates a copy of the ExternalScript, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the ExternalScript instance.\n */\n normalize(): ExternalScript & Specification.ExternalScript {\n const copy = new ExternalScript(this as any) as ExternalScriptIntersection;\n return getLifecycleHooks('ExternalScript')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _ExternalScript = ExternalScript as ExternalScriptConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the FlowDirective class and type\n */\nexport type FlowDirectiveIntersection = FlowDirective & Specification.FlowDirective;\n\n/**\n * Represents a constructor for the intersection of the FlowDirective class and type\n */\nexport interface FlowDirectiveConstructor {\n new (model?: Partial<Specification.FlowDirective>): FlowDirectiveIntersection;\n}\n\n/**\n * Represents a FlowDirective with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class FlowDirective extends ObjectHydrator<Specification.FlowDirective> {\n /**\n * Instanciates a new instance of the FlowDirective class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the FlowDirective.\n */\n constructor(model?: Partial<Specification.FlowDirective>) {\n super(model);\n\n getLifecycleHooks('FlowDirective')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the FlowDirective.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new FlowDirective(this as any) as FlowDirectiveIntersection;\n validate('FlowDirective', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the FlowDirective.\n * Creates a copy of the FlowDirective, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the FlowDirective instance.\n */\n normalize(): FlowDirective & Specification.FlowDirective {\n const copy = new FlowDirective(this as any) as FlowDirectiveIntersection;\n return getLifecycleHooks('FlowDirective')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _FlowDirective = FlowDirective as FlowDirectiveConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _Input } from './input';\nimport { _Output } from './output';\nimport { _Export } from './export';\nimport { _TaskTimeout } from './task-timeout';\nimport { _TaskMetadata } from './task-metadata';\nimport { _ForkTaskConfiguration } from './fork-task-configuration';\nimport { _TaskBase } from './task-base';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the ForkTask class and type\n */\nexport type ForkTaskIntersection = ForkTask & Specification.ForkTask;\n\n/**\n * Represents a constructor for the intersection of the ForkTask class and type\n */\nexport interface ForkTaskConstructor {\n new (model?: Partial<Specification.ForkTask>): ForkTaskIntersection;\n}\n\n/**\n * Represents a ForkTask with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class ForkTask extends _TaskBase {\n /**\n * Instanciates a new instance of the ForkTask class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the ForkTask.\n */\n constructor(model?: Partial<Specification.ForkTask>) {\n super(model);\n const self = this as unknown as Specification.ForkTask & object;\n if (isObject(model)) {\n if (typeof model.input === 'object') self.input = new _Input(model.input);\n if (typeof model.output === 'object') self.output = new _Output(model.output);\n if (typeof model.export === 'object') self.export = new _Export(model.export);\n if (typeof model.timeout === 'object') self.timeout = new _TaskTimeout(model.timeout);\n if (typeof model.metadata === 'object') self.metadata = new _TaskMetadata(model.metadata);\n if (typeof model.fork === 'object') self.fork = new _ForkTaskConfiguration(model.fork);\n }\n getLifecycleHooks('ForkTask')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the ForkTask.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new ForkTask(this as any) as ForkTaskIntersection;\n validate('ForkTask', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the ForkTask.\n * Creates a copy of the ForkTask, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the ForkTask instance.\n */\n normalize(): ForkTask & Specification.ForkTask {\n const copy = new ForkTask(this as any) as ForkTaskIntersection;\n return getLifecycleHooks('ForkTask')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _ForkTask = ForkTask as ForkTaskConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _Input } from './input';\nimport { _Output } from './output';\nimport { _Export } from './export';\nimport { _TaskTimeout } from './task-timeout';\nimport { _TaskMetadata } from './task-metadata';\nimport { _ForTaskConfiguration } from './for-task-configuration';\nimport { _TaskList } from './task-list';\nimport { _TaskBase } from './task-base';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the ForTask class and type\n */\nexport type ForTaskIntersection = ForTask & Specification.ForTask;\n\n/**\n * Represents a constructor for the intersection of the ForTask class and type\n */\nexport interface ForTaskConstructor {\n new (model?: Partial<Specification.ForTask>): ForTaskIntersection;\n}\n\n/**\n * Represents a ForTask with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class ForTask extends _TaskBase {\n /**\n * Instanciates a new instance of the ForTask class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the ForTask.\n */\n constructor(model?: Partial<Specification.ForTask>) {\n super(model);\n const self = this as unknown as Specification.ForTask & object;\n if (isObject(model)) {\n if (typeof model.input === 'object') self.input = new _Input(model.input);\n if (typeof model.output === 'object') self.output = new _Output(model.output);\n if (typeof model.export === 'object') self.export = new _Export(model.export);\n if (typeof model.timeout === 'object') self.timeout = new _TaskTimeout(model.timeout);\n if (typeof model.metadata === 'object') self.metadata = new _TaskMetadata(model.metadata);\n if (typeof model.for === 'object') self.for = new _ForTaskConfiguration(model.for);\n if (typeof model.do === 'object') self.do = new _TaskList(model.do);\n }\n getLifecycleHooks('ForTask')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the ForTask.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new ForTask(this as any) as ForTaskIntersection;\n validate('ForTask', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the ForTask.\n * Creates a copy of the ForTask, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the ForTask instance.\n */\n normalize(): ForTask & Specification.ForTask {\n const copy = new ForTask(this as any) as ForTaskIntersection;\n return getLifecycleHooks('ForTask')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _ForTask = ForTask as ForTaskConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the HTTPHeaders class and type\n */\nexport type HTTPHeadersIntersection = HTTPHeaders & Specification.HTTPHeaders;\n\n/**\n * Represents a constructor for the intersection of the HTTPHeaders class and type\n */\nexport interface HTTPHeadersConstructor {\n new (model?: Partial<Specification.HTTPHeaders>): HTTPHeadersIntersection;\n}\n\n/**\n * Represents a HTTPHeaders with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class HTTPHeaders extends ObjectHydrator<Specification.HTTPHeaders> {\n /**\n * Instanciates a new instance of the HTTPHeaders class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the HTTPHeaders.\n */\n constructor(model?: Partial<Specification.HTTPHeaders>) {\n super(model);\n\n getLifecycleHooks('HTTPHeaders')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the HTTPHeaders.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new HTTPHeaders(this as any) as HTTPHeadersIntersection;\n validate('HTTPHeaders', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the HTTPHeaders.\n * Creates a copy of the HTTPHeaders, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the HTTPHeaders instance.\n */\n normalize(): HTTPHeaders & Specification.HTTPHeaders {\n const copy = new HTTPHeaders(this as any) as HTTPHeadersIntersection;\n return getLifecycleHooks('HTTPHeaders')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _HTTPHeaders = HTTPHeaders as HTTPHeadersConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the HTTPQuery class and type\n */\nexport type HTTPQueryIntersection = HTTPQuery & Specification.HTTPQuery;\n\n/**\n * Represents a constructor for the intersection of the HTTPQuery class and type\n */\nexport interface HTTPQueryConstructor {\n new (model?: Partial<Specification.HTTPQuery>): HTTPQueryIntersection;\n}\n\n/**\n * Represents a HTTPQuery with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class HTTPQuery extends ObjectHydrator<Specification.HTTPQuery> {\n /**\n * Instanciates a new instance of the HTTPQuery class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the HTTPQuery.\n */\n constructor(model?: Partial<Specification.HTTPQuery>) {\n super(model);\n\n getLifecycleHooks('HTTPQuery')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the HTTPQuery.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new HTTPQuery(this as any) as HTTPQueryIntersection;\n validate('HTTPQuery', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the HTTPQuery.\n * Creates a copy of the HTTPQuery, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the HTTPQuery instance.\n */\n normalize(): HTTPQuery & Specification.HTTPQuery {\n const copy = new HTTPQuery(this as any) as HTTPQueryIntersection;\n return getLifecycleHooks('HTTPQuery')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _HTTPQuery = HTTPQuery as HTTPQueryConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the InlineScript class and type\n */\nexport type InlineScriptIntersection = InlineScript & Specification.InlineScript;\n\n/**\n * Represents a constructor for the intersection of the InlineScript class and type\n */\nexport interface InlineScriptConstructor {\n new (model?: Partial<Specification.InlineScript>): InlineScriptIntersection;\n}\n\n/**\n * Represents a InlineScript with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class InlineScript extends ObjectHydrator<Specification.InlineScript> {\n /**\n * Instanciates a new instance of the InlineScript class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the InlineScript.\n */\n constructor(model?: Partial<Specification.InlineScript>) {\n super(model);\n\n getLifecycleHooks('InlineScript')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the InlineScript.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new InlineScript(this as any) as InlineScriptIntersection;\n validate('InlineScript', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the InlineScript.\n * Creates a copy of the InlineScript, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the InlineScript instance.\n */\n normalize(): InlineScript & Specification.InlineScript {\n const copy = new InlineScript(this as any) as InlineScriptIntersection;\n return getLifecycleHooks('InlineScript')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _InlineScript = InlineScript as InlineScriptConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the InputFrom class and type\n */\nexport type InputFromIntersection = InputFrom & Specification.InputFrom;\n\n/**\n * Represents a constructor for the intersection of the InputFrom class and type\n */\nexport interface InputFromConstructor {\n new (model?: Partial<Specification.InputFrom>): InputFromIntersection;\n}\n\n/**\n * Represents a InputFrom with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class InputFrom extends ObjectHydrator<Specification.InputFrom> {\n /**\n * Instanciates a new instance of the InputFrom class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the InputFrom.\n */\n constructor(model?: Partial<Specification.InputFrom>) {\n super(model);\n\n getLifecycleHooks('InputFrom')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the InputFrom.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new InputFrom(this as any) as InputFromIntersection;\n validate('InputFrom', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the InputFrom.\n * Creates a copy of the InputFrom, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the InputFrom instance.\n */\n normalize(): InputFrom & Specification.InputFrom {\n const copy = new InputFrom(this as any) as InputFromIntersection;\n return getLifecycleHooks('InputFrom')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _InputFrom = InputFrom as InputFromConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the LinearBackoff class and type\n */\nexport type LinearBackoffIntersection = LinearBackoff & Specification.LinearBackoff;\n\n/**\n * Represents a constructor for the intersection of the LinearBackoff class and type\n */\nexport interface LinearBackoffConstructor {\n new (model?: Partial<Specification.LinearBackoff>): LinearBackoffIntersection;\n}\n\n/**\n * Represents a LinearBackoff with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class LinearBackoff extends ObjectHydrator<Specification.LinearBackoff> {\n /**\n * Instanciates a new instance of the LinearBackoff class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the LinearBackoff.\n */\n constructor(model?: Partial<Specification.LinearBackoff>) {\n super(model);\n\n getLifecycleHooks('LinearBackoff')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the LinearBackoff.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new LinearBackoff(this as any) as LinearBackoffIntersection;\n validate('LinearBackoff', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the LinearBackoff.\n * Creates a copy of the LinearBackoff, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the LinearBackoff instance.\n */\n normalize(): LinearBackoff & Specification.LinearBackoff {\n const copy = new LinearBackoff(this as any) as LinearBackoffIntersection;\n return getLifecycleHooks('LinearBackoff')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _LinearBackoff = LinearBackoff as LinearBackoffConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _Input } from './input';\nimport { _Output } from './output';\nimport { _Export } from './export';\nimport { _TaskTimeout } from './task-timeout';\nimport { _TaskMetadata } from './task-metadata';\nimport { _ListenTaskConfiguration } from './listen-task-configuration';\nimport { _SubscriptionIterator } from './subscription-iterator';\nimport { _TaskBase } from './task-base';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the ListenTask class and type\n */\nexport type ListenTaskIntersection = ListenTask & Specification.ListenTask;\n\n/**\n * Represents a constructor for the intersection of the ListenTask class and type\n */\nexport interface ListenTaskConstructor {\n new (model?: Partial<Specification.ListenTask>): ListenTaskIntersection;\n}\n\n/**\n * Represents a ListenTask with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class ListenTask extends _TaskBase {\n /**\n * Instanciates a new instance of the ListenTask class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the ListenTask.\n */\n constructor(model?: Partial<Specification.ListenTask>) {\n super(model);\n const self = this as unknown as Specification.ListenTask & object;\n if (isObject(model)) {\n if (typeof model.input === 'object') self.input = new _Input(model.input);\n if (typeof model.output === 'object') self.output = new _Output(model.output);\n if (typeof model.export === 'object') self.export = new _Export(model.export);\n if (typeof model.timeout === 'object') self.timeout = new _TaskTimeout(model.timeout);\n if (typeof model.metadata === 'object') self.metadata = new _TaskMetadata(model.metadata);\n if (typeof model.listen === 'object') self.listen = new _ListenTaskConfiguration(model.listen);\n if (typeof model.foreach === 'object') self.foreach = new _SubscriptionIterator(model.foreach);\n }\n getLifecycleHooks('ListenTask')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the ListenTask.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new ListenTask(this as any) as ListenTaskIntersection;\n validate('ListenTask', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the ListenTask.\n * Creates a copy of the ListenTask, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the ListenTask instance.\n */\n normalize(): ListenTask & Specification.ListenTask {\n const copy = new ListenTask(this as any) as ListenTaskIntersection;\n return getLifecycleHooks('ListenTask')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _ListenTask = ListenTask as ListenTaskConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the McpCallTransport class and type\n */\nexport type McpCallTransportIntersection = McpCallTransport & Specification.McpCallTransport;\n\n/**\n * Represents a constructor for the intersection of the McpCallTransport class and type\n */\nexport interface McpCallTransportConstructor {\n new (model?: Partial<Specification.McpCallTransport>): McpCallTransportIntersection;\n}\n\n/**\n * Represents a McpCallTransport with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class McpCallTransport extends ObjectHydrator<Specification.McpCallTransport> {\n /**\n * Instanciates a new instance of the McpCallTransport class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the McpCallTransport.\n */\n constructor(model?: Partial<Specification.McpCallTransport>) {\n super(model);\n\n getLifecycleHooks('McpCallTransport')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the McpCallTransport.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new McpCallTransport(this as any) as McpCallTransportIntersection;\n validate('McpCallTransport', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the McpCallTransport.\n * Creates a copy of the McpCallTransport, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the McpCallTransport instance.\n */\n normalize(): McpCallTransport & Specification.McpCallTransport {\n const copy = new McpCallTransport(this as any) as McpCallTransportIntersection;\n return getLifecycleHooks('McpCallTransport')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _McpCallTransport = McpCallTransport as McpCallTransportConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the McpMethodParameters class and type\n */\nexport type McpMethodParametersIntersection = McpMethodParameters & Specification.McpMethodParameters;\n\n/**\n * Represents a constructor for the intersection of the McpMethodParameters class and type\n */\nexport interface McpMethodParametersConstructor {\n new (model?: Partial<Specification.McpMethodParameters>): McpMethodParametersIntersection;\n}\n\n/**\n * Represents a McpMethodParameters with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class McpMethodParameters extends ObjectHydrator<Specification.McpMethodParameters> {\n /**\n * Instanciates a new instance of the McpMethodParameters class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the McpMethodParameters.\n */\n constructor(model?: Partial<Specification.McpMethodParameters>) {\n super(model);\n\n getLifecycleHooks('McpMethodParameters')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the McpMethodParameters.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new McpMethodParameters(this as any) as McpMethodParametersIntersection;\n validate('McpMethodParameters', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the McpMethodParameters.\n * Creates a copy of the McpMethodParameters, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the McpMethodParameters instance.\n */\n normalize(): McpMethodParameters & Specification.McpMethodParameters {\n const copy = new McpMethodParameters(this as any) as McpMethodParametersIntersection;\n return getLifecycleHooks('McpMethodParameters')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _McpMethodParameters = McpMethodParameters as McpMethodParametersConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _OAuth2AuthenticationDataClient } from './oauth2-authentication-data-client';\nimport { _OAuth2TokenRequest } from './oauth2-token-request';\nimport { _OAuth2TokenDefinition } from './oauth2-token-definition';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the OAuth2AuthenticationData class and type\n */\nexport type OAuth2AuthenticationDataIntersection = OAuth2AuthenticationData & Specification.OAuth2AuthenticationData;\n\n/**\n * Represents a constructor for the intersection of the OAuth2AuthenticationData class and type\n */\nexport interface OAuth2AuthenticationDataConstructor {\n new (model?: Partial<Specification.OAuth2AuthenticationData>): OAuth2AuthenticationDataIntersection;\n}\n\n/**\n * Represents a OAuth2AuthenticationData with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class OAuth2AuthenticationData extends ObjectHydrator<Specification.OAuth2AuthenticationData> {\n /**\n * Instanciates a new instance of the OAuth2AuthenticationData class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the OAuth2AuthenticationData.\n */\n constructor(model?: Partial<Specification.OAuth2AuthenticationData>) {\n super(model);\n const self = this as unknown as Specification.OAuth2AuthenticationData & object;\n if (isObject(model)) {\n if (typeof model.client === 'object') self.client = new _OAuth2AuthenticationDataClient(model.client);\n if (typeof model.request === 'object') self.request = new _OAuth2TokenRequest(model.request);\n if (typeof model.subject === 'object') self.subject = new _OAuth2TokenDefinition(model.subject);\n if (typeof model.actor === 'object') self.actor = new _OAuth2TokenDefinition(model.actor);\n }\n getLifecycleHooks('OAuth2AuthenticationData')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the OAuth2AuthenticationData.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new OAuth2AuthenticationData(this as any) as OAuth2AuthenticationDataIntersection;\n validate('OAuth2AuthenticationData', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the OAuth2AuthenticationData.\n * Creates a copy of the OAuth2AuthenticationData, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the OAuth2AuthenticationData instance.\n */\n normalize(): OAuth2AuthenticationData & Specification.OAuth2AuthenticationData {\n const copy = new OAuth2AuthenticationData(this as any) as OAuth2AuthenticationDataIntersection;\n return getLifecycleHooks('OAuth2AuthenticationData')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _OAuth2AuthenticationData = OAuth2AuthenticationData as OAuth2AuthenticationDataConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { Specification } from '../definitions';\nimport { ArrayHydrator } from '../../hydrator';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the OAuth2AuthenticationDataAudiences class and type\n */\nexport type OAuth2AuthenticationDataAudiencesIntersection = OAuth2AuthenticationDataAudiences &\n Specification.OAuth2AuthenticationDataAudiences;\n\n/**\n * Represents a constructor for the intersection of the OAuth2AuthenticationDataAudiences class and type\n */\nexport interface OAuth2AuthenticationDataAudiencesConstructor {\n new (model?: Array<string> | number): OAuth2AuthenticationDataAudiencesIntersection;\n}\n\n/**\n * Represents a collection of string.\n * Inherits from ArrayHydrator to handle array-specific hydration.\n */\nexport class OAuth2AuthenticationDataAudiences extends ArrayHydrator<string> {\n /**\n * Constructs a new instance of the OAuth2AuthenticationDataAudiences class.\n *\n * @param model - Optional parameter which can be an array of objects or a number representing the array length.\n */\n constructor(model?: Array<string> | number) {\n super(model);\n if (Array.isArray(model)) {\n if (model?.length) {\n this.splice(0, this.length);\n model.forEach((item) => this.push(item));\n }\n }\n Object.setPrototypeOf(this, Object.create(OAuth2AuthenticationDataAudiences.prototype));\n getLifecycleHooks('OAuth2AuthenticationDataAudiences')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the OAuth2AuthenticationDataAudiences.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new OAuth2AuthenticationDataAudiences(this);\n validate('OAuth2AuthenticationDataAudiences', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the OAuth2AuthenticationDataAudiences.\n * Creates a copy of the OAuth2AuthenticationDataAudiences, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the OAuth2AuthenticationDataAudiences instance.\n */\n normalize(): OAuth2AuthenticationDataAudiences {\n const copy = new OAuth2AuthenticationDataAudiences(this);\n return getLifecycleHooks('OAuth2AuthenticationDataAudiences')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _OAuth2AuthenticationDataAudiences =\n OAuth2AuthenticationDataAudiences as unknown as OAuth2AuthenticationDataAudiencesConstructor;\n//export const _OAuth2AuthenticationDataAudiences = OAuth2AuthenticationDataAudiences; // could be exported directly, but it makes the job of building the index more straightforward as it's consistant with \"object\" classes\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { Specification } from '../definitions';\nimport { ArrayHydrator } from '../../hydrator';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the OAuth2AuthenticationDataScopes class and type\n */\nexport type OAuth2AuthenticationDataScopesIntersection = OAuth2AuthenticationDataScopes &\n Specification.OAuth2AuthenticationDataScopes;\n\n/**\n * Represents a constructor for the intersection of the OAuth2AuthenticationDataScopes class and type\n */\nexport interface OAuth2AuthenticationDataScopesConstructor {\n new (model?: Array<string> | number): OAuth2AuthenticationDataScopesIntersection;\n}\n\n/**\n * Represents a collection of string.\n * Inherits from ArrayHydrator to handle array-specific hydration.\n */\nexport class OAuth2AuthenticationDataScopes extends ArrayHydrator<string> {\n /**\n * Constructs a new instance of the OAuth2AuthenticationDataScopes class.\n *\n * @param model - Optional parameter which can be an array of objects or a number representing the array length.\n */\n constructor(model?: Array<string> | number) {\n super(model);\n if (Array.isArray(model)) {\n if (model?.length) {\n this.splice(0, this.length);\n model.forEach((item) => this.push(item));\n }\n }\n Object.setPrototypeOf(this, Object.create(OAuth2AuthenticationDataScopes.prototype));\n getLifecycleHooks('OAuth2AuthenticationDataScopes')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the OAuth2AuthenticationDataScopes.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new OAuth2AuthenticationDataScopes(this);\n validate('OAuth2AuthenticationDataScopes', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the OAuth2AuthenticationDataScopes.\n * Creates a copy of the OAuth2AuthenticationDataScopes, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the OAuth2AuthenticationDataScopes instance.\n */\n normalize(): OAuth2AuthenticationDataScopes {\n const copy = new OAuth2AuthenticationDataScopes(this);\n return getLifecycleHooks('OAuth2AuthenticationDataScopes')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _OAuth2AuthenticationDataScopes =\n OAuth2AuthenticationDataScopes as unknown as OAuth2AuthenticationDataScopesConstructor;\n//export const _OAuth2AuthenticationDataScopes = OAuth2AuthenticationDataScopes; // could be exported directly, but it makes the job of building the index more straightforward as it's consistant with \"object\" classes\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _OAuth2AuthenticationPolicyConfiguration } from './oauth2-authentication-policy-configuration';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the OAuth2AuthenticationPolicy class and type\n */\nexport type OAuth2AuthenticationPolicyIntersection = OAuth2AuthenticationPolicy &\n Specification.OAuth2AuthenticationPolicy;\n\n/**\n * Represents a constructor for the intersection of the OAuth2AuthenticationPolicy class and type\n */\nexport interface OAuth2AuthenticationPolicyConstructor {\n new (model?: Partial<Specification.OAuth2AuthenticationPolicy>): OAuth2AuthenticationPolicyIntersection;\n}\n\n/**\n * Represents a OAuth2AuthenticationPolicy with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class OAuth2AuthenticationPolicy extends ObjectHydrator<Specification.OAuth2AuthenticationPolicy> {\n /**\n * Instanciates a new instance of the OAuth2AuthenticationPolicy class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the OAuth2AuthenticationPolicy.\n */\n constructor(model?: Partial<Specification.OAuth2AuthenticationPolicy>) {\n super(model);\n const self = this as unknown as Specification.OAuth2AuthenticationPolicy & object;\n if (isObject(model)) {\n if (typeof model.oauth2 === 'object') self.oauth2 = new _OAuth2AuthenticationPolicyConfiguration(model.oauth2);\n }\n getLifecycleHooks('OAuth2AuthenticationPolicy')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the OAuth2AuthenticationPolicy.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new OAuth2AuthenticationPolicy(this as any) as OAuth2AuthenticationPolicyIntersection;\n validate('OAuth2AuthenticationPolicy', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the OAuth2AuthenticationPolicy.\n * Creates a copy of the OAuth2AuthenticationPolicy, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the OAuth2AuthenticationPolicy instance.\n */\n normalize(): OAuth2AuthenticationPolicy & Specification.OAuth2AuthenticationPolicy {\n const copy = new OAuth2AuthenticationPolicy(this as any) as OAuth2AuthenticationPolicyIntersection;\n return getLifecycleHooks('OAuth2AuthenticationPolicy')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _OAuth2AuthenticationPolicy = OAuth2AuthenticationPolicy as OAuth2AuthenticationPolicyConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _OAuth2AuthenticationDataClient } from './oauth2-authentication-data-client';\nimport { _OAuth2TokenRequest } from './oauth2-token-request';\nimport { _OAuth2TokenDefinition } from './oauth2-token-definition';\nimport { _OAuth2AuthenticationPropertiesEndpoints } from './oauth2-authentication-properties-endpoints';\nimport { _OAuth2AuthenticationData } from './oauth2-authentication-data';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the OAuth2ConnectAuthenticationProperties class and type\n */\nexport type OAuth2ConnectAuthenticationPropertiesIntersection = OAuth2ConnectAuthenticationProperties &\n Specification.OAuth2ConnectAuthenticationProperties;\n\n/**\n * Represents a constructor for the intersection of the OAuth2ConnectAuthenticationProperties class and type\n */\nexport interface OAuth2ConnectAuthenticationPropertiesConstructor {\n new (\n model?: Partial<Specification.OAuth2ConnectAuthenticationProperties>,\n ): OAuth2ConnectAuthenticationPropertiesIntersection;\n}\n\n/**\n * Represents a OAuth2ConnectAuthenticationProperties with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class OAuth2ConnectAuthenticationProperties extends _OAuth2AuthenticationData {\n /**\n * Instanciates a new instance of the OAuth2ConnectAuthenticationProperties class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the OAuth2ConnectAuthenticationProperties.\n */\n constructor(model?: Partial<Specification.OAuth2ConnectAuthenticationProperties>) {\n super(model);\n const self = this as unknown as Specification.OAuth2ConnectAuthenticationProperties & object;\n if (isObject(model)) {\n if (typeof model.client === 'object') self.client = new _OAuth2AuthenticationDataClient(model.client);\n if (typeof model.request === 'object') self.request = new _OAuth2TokenRequest(model.request);\n if (typeof model.subject === 'object') self.subject = new _OAuth2TokenDefinition(model.subject);\n if (typeof model.actor === 'object') self.actor = new _OAuth2TokenDefinition(model.actor);\n if (typeof model.endpoints === 'object')\n self.endpoints = new _OAuth2AuthenticationPropertiesEndpoints(model.endpoints);\n }\n getLifecycleHooks('OAuth2ConnectAuthenticationProperties')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the OAuth2ConnectAuthenticationProperties.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new OAuth2ConnectAuthenticationProperties(\n this as any,\n ) as OAuth2ConnectAuthenticationPropertiesIntersection;\n validate('OAuth2ConnectAuthenticationProperties', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the OAuth2ConnectAuthenticationProperties.\n * Creates a copy of the OAuth2ConnectAuthenticationProperties, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the OAuth2ConnectAuthenticationProperties instance.\n */\n normalize(): OAuth2ConnectAuthenticationProperties & Specification.OAuth2ConnectAuthenticationProperties {\n const copy = new OAuth2ConnectAuthenticationProperties(\n this as any,\n ) as OAuth2ConnectAuthenticationPropertiesIntersection;\n return getLifecycleHooks('OAuth2ConnectAuthenticationProperties')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _OAuth2ConnectAuthenticationProperties =\n OAuth2ConnectAuthenticationProperties as OAuth2ConnectAuthenticationPropertiesConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { Specification } from '../definitions';\nimport { ArrayHydrator } from '../../hydrator';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the OAuth2Issuers class and type\n */\nexport type OAuth2IssuersIntersection = OAuth2Issuers & Specification.OAuth2Issuers;\n\n/**\n * Represents a constructor for the intersection of the OAuth2Issuers class and type\n */\nexport interface OAuth2IssuersConstructor {\n new (model?: Array<string> | number): OAuth2IssuersIntersection;\n}\n\n/**\n * Represents a collection of string.\n * Inherits from ArrayHydrator to handle array-specific hydration.\n */\nexport class OAuth2Issuers extends ArrayHydrator<string> {\n /**\n * Constructs a new instance of the OAuth2Issuers class.\n *\n * @param model - Optional parameter which can be an array of objects or a number representing the array length.\n */\n constructor(model?: Array<string> | number) {\n super(model);\n if (Array.isArray(model)) {\n if (model?.length) {\n this.splice(0, this.length);\n model.forEach((item) => this.push(item));\n }\n }\n Object.setPrototypeOf(this, Object.create(OAuth2Issuers.prototype));\n getLifecycleHooks('OAuth2Issuers')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the OAuth2Issuers.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new OAuth2Issuers(this);\n validate('OAuth2Issuers', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the OAuth2Issuers.\n * Creates a copy of the OAuth2Issuers, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the OAuth2Issuers instance.\n */\n normalize(): OAuth2Issuers {\n const copy = new OAuth2Issuers(this);\n return getLifecycleHooks('OAuth2Issuers')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _OAuth2Issuers = OAuth2Issuers as unknown as OAuth2IssuersConstructor;\n//export const _OAuth2Issuers = OAuth2Issuers; // could be exported directly, but it makes the job of building the index more straightforward as it's consistant with \"object\" classes\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _EventFilter } from './event-filter';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the OneEventConsumptionStrategy class and type\n */\nexport type OneEventConsumptionStrategyIntersection = OneEventConsumptionStrategy &\n Specification.OneEventConsumptionStrategy;\n\n/**\n * Represents a constructor for the intersection of the OneEventConsumptionStrategy class and type\n */\nexport interface OneEventConsumptionStrategyConstructor {\n new (model?: Partial<Specification.OneEventConsumptionStrategy>): OneEventConsumptionStrategyIntersection;\n}\n\n/**\n * Represents a OneEventConsumptionStrategy with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class OneEventConsumptionStrategy extends ObjectHydrator<Specification.OneEventConsumptionStrategy> {\n /**\n * Instanciates a new instance of the OneEventConsumptionStrategy class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the OneEventConsumptionStrategy.\n */\n constructor(model?: Partial<Specification.OneEventConsumptionStrategy>) {\n super(model);\n const self = this as unknown as Specification.OneEventConsumptionStrategy & object;\n if (isObject(model)) {\n if (typeof model.one === 'object') self.one = new _EventFilter(model.one);\n }\n getLifecycleHooks('OneEventConsumptionStrategy')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the OneEventConsumptionStrategy.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new OneEventConsumptionStrategy(this as any) as OneEventConsumptionStrategyIntersection;\n validate('OneEventConsumptionStrategy', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the OneEventConsumptionStrategy.\n * Creates a copy of the OneEventConsumptionStrategy, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the OneEventConsumptionStrategy instance.\n */\n normalize(): OneEventConsumptionStrategy & Specification.OneEventConsumptionStrategy {\n const copy = new OneEventConsumptionStrategy(this as any) as OneEventConsumptionStrategyIntersection;\n return getLifecycleHooks('OneEventConsumptionStrategy')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _OneEventConsumptionStrategy = OneEventConsumptionStrategy as OneEventConsumptionStrategyConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _OpenIdConnectAuthenticationPolicyConfiguration } from './open-id-connect-authentication-policy-configuration';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the OpenIdConnectAuthenticationPolicy class and type\n */\nexport type OpenIdConnectAuthenticationPolicyIntersection = OpenIdConnectAuthenticationPolicy &\n Specification.OpenIdConnectAuthenticationPolicy;\n\n/**\n * Represents a constructor for the intersection of the OpenIdConnectAuthenticationPolicy class and type\n */\nexport interface OpenIdConnectAuthenticationPolicyConstructor {\n new (model?: Partial<Specification.OpenIdConnectAuthenticationPolicy>): OpenIdConnectAuthenticationPolicyIntersection;\n}\n\n/**\n * Represents a OpenIdConnectAuthenticationPolicy with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class OpenIdConnectAuthenticationPolicy extends ObjectHydrator<Specification.OpenIdConnectAuthenticationPolicy> {\n /**\n * Instanciates a new instance of the OpenIdConnectAuthenticationPolicy class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the OpenIdConnectAuthenticationPolicy.\n */\n constructor(model?: Partial<Specification.OpenIdConnectAuthenticationPolicy>) {\n super(model);\n const self = this as unknown as Specification.OpenIdConnectAuthenticationPolicy & object;\n if (isObject(model)) {\n if (typeof model.oidc === 'object') self.oidc = new _OpenIdConnectAuthenticationPolicyConfiguration(model.oidc);\n }\n getLifecycleHooks('OpenIdConnectAuthenticationPolicy')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the OpenIdConnectAuthenticationPolicy.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new OpenIdConnectAuthenticationPolicy(this as any) as OpenIdConnectAuthenticationPolicyIntersection;\n validate('OpenIdConnectAuthenticationPolicy', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the OpenIdConnectAuthenticationPolicy.\n * Creates a copy of the OpenIdConnectAuthenticationPolicy, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the OpenIdConnectAuthenticationPolicy instance.\n */\n normalize(): OpenIdConnectAuthenticationPolicy & Specification.OpenIdConnectAuthenticationPolicy {\n const copy = new OpenIdConnectAuthenticationPolicy(this as any) as OpenIdConnectAuthenticationPolicyIntersection;\n return getLifecycleHooks('OpenIdConnectAuthenticationPolicy')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _OpenIdConnectAuthenticationPolicy =\n OpenIdConnectAuthenticationPolicy as OpenIdConnectAuthenticationPolicyConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _OAuth2AuthenticationDataClient } from './oauth2-authentication-data-client';\nimport { _OAuth2TokenRequest } from './oauth2-token-request';\nimport { _OAuth2TokenDefinition } from './oauth2-token-definition';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the OpenIdConnectAuthenticationProperties class and type\n */\nexport type OpenIdConnectAuthenticationPropertiesIntersection = OpenIdConnectAuthenticationProperties &\n Specification.OpenIdConnectAuthenticationProperties;\n\n/**\n * Represents a constructor for the intersection of the OpenIdConnectAuthenticationProperties class and type\n */\nexport interface OpenIdConnectAuthenticationPropertiesConstructor {\n new (\n model?: Partial<Specification.OpenIdConnectAuthenticationProperties>,\n ): OpenIdConnectAuthenticationPropertiesIntersection;\n}\n\n/**\n * Represents a OpenIdConnectAuthenticationProperties with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class OpenIdConnectAuthenticationProperties extends ObjectHydrator<Specification.OpenIdConnectAuthenticationProperties> {\n /**\n * Instanciates a new instance of the OpenIdConnectAuthenticationProperties class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the OpenIdConnectAuthenticationProperties.\n */\n constructor(model?: Partial<Specification.OpenIdConnectAuthenticationProperties>) {\n super(model);\n const self = this as unknown as Specification.OpenIdConnectAuthenticationProperties & object;\n if (isObject(model)) {\n if (typeof model.client === 'object') self.client = new _OAuth2AuthenticationDataClient(model.client);\n if (typeof model.request === 'object') self.request = new _OAuth2TokenRequest(model.request);\n if (typeof model.subject === 'object') self.subject = new _OAuth2TokenDefinition(model.subject);\n if (typeof model.actor === 'object') self.actor = new _OAuth2TokenDefinition(model.actor);\n }\n getLifecycleHooks('OpenIdConnectAuthenticationProperties')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the OpenIdConnectAuthenticationProperties.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new OpenIdConnectAuthenticationProperties(\n this as any,\n ) as OpenIdConnectAuthenticationPropertiesIntersection;\n validate('OpenIdConnectAuthenticationProperties', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the OpenIdConnectAuthenticationProperties.\n * Creates a copy of the OpenIdConnectAuthenticationProperties, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the OpenIdConnectAuthenticationProperties instance.\n */\n normalize(): OpenIdConnectAuthenticationProperties & Specification.OpenIdConnectAuthenticationProperties {\n const copy = new OpenIdConnectAuthenticationProperties(\n this as any,\n ) as OpenIdConnectAuthenticationPropertiesIntersection;\n return getLifecycleHooks('OpenIdConnectAuthenticationProperties')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _OpenIdConnectAuthenticationProperties =\n OpenIdConnectAuthenticationProperties as OpenIdConnectAuthenticationPropertiesConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the OutputAs class and type\n */\nexport type OutputAsIntersection = OutputAs & Specification.OutputAs;\n\n/**\n * Represents a constructor for the intersection of the OutputAs class and type\n */\nexport interface OutputAsConstructor {\n new (model?: Partial<Specification.OutputAs>): OutputAsIntersection;\n}\n\n/**\n * Represents a OutputAs with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class OutputAs extends ObjectHydrator<Specification.OutputAs> {\n /**\n * Instanciates a new instance of the OutputAs class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the OutputAs.\n */\n constructor(model?: Partial<Specification.OutputAs>) {\n super(model);\n\n getLifecycleHooks('OutputAs')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the OutputAs.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new OutputAs(this as any) as OutputAsIntersection;\n validate('OutputAs', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the OutputAs.\n * Creates a copy of the OutputAs, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the OutputAs instance.\n */\n normalize(): OutputAs & Specification.OutputAs {\n const copy = new OutputAs(this as any) as OutputAsIntersection;\n return getLifecycleHooks('OutputAs')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _OutputAs = OutputAs as OutputAsConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _Input } from './input';\nimport { _Output } from './output';\nimport { _Export } from './export';\nimport { _TaskTimeout } from './task-timeout';\nimport { _TaskMetadata } from './task-metadata';\nimport { _RaiseTaskConfiguration } from './raise-task-configuration';\nimport { _TaskBase } from './task-base';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the RaiseTask class and type\n */\nexport type RaiseTaskIntersection = RaiseTask & Specification.RaiseTask;\n\n/**\n * Represents a constructor for the intersection of the RaiseTask class and type\n */\nexport interface RaiseTaskConstructor {\n new (model?: Partial<Specification.RaiseTask>): RaiseTaskIntersection;\n}\n\n/**\n * Represents a RaiseTask with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class RaiseTask extends _TaskBase {\n /**\n * Instanciates a new instance of the RaiseTask class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the RaiseTask.\n */\n constructor(model?: Partial<Specification.RaiseTask>) {\n super(model);\n const self = this as unknown as Specification.RaiseTask & object;\n if (isObject(model)) {\n if (typeof model.input === 'object') self.input = new _Input(model.input);\n if (typeof model.output === 'object') self.output = new _Output(model.output);\n if (typeof model.export === 'object') self.export = new _Export(model.export);\n if (typeof model.timeout === 'object') self.timeout = new _TaskTimeout(model.timeout);\n if (typeof model.metadata === 'object') self.metadata = new _TaskMetadata(model.metadata);\n if (typeof model.raise === 'object') self.raise = new _RaiseTaskConfiguration(model.raise);\n }\n getLifecycleHooks('RaiseTask')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the RaiseTask.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new RaiseTask(this as any) as RaiseTaskIntersection;\n validate('RaiseTask', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the RaiseTask.\n * Creates a copy of the RaiseTask, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the RaiseTask instance.\n */\n normalize(): RaiseTask & Specification.RaiseTask {\n const copy = new RaiseTask(this as any) as RaiseTaskIntersection;\n return getLifecycleHooks('RaiseTask')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _RaiseTask = RaiseTask as RaiseTaskConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _Duration } from './duration';\nimport { _RetryBackoff } from './retry-backoff';\nimport { _RetryLimit } from './retry-limit';\nimport { _RetryPolicyJitter } from './retry-policy-jitter';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the RetryPolicy class and type\n */\nexport type RetryPolicyIntersection = RetryPolicy & Specification.RetryPolicy;\n\n/**\n * Represents a constructor for the intersection of the RetryPolicy class and type\n */\nexport interface RetryPolicyConstructor {\n new (model?: Partial<Specification.RetryPolicy>): RetryPolicyIntersection;\n}\n\n/**\n * Represents a RetryPolicy with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class RetryPolicy extends ObjectHydrator<Specification.RetryPolicy> {\n /**\n * Instanciates a new instance of the RetryPolicy class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the RetryPolicy.\n */\n constructor(model?: Partial<Specification.RetryPolicy>) {\n super(model);\n const self = this as unknown as Specification.RetryPolicy & object;\n if (isObject(model)) {\n if (typeof model.delay === 'object') self.delay = new _Duration(model.delay);\n if (typeof model.backoff === 'object') self.backoff = new _RetryBackoff(model.backoff);\n if (typeof model.limit === 'object') self.limit = new _RetryLimit(model.limit);\n if (typeof model.jitter === 'object') self.jitter = new _RetryPolicyJitter(model.jitter);\n }\n getLifecycleHooks('RetryPolicy')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the RetryPolicy.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new RetryPolicy(this as any) as RetryPolicyIntersection;\n validate('RetryPolicy', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the RetryPolicy.\n * Creates a copy of the RetryPolicy, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the RetryPolicy instance.\n */\n normalize(): RetryPolicy & Specification.RetryPolicy {\n const copy = new RetryPolicy(this as any) as RetryPolicyIntersection;\n return getLifecycleHooks('RetryPolicy')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _RetryPolicy = RetryPolicy as RetryPolicyConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _Container } from './container';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the RunContainer class and type\n */\nexport type RunContainerIntersection = RunContainer & Specification.RunContainer;\n\n/**\n * Represents a constructor for the intersection of the RunContainer class and type\n */\nexport interface RunContainerConstructor {\n new (model?: Partial<Specification.RunContainer>): RunContainerIntersection;\n}\n\n/**\n * Represents a RunContainer with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class RunContainer extends ObjectHydrator<Specification.RunContainer> {\n /**\n * Instanciates a new instance of the RunContainer class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the RunContainer.\n */\n constructor(model?: Partial<Specification.RunContainer>) {\n super(model);\n const self = this as unknown as Specification.RunContainer & object;\n if (isObject(model)) {\n if (typeof model.container === 'object') self.container = new _Container(model.container);\n }\n getLifecycleHooks('RunContainer')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the RunContainer.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new RunContainer(this as any) as RunContainerIntersection;\n validate('RunContainer', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the RunContainer.\n * Creates a copy of the RunContainer, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the RunContainer instance.\n */\n normalize(): RunContainer & Specification.RunContainer {\n const copy = new RunContainer(this as any) as RunContainerIntersection;\n return getLifecycleHooks('RunContainer')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _RunContainer = RunContainer as RunContainerConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _Script } from './script';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the RunScript class and type\n */\nexport type RunScriptIntersection = RunScript & Specification.RunScript;\n\n/**\n * Represents a constructor for the intersection of the RunScript class and type\n */\nexport interface RunScriptConstructor {\n new (model?: Partial<Specification.RunScript>): RunScriptIntersection;\n}\n\n/**\n * Represents a RunScript with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class RunScript extends ObjectHydrator<Specification.RunScript> {\n /**\n * Instanciates a new instance of the RunScript class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the RunScript.\n */\n constructor(model?: Partial<Specification.RunScript>) {\n super(model);\n const self = this as unknown as Specification.RunScript & object;\n if (isObject(model)) {\n if (typeof model.script === 'object') self.script = new _Script(model.script);\n }\n getLifecycleHooks('RunScript')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the RunScript.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new RunScript(this as any) as RunScriptIntersection;\n validate('RunScript', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the RunScript.\n * Creates a copy of the RunScript, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the RunScript instance.\n */\n normalize(): RunScript & Specification.RunScript {\n const copy = new RunScript(this as any) as RunScriptIntersection;\n return getLifecycleHooks('RunScript')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _RunScript = RunScript as RunScriptConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _Shell } from './shell';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the RunShell class and type\n */\nexport type RunShellIntersection = RunShell & Specification.RunShell;\n\n/**\n * Represents a constructor for the intersection of the RunShell class and type\n */\nexport interface RunShellConstructor {\n new (model?: Partial<Specification.RunShell>): RunShellIntersection;\n}\n\n/**\n * Represents a RunShell with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class RunShell extends ObjectHydrator<Specification.RunShell> {\n /**\n * Instanciates a new instance of the RunShell class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the RunShell.\n */\n constructor(model?: Partial<Specification.RunShell>) {\n super(model);\n const self = this as unknown as Specification.RunShell & object;\n if (isObject(model)) {\n if (typeof model.shell === 'object') self.shell = new _Shell(model.shell);\n }\n getLifecycleHooks('RunShell')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the RunShell.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new RunShell(this as any) as RunShellIntersection;\n validate('RunShell', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the RunShell.\n * Creates a copy of the RunShell, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the RunShell instance.\n */\n normalize(): RunShell & Specification.RunShell {\n const copy = new RunShell(this as any) as RunShellIntersection;\n return getLifecycleHooks('RunShell')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _RunShell = RunShell as RunShellConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _Input } from './input';\nimport { _Output } from './output';\nimport { _Export } from './export';\nimport { _TaskTimeout } from './task-timeout';\nimport { _TaskMetadata } from './task-metadata';\nimport { _RunTaskConfiguration } from './run-task-configuration';\nimport { _TaskBase } from './task-base';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the RunTask class and type\n */\nexport type RunTaskIntersection = RunTask & Specification.RunTask;\n\n/**\n * Represents a constructor for the intersection of the RunTask class and type\n */\nexport interface RunTaskConstructor {\n new (model?: Partial<Specification.RunTask>): RunTaskIntersection;\n}\n\n/**\n * Represents a RunTask with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class RunTask extends _TaskBase {\n /**\n * Instanciates a new instance of the RunTask class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the RunTask.\n */\n constructor(model?: Partial<Specification.RunTask>) {\n super(model);\n const self = this as unknown as Specification.RunTask & object;\n if (isObject(model)) {\n if (typeof model.input === 'object') self.input = new _Input(model.input);\n if (typeof model.output === 'object') self.output = new _Output(model.output);\n if (typeof model.export === 'object') self.export = new _Export(model.export);\n if (typeof model.timeout === 'object') self.timeout = new _TaskTimeout(model.timeout);\n if (typeof model.metadata === 'object') self.metadata = new _TaskMetadata(model.metadata);\n if (typeof model.run === 'object') self.run = new _RunTaskConfiguration(model.run);\n }\n getLifecycleHooks('RunTask')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the RunTask.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new RunTask(this as any) as RunTaskIntersection;\n validate('RunTask', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the RunTask.\n * Creates a copy of the RunTask, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the RunTask instance.\n */\n normalize(): RunTask & Specification.RunTask {\n const copy = new RunTask(this as any) as RunTaskIntersection;\n return getLifecycleHooks('RunTask')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _RunTask = RunTask as RunTaskConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the RuntimeExpression class and type\n */\nexport type RuntimeExpressionIntersection = RuntimeExpression & Specification.RuntimeExpression;\n\n/**\n * Represents a constructor for the intersection of the RuntimeExpression class and type\n */\nexport interface RuntimeExpressionConstructor {\n new (model?: Partial<Specification.RuntimeExpression>): RuntimeExpressionIntersection;\n}\n\n/**\n * Represents a RuntimeExpression with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class RuntimeExpression extends ObjectHydrator<Specification.RuntimeExpression> {\n /**\n * Instanciates a new instance of the RuntimeExpression class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the RuntimeExpression.\n */\n constructor(model?: Partial<Specification.RuntimeExpression>) {\n super(model);\n\n getLifecycleHooks('RuntimeExpression')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the RuntimeExpression.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new RuntimeExpression(this as any) as RuntimeExpressionIntersection;\n validate('RuntimeExpression', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the RuntimeExpression.\n * Creates a copy of the RuntimeExpression, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the RuntimeExpression instance.\n */\n normalize(): RuntimeExpression & Specification.RuntimeExpression {\n const copy = new RuntimeExpression(this as any) as RuntimeExpressionIntersection;\n return getLifecycleHooks('RuntimeExpression')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _RuntimeExpression = RuntimeExpression as RuntimeExpressionConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _SubflowConfiguration } from './subflow-configuration';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the RunWorkflow class and type\n */\nexport type RunWorkflowIntersection = RunWorkflow & Specification.RunWorkflow;\n\n/**\n * Represents a constructor for the intersection of the RunWorkflow class and type\n */\nexport interface RunWorkflowConstructor {\n new (model?: Partial<Specification.RunWorkflow>): RunWorkflowIntersection;\n}\n\n/**\n * Represents a RunWorkflow with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class RunWorkflow extends ObjectHydrator<Specification.RunWorkflow> {\n /**\n * Instanciates a new instance of the RunWorkflow class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the RunWorkflow.\n */\n constructor(model?: Partial<Specification.RunWorkflow>) {\n super(model);\n const self = this as unknown as Specification.RunWorkflow & object;\n if (isObject(model)) {\n if (typeof model.workflow === 'object') self.workflow = new _SubflowConfiguration(model.workflow);\n }\n getLifecycleHooks('RunWorkflow')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the RunWorkflow.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new RunWorkflow(this as any) as RunWorkflowIntersection;\n validate('RunWorkflow', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the RunWorkflow.\n * Creates a copy of the RunWorkflow, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the RunWorkflow instance.\n */\n normalize(): RunWorkflow & Specification.RunWorkflow {\n const copy = new RunWorkflow(this as any) as RunWorkflowIntersection;\n return getLifecycleHooks('RunWorkflow')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _RunWorkflow = RunWorkflow as RunWorkflowConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _Duration } from './duration';\nimport { _EventConsumptionStrategy } from './event-consumption-strategy';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the Schedule class and type\n */\nexport type ScheduleIntersection = Schedule & Specification.Schedule;\n\n/**\n * Represents a constructor for the intersection of the Schedule class and type\n */\nexport interface ScheduleConstructor {\n new (model?: Partial<Specification.Schedule>): ScheduleIntersection;\n}\n\n/**\n * Represents a Schedule with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class Schedule extends ObjectHydrator<Specification.Schedule> {\n /**\n * Instanciates a new instance of the Schedule class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the Schedule.\n */\n constructor(model?: Partial<Specification.Schedule>) {\n super(model);\n const self = this as unknown as Specification.Schedule & object;\n if (isObject(model)) {\n if (typeof model.every === 'object') self.every = new _Duration(model.every);\n if (typeof model.after === 'object') self.after = new _Duration(model.after);\n if (typeof model.on === 'object') self.on = new _EventConsumptionStrategy(model.on);\n }\n getLifecycleHooks('Schedule')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the Schedule.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new Schedule(this as any) as ScheduleIntersection;\n validate('Schedule', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the Schedule.\n * Creates a copy of the Schedule, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the Schedule instance.\n */\n normalize(): Schedule & Specification.Schedule {\n const copy = new Schedule(this as any) as ScheduleIntersection;\n return getLifecycleHooks('Schedule')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _Schedule = Schedule as ScheduleConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _ExternalResource } from './external-resource';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the SchemaExternal class and type\n */\nexport type SchemaExternalIntersection = SchemaExternal & Specification.SchemaExternal;\n\n/**\n * Represents a constructor for the intersection of the SchemaExternal class and type\n */\nexport interface SchemaExternalConstructor {\n new (model?: Partial<Specification.SchemaExternal>): SchemaExternalIntersection;\n}\n\n/**\n * Represents a SchemaExternal with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class SchemaExternal extends ObjectHydrator<Specification.SchemaExternal> {\n /**\n * Instanciates a new instance of the SchemaExternal class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the SchemaExternal.\n */\n constructor(model?: Partial<Specification.SchemaExternal>) {\n super(model);\n const self = this as unknown as Specification.SchemaExternal & object;\n if (isObject(model)) {\n if (typeof model.resource === 'object') self.resource = new _ExternalResource(model.resource);\n }\n getLifecycleHooks('SchemaExternal')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the SchemaExternal.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new SchemaExternal(this as any) as SchemaExternalIntersection;\n validate('SchemaExternal', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the SchemaExternal.\n * Creates a copy of the SchemaExternal, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the SchemaExternal instance.\n */\n normalize(): SchemaExternal & Specification.SchemaExternal {\n const copy = new SchemaExternal(this as any) as SchemaExternalIntersection;\n return getLifecycleHooks('SchemaExternal')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _SchemaExternal = SchemaExternal as SchemaExternalConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the SchemaInline class and type\n */\nexport type SchemaInlineIntersection = SchemaInline & Specification.SchemaInline;\n\n/**\n * Represents a constructor for the intersection of the SchemaInline class and type\n */\nexport interface SchemaInlineConstructor {\n new (model?: Partial<Specification.SchemaInline>): SchemaInlineIntersection;\n}\n\n/**\n * Represents a SchemaInline with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class SchemaInline extends ObjectHydrator<Specification.SchemaInline> {\n /**\n * Instanciates a new instance of the SchemaInline class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the SchemaInline.\n */\n constructor(model?: Partial<Specification.SchemaInline>) {\n super(model);\n\n getLifecycleHooks('SchemaInline')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the SchemaInline.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new SchemaInline(this as any) as SchemaInlineIntersection;\n validate('SchemaInline', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the SchemaInline.\n * Creates a copy of the SchemaInline, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the SchemaInline instance.\n */\n normalize(): SchemaInline & Specification.SchemaInline {\n const copy = new SchemaInline(this as any) as SchemaInlineIntersection;\n return getLifecycleHooks('SchemaInline')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _SchemaInline = SchemaInline as SchemaInlineConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the SecretBasedAuthenticationPolicy class and type\n */\nexport type SecretBasedAuthenticationPolicyIntersection = SecretBasedAuthenticationPolicy &\n Specification.SecretBasedAuthenticationPolicy;\n\n/**\n * Represents a constructor for the intersection of the SecretBasedAuthenticationPolicy class and type\n */\nexport interface SecretBasedAuthenticationPolicyConstructor {\n new (model?: Partial<Specification.SecretBasedAuthenticationPolicy>): SecretBasedAuthenticationPolicyIntersection;\n}\n\n/**\n * Represents a SecretBasedAuthenticationPolicy with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class SecretBasedAuthenticationPolicy extends ObjectHydrator<Specification.SecretBasedAuthenticationPolicy> {\n /**\n * Instanciates a new instance of the SecretBasedAuthenticationPolicy class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the SecretBasedAuthenticationPolicy.\n */\n constructor(model?: Partial<Specification.SecretBasedAuthenticationPolicy>) {\n super(model);\n\n getLifecycleHooks('SecretBasedAuthenticationPolicy')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the SecretBasedAuthenticationPolicy.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new SecretBasedAuthenticationPolicy(this as any) as SecretBasedAuthenticationPolicyIntersection;\n validate('SecretBasedAuthenticationPolicy', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the SecretBasedAuthenticationPolicy.\n * Creates a copy of the SecretBasedAuthenticationPolicy, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the SecretBasedAuthenticationPolicy instance.\n */\n normalize(): SecretBasedAuthenticationPolicy & Specification.SecretBasedAuthenticationPolicy {\n const copy = new SecretBasedAuthenticationPolicy(this as any) as SecretBasedAuthenticationPolicyIntersection;\n return getLifecycleHooks('SecretBasedAuthenticationPolicy')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _SecretBasedAuthenticationPolicy =\n SecretBasedAuthenticationPolicy as SecretBasedAuthenticationPolicyConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _Input } from './input';\nimport { _Output } from './output';\nimport { _Export } from './export';\nimport { _TaskTimeout } from './task-timeout';\nimport { _TaskMetadata } from './task-metadata';\nimport { _TaskBase } from './task-base';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the SetTask class and type\n */\nexport type SetTaskIntersection = SetTask & Specification.SetTask;\n\n/**\n * Represents a constructor for the intersection of the SetTask class and type\n */\nexport interface SetTaskConstructor {\n new (model?: Partial<Specification.SetTask>): SetTaskIntersection;\n}\n\n/**\n * Represents a SetTask with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class SetTask extends _TaskBase {\n /**\n * Instanciates a new instance of the SetTask class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the SetTask.\n */\n constructor(model?: Partial<Specification.SetTask>) {\n super(model);\n const self = this as unknown as Specification.SetTask & object;\n if (isObject(model)) {\n if (typeof model.input === 'object') self.input = new _Input(model.input);\n if (typeof model.output === 'object') self.output = new _Output(model.output);\n if (typeof model.export === 'object') self.export = new _Export(model.export);\n if (typeof model.timeout === 'object') self.timeout = new _TaskTimeout(model.timeout);\n if (typeof model.metadata === 'object') self.metadata = new _TaskMetadata(model.metadata);\n }\n getLifecycleHooks('SetTask')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the SetTask.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new SetTask(this as any) as SetTaskIntersection;\n validate('SetTask', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the SetTask.\n * Creates a copy of the SetTask, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the SetTask instance.\n */\n normalize(): SetTask & Specification.SetTask {\n const copy = new SetTask(this as any) as SetTaskIntersection;\n return getLifecycleHooks('SetTask')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _SetTask = SetTask as SetTaskConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the SetTaskConfiguration class and type\n */\nexport type SetTaskConfigurationIntersection = SetTaskConfiguration & Specification.SetTaskConfiguration;\n\n/**\n * Represents a constructor for the intersection of the SetTaskConfiguration class and type\n */\nexport interface SetTaskConfigurationConstructor {\n new (model?: Partial<Specification.SetTaskConfiguration>): SetTaskConfigurationIntersection;\n}\n\n/**\n * Represents a SetTaskConfiguration with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class SetTaskConfiguration extends ObjectHydrator<Specification.SetTaskConfiguration> {\n /**\n * Instanciates a new instance of the SetTaskConfiguration class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the SetTaskConfiguration.\n */\n constructor(model?: Partial<Specification.SetTaskConfiguration>) {\n super(model);\n\n getLifecycleHooks('SetTaskConfiguration')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the SetTaskConfiguration.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new SetTaskConfiguration(this as any) as SetTaskConfigurationIntersection;\n validate('SetTaskConfiguration', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the SetTaskConfiguration.\n * Creates a copy of the SetTaskConfiguration, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the SetTaskConfiguration instance.\n */\n normalize(): SetTaskConfiguration & Specification.SetTaskConfiguration {\n const copy = new SetTaskConfiguration(this as any) as SetTaskConfigurationIntersection;\n return getLifecycleHooks('SetTaskConfiguration')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _SetTaskConfiguration = SetTaskConfiguration as SetTaskConfigurationConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { Specification } from '../definitions';\nimport { ArrayHydrator } from '../../hydrator';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the ShellArguments class and type\n */\nexport type ShellArgumentsIntersection = ShellArguments & Specification.ShellArguments;\n\n/**\n * Represents a constructor for the intersection of the ShellArguments class and type\n */\nexport interface ShellArgumentsConstructor {\n new (model?: Array<string> | number): ShellArgumentsIntersection;\n}\n\n/**\n * Represents a collection of string.\n * Inherits from ArrayHydrator to handle array-specific hydration.\n */\nexport class ShellArguments extends ArrayHydrator<string> {\n /**\n * Constructs a new instance of the ShellArguments class.\n *\n * @param model - Optional parameter which can be an array of objects or a number representing the array length.\n */\n constructor(model?: Array<string> | number) {\n super(model);\n if (Array.isArray(model)) {\n if (model?.length) {\n this.splice(0, this.length);\n model.forEach((item) => this.push(item));\n }\n }\n Object.setPrototypeOf(this, Object.create(ShellArguments.prototype));\n getLifecycleHooks('ShellArguments')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the ShellArguments.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new ShellArguments(this);\n validate('ShellArguments', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the ShellArguments.\n * Creates a copy of the ShellArguments, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the ShellArguments instance.\n */\n normalize(): ShellArguments {\n const copy = new ShellArguments(this);\n return getLifecycleHooks('ShellArguments')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _ShellArguments = ShellArguments as unknown as ShellArgumentsConstructor;\n//export const _ShellArguments = ShellArguments; // could be exported directly, but it makes the job of building the index more straightforward as it's consistant with \"object\" classes\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _Input } from './input';\nimport { _Output } from './output';\nimport { _Export } from './export';\nimport { _TaskTimeout } from './task-timeout';\nimport { _TaskMetadata } from './task-metadata';\nimport { _SwitchTaskConfiguration } from './switch-task-configuration';\nimport { _TaskBase } from './task-base';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the SwitchTask class and type\n */\nexport type SwitchTaskIntersection = SwitchTask & Specification.SwitchTask;\n\n/**\n * Represents a constructor for the intersection of the SwitchTask class and type\n */\nexport interface SwitchTaskConstructor {\n new (model?: Partial<Specification.SwitchTask>): SwitchTaskIntersection;\n}\n\n/**\n * Represents a SwitchTask with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class SwitchTask extends _TaskBase {\n /**\n * Instanciates a new instance of the SwitchTask class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the SwitchTask.\n */\n constructor(model?: Partial<Specification.SwitchTask>) {\n super(model);\n const self = this as unknown as Specification.SwitchTask & object;\n if (isObject(model)) {\n if (typeof model.input === 'object') self.input = new _Input(model.input);\n if (typeof model.output === 'object') self.output = new _Output(model.output);\n if (typeof model.export === 'object') self.export = new _Export(model.export);\n if (typeof model.timeout === 'object') self.timeout = new _TaskTimeout(model.timeout);\n if (typeof model.metadata === 'object') self.metadata = new _TaskMetadata(model.metadata);\n if (typeof model.switch === 'object')\n self.switch = new _SwitchTaskConfiguration(model.switch) as unknown as Specification.SwitchTaskConfiguration;\n }\n getLifecycleHooks('SwitchTask')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the SwitchTask.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new SwitchTask(this as any) as SwitchTaskIntersection;\n validate('SwitchTask', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the SwitchTask.\n * Creates a copy of the SwitchTask, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the SwitchTask instance.\n */\n normalize(): SwitchTask & Specification.SwitchTask {\n const copy = new SwitchTask(this as any) as SwitchTaskIntersection;\n return getLifecycleHooks('SwitchTask')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _SwitchTask = SwitchTask as SwitchTaskConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the TaskBaseIf class and type\n */\nexport type TaskBaseIfIntersection = TaskBaseIf & Specification.TaskBaseIf;\n\n/**\n * Represents a constructor for the intersection of the TaskBaseIf class and type\n */\nexport interface TaskBaseIfConstructor {\n new (model?: Partial<Specification.TaskBaseIf>): TaskBaseIfIntersection;\n}\n\n/**\n * Represents a TaskBaseIf with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class TaskBaseIf extends ObjectHydrator<Specification.TaskBaseIf> {\n /**\n * Instanciates a new instance of the TaskBaseIf class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the TaskBaseIf.\n */\n constructor(model?: Partial<Specification.TaskBaseIf>) {\n super(model);\n\n getLifecycleHooks('TaskBaseIf')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the TaskBaseIf.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new TaskBaseIf(this as any) as TaskBaseIfIntersection;\n validate('TaskBaseIf', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the TaskBaseIf.\n * Creates a copy of the TaskBaseIf, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the TaskBaseIf instance.\n */\n normalize(): TaskBaseIf & Specification.TaskBaseIf {\n const copy = new TaskBaseIf(this as any) as TaskBaseIfIntersection;\n return getLifecycleHooks('TaskBaseIf')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _TaskBaseIf = TaskBaseIf as TaskBaseIfConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _Duration } from './duration';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the Timeout class and type\n */\nexport type TimeoutIntersection = Timeout & Specification.Timeout;\n\n/**\n * Represents a constructor for the intersection of the Timeout class and type\n */\nexport interface TimeoutConstructor {\n new (model?: Partial<Specification.Timeout>): TimeoutIntersection;\n}\n\n/**\n * Represents a Timeout with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class Timeout extends ObjectHydrator<Specification.Timeout> {\n /**\n * Instanciates a new instance of the Timeout class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the Timeout.\n */\n constructor(model?: Partial<Specification.Timeout>) {\n super(model);\n const self = this as unknown as Specification.Timeout & object;\n if (isObject(model)) {\n if (typeof model.after === 'object') self.after = new _Duration(model.after);\n }\n getLifecycleHooks('Timeout')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the Timeout.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new Timeout(this as any) as TimeoutIntersection;\n validate('Timeout', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the Timeout.\n * Creates a copy of the Timeout, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the Timeout instance.\n */\n normalize(): Timeout & Specification.Timeout {\n const copy = new Timeout(this as any) as TimeoutIntersection;\n return getLifecycleHooks('Timeout')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _Timeout = Timeout as TimeoutConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _Input } from './input';\nimport { _Output } from './output';\nimport { _Export } from './export';\nimport { _TaskTimeout } from './task-timeout';\nimport { _TaskMetadata } from './task-metadata';\nimport { _TaskList } from './task-list';\nimport { _TryTaskCatch } from './try-task-catch';\nimport { _TaskBase } from './task-base';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the TryTask class and type\n */\nexport type TryTaskIntersection = TryTask & Specification.TryTask;\n\n/**\n * Represents a constructor for the intersection of the TryTask class and type\n */\nexport interface TryTaskConstructor {\n new (model?: Partial<Specification.TryTask>): TryTaskIntersection;\n}\n\n/**\n * Represents a TryTask with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class TryTask extends _TaskBase {\n /**\n * Instanciates a new instance of the TryTask class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the TryTask.\n */\n constructor(model?: Partial<Specification.TryTask>) {\n super(model);\n const self = this as unknown as Specification.TryTask & object;\n if (isObject(model)) {\n if (typeof model.input === 'object') self.input = new _Input(model.input);\n if (typeof model.output === 'object') self.output = new _Output(model.output);\n if (typeof model.export === 'object') self.export = new _Export(model.export);\n if (typeof model.timeout === 'object') self.timeout = new _TaskTimeout(model.timeout);\n if (typeof model.metadata === 'object') self.metadata = new _TaskMetadata(model.metadata);\n if (typeof model.try === 'object') self.try = new _TaskList(model.try);\n if (typeof model.catch === 'object') self.catch = new _TryTaskCatch(model.catch);\n }\n getLifecycleHooks('TryTask')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the TryTask.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new TryTask(this as any) as TryTaskIntersection;\n validate('TryTask', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the TryTask.\n * Creates a copy of the TryTask, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the TryTask instance.\n */\n normalize(): TryTask & Specification.TryTask {\n const copy = new TryTask(this as any) as TryTaskIntersection;\n return getLifecycleHooks('TryTask')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _TryTask = TryTask as TryTaskConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the UriTemplate class and type\n */\nexport type UriTemplateIntersection = UriTemplate & Specification.UriTemplate;\n\n/**\n * Represents a constructor for the intersection of the UriTemplate class and type\n */\nexport interface UriTemplateConstructor {\n new (model?: Partial<Specification.UriTemplate>): UriTemplateIntersection;\n}\n\n/**\n * Represents a UriTemplate with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class UriTemplate extends ObjectHydrator<Specification.UriTemplate> {\n /**\n * Instanciates a new instance of the UriTemplate class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the UriTemplate.\n */\n constructor(model?: Partial<Specification.UriTemplate>) {\n super(model);\n\n getLifecycleHooks('UriTemplate')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the UriTemplate.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new UriTemplate(this as any) as UriTemplateIntersection;\n validate('UriTemplate', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the UriTemplate.\n * Creates a copy of the UriTemplate, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the UriTemplate instance.\n */\n normalize(): UriTemplate & Specification.UriTemplate {\n const copy = new UriTemplate(this as any) as UriTemplateIntersection;\n return getLifecycleHooks('UriTemplate')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _UriTemplate = UriTemplate as UriTemplateConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _AuthenticationPolicy } from './authentication-policy';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the UseAuthentications class and type\n */\nexport type UseAuthenticationsIntersection = UseAuthentications & Specification.UseAuthentications;\n\n/**\n * Represents a constructor for the intersection of the UseAuthentications class and type\n */\nexport interface UseAuthenticationsConstructor {\n new (model?: Partial<Specification.UseAuthentications>): UseAuthenticationsIntersection;\n}\n\n/**\n * Represents a UseAuthentications with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class UseAuthentications extends ObjectHydrator<Specification.UseAuthentications> {\n /**\n * Instanciates a new instance of the UseAuthentications class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the UseAuthentications.\n */\n constructor(model?: Partial<Specification.UseAuthentications>) {\n super(model);\n const self = this as unknown as Specification.UseAuthentications & object;\n if (isObject(model)) {\n const knownProperties: string[] = [];\n Object.entries(model)\n .filter(([key]) => !knownProperties.includes(key))\n .forEach(([key, value]) => {\n self[key] = new _AuthenticationPolicy(value);\n });\n }\n getLifecycleHooks('UseAuthentications')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the UseAuthentications.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new UseAuthentications(this as any) as UseAuthenticationsIntersection;\n validate('UseAuthentications', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the UseAuthentications.\n * Creates a copy of the UseAuthentications, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the UseAuthentications instance.\n */\n normalize(): UseAuthentications & Specification.UseAuthentications {\n const copy = new UseAuthentications(this as any) as UseAuthenticationsIntersection;\n return getLifecycleHooks('UseAuthentications')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _UseAuthentications = UseAuthentications as UseAuthenticationsConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _Error } from './error';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the UseErrors class and type\n */\nexport type UseErrorsIntersection = UseErrors & Specification.UseErrors;\n\n/**\n * Represents a constructor for the intersection of the UseErrors class and type\n */\nexport interface UseErrorsConstructor {\n new (model?: Partial<Specification.UseErrors>): UseErrorsIntersection;\n}\n\n/**\n * Represents a UseErrors with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class UseErrors extends ObjectHydrator<Specification.UseErrors> {\n /**\n * Instanciates a new instance of the UseErrors class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the UseErrors.\n */\n constructor(model?: Partial<Specification.UseErrors>) {\n super(model);\n const self = this as unknown as Specification.UseErrors & object;\n if (isObject(model)) {\n const knownProperties: string[] = [];\n Object.entries(model)\n .filter(([key]) => !knownProperties.includes(key))\n .forEach(([key, value]) => {\n self[key] = new _Error(value);\n });\n }\n getLifecycleHooks('UseErrors')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the UseErrors.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new UseErrors(this as any) as UseErrorsIntersection;\n validate('UseErrors', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the UseErrors.\n * Creates a copy of the UseErrors, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the UseErrors instance.\n */\n normalize(): UseErrors & Specification.UseErrors {\n const copy = new UseErrors(this as any) as UseErrorsIntersection;\n return getLifecycleHooks('UseErrors')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _UseErrors = UseErrors as UseErrorsConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _ExtensionItem } from './extension-item';\nimport { Specification } from '../definitions';\nimport { ArrayHydrator } from '../../hydrator';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the UseExtensions class and type\n */\nexport type UseExtensionsIntersection = UseExtensions & Specification.UseExtensions;\n\n/**\n * Represents a constructor for the intersection of the UseExtensions class and type\n */\nexport interface UseExtensionsConstructor {\n new (model?: Array<Specification.ExtensionItem> | number): UseExtensionsIntersection;\n}\n\n/**\n * Represents a collection of Specification.ExtensionItem.\n * Inherits from ArrayHydrator to handle array-specific hydration.\n */\nexport class UseExtensions extends ArrayHydrator<Specification.ExtensionItem> {\n /**\n * Constructs a new instance of the UseExtensions class.\n *\n * @param model - Optional parameter which can be an array of objects or a number representing the array length.\n */\n constructor(model?: Array<Specification.ExtensionItem> | number) {\n super(model);\n if (Array.isArray(model)) {\n if (model?.length) {\n this.splice(0, this.length);\n model.forEach((item) => this.push(new _ExtensionItem(item)));\n }\n }\n Object.setPrototypeOf(this, Object.create(UseExtensions.prototype));\n getLifecycleHooks('UseExtensions')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the UseExtensions.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new UseExtensions(this);\n validate('UseExtensions', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the UseExtensions.\n * Creates a copy of the UseExtensions, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the UseExtensions instance.\n */\n normalize(): UseExtensions {\n const copy = new UseExtensions(this);\n return getLifecycleHooks('UseExtensions')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _UseExtensions = UseExtensions as unknown as UseExtensionsConstructor;\n//export const _UseExtensions = UseExtensions; // could be exported directly, but it makes the job of building the index more straightforward as it's consistant with \"object\" classes\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _Task } from './task';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the UseFunctions class and type\n */\nexport type UseFunctionsIntersection = UseFunctions & Specification.UseFunctions;\n\n/**\n * Represents a constructor for the intersection of the UseFunctions class and type\n */\nexport interface UseFunctionsConstructor {\n new (model?: Partial<Specification.UseFunctions>): UseFunctionsIntersection;\n}\n\n/**\n * Represents a UseFunctions with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class UseFunctions extends ObjectHydrator<Specification.UseFunctions> {\n /**\n * Instanciates a new instance of the UseFunctions class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the UseFunctions.\n */\n constructor(model?: Partial<Specification.UseFunctions>) {\n super(model);\n const self = this as unknown as Specification.UseFunctions & object;\n if (isObject(model)) {\n const knownProperties: string[] = [];\n Object.entries(model)\n .filter(([key]) => !knownProperties.includes(key))\n .forEach(([key, value]) => {\n self[key] = new _Task(value);\n });\n }\n getLifecycleHooks('UseFunctions')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the UseFunctions.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new UseFunctions(this as any) as UseFunctionsIntersection;\n validate('UseFunctions', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the UseFunctions.\n * Creates a copy of the UseFunctions, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the UseFunctions instance.\n */\n normalize(): UseFunctions & Specification.UseFunctions {\n const copy = new UseFunctions(this as any) as UseFunctionsIntersection;\n return getLifecycleHooks('UseFunctions')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _UseFunctions = UseFunctions as UseFunctionsConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _RetryPolicy } from './retry-policy';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the UseRetries class and type\n */\nexport type UseRetriesIntersection = UseRetries & Specification.UseRetries;\n\n/**\n * Represents a constructor for the intersection of the UseRetries class and type\n */\nexport interface UseRetriesConstructor {\n new (model?: Partial<Specification.UseRetries>): UseRetriesIntersection;\n}\n\n/**\n * Represents a UseRetries with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class UseRetries extends ObjectHydrator<Specification.UseRetries> {\n /**\n * Instanciates a new instance of the UseRetries class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the UseRetries.\n */\n constructor(model?: Partial<Specification.UseRetries>) {\n super(model);\n const self = this as unknown as Specification.UseRetries & object;\n if (isObject(model)) {\n const knownProperties: string[] = [];\n Object.entries(model)\n .filter(([key]) => !knownProperties.includes(key))\n .forEach(([key, value]) => {\n self[key] = new _RetryPolicy(value);\n });\n }\n getLifecycleHooks('UseRetries')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the UseRetries.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new UseRetries(this as any) as UseRetriesIntersection;\n validate('UseRetries', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the UseRetries.\n * Creates a copy of the UseRetries, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the UseRetries instance.\n */\n normalize(): UseRetries & Specification.UseRetries {\n const copy = new UseRetries(this as any) as UseRetriesIntersection;\n return getLifecycleHooks('UseRetries')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _UseRetries = UseRetries as UseRetriesConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _Timeout } from './timeout';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the UseTimeouts class and type\n */\nexport type UseTimeoutsIntersection = UseTimeouts & Specification.UseTimeouts;\n\n/**\n * Represents a constructor for the intersection of the UseTimeouts class and type\n */\nexport interface UseTimeoutsConstructor {\n new (model?: Partial<Specification.UseTimeouts>): UseTimeoutsIntersection;\n}\n\n/**\n * Represents a UseTimeouts with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class UseTimeouts extends ObjectHydrator<Specification.UseTimeouts> {\n /**\n * Instanciates a new instance of the UseTimeouts class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the UseTimeouts.\n */\n constructor(model?: Partial<Specification.UseTimeouts>) {\n super(model);\n const self = this as unknown as Specification.UseTimeouts & object;\n if (isObject(model)) {\n const knownProperties: string[] = [];\n Object.entries(model)\n .filter(([key]) => !knownProperties.includes(key))\n .forEach(([key, value]) => {\n self[key] = new _Timeout(value);\n });\n }\n getLifecycleHooks('UseTimeouts')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the UseTimeouts.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new UseTimeouts(this as any) as UseTimeoutsIntersection;\n validate('UseTimeouts', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the UseTimeouts.\n * Creates a copy of the UseTimeouts, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the UseTimeouts instance.\n */\n normalize(): UseTimeouts & Specification.UseTimeouts {\n const copy = new UseTimeouts(this as any) as UseTimeoutsIntersection;\n return getLifecycleHooks('UseTimeouts')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _UseTimeouts = UseTimeouts as UseTimeoutsConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _Catalog } from './catalog';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the UseCatalogs class and type\n */\nexport type UseCatalogsIntersection = UseCatalogs & Specification.UseCatalogs;\n\n/**\n * Represents a constructor for the intersection of the UseCatalogs class and type\n */\nexport interface UseCatalogsConstructor {\n new (model?: Partial<Specification.UseCatalogs>): UseCatalogsIntersection;\n}\n\n/**\n * Represents a UseCatalogs with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class UseCatalogs extends ObjectHydrator<Specification.UseCatalogs> {\n /**\n * Instanciates a new instance of the UseCatalogs class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the UseCatalogs.\n */\n constructor(model?: Partial<Specification.UseCatalogs>) {\n super(model);\n const self = this as unknown as Specification.UseCatalogs & object;\n if (isObject(model)) {\n const knownProperties: string[] = [];\n Object.entries(model)\n .filter(([key]) => !knownProperties.includes(key))\n .forEach(([key, value]) => {\n self[key] = new _Catalog(value);\n });\n }\n getLifecycleHooks('UseCatalogs')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the UseCatalogs.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new UseCatalogs(this as any) as UseCatalogsIntersection;\n validate('UseCatalogs', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the UseCatalogs.\n * Creates a copy of the UseCatalogs, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the UseCatalogs instance.\n */\n normalize(): UseCatalogs & Specification.UseCatalogs {\n const copy = new UseCatalogs(this as any) as UseCatalogsIntersection;\n return getLifecycleHooks('UseCatalogs')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _UseCatalogs = UseCatalogs as UseCatalogsConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _UseAuthentications } from './use-authentications';\nimport { _UseErrors } from './use-errors';\nimport { _UseExtensions } from './use-extensions';\nimport { _UseFunctions } from './use-functions';\nimport { _UseRetries } from './use-retries';\nimport { _UseTimeouts } from './use-timeouts';\nimport { _UseCatalogs } from './use-catalogs';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the Use class and type\n */\nexport type UseIntersection = Use & Specification.Use;\n\n/**\n * Represents a constructor for the intersection of the Use class and type\n */\nexport interface UseConstructor {\n new (model?: Partial<Specification.Use>): UseIntersection;\n}\n\n/**\n * Represents a Use with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class Use extends ObjectHydrator<Specification.Use> {\n /**\n * Instanciates a new instance of the Use class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the Use.\n */\n constructor(model?: Partial<Specification.Use>) {\n super(model);\n const self = this as unknown as Specification.Use & object;\n if (isObject(model)) {\n if (typeof model.authentications === 'object')\n self.authentications = new _UseAuthentications(model.authentications);\n if (typeof model.errors === 'object') self.errors = new _UseErrors(model.errors);\n if (typeof model.extensions === 'object') self.extensions = new _UseExtensions(model.extensions);\n if (typeof model.functions === 'object') self.functions = new _UseFunctions(model.functions);\n if (typeof model.retries === 'object') self.retries = new _UseRetries(model.retries);\n if (typeof model.timeouts === 'object') self.timeouts = new _UseTimeouts(model.timeouts);\n if (typeof model.catalogs === 'object') self.catalogs = new _UseCatalogs(model.catalogs);\n }\n getLifecycleHooks('Use')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the Use.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new Use(this as any) as UseIntersection;\n validate('Use', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the Use.\n * Creates a copy of the Use, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the Use instance.\n */\n normalize(): Use & Specification.Use {\n const copy = new Use(this as any) as UseIntersection;\n return getLifecycleHooks('Use')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _Use = Use as UseConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { Specification } from '../definitions';\nimport { ArrayHydrator } from '../../hydrator';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the UseSecrets class and type\n */\nexport type UseSecretsIntersection = UseSecrets & Specification.UseSecrets;\n\n/**\n * Represents a constructor for the intersection of the UseSecrets class and type\n */\nexport interface UseSecretsConstructor {\n new (model?: Array<string> | number): UseSecretsIntersection;\n}\n\n/**\n * Represents a collection of string.\n * Inherits from ArrayHydrator to handle array-specific hydration.\n */\nexport class UseSecrets extends ArrayHydrator<string> {\n /**\n * Constructs a new instance of the UseSecrets class.\n *\n * @param model - Optional parameter which can be an array of objects or a number representing the array length.\n */\n constructor(model?: Array<string> | number) {\n super(model);\n if (Array.isArray(model)) {\n if (model?.length) {\n this.splice(0, this.length);\n model.forEach((item) => this.push(item));\n }\n }\n Object.setPrototypeOf(this, Object.create(UseSecrets.prototype));\n getLifecycleHooks('UseSecrets')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the UseSecrets.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new UseSecrets(this);\n validate('UseSecrets', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the UseSecrets.\n * Creates a copy of the UseSecrets, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the UseSecrets instance.\n */\n normalize(): UseSecrets {\n const copy = new UseSecrets(this);\n return getLifecycleHooks('UseSecrets')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _UseSecrets = UseSecrets as unknown as UseSecretsConstructor;\n//export const _UseSecrets = UseSecrets; // could be exported directly, but it makes the job of building the index more straightforward as it's consistant with \"object\" classes\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _Input } from './input';\nimport { _Output } from './output';\nimport { _Export } from './export';\nimport { _TaskTimeout } from './task-timeout';\nimport { _TaskMetadata } from './task-metadata';\nimport { _Duration } from './duration';\nimport { _TaskBase } from './task-base';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the WaitTask class and type\n */\nexport type WaitTaskIntersection = WaitTask & Specification.WaitTask;\n\n/**\n * Represents a constructor for the intersection of the WaitTask class and type\n */\nexport interface WaitTaskConstructor {\n new (model?: Partial<Specification.WaitTask>): WaitTaskIntersection;\n}\n\n/**\n * Represents a WaitTask with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class WaitTask extends _TaskBase {\n /**\n * Instanciates a new instance of the WaitTask class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the WaitTask.\n */\n constructor(model?: Partial<Specification.WaitTask>) {\n super(model);\n const self = this as unknown as Specification.WaitTask & object;\n if (isObject(model)) {\n if (typeof model.input === 'object') self.input = new _Input(model.input);\n if (typeof model.output === 'object') self.output = new _Output(model.output);\n if (typeof model.export === 'object') self.export = new _Export(model.export);\n if (typeof model.timeout === 'object') self.timeout = new _TaskTimeout(model.timeout);\n if (typeof model.metadata === 'object') self.metadata = new _TaskMetadata(model.metadata);\n if (typeof model.wait === 'object') self.wait = new _Duration(model.wait);\n }\n getLifecycleHooks('WaitTask')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the WaitTask.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new WaitTask(this as any) as WaitTaskIntersection;\n validate('WaitTask', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the WaitTask.\n * Creates a copy of the WaitTask, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the WaitTask instance.\n */\n normalize(): WaitTask & Specification.WaitTask {\n const copy = new WaitTask(this as any) as WaitTaskIntersection;\n return getLifecycleHooks('WaitTask')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _WaitTask = WaitTask as WaitTaskConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\n\n/**\n * Represents the intersection between the WithA2AParameters class and type\n */\nexport type WithA2AParametersIntersection = WithA2AParameters & Specification.WithA2AParameters;\n\n/**\n * Represents a constructor for the intersection of the WithA2AParameters class and type\n */\nexport interface WithA2AParametersConstructor {\n new (model?: Partial<Specification.WithA2AParameters>): WithA2AParametersIntersection;\n}\n\n/**\n * Represents a WithA2AParameters with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class WithA2AParameters extends ObjectHydrator<Specification.WithA2AParameters> {\n /**\n * Instanciates a new instance of the WithA2AParameters class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the WithA2AParameters.\n */\n constructor(model?: Partial<Specification.WithA2AParameters>) {\n super(model);\n\n getLifecycleHooks('WithA2AParameters')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the WithA2AParameters.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new WithA2AParameters(this as any) as WithA2AParametersIntersection;\n validate('WithA2AParameters', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the WithA2AParameters.\n * Creates a copy of the WithA2AParameters, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the WithA2AParameters instance.\n */\n normalize(): WithA2AParameters & Specification.WithA2AParameters {\n const copy = new WithA2AParameters(this as any) as WithA2AParametersIntersection;\n return getLifecycleHooks('WithA2AParameters')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _WithA2AParameters = WithA2AParameters as WithA2AParametersConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _Duration } from './duration';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\n\n/**\n * Represents the intersection between the WorkflowTimeout class and type\n */\nexport type WorkflowTimeoutIntersection = WorkflowTimeout & Specification.WorkflowTimeout;\n\n/**\n * Represents a constructor for the intersection of the WorkflowTimeout class and type\n */\nexport interface WorkflowTimeoutConstructor {\n new (model?: Partial<Specification.WorkflowTimeout>): WorkflowTimeoutIntersection;\n}\n\n/**\n * Represents a WorkflowTimeout with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class WorkflowTimeout extends ObjectHydrator<Specification.WorkflowTimeout> {\n /**\n * Instanciates a new instance of the WorkflowTimeout class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the WorkflowTimeout.\n */\n constructor(model?: Partial<Specification.WorkflowTimeout>) {\n super(model);\n const self = this as unknown as Specification.WorkflowTimeout & object;\n if (isObject(model)) {\n if (typeof (model as Specification.Timeout).after === 'object')\n (self as Specification.Timeout).after = new _Duration(\n (model as Specification.Timeout).after as Specification.Duration,\n );\n }\n getLifecycleHooks('WorkflowTimeout')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the WorkflowTimeout.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new WorkflowTimeout(this as any) as WorkflowTimeoutIntersection;\n validate('WorkflowTimeout', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the WorkflowTimeout.\n * Creates a copy of the WorkflowTimeout, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the WorkflowTimeout instance.\n */\n normalize(): WorkflowTimeout & Specification.WorkflowTimeout {\n const copy = new WorkflowTimeout(this as any) as WorkflowTimeoutIntersection;\n return getLifecycleHooks('WorkflowTimeout')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _WorkflowTimeout = WorkflowTimeout as WorkflowTimeoutConstructor;\n","\n/*! js-yaml 4.1.1 https://github.com/nodeca/js-yaml @license MIT */\nfunction isNothing(subject) {\n return (typeof subject === 'undefined') || (subject === null);\n}\n\n\nfunction isObject(subject) {\n return (typeof subject === 'object') && (subject !== null);\n}\n\n\nfunction toArray(sequence) {\n if (Array.isArray(sequence)) return sequence;\n else if (isNothing(sequence)) return [];\n\n return [ sequence ];\n}\n\n\nfunction extend(target, source) {\n var index, length, key, sourceKeys;\n\n if (source) {\n sourceKeys = Object.keys(source);\n\n for (index = 0, length = sourceKeys.length; index < length; index += 1) {\n key = sourceKeys[index];\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\n\nfunction repeat(string, count) {\n var result = '', cycle;\n\n for (cycle = 0; cycle < count; cycle += 1) {\n result += string;\n }\n\n return result;\n}\n\n\nfunction isNegativeZero(number) {\n return (number === 0) && (Number.NEGATIVE_INFINITY === 1 / number);\n}\n\n\nvar isNothing_1 = isNothing;\nvar isObject_1 = isObject;\nvar toArray_1 = toArray;\nvar repeat_1 = repeat;\nvar isNegativeZero_1 = isNegativeZero;\nvar extend_1 = extend;\n\nvar common = {\n\tisNothing: isNothing_1,\n\tisObject: isObject_1,\n\ttoArray: toArray_1,\n\trepeat: repeat_1,\n\tisNegativeZero: isNegativeZero_1,\n\textend: extend_1\n};\n\n// YAML error class. http://stackoverflow.com/questions/8458984\n\n\nfunction formatError(exception, compact) {\n var where = '', message = exception.reason || '(unknown reason)';\n\n if (!exception.mark) return message;\n\n if (exception.mark.name) {\n where += 'in \"' + exception.mark.name + '\" ';\n }\n\n where += '(' + (exception.mark.line + 1) + ':' + (exception.mark.column + 1) + ')';\n\n if (!compact && exception.mark.snippet) {\n where += '\\n\\n' + exception.mark.snippet;\n }\n\n return message + ' ' + where;\n}\n\n\nfunction YAMLException$1(reason, mark) {\n // Super constructor\n Error.call(this);\n\n this.name = 'YAMLException';\n this.reason = reason;\n this.mark = mark;\n this.message = formatError(this, false);\n\n // Include stack trace in error object\n if (Error.captureStackTrace) {\n // Chrome and NodeJS\n Error.captureStackTrace(this, this.constructor);\n } else {\n // FF, IE 10+ and Safari 6+. Fallback for others\n this.stack = (new Error()).stack || '';\n }\n}\n\n\n// Inherit from Error\nYAMLException$1.prototype = Object.create(Error.prototype);\nYAMLException$1.prototype.constructor = YAMLException$1;\n\n\nYAMLException$1.prototype.toString = function toString(compact) {\n return this.name + ': ' + formatError(this, compact);\n};\n\n\nvar exception = YAMLException$1;\n\n// get snippet for a single line, respecting maxLength\nfunction getLine(buffer, lineStart, lineEnd, position, maxLineLength) {\n var head = '';\n var tail = '';\n var maxHalfLength = Math.floor(maxLineLength / 2) - 1;\n\n if (position - lineStart > maxHalfLength) {\n head = ' ... ';\n lineStart = position - maxHalfLength + head.length;\n }\n\n if (lineEnd - position > maxHalfLength) {\n tail = ' ...';\n lineEnd = position + maxHalfLength - tail.length;\n }\n\n return {\n str: head + buffer.slice(lineStart, lineEnd).replace(/\\t/g, '→') + tail,\n pos: position - lineStart + head.length // relative position\n };\n}\n\n\nfunction padStart(string, max) {\n return common.repeat(' ', max - string.length) + string;\n}\n\n\nfunction makeSnippet(mark, options) {\n options = Object.create(options || null);\n\n if (!mark.buffer) return null;\n\n if (!options.maxLength) options.maxLength = 79;\n if (typeof options.indent !== 'number') options.indent = 1;\n if (typeof options.linesBefore !== 'number') options.linesBefore = 3;\n if (typeof options.linesAfter !== 'number') options.linesAfter = 2;\n\n var re = /\\r?\\n|\\r|\\0/g;\n var lineStarts = [ 0 ];\n var lineEnds = [];\n var match;\n var foundLineNo = -1;\n\n while ((match = re.exec(mark.buffer))) {\n lineEnds.push(match.index);\n lineStarts.push(match.index + match[0].length);\n\n if (mark.position <= match.index && foundLineNo < 0) {\n foundLineNo = lineStarts.length - 2;\n }\n }\n\n if (foundLineNo < 0) foundLineNo = lineStarts.length - 1;\n\n var result = '', i, line;\n var lineNoLength = Math.min(mark.line + options.linesAfter, lineEnds.length).toString().length;\n var maxLineLength = options.maxLength - (options.indent + lineNoLength + 3);\n\n for (i = 1; i <= options.linesBefore; i++) {\n if (foundLineNo - i < 0) break;\n line = getLine(\n mark.buffer,\n lineStarts[foundLineNo - i],\n lineEnds[foundLineNo - i],\n mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo - i]),\n maxLineLength\n );\n result = common.repeat(' ', options.indent) + padStart((mark.line - i + 1).toString(), lineNoLength) +\n ' | ' + line.str + '\\n' + result;\n }\n\n line = getLine(mark.buffer, lineStarts[foundLineNo], lineEnds[foundLineNo], mark.position, maxLineLength);\n result += common.repeat(' ', options.indent) + padStart((mark.line + 1).toString(), lineNoLength) +\n ' | ' + line.str + '\\n';\n result += common.repeat('-', options.indent + lineNoLength + 3 + line.pos) + '^' + '\\n';\n\n for (i = 1; i <= options.linesAfter; i++) {\n if (foundLineNo + i >= lineEnds.length) break;\n line = getLine(\n mark.buffer,\n lineStarts[foundLineNo + i],\n lineEnds[foundLineNo + i],\n mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo + i]),\n maxLineLength\n );\n result += common.repeat(' ', options.indent) + padStart((mark.line + i + 1).toString(), lineNoLength) +\n ' | ' + line.str + '\\n';\n }\n\n return result.replace(/\\n$/, '');\n}\n\n\nvar snippet = makeSnippet;\n\nvar TYPE_CONSTRUCTOR_OPTIONS = [\n 'kind',\n 'multi',\n 'resolve',\n 'construct',\n 'instanceOf',\n 'predicate',\n 'represent',\n 'representName',\n 'defaultStyle',\n 'styleAliases'\n];\n\nvar YAML_NODE_KINDS = [\n 'scalar',\n 'sequence',\n 'mapping'\n];\n\nfunction compileStyleAliases(map) {\n var result = {};\n\n if (map !== null) {\n Object.keys(map).forEach(function (style) {\n map[style].forEach(function (alias) {\n result[String(alias)] = style;\n });\n });\n }\n\n return result;\n}\n\nfunction Type$1(tag, options) {\n options = options || {};\n\n Object.keys(options).forEach(function (name) {\n if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) {\n throw new exception('Unknown option \"' + name + '\" is met in definition of \"' + tag + '\" YAML type.');\n }\n });\n\n // TODO: Add tag format check.\n this.options = options; // keep original options in case user wants to extend this type later\n this.tag = tag;\n this.kind = options['kind'] || null;\n this.resolve = options['resolve'] || function () { return true; };\n this.construct = options['construct'] || function (data) { return data; };\n this.instanceOf = options['instanceOf'] || null;\n this.predicate = options['predicate'] || null;\n this.represent = options['represent'] || null;\n this.representName = options['representName'] || null;\n this.defaultStyle = options['defaultStyle'] || null;\n this.multi = options['multi'] || false;\n this.styleAliases = compileStyleAliases(options['styleAliases'] || null);\n\n if (YAML_NODE_KINDS.indexOf(this.kind) === -1) {\n throw new exception('Unknown kind \"' + this.kind + '\" is specified for \"' + tag + '\" YAML type.');\n }\n}\n\nvar type = Type$1;\n\n/*eslint-disable max-len*/\n\n\n\n\n\nfunction compileList(schema, name) {\n var result = [];\n\n schema[name].forEach(function (currentType) {\n var newIndex = result.length;\n\n result.forEach(function (previousType, previousIndex) {\n if (previousType.tag === currentType.tag &&\n previousType.kind === currentType.kind &&\n previousType.multi === currentType.multi) {\n\n newIndex = previousIndex;\n }\n });\n\n result[newIndex] = currentType;\n });\n\n return result;\n}\n\n\nfunction compileMap(/* lists... */) {\n var result = {\n scalar: {},\n sequence: {},\n mapping: {},\n fallback: {},\n multi: {\n scalar: [],\n sequence: [],\n mapping: [],\n fallback: []\n }\n }, index, length;\n\n function collectType(type) {\n if (type.multi) {\n result.multi[type.kind].push(type);\n result.multi['fallback'].push(type);\n } else {\n result[type.kind][type.tag] = result['fallback'][type.tag] = type;\n }\n }\n\n for (index = 0, length = arguments.length; index < length; index += 1) {\n arguments[index].forEach(collectType);\n }\n return result;\n}\n\n\nfunction Schema$1(definition) {\n return this.extend(definition);\n}\n\n\nSchema$1.prototype.extend = function extend(definition) {\n var implicit = [];\n var explicit = [];\n\n if (definition instanceof type) {\n // Schema.extend(type)\n explicit.push(definition);\n\n } else if (Array.isArray(definition)) {\n // Schema.extend([ type1, type2, ... ])\n explicit = explicit.concat(definition);\n\n } else if (definition && (Array.isArray(definition.implicit) || Array.isArray(definition.explicit))) {\n // Schema.extend({ explicit: [ type1, type2, ... ], implicit: [ type1, type2, ... ] })\n if (definition.implicit) implicit = implicit.concat(definition.implicit);\n if (definition.explicit) explicit = explicit.concat(definition.explicit);\n\n } else {\n throw new exception('Schema.extend argument should be a Type, [ Type ], ' +\n 'or a schema definition ({ implicit: [...], explicit: [...] })');\n }\n\n implicit.forEach(function (type$1) {\n if (!(type$1 instanceof type)) {\n throw new exception('Specified list of YAML types (or a single Type object) contains a non-Type object.');\n }\n\n if (type$1.loadKind && type$1.loadKind !== 'scalar') {\n throw new exception('There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.');\n }\n\n if (type$1.multi) {\n throw new exception('There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.');\n }\n });\n\n explicit.forEach(function (type$1) {\n if (!(type$1 instanceof type)) {\n throw new exception('Specified list of YAML types (or a single Type object) contains a non-Type object.');\n }\n });\n\n var result = Object.create(Schema$1.prototype);\n\n result.implicit = (this.implicit || []).concat(implicit);\n result.explicit = (this.explicit || []).concat(explicit);\n\n result.compiledImplicit = compileList(result, 'implicit');\n result.compiledExplicit = compileList(result, 'explicit');\n result.compiledTypeMap = compileMap(result.compiledImplicit, result.compiledExplicit);\n\n return result;\n};\n\n\nvar schema = Schema$1;\n\nvar str = new type('tag:yaml.org,2002:str', {\n kind: 'scalar',\n construct: function (data) { return data !== null ? data : ''; }\n});\n\nvar seq = new type('tag:yaml.org,2002:seq', {\n kind: 'sequence',\n construct: function (data) { return data !== null ? data : []; }\n});\n\nvar map = new type('tag:yaml.org,2002:map', {\n kind: 'mapping',\n construct: function (data) { return data !== null ? data : {}; }\n});\n\nvar failsafe = new schema({\n explicit: [\n str,\n seq,\n map\n ]\n});\n\nfunction resolveYamlNull(data) {\n if (data === null) return true;\n\n var max = data.length;\n\n return (max === 1 && data === '~') ||\n (max === 4 && (data === 'null' || data === 'Null' || data === 'NULL'));\n}\n\nfunction constructYamlNull() {\n return null;\n}\n\nfunction isNull(object) {\n return object === null;\n}\n\nvar _null = new type('tag:yaml.org,2002:null', {\n kind: 'scalar',\n resolve: resolveYamlNull,\n construct: constructYamlNull,\n predicate: isNull,\n represent: {\n canonical: function () { return '~'; },\n lowercase: function () { return 'null'; },\n uppercase: function () { return 'NULL'; },\n camelcase: function () { return 'Null'; },\n empty: function () { return ''; }\n },\n defaultStyle: 'lowercase'\n});\n\nfunction resolveYamlBoolean(data) {\n if (data === null) return false;\n\n var max = data.length;\n\n return (max === 4 && (data === 'true' || data === 'True' || data === 'TRUE')) ||\n (max === 5 && (data === 'false' || data === 'False' || data === 'FALSE'));\n}\n\nfunction constructYamlBoolean(data) {\n return data === 'true' ||\n data === 'True' ||\n data === 'TRUE';\n}\n\nfunction isBoolean(object) {\n return Object.prototype.toString.call(object) === '[object Boolean]';\n}\n\nvar bool = new type('tag:yaml.org,2002:bool', {\n kind: 'scalar',\n resolve: resolveYamlBoolean,\n construct: constructYamlBoolean,\n predicate: isBoolean,\n represent: {\n lowercase: function (object) { return object ? 'true' : 'false'; },\n uppercase: function (object) { return object ? 'TRUE' : 'FALSE'; },\n camelcase: function (object) { return object ? 'True' : 'False'; }\n },\n defaultStyle: 'lowercase'\n});\n\nfunction isHexCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) ||\n ((0x41/* A */ <= c) && (c <= 0x46/* F */)) ||\n ((0x61/* a */ <= c) && (c <= 0x66/* f */));\n}\n\nfunction isOctCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x37/* 7 */));\n}\n\nfunction isDecCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */));\n}\n\nfunction resolveYamlInteger(data) {\n if (data === null) return false;\n\n var max = data.length,\n index = 0,\n hasDigits = false,\n ch;\n\n if (!max) return false;\n\n ch = data[index];\n\n // sign\n if (ch === '-' || ch === '+') {\n ch = data[++index];\n }\n\n if (ch === '0') {\n // 0\n if (index + 1 === max) return true;\n ch = data[++index];\n\n // base 2, base 8, base 16\n\n if (ch === 'b') {\n // base 2\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (ch !== '0' && ch !== '1') return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n\n\n if (ch === 'x') {\n // base 16\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isHexCode(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n\n\n if (ch === 'o') {\n // base 8\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isOctCode(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n }\n\n // base 10 (except 0)\n\n // value should not start with `_`;\n if (ch === '_') return false;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isDecCode(data.charCodeAt(index))) {\n return false;\n }\n hasDigits = true;\n }\n\n // Should have digits and should not end with `_`\n if (!hasDigits || ch === '_') return false;\n\n return true;\n}\n\nfunction constructYamlInteger(data) {\n var value = data, sign = 1, ch;\n\n if (value.indexOf('_') !== -1) {\n value = value.replace(/_/g, '');\n }\n\n ch = value[0];\n\n if (ch === '-' || ch === '+') {\n if (ch === '-') sign = -1;\n value = value.slice(1);\n ch = value[0];\n }\n\n if (value === '0') return 0;\n\n if (ch === '0') {\n if (value[1] === 'b') return sign * parseInt(value.slice(2), 2);\n if (value[1] === 'x') return sign * parseInt(value.slice(2), 16);\n if (value[1] === 'o') return sign * parseInt(value.slice(2), 8);\n }\n\n return sign * parseInt(value, 10);\n}\n\nfunction isInteger(object) {\n return (Object.prototype.toString.call(object)) === '[object Number]' &&\n (object % 1 === 0 && !common.isNegativeZero(object));\n}\n\nvar int = new type('tag:yaml.org,2002:int', {\n kind: 'scalar',\n resolve: resolveYamlInteger,\n construct: constructYamlInteger,\n predicate: isInteger,\n represent: {\n binary: function (obj) { return obj >= 0 ? '0b' + obj.toString(2) : '-0b' + obj.toString(2).slice(1); },\n octal: function (obj) { return obj >= 0 ? '0o' + obj.toString(8) : '-0o' + obj.toString(8).slice(1); },\n decimal: function (obj) { return obj.toString(10); },\n /* eslint-disable max-len */\n hexadecimal: function (obj) { return obj >= 0 ? '0x' + obj.toString(16).toUpperCase() : '-0x' + obj.toString(16).toUpperCase().slice(1); }\n },\n defaultStyle: 'decimal',\n styleAliases: {\n binary: [ 2, 'bin' ],\n octal: [ 8, 'oct' ],\n decimal: [ 10, 'dec' ],\n hexadecimal: [ 16, 'hex' ]\n }\n});\n\nvar YAML_FLOAT_PATTERN = new RegExp(\n // 2.5e4, 2.5 and integers\n '^(?:[-+]?(?:[0-9][0-9_]*)(?:\\\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?' +\n // .2e4, .2\n // special case, seems not from spec\n '|\\\\.[0-9_]+(?:[eE][-+]?[0-9]+)?' +\n // .inf\n '|[-+]?\\\\.(?:inf|Inf|INF)' +\n // .nan\n '|\\\\.(?:nan|NaN|NAN))$');\n\nfunction resolveYamlFloat(data) {\n if (data === null) return false;\n\n if (!YAML_FLOAT_PATTERN.test(data) ||\n // Quick hack to not allow integers end with `_`\n // Probably should update regexp & check speed\n data[data.length - 1] === '_') {\n return false;\n }\n\n return true;\n}\n\nfunction constructYamlFloat(data) {\n var value, sign;\n\n value = data.replace(/_/g, '').toLowerCase();\n sign = value[0] === '-' ? -1 : 1;\n\n if ('+-'.indexOf(value[0]) >= 0) {\n value = value.slice(1);\n }\n\n if (value === '.inf') {\n return (sign === 1) ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY;\n\n } else if (value === '.nan') {\n return NaN;\n }\n return sign * parseFloat(value, 10);\n}\n\n\nvar SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/;\n\nfunction representYamlFloat(object, style) {\n var res;\n\n if (isNaN(object)) {\n switch (style) {\n case 'lowercase': return '.nan';\n case 'uppercase': return '.NAN';\n case 'camelcase': return '.NaN';\n }\n } else if (Number.POSITIVE_INFINITY === object) {\n switch (style) {\n case 'lowercase': return '.inf';\n case 'uppercase': return '.INF';\n case 'camelcase': return '.Inf';\n }\n } else if (Number.NEGATIVE_INFINITY === object) {\n switch (style) {\n case 'lowercase': return '-.inf';\n case 'uppercase': return '-.INF';\n case 'camelcase': return '-.Inf';\n }\n } else if (common.isNegativeZero(object)) {\n return '-0.0';\n }\n\n res = object.toString(10);\n\n // JS stringifier can build scientific format without dots: 5e-100,\n // while YAML requres dot: 5.e-100. Fix it with simple hack\n\n return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace('e', '.e') : res;\n}\n\nfunction isFloat(object) {\n return (Object.prototype.toString.call(object) === '[object Number]') &&\n (object % 1 !== 0 || common.isNegativeZero(object));\n}\n\nvar float = new type('tag:yaml.org,2002:float', {\n kind: 'scalar',\n resolve: resolveYamlFloat,\n construct: constructYamlFloat,\n predicate: isFloat,\n represent: representYamlFloat,\n defaultStyle: 'lowercase'\n});\n\nvar json = failsafe.extend({\n implicit: [\n _null,\n bool,\n int,\n float\n ]\n});\n\nvar core = json;\n\nvar YAML_DATE_REGEXP = new RegExp(\n '^([0-9][0-9][0-9][0-9])' + // [1] year\n '-([0-9][0-9])' + // [2] month\n '-([0-9][0-9])$'); // [3] day\n\nvar YAML_TIMESTAMP_REGEXP = new RegExp(\n '^([0-9][0-9][0-9][0-9])' + // [1] year\n '-([0-9][0-9]?)' + // [2] month\n '-([0-9][0-9]?)' + // [3] day\n '(?:[Tt]|[ \\\\t]+)' + // ...\n '([0-9][0-9]?)' + // [4] hour\n ':([0-9][0-9])' + // [5] minute\n ':([0-9][0-9])' + // [6] second\n '(?:\\\\.([0-9]*))?' + // [7] fraction\n '(?:[ \\\\t]*(Z|([-+])([0-9][0-9]?)' + // [8] tz [9] tz_sign [10] tz_hour\n '(?::([0-9][0-9]))?))?$'); // [11] tz_minute\n\nfunction resolveYamlTimestamp(data) {\n if (data === null) return false;\n if (YAML_DATE_REGEXP.exec(data) !== null) return true;\n if (YAML_TIMESTAMP_REGEXP.exec(data) !== null) return true;\n return false;\n}\n\nfunction constructYamlTimestamp(data) {\n var match, year, month, day, hour, minute, second, fraction = 0,\n delta = null, tz_hour, tz_minute, date;\n\n match = YAML_DATE_REGEXP.exec(data);\n if (match === null) match = YAML_TIMESTAMP_REGEXP.exec(data);\n\n if (match === null) throw new Error('Date resolve error');\n\n // match: [1] year [2] month [3] day\n\n year = +(match[1]);\n month = +(match[2]) - 1; // JS month starts with 0\n day = +(match[3]);\n\n if (!match[4]) { // no hour\n return new Date(Date.UTC(year, month, day));\n }\n\n // match: [4] hour [5] minute [6] second [7] fraction\n\n hour = +(match[4]);\n minute = +(match[5]);\n second = +(match[6]);\n\n if (match[7]) {\n fraction = match[7].slice(0, 3);\n while (fraction.length < 3) { // milli-seconds\n fraction += '0';\n }\n fraction = +fraction;\n }\n\n // match: [8] tz [9] tz_sign [10] tz_hour [11] tz_minute\n\n if (match[9]) {\n tz_hour = +(match[10]);\n tz_minute = +(match[11] || 0);\n delta = (tz_hour * 60 + tz_minute) * 60000; // delta in mili-seconds\n if (match[9] === '-') delta = -delta;\n }\n\n date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction));\n\n if (delta) date.setTime(date.getTime() - delta);\n\n return date;\n}\n\nfunction representYamlTimestamp(object /*, style*/) {\n return object.toISOString();\n}\n\nvar timestamp = new type('tag:yaml.org,2002:timestamp', {\n kind: 'scalar',\n resolve: resolveYamlTimestamp,\n construct: constructYamlTimestamp,\n instanceOf: Date,\n represent: representYamlTimestamp\n});\n\nfunction resolveYamlMerge(data) {\n return data === '<<' || data === null;\n}\n\nvar merge = new type('tag:yaml.org,2002:merge', {\n kind: 'scalar',\n resolve: resolveYamlMerge\n});\n\n/*eslint-disable no-bitwise*/\n\n\n\n\n\n// [ 64, 65, 66 ] -> [ padding, CR, LF ]\nvar BASE64_MAP = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\\n\\r';\n\n\nfunction resolveYamlBinary(data) {\n if (data === null) return false;\n\n var code, idx, bitlen = 0, max = data.length, map = BASE64_MAP;\n\n // Convert one by one.\n for (idx = 0; idx < max; idx++) {\n code = map.indexOf(data.charAt(idx));\n\n // Skip CR/LF\n if (code > 64) continue;\n\n // Fail on illegal characters\n if (code < 0) return false;\n\n bitlen += 6;\n }\n\n // If there are any bits left, source was corrupted\n return (bitlen % 8) === 0;\n}\n\nfunction constructYamlBinary(data) {\n var idx, tailbits,\n input = data.replace(/[\\r\\n=]/g, ''), // remove CR/LF & padding to simplify scan\n max = input.length,\n map = BASE64_MAP,\n bits = 0,\n result = [];\n\n // Collect by 6*4 bits (3 bytes)\n\n for (idx = 0; idx < max; idx++) {\n if ((idx % 4 === 0) && idx) {\n result.push((bits >> 16) & 0xFF);\n result.push((bits >> 8) & 0xFF);\n result.push(bits & 0xFF);\n }\n\n bits = (bits << 6) | map.indexOf(input.charAt(idx));\n }\n\n // Dump tail\n\n tailbits = (max % 4) * 6;\n\n if (tailbits === 0) {\n result.push((bits >> 16) & 0xFF);\n result.push((bits >> 8) & 0xFF);\n result.push(bits & 0xFF);\n } else if (tailbits === 18) {\n result.push((bits >> 10) & 0xFF);\n result.push((bits >> 2) & 0xFF);\n } else if (tailbits === 12) {\n result.push((bits >> 4) & 0xFF);\n }\n\n return new Uint8Array(result);\n}\n\nfunction representYamlBinary(object /*, style*/) {\n var result = '', bits = 0, idx, tail,\n max = object.length,\n map = BASE64_MAP;\n\n // Convert every three bytes to 4 ASCII characters.\n\n for (idx = 0; idx < max; idx++) {\n if ((idx % 3 === 0) && idx) {\n result += map[(bits >> 18) & 0x3F];\n result += map[(bits >> 12) & 0x3F];\n result += map[(bits >> 6) & 0x3F];\n result += map[bits & 0x3F];\n }\n\n bits = (bits << 8) + object[idx];\n }\n\n // Dump tail\n\n tail = max % 3;\n\n if (tail === 0) {\n result += map[(bits >> 18) & 0x3F];\n result += map[(bits >> 12) & 0x3F];\n result += map[(bits >> 6) & 0x3F];\n result += map[bits & 0x3F];\n } else if (tail === 2) {\n result += map[(bits >> 10) & 0x3F];\n result += map[(bits >> 4) & 0x3F];\n result += map[(bits << 2) & 0x3F];\n result += map[64];\n } else if (tail === 1) {\n result += map[(bits >> 2) & 0x3F];\n result += map[(bits << 4) & 0x3F];\n result += map[64];\n result += map[64];\n }\n\n return result;\n}\n\nfunction isBinary(obj) {\n return Object.prototype.toString.call(obj) === '[object Uint8Array]';\n}\n\nvar binary = new type('tag:yaml.org,2002:binary', {\n kind: 'scalar',\n resolve: resolveYamlBinary,\n construct: constructYamlBinary,\n predicate: isBinary,\n represent: representYamlBinary\n});\n\nvar _hasOwnProperty$3 = Object.prototype.hasOwnProperty;\nvar _toString$2 = Object.prototype.toString;\n\nfunction resolveYamlOmap(data) {\n if (data === null) return true;\n\n var objectKeys = [], index, length, pair, pairKey, pairHasKey,\n object = data;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n pairHasKey = false;\n\n if (_toString$2.call(pair) !== '[object Object]') return false;\n\n for (pairKey in pair) {\n if (_hasOwnProperty$3.call(pair, pairKey)) {\n if (!pairHasKey) pairHasKey = true;\n else return false;\n }\n }\n\n if (!pairHasKey) return false;\n\n if (objectKeys.indexOf(pairKey) === -1) objectKeys.push(pairKey);\n else return false;\n }\n\n return true;\n}\n\nfunction constructYamlOmap(data) {\n return data !== null ? data : [];\n}\n\nvar omap = new type('tag:yaml.org,2002:omap', {\n kind: 'sequence',\n resolve: resolveYamlOmap,\n construct: constructYamlOmap\n});\n\nvar _toString$1 = Object.prototype.toString;\n\nfunction resolveYamlPairs(data) {\n if (data === null) return true;\n\n var index, length, pair, keys, result,\n object = data;\n\n result = new Array(object.length);\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n\n if (_toString$1.call(pair) !== '[object Object]') return false;\n\n keys = Object.keys(pair);\n\n if (keys.length !== 1) return false;\n\n result[index] = [ keys[0], pair[keys[0]] ];\n }\n\n return true;\n}\n\nfunction constructYamlPairs(data) {\n if (data === null) return [];\n\n var index, length, pair, keys, result,\n object = data;\n\n result = new Array(object.length);\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n\n keys = Object.keys(pair);\n\n result[index] = [ keys[0], pair[keys[0]] ];\n }\n\n return result;\n}\n\nvar pairs = new type('tag:yaml.org,2002:pairs', {\n kind: 'sequence',\n resolve: resolveYamlPairs,\n construct: constructYamlPairs\n});\n\nvar _hasOwnProperty$2 = Object.prototype.hasOwnProperty;\n\nfunction resolveYamlSet(data) {\n if (data === null) return true;\n\n var key, object = data;\n\n for (key in object) {\n if (_hasOwnProperty$2.call(object, key)) {\n if (object[key] !== null) return false;\n }\n }\n\n return true;\n}\n\nfunction constructYamlSet(data) {\n return data !== null ? data : {};\n}\n\nvar set = new type('tag:yaml.org,2002:set', {\n kind: 'mapping',\n resolve: resolveYamlSet,\n construct: constructYamlSet\n});\n\nvar _default = core.extend({\n implicit: [\n timestamp,\n merge\n ],\n explicit: [\n binary,\n omap,\n pairs,\n set\n ]\n});\n\n/*eslint-disable max-len,no-use-before-define*/\n\n\n\n\n\n\n\nvar _hasOwnProperty$1 = Object.prototype.hasOwnProperty;\n\n\nvar CONTEXT_FLOW_IN = 1;\nvar CONTEXT_FLOW_OUT = 2;\nvar CONTEXT_BLOCK_IN = 3;\nvar CONTEXT_BLOCK_OUT = 4;\n\n\nvar CHOMPING_CLIP = 1;\nvar CHOMPING_STRIP = 2;\nvar CHOMPING_KEEP = 3;\n\n\nvar PATTERN_NON_PRINTABLE = /[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7F-\\x84\\x86-\\x9F\\uFFFE\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/;\nvar PATTERN_NON_ASCII_LINE_BREAKS = /[\\x85\\u2028\\u2029]/;\nvar PATTERN_FLOW_INDICATORS = /[,\\[\\]\\{\\}]/;\nvar PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\\-]+!)$/i;\nvar PATTERN_TAG_URI = /^(?:!|[^,\\[\\]\\{\\}])(?:%[0-9a-f]{2}|[0-9a-z\\-#;\\/\\?:@&=\\+\\$,_\\.!~\\*'\\(\\)\\[\\]])*$/i;\n\n\nfunction _class(obj) { return Object.prototype.toString.call(obj); }\n\nfunction is_EOL(c) {\n return (c === 0x0A/* LF */) || (c === 0x0D/* CR */);\n}\n\nfunction is_WHITE_SPACE(c) {\n return (c === 0x09/* Tab */) || (c === 0x20/* Space */);\n}\n\nfunction is_WS_OR_EOL(c) {\n return (c === 0x09/* Tab */) ||\n (c === 0x20/* Space */) ||\n (c === 0x0A/* LF */) ||\n (c === 0x0D/* CR */);\n}\n\nfunction is_FLOW_INDICATOR(c) {\n return c === 0x2C/* , */ ||\n c === 0x5B/* [ */ ||\n c === 0x5D/* ] */ ||\n c === 0x7B/* { */ ||\n c === 0x7D/* } */;\n}\n\nfunction fromHexCode(c) {\n var lc;\n\n if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) {\n return c - 0x30;\n }\n\n /*eslint-disable no-bitwise*/\n lc = c | 0x20;\n\n if ((0x61/* a */ <= lc) && (lc <= 0x66/* f */)) {\n return lc - 0x61 + 10;\n }\n\n return -1;\n}\n\nfunction escapedHexLen(c) {\n if (c === 0x78/* x */) { return 2; }\n if (c === 0x75/* u */) { return 4; }\n if (c === 0x55/* U */) { return 8; }\n return 0;\n}\n\nfunction fromDecimalCode(c) {\n if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) {\n return c - 0x30;\n }\n\n return -1;\n}\n\nfunction simpleEscapeSequence(c) {\n /* eslint-disable indent */\n return (c === 0x30/* 0 */) ? '\\x00' :\n (c === 0x61/* a */) ? '\\x07' :\n (c === 0x62/* b */) ? '\\x08' :\n (c === 0x74/* t */) ? '\\x09' :\n (c === 0x09/* Tab */) ? '\\x09' :\n (c === 0x6E/* n */) ? '\\x0A' :\n (c === 0x76/* v */) ? '\\x0B' :\n (c === 0x66/* f */) ? '\\x0C' :\n (c === 0x72/* r */) ? '\\x0D' :\n (c === 0x65/* e */) ? '\\x1B' :\n (c === 0x20/* Space */) ? ' ' :\n (c === 0x22/* \" */) ? '\\x22' :\n (c === 0x2F/* / */) ? '/' :\n (c === 0x5C/* \\ */) ? '\\x5C' :\n (c === 0x4E/* N */) ? '\\x85' :\n (c === 0x5F/* _ */) ? '\\xA0' :\n (c === 0x4C/* L */) ? '\\u2028' :\n (c === 0x50/* P */) ? '\\u2029' : '';\n}\n\nfunction charFromCodepoint(c) {\n if (c <= 0xFFFF) {\n return String.fromCharCode(c);\n }\n // Encode UTF-16 surrogate pair\n // https://en.wikipedia.org/wiki/UTF-16#Code_points_U.2B010000_to_U.2B10FFFF\n return String.fromCharCode(\n ((c - 0x010000) >> 10) + 0xD800,\n ((c - 0x010000) & 0x03FF) + 0xDC00\n );\n}\n\n// set a property of a literal object, while protecting against prototype pollution,\n// see https://github.com/nodeca/js-yaml/issues/164 for more details\nfunction setProperty(object, key, value) {\n // used for this specific key only because Object.defineProperty is slow\n if (key === '__proto__') {\n Object.defineProperty(object, key, {\n configurable: true,\n enumerable: true,\n writable: true,\n value: value\n });\n } else {\n object[key] = value;\n }\n}\n\nvar simpleEscapeCheck = new Array(256); // integer, for fast access\nvar simpleEscapeMap = new Array(256);\nfor (var i = 0; i < 256; i++) {\n simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0;\n simpleEscapeMap[i] = simpleEscapeSequence(i);\n}\n\n\nfunction State$1(input, options) {\n this.input = input;\n\n this.filename = options['filename'] || null;\n this.schema = options['schema'] || _default;\n this.onWarning = options['onWarning'] || null;\n // (Hidden) Remove? makes the loader to expect YAML 1.1 documents\n // if such documents have no explicit %YAML directive\n this.legacy = options['legacy'] || false;\n\n this.json = options['json'] || false;\n this.listener = options['listener'] || null;\n\n this.implicitTypes = this.schema.compiledImplicit;\n this.typeMap = this.schema.compiledTypeMap;\n\n this.length = input.length;\n this.position = 0;\n this.line = 0;\n this.lineStart = 0;\n this.lineIndent = 0;\n\n // position of first leading tab in the current line,\n // used to make sure there are no tabs in the indentation\n this.firstTabInLine = -1;\n\n this.documents = [];\n\n /*\n this.version;\n this.checkLineBreaks;\n this.tagMap;\n this.anchorMap;\n this.tag;\n this.anchor;\n this.kind;\n this.result;*/\n\n}\n\n\nfunction generateError(state, message) {\n var mark = {\n name: state.filename,\n buffer: state.input.slice(0, -1), // omit trailing \\0\n position: state.position,\n line: state.line,\n column: state.position - state.lineStart\n };\n\n mark.snippet = snippet(mark);\n\n return new exception(message, mark);\n}\n\nfunction throwError(state, message) {\n throw generateError(state, message);\n}\n\nfunction throwWarning(state, message) {\n if (state.onWarning) {\n state.onWarning.call(null, generateError(state, message));\n }\n}\n\n\nvar directiveHandlers = {\n\n YAML: function handleYamlDirective(state, name, args) {\n\n var match, major, minor;\n\n if (state.version !== null) {\n throwError(state, 'duplication of %YAML directive');\n }\n\n if (args.length !== 1) {\n throwError(state, 'YAML directive accepts exactly one argument');\n }\n\n match = /^([0-9]+)\\.([0-9]+)$/.exec(args[0]);\n\n if (match === null) {\n throwError(state, 'ill-formed argument of the YAML directive');\n }\n\n major = parseInt(match[1], 10);\n minor = parseInt(match[2], 10);\n\n if (major !== 1) {\n throwError(state, 'unacceptable YAML version of the document');\n }\n\n state.version = args[0];\n state.checkLineBreaks = (minor < 2);\n\n if (minor !== 1 && minor !== 2) {\n throwWarning(state, 'unsupported YAML version of the document');\n }\n },\n\n TAG: function handleTagDirective(state, name, args) {\n\n var handle, prefix;\n\n if (args.length !== 2) {\n throwError(state, 'TAG directive accepts exactly two arguments');\n }\n\n handle = args[0];\n prefix = args[1];\n\n if (!PATTERN_TAG_HANDLE.test(handle)) {\n throwError(state, 'ill-formed tag handle (first argument) of the TAG directive');\n }\n\n if (_hasOwnProperty$1.call(state.tagMap, handle)) {\n throwError(state, 'there is a previously declared suffix for \"' + handle + '\" tag handle');\n }\n\n if (!PATTERN_TAG_URI.test(prefix)) {\n throwError(state, 'ill-formed tag prefix (second argument) of the TAG directive');\n }\n\n try {\n prefix = decodeURIComponent(prefix);\n } catch (err) {\n throwError(state, 'tag prefix is malformed: ' + prefix);\n }\n\n state.tagMap[handle] = prefix;\n }\n};\n\n\nfunction captureSegment(state, start, end, checkJson) {\n var _position, _length, _character, _result;\n\n if (start < end) {\n _result = state.input.slice(start, end);\n\n if (checkJson) {\n for (_position = 0, _length = _result.length; _position < _length; _position += 1) {\n _character = _result.charCodeAt(_position);\n if (!(_character === 0x09 ||\n (0x20 <= _character && _character <= 0x10FFFF))) {\n throwError(state, 'expected valid JSON character');\n }\n }\n } else if (PATTERN_NON_PRINTABLE.test(_result)) {\n throwError(state, 'the stream contains non-printable characters');\n }\n\n state.result += _result;\n }\n}\n\nfunction mergeMappings(state, destination, source, overridableKeys) {\n var sourceKeys, key, index, quantity;\n\n if (!common.isObject(source)) {\n throwError(state, 'cannot merge mappings; the provided source object is unacceptable');\n }\n\n sourceKeys = Object.keys(source);\n\n for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) {\n key = sourceKeys[index];\n\n if (!_hasOwnProperty$1.call(destination, key)) {\n setProperty(destination, key, source[key]);\n overridableKeys[key] = true;\n }\n }\n}\n\nfunction storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode,\n startLine, startLineStart, startPos) {\n\n var index, quantity;\n\n // The output is a plain object here, so keys can only be strings.\n // We need to convert keyNode to a string, but doing so can hang the process\n // (deeply nested arrays that explode exponentially using aliases).\n if (Array.isArray(keyNode)) {\n keyNode = Array.prototype.slice.call(keyNode);\n\n for (index = 0, quantity = keyNode.length; index < quantity; index += 1) {\n if (Array.isArray(keyNode[index])) {\n throwError(state, 'nested arrays are not supported inside keys');\n }\n\n if (typeof keyNode === 'object' && _class(keyNode[index]) === '[object Object]') {\n keyNode[index] = '[object Object]';\n }\n }\n }\n\n // Avoid code execution in load() via toString property\n // (still use its own toString for arrays, timestamps,\n // and whatever user schema extensions happen to have @@toStringTag)\n if (typeof keyNode === 'object' && _class(keyNode) === '[object Object]') {\n keyNode = '[object Object]';\n }\n\n\n keyNode = String(keyNode);\n\n if (_result === null) {\n _result = {};\n }\n\n if (keyTag === 'tag:yaml.org,2002:merge') {\n if (Array.isArray(valueNode)) {\n for (index = 0, quantity = valueNode.length; index < quantity; index += 1) {\n mergeMappings(state, _result, valueNode[index], overridableKeys);\n }\n } else {\n mergeMappings(state, _result, valueNode, overridableKeys);\n }\n } else {\n if (!state.json &&\n !_hasOwnProperty$1.call(overridableKeys, keyNode) &&\n _hasOwnProperty$1.call(_result, keyNode)) {\n state.line = startLine || state.line;\n state.lineStart = startLineStart || state.lineStart;\n state.position = startPos || state.position;\n throwError(state, 'duplicated mapping key');\n }\n\n setProperty(_result, keyNode, valueNode);\n delete overridableKeys[keyNode];\n }\n\n return _result;\n}\n\nfunction readLineBreak(state) {\n var ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x0A/* LF */) {\n state.position++;\n } else if (ch === 0x0D/* CR */) {\n state.position++;\n if (state.input.charCodeAt(state.position) === 0x0A/* LF */) {\n state.position++;\n }\n } else {\n throwError(state, 'a line break is expected');\n }\n\n state.line += 1;\n state.lineStart = state.position;\n state.firstTabInLine = -1;\n}\n\nfunction skipSeparationSpace(state, allowComments, checkIndent) {\n var lineBreaks = 0,\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n if (ch === 0x09/* Tab */ && state.firstTabInLine === -1) {\n state.firstTabInLine = state.position;\n }\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (allowComments && ch === 0x23/* # */) {\n do {\n ch = state.input.charCodeAt(++state.position);\n } while (ch !== 0x0A/* LF */ && ch !== 0x0D/* CR */ && ch !== 0);\n }\n\n if (is_EOL(ch)) {\n readLineBreak(state);\n\n ch = state.input.charCodeAt(state.position);\n lineBreaks++;\n state.lineIndent = 0;\n\n while (ch === 0x20/* Space */) {\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n } else {\n break;\n }\n }\n\n if (checkIndent !== -1 && lineBreaks !== 0 && state.lineIndent < checkIndent) {\n throwWarning(state, 'deficient indentation');\n }\n\n return lineBreaks;\n}\n\nfunction testDocumentSeparator(state) {\n var _position = state.position,\n ch;\n\n ch = state.input.charCodeAt(_position);\n\n // Condition state.position === state.lineStart is tested\n // in parent on each call, for efficiency. No needs to test here again.\n if ((ch === 0x2D/* - */ || ch === 0x2E/* . */) &&\n ch === state.input.charCodeAt(_position + 1) &&\n ch === state.input.charCodeAt(_position + 2)) {\n\n _position += 3;\n\n ch = state.input.charCodeAt(_position);\n\n if (ch === 0 || is_WS_OR_EOL(ch)) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction writeFoldedLines(state, count) {\n if (count === 1) {\n state.result += ' ';\n } else if (count > 1) {\n state.result += common.repeat('\\n', count - 1);\n }\n}\n\n\nfunction readPlainScalar(state, nodeIndent, withinFlowCollection) {\n var preceding,\n following,\n captureStart,\n captureEnd,\n hasPendingContent,\n _line,\n _lineStart,\n _lineIndent,\n _kind = state.kind,\n _result = state.result,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (is_WS_OR_EOL(ch) ||\n is_FLOW_INDICATOR(ch) ||\n ch === 0x23/* # */ ||\n ch === 0x26/* & */ ||\n ch === 0x2A/* * */ ||\n ch === 0x21/* ! */ ||\n ch === 0x7C/* | */ ||\n ch === 0x3E/* > */ ||\n ch === 0x27/* ' */ ||\n ch === 0x22/* \" */ ||\n ch === 0x25/* % */ ||\n ch === 0x40/* @ */ ||\n ch === 0x60/* ` */) {\n return false;\n }\n\n if (ch === 0x3F/* ? */ || ch === 0x2D/* - */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following) ||\n withinFlowCollection && is_FLOW_INDICATOR(following)) {\n return false;\n }\n }\n\n state.kind = 'scalar';\n state.result = '';\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n\n while (ch !== 0) {\n if (ch === 0x3A/* : */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following) ||\n withinFlowCollection && is_FLOW_INDICATOR(following)) {\n break;\n }\n\n } else if (ch === 0x23/* # */) {\n preceding = state.input.charCodeAt(state.position - 1);\n\n if (is_WS_OR_EOL(preceding)) {\n break;\n }\n\n } else if ((state.position === state.lineStart && testDocumentSeparator(state)) ||\n withinFlowCollection && is_FLOW_INDICATOR(ch)) {\n break;\n\n } else if (is_EOL(ch)) {\n _line = state.line;\n _lineStart = state.lineStart;\n _lineIndent = state.lineIndent;\n skipSeparationSpace(state, false, -1);\n\n if (state.lineIndent >= nodeIndent) {\n hasPendingContent = true;\n ch = state.input.charCodeAt(state.position);\n continue;\n } else {\n state.position = captureEnd;\n state.line = _line;\n state.lineStart = _lineStart;\n state.lineIndent = _lineIndent;\n break;\n }\n }\n\n if (hasPendingContent) {\n captureSegment(state, captureStart, captureEnd, false);\n writeFoldedLines(state, state.line - _line);\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n }\n\n if (!is_WHITE_SPACE(ch)) {\n captureEnd = state.position + 1;\n }\n\n ch = state.input.charCodeAt(++state.position);\n }\n\n captureSegment(state, captureStart, captureEnd, false);\n\n if (state.result) {\n return true;\n }\n\n state.kind = _kind;\n state.result = _result;\n return false;\n}\n\nfunction readSingleQuotedScalar(state, nodeIndent) {\n var ch,\n captureStart, captureEnd;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x27/* ' */) {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n state.position++;\n captureStart = captureEnd = state.position;\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n if (ch === 0x27/* ' */) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x27/* ' */) {\n captureStart = state.position;\n state.position++;\n captureEnd = state.position;\n } else {\n return true;\n }\n\n } else if (is_EOL(ch)) {\n captureSegment(state, captureStart, captureEnd, true);\n writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));\n captureStart = captureEnd = state.position;\n\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) {\n throwError(state, 'unexpected end of the document within a single quoted scalar');\n\n } else {\n state.position++;\n captureEnd = state.position;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a single quoted scalar');\n}\n\nfunction readDoubleQuotedScalar(state, nodeIndent) {\n var captureStart,\n captureEnd,\n hexLength,\n hexResult,\n tmp,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x22/* \" */) {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n state.position++;\n captureStart = captureEnd = state.position;\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n if (ch === 0x22/* \" */) {\n captureSegment(state, captureStart, state.position, true);\n state.position++;\n return true;\n\n } else if (ch === 0x5C/* \\ */) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n\n if (is_EOL(ch)) {\n skipSeparationSpace(state, false, nodeIndent);\n\n // TODO: rework to inline fn with no type cast?\n } else if (ch < 256 && simpleEscapeCheck[ch]) {\n state.result += simpleEscapeMap[ch];\n state.position++;\n\n } else if ((tmp = escapedHexLen(ch)) > 0) {\n hexLength = tmp;\n hexResult = 0;\n\n for (; hexLength > 0; hexLength--) {\n ch = state.input.charCodeAt(++state.position);\n\n if ((tmp = fromHexCode(ch)) >= 0) {\n hexResult = (hexResult << 4) + tmp;\n\n } else {\n throwError(state, 'expected hexadecimal character');\n }\n }\n\n state.result += charFromCodepoint(hexResult);\n\n state.position++;\n\n } else {\n throwError(state, 'unknown escape sequence');\n }\n\n captureStart = captureEnd = state.position;\n\n } else if (is_EOL(ch)) {\n captureSegment(state, captureStart, captureEnd, true);\n writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));\n captureStart = captureEnd = state.position;\n\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) {\n throwError(state, 'unexpected end of the document within a double quoted scalar');\n\n } else {\n state.position++;\n captureEnd = state.position;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a double quoted scalar');\n}\n\nfunction readFlowCollection(state, nodeIndent) {\n var readNext = true,\n _line,\n _lineStart,\n _pos,\n _tag = state.tag,\n _result,\n _anchor = state.anchor,\n following,\n terminator,\n isPair,\n isExplicitPair,\n isMapping,\n overridableKeys = Object.create(null),\n keyNode,\n keyTag,\n valueNode,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x5B/* [ */) {\n terminator = 0x5D;/* ] */\n isMapping = false;\n _result = [];\n } else if (ch === 0x7B/* { */) {\n terminator = 0x7D;/* } */\n isMapping = true;\n _result = {};\n } else {\n return false;\n }\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(++state.position);\n\n while (ch !== 0) {\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === terminator) {\n state.position++;\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = isMapping ? 'mapping' : 'sequence';\n state.result = _result;\n return true;\n } else if (!readNext) {\n throwError(state, 'missed comma between flow collection entries');\n } else if (ch === 0x2C/* , */) {\n // \"flow collection entries can never be completely empty\", as per YAML 1.2, section 7.4\n throwError(state, \"expected the node content, but found ','\");\n }\n\n keyTag = keyNode = valueNode = null;\n isPair = isExplicitPair = false;\n\n if (ch === 0x3F/* ? */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following)) {\n isPair = isExplicitPair = true;\n state.position++;\n skipSeparationSpace(state, true, nodeIndent);\n }\n }\n\n _line = state.line; // Save the current line.\n _lineStart = state.lineStart;\n _pos = state.position;\n composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n keyTag = state.tag;\n keyNode = state.result;\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if ((isExplicitPair || state.line === _line) && ch === 0x3A/* : */) {\n isPair = true;\n ch = state.input.charCodeAt(++state.position);\n skipSeparationSpace(state, true, nodeIndent);\n composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n valueNode = state.result;\n }\n\n if (isMapping) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos);\n } else if (isPair) {\n _result.push(storeMappingPair(state, null, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos));\n } else {\n _result.push(keyNode);\n }\n\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x2C/* , */) {\n readNext = true;\n ch = state.input.charCodeAt(++state.position);\n } else {\n readNext = false;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a flow collection');\n}\n\nfunction readBlockScalar(state, nodeIndent) {\n var captureStart,\n folding,\n chomping = CHOMPING_CLIP,\n didReadContent = false,\n detectedIndent = false,\n textIndent = nodeIndent,\n emptyLines = 0,\n atMoreIndented = false,\n tmp,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x7C/* | */) {\n folding = false;\n } else if (ch === 0x3E/* > */) {\n folding = true;\n } else {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n\n while (ch !== 0) {\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x2B/* + */ || ch === 0x2D/* - */) {\n if (CHOMPING_CLIP === chomping) {\n chomping = (ch === 0x2B/* + */) ? CHOMPING_KEEP : CHOMPING_STRIP;\n } else {\n throwError(state, 'repeat of a chomping mode identifier');\n }\n\n } else if ((tmp = fromDecimalCode(ch)) >= 0) {\n if (tmp === 0) {\n throwError(state, 'bad explicit indentation width of a block scalar; it cannot be less than one');\n } else if (!detectedIndent) {\n textIndent = nodeIndent + tmp - 1;\n detectedIndent = true;\n } else {\n throwError(state, 'repeat of an indentation width identifier');\n }\n\n } else {\n break;\n }\n }\n\n if (is_WHITE_SPACE(ch)) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (is_WHITE_SPACE(ch));\n\n if (ch === 0x23/* # */) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (!is_EOL(ch) && (ch !== 0));\n }\n }\n\n while (ch !== 0) {\n readLineBreak(state);\n state.lineIndent = 0;\n\n ch = state.input.charCodeAt(state.position);\n\n while ((!detectedIndent || state.lineIndent < textIndent) &&\n (ch === 0x20/* Space */)) {\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (!detectedIndent && state.lineIndent > textIndent) {\n textIndent = state.lineIndent;\n }\n\n if (is_EOL(ch)) {\n emptyLines++;\n continue;\n }\n\n // End of the scalar.\n if (state.lineIndent < textIndent) {\n\n // Perform the chomping.\n if (chomping === CHOMPING_KEEP) {\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n } else if (chomping === CHOMPING_CLIP) {\n if (didReadContent) { // i.e. only if the scalar is not empty.\n state.result += '\\n';\n }\n }\n\n // Break this `while` cycle and go to the funciton's epilogue.\n break;\n }\n\n // Folded style: use fancy rules to handle line breaks.\n if (folding) {\n\n // Lines starting with white space characters (more-indented lines) are not folded.\n if (is_WHITE_SPACE(ch)) {\n atMoreIndented = true;\n // except for the first content line (cf. Example 8.1)\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n\n // End of more-indented block.\n } else if (atMoreIndented) {\n atMoreIndented = false;\n state.result += common.repeat('\\n', emptyLines + 1);\n\n // Just one line break - perceive as the same line.\n } else if (emptyLines === 0) {\n if (didReadContent) { // i.e. only if we have already read some scalar content.\n state.result += ' ';\n }\n\n // Several line breaks - perceive as different lines.\n } else {\n state.result += common.repeat('\\n', emptyLines);\n }\n\n // Literal style: just add exact number of line breaks between content lines.\n } else {\n // Keep all line breaks except the header line break.\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n }\n\n didReadContent = true;\n detectedIndent = true;\n emptyLines = 0;\n captureStart = state.position;\n\n while (!is_EOL(ch) && (ch !== 0)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n captureSegment(state, captureStart, state.position, false);\n }\n\n return true;\n}\n\nfunction readBlockSequence(state, nodeIndent) {\n var _line,\n _tag = state.tag,\n _anchor = state.anchor,\n _result = [],\n following,\n detected = false,\n ch;\n\n // there is a leading tab before this token, so it can't be a block sequence/mapping;\n // it can still be flow sequence/mapping or a scalar\n if (state.firstTabInLine !== -1) return false;\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n if (state.firstTabInLine !== -1) {\n state.position = state.firstTabInLine;\n throwError(state, 'tab characters must not be used in indentation');\n }\n\n if (ch !== 0x2D/* - */) {\n break;\n }\n\n following = state.input.charCodeAt(state.position + 1);\n\n if (!is_WS_OR_EOL(following)) {\n break;\n }\n\n detected = true;\n state.position++;\n\n if (skipSeparationSpace(state, true, -1)) {\n if (state.lineIndent <= nodeIndent) {\n _result.push(null);\n ch = state.input.charCodeAt(state.position);\n continue;\n }\n }\n\n _line = state.line;\n composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true);\n _result.push(state.result);\n skipSeparationSpace(state, true, -1);\n\n ch = state.input.charCodeAt(state.position);\n\n if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) {\n throwError(state, 'bad indentation of a sequence entry');\n } else if (state.lineIndent < nodeIndent) {\n break;\n }\n }\n\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = 'sequence';\n state.result = _result;\n return true;\n }\n return false;\n}\n\nfunction readBlockMapping(state, nodeIndent, flowIndent) {\n var following,\n allowCompact,\n _line,\n _keyLine,\n _keyLineStart,\n _keyPos,\n _tag = state.tag,\n _anchor = state.anchor,\n _result = {},\n overridableKeys = Object.create(null),\n keyTag = null,\n keyNode = null,\n valueNode = null,\n atExplicitKey = false,\n detected = false,\n ch;\n\n // there is a leading tab before this token, so it can't be a block sequence/mapping;\n // it can still be flow sequence/mapping or a scalar\n if (state.firstTabInLine !== -1) return false;\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n if (!atExplicitKey && state.firstTabInLine !== -1) {\n state.position = state.firstTabInLine;\n throwError(state, 'tab characters must not be used in indentation');\n }\n\n following = state.input.charCodeAt(state.position + 1);\n _line = state.line; // Save the current line.\n\n //\n // Explicit notation case. There are two separate blocks:\n // first for the key (denoted by \"?\") and second for the value (denoted by \":\")\n //\n if ((ch === 0x3F/* ? */ || ch === 0x3A/* : */) && is_WS_OR_EOL(following)) {\n\n if (ch === 0x3F/* ? */) {\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n\n detected = true;\n atExplicitKey = true;\n allowCompact = true;\n\n } else if (atExplicitKey) {\n // i.e. 0x3A/* : */ === character after the explicit key.\n atExplicitKey = false;\n allowCompact = true;\n\n } else {\n throwError(state, 'incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line');\n }\n\n state.position += 1;\n ch = following;\n\n //\n // Implicit notation case. Flow-style node as the key first, then \":\", and the value.\n //\n } else {\n _keyLine = state.line;\n _keyLineStart = state.lineStart;\n _keyPos = state.position;\n\n if (!composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) {\n // Neither implicit nor explicit notation.\n // Reading is done. Go to the epilogue.\n break;\n }\n\n if (state.line === _line) {\n ch = state.input.charCodeAt(state.position);\n\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (ch === 0x3A/* : */) {\n ch = state.input.charCodeAt(++state.position);\n\n if (!is_WS_OR_EOL(ch)) {\n throwError(state, 'a whitespace character is expected after the key-value separator within a block mapping');\n }\n\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n\n detected = true;\n atExplicitKey = false;\n allowCompact = false;\n keyTag = state.tag;\n keyNode = state.result;\n\n } else if (detected) {\n throwError(state, 'can not read an implicit mapping pair; a colon is missed');\n\n } else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true; // Keep the result of `composeNode`.\n }\n\n } else if (detected) {\n throwError(state, 'can not read a block mapping entry; a multiline key may not be an implicit key');\n\n } else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true; // Keep the result of `composeNode`.\n }\n }\n\n //\n // Common reading code for both explicit and implicit notations.\n //\n if (state.line === _line || state.lineIndent > nodeIndent) {\n if (atExplicitKey) {\n _keyLine = state.line;\n _keyLineStart = state.lineStart;\n _keyPos = state.position;\n }\n\n if (composeNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) {\n if (atExplicitKey) {\n keyNode = state.result;\n } else {\n valueNode = state.result;\n }\n }\n\n if (!atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n\n skipSeparationSpace(state, true, -1);\n ch = state.input.charCodeAt(state.position);\n }\n\n if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) {\n throwError(state, 'bad indentation of a mapping entry');\n } else if (state.lineIndent < nodeIndent) {\n break;\n }\n }\n\n //\n // Epilogue.\n //\n\n // Special case: last mapping's node contains only the key in explicit notation.\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n }\n\n // Expose the resulting mapping.\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = 'mapping';\n state.result = _result;\n }\n\n return detected;\n}\n\nfunction readTagProperty(state) {\n var _position,\n isVerbatim = false,\n isNamed = false,\n tagHandle,\n tagName,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x21/* ! */) return false;\n\n if (state.tag !== null) {\n throwError(state, 'duplication of a tag property');\n }\n\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x3C/* < */) {\n isVerbatim = true;\n ch = state.input.charCodeAt(++state.position);\n\n } else if (ch === 0x21/* ! */) {\n isNamed = true;\n tagHandle = '!!';\n ch = state.input.charCodeAt(++state.position);\n\n } else {\n tagHandle = '!';\n }\n\n _position = state.position;\n\n if (isVerbatim) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (ch !== 0 && ch !== 0x3E/* > */);\n\n if (state.position < state.length) {\n tagName = state.input.slice(_position, state.position);\n ch = state.input.charCodeAt(++state.position);\n } else {\n throwError(state, 'unexpected end of the stream within a verbatim tag');\n }\n } else {\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n\n if (ch === 0x21/* ! */) {\n if (!isNamed) {\n tagHandle = state.input.slice(_position - 1, state.position + 1);\n\n if (!PATTERN_TAG_HANDLE.test(tagHandle)) {\n throwError(state, 'named tag handle cannot contain such characters');\n }\n\n isNamed = true;\n _position = state.position + 1;\n } else {\n throwError(state, 'tag suffix cannot contain exclamation marks');\n }\n }\n\n ch = state.input.charCodeAt(++state.position);\n }\n\n tagName = state.input.slice(_position, state.position);\n\n if (PATTERN_FLOW_INDICATORS.test(tagName)) {\n throwError(state, 'tag suffix cannot contain flow indicator characters');\n }\n }\n\n if (tagName && !PATTERN_TAG_URI.test(tagName)) {\n throwError(state, 'tag name cannot contain such characters: ' + tagName);\n }\n\n try {\n tagName = decodeURIComponent(tagName);\n } catch (err) {\n throwError(state, 'tag name is malformed: ' + tagName);\n }\n\n if (isVerbatim) {\n state.tag = tagName;\n\n } else if (_hasOwnProperty$1.call(state.tagMap, tagHandle)) {\n state.tag = state.tagMap[tagHandle] + tagName;\n\n } else if (tagHandle === '!') {\n state.tag = '!' + tagName;\n\n } else if (tagHandle === '!!') {\n state.tag = 'tag:yaml.org,2002:' + tagName;\n\n } else {\n throwError(state, 'undeclared tag handle \"' + tagHandle + '\"');\n }\n\n return true;\n}\n\nfunction readAnchorProperty(state) {\n var _position,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x26/* & */) return false;\n\n if (state.anchor !== null) {\n throwError(state, 'duplication of an anchor property');\n }\n\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (state.position === _position) {\n throwError(state, 'name of an anchor node must contain at least one character');\n }\n\n state.anchor = state.input.slice(_position, state.position);\n return true;\n}\n\nfunction readAlias(state) {\n var _position, alias,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x2A/* * */) return false;\n\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (state.position === _position) {\n throwError(state, 'name of an alias node must contain at least one character');\n }\n\n alias = state.input.slice(_position, state.position);\n\n if (!_hasOwnProperty$1.call(state.anchorMap, alias)) {\n throwError(state, 'unidentified alias \"' + alias + '\"');\n }\n\n state.result = state.anchorMap[alias];\n skipSeparationSpace(state, true, -1);\n return true;\n}\n\nfunction composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact) {\n var allowBlockStyles,\n allowBlockScalars,\n allowBlockCollections,\n indentStatus = 1, // 1: this>parent, 0: this=parent, -1: this<parent\n atNewLine = false,\n hasContent = false,\n typeIndex,\n typeQuantity,\n typeList,\n type,\n flowIndent,\n blockIndent;\n\n if (state.listener !== null) {\n state.listener('open', state);\n }\n\n state.tag = null;\n state.anchor = null;\n state.kind = null;\n state.result = null;\n\n allowBlockStyles = allowBlockScalars = allowBlockCollections =\n CONTEXT_BLOCK_OUT === nodeContext ||\n CONTEXT_BLOCK_IN === nodeContext;\n\n if (allowToSeek) {\n if (skipSeparationSpace(state, true, -1)) {\n atNewLine = true;\n\n if (state.lineIndent > parentIndent) {\n indentStatus = 1;\n } else if (state.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (state.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n }\n }\n\n if (indentStatus === 1) {\n while (readTagProperty(state) || readAnchorProperty(state)) {\n if (skipSeparationSpace(state, true, -1)) {\n atNewLine = true;\n allowBlockCollections = allowBlockStyles;\n\n if (state.lineIndent > parentIndent) {\n indentStatus = 1;\n } else if (state.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (state.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n } else {\n allowBlockCollections = false;\n }\n }\n }\n\n if (allowBlockCollections) {\n allowBlockCollections = atNewLine || allowCompact;\n }\n\n if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) {\n if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) {\n flowIndent = parentIndent;\n } else {\n flowIndent = parentIndent + 1;\n }\n\n blockIndent = state.position - state.lineStart;\n\n if (indentStatus === 1) {\n if (allowBlockCollections &&\n (readBlockSequence(state, blockIndent) ||\n readBlockMapping(state, blockIndent, flowIndent)) ||\n readFlowCollection(state, flowIndent)) {\n hasContent = true;\n } else {\n if ((allowBlockScalars && readBlockScalar(state, flowIndent)) ||\n readSingleQuotedScalar(state, flowIndent) ||\n readDoubleQuotedScalar(state, flowIndent)) {\n hasContent = true;\n\n } else if (readAlias(state)) {\n hasContent = true;\n\n if (state.tag !== null || state.anchor !== null) {\n throwError(state, 'alias node should not have any properties');\n }\n\n } else if (readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext)) {\n hasContent = true;\n\n if (state.tag === null) {\n state.tag = '?';\n }\n }\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n }\n } else if (indentStatus === 0) {\n // Special case: block sequences are allowed to have same indentation level as the parent.\n // http://www.yaml.org/spec/1.2/spec.html#id2799784\n hasContent = allowBlockCollections && readBlockSequence(state, blockIndent);\n }\n }\n\n if (state.tag === null) {\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n\n } else if (state.tag === '?') {\n // Implicit resolving is not allowed for non-scalar types, and '?'\n // non-specific tag is only automatically assigned to plain scalars.\n //\n // We only need to check kind conformity in case user explicitly assigns '?'\n // tag, for example like this: \"!<?> [0]\"\n //\n if (state.result !== null && state.kind !== 'scalar') {\n throwError(state, 'unacceptable node kind for !<?> tag; it should be \"scalar\", not \"' + state.kind + '\"');\n }\n\n for (typeIndex = 0, typeQuantity = state.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) {\n type = state.implicitTypes[typeIndex];\n\n if (type.resolve(state.result)) { // `state.result` updated in resolver if matched\n state.result = type.construct(state.result);\n state.tag = type.tag;\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n break;\n }\n }\n } else if (state.tag !== '!') {\n if (_hasOwnProperty$1.call(state.typeMap[state.kind || 'fallback'], state.tag)) {\n type = state.typeMap[state.kind || 'fallback'][state.tag];\n } else {\n // looking for multi type\n type = null;\n typeList = state.typeMap.multi[state.kind || 'fallback'];\n\n for (typeIndex = 0, typeQuantity = typeList.length; typeIndex < typeQuantity; typeIndex += 1) {\n if (state.tag.slice(0, typeList[typeIndex].tag.length) === typeList[typeIndex].tag) {\n type = typeList[typeIndex];\n break;\n }\n }\n }\n\n if (!type) {\n throwError(state, 'unknown tag !<' + state.tag + '>');\n }\n\n if (state.result !== null && type.kind !== state.kind) {\n throwError(state, 'unacceptable node kind for !<' + state.tag + '> tag; it should be \"' + type.kind + '\", not \"' + state.kind + '\"');\n }\n\n if (!type.resolve(state.result, state.tag)) { // `state.result` updated in resolver if matched\n throwError(state, 'cannot resolve a node with !<' + state.tag + '> explicit tag');\n } else {\n state.result = type.construct(state.result, state.tag);\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n }\n }\n\n if (state.listener !== null) {\n state.listener('close', state);\n }\n return state.tag !== null || state.anchor !== null || hasContent;\n}\n\nfunction readDocument(state) {\n var documentStart = state.position,\n _position,\n directiveName,\n directiveArgs,\n hasDirectives = false,\n ch;\n\n state.version = null;\n state.checkLineBreaks = state.legacy;\n state.tagMap = Object.create(null);\n state.anchorMap = Object.create(null);\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n skipSeparationSpace(state, true, -1);\n\n ch = state.input.charCodeAt(state.position);\n\n if (state.lineIndent > 0 || ch !== 0x25/* % */) {\n break;\n }\n\n hasDirectives = true;\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n directiveName = state.input.slice(_position, state.position);\n directiveArgs = [];\n\n if (directiveName.length < 1) {\n throwError(state, 'directive name must not be less than one character in length');\n }\n\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (ch === 0x23/* # */) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (ch !== 0 && !is_EOL(ch));\n break;\n }\n\n if (is_EOL(ch)) break;\n\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n directiveArgs.push(state.input.slice(_position, state.position));\n }\n\n if (ch !== 0) readLineBreak(state);\n\n if (_hasOwnProperty$1.call(directiveHandlers, directiveName)) {\n directiveHandlers[directiveName](state, directiveName, directiveArgs);\n } else {\n throwWarning(state, 'unknown document directive \"' + directiveName + '\"');\n }\n }\n\n skipSeparationSpace(state, true, -1);\n\n if (state.lineIndent === 0 &&\n state.input.charCodeAt(state.position) === 0x2D/* - */ &&\n state.input.charCodeAt(state.position + 1) === 0x2D/* - */ &&\n state.input.charCodeAt(state.position + 2) === 0x2D/* - */) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n\n } else if (hasDirectives) {\n throwError(state, 'directives end mark is expected');\n }\n\n composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true);\n skipSeparationSpace(state, true, -1);\n\n if (state.checkLineBreaks &&\n PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart, state.position))) {\n throwWarning(state, 'non-ASCII line breaks are interpreted as content');\n }\n\n state.documents.push(state.result);\n\n if (state.position === state.lineStart && testDocumentSeparator(state)) {\n\n if (state.input.charCodeAt(state.position) === 0x2E/* . */) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n }\n return;\n }\n\n if (state.position < (state.length - 1)) {\n throwError(state, 'end of the stream or a document separator is expected');\n } else {\n return;\n }\n}\n\n\nfunction loadDocuments(input, options) {\n input = String(input);\n options = options || {};\n\n if (input.length !== 0) {\n\n // Add tailing `\\n` if not exists\n if (input.charCodeAt(input.length - 1) !== 0x0A/* LF */ &&\n input.charCodeAt(input.length - 1) !== 0x0D/* CR */) {\n input += '\\n';\n }\n\n // Strip BOM\n if (input.charCodeAt(0) === 0xFEFF) {\n input = input.slice(1);\n }\n }\n\n var state = new State$1(input, options);\n\n var nullpos = input.indexOf('\\0');\n\n if (nullpos !== -1) {\n state.position = nullpos;\n throwError(state, 'null byte is not allowed in input');\n }\n\n // Use 0 as string terminator. That significantly simplifies bounds check.\n state.input += '\\0';\n\n while (state.input.charCodeAt(state.position) === 0x20/* Space */) {\n state.lineIndent += 1;\n state.position += 1;\n }\n\n while (state.position < (state.length - 1)) {\n readDocument(state);\n }\n\n return state.documents;\n}\n\n\nfunction loadAll$1(input, iterator, options) {\n if (iterator !== null && typeof iterator === 'object' && typeof options === 'undefined') {\n options = iterator;\n iterator = null;\n }\n\n var documents = loadDocuments(input, options);\n\n if (typeof iterator !== 'function') {\n return documents;\n }\n\n for (var index = 0, length = documents.length; index < length; index += 1) {\n iterator(documents[index]);\n }\n}\n\n\nfunction load$1(input, options) {\n var documents = loadDocuments(input, options);\n\n if (documents.length === 0) {\n /*eslint-disable no-undefined*/\n return undefined;\n } else if (documents.length === 1) {\n return documents[0];\n }\n throw new exception('expected a single document in the stream, but found more');\n}\n\n\nvar loadAll_1 = loadAll$1;\nvar load_1 = load$1;\n\nvar loader = {\n\tloadAll: loadAll_1,\n\tload: load_1\n};\n\n/*eslint-disable no-use-before-define*/\n\n\n\n\n\nvar _toString = Object.prototype.toString;\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar CHAR_BOM = 0xFEFF;\nvar CHAR_TAB = 0x09; /* Tab */\nvar CHAR_LINE_FEED = 0x0A; /* LF */\nvar CHAR_CARRIAGE_RETURN = 0x0D; /* CR */\nvar CHAR_SPACE = 0x20; /* Space */\nvar CHAR_EXCLAMATION = 0x21; /* ! */\nvar CHAR_DOUBLE_QUOTE = 0x22; /* \" */\nvar CHAR_SHARP = 0x23; /* # */\nvar CHAR_PERCENT = 0x25; /* % */\nvar CHAR_AMPERSAND = 0x26; /* & */\nvar CHAR_SINGLE_QUOTE = 0x27; /* ' */\nvar CHAR_ASTERISK = 0x2A; /* * */\nvar CHAR_COMMA = 0x2C; /* , */\nvar CHAR_MINUS = 0x2D; /* - */\nvar CHAR_COLON = 0x3A; /* : */\nvar CHAR_EQUALS = 0x3D; /* = */\nvar CHAR_GREATER_THAN = 0x3E; /* > */\nvar CHAR_QUESTION = 0x3F; /* ? */\nvar CHAR_COMMERCIAL_AT = 0x40; /* @ */\nvar CHAR_LEFT_SQUARE_BRACKET = 0x5B; /* [ */\nvar CHAR_RIGHT_SQUARE_BRACKET = 0x5D; /* ] */\nvar CHAR_GRAVE_ACCENT = 0x60; /* ` */\nvar CHAR_LEFT_CURLY_BRACKET = 0x7B; /* { */\nvar CHAR_VERTICAL_LINE = 0x7C; /* | */\nvar CHAR_RIGHT_CURLY_BRACKET = 0x7D; /* } */\n\nvar ESCAPE_SEQUENCES = {};\n\nESCAPE_SEQUENCES[0x00] = '\\\\0';\nESCAPE_SEQUENCES[0x07] = '\\\\a';\nESCAPE_SEQUENCES[0x08] = '\\\\b';\nESCAPE_SEQUENCES[0x09] = '\\\\t';\nESCAPE_SEQUENCES[0x0A] = '\\\\n';\nESCAPE_SEQUENCES[0x0B] = '\\\\v';\nESCAPE_SEQUENCES[0x0C] = '\\\\f';\nESCAPE_SEQUENCES[0x0D] = '\\\\r';\nESCAPE_SEQUENCES[0x1B] = '\\\\e';\nESCAPE_SEQUENCES[0x22] = '\\\\\"';\nESCAPE_SEQUENCES[0x5C] = '\\\\\\\\';\nESCAPE_SEQUENCES[0x85] = '\\\\N';\nESCAPE_SEQUENCES[0xA0] = '\\\\_';\nESCAPE_SEQUENCES[0x2028] = '\\\\L';\nESCAPE_SEQUENCES[0x2029] = '\\\\P';\n\nvar DEPRECATED_BOOLEANS_SYNTAX = [\n 'y', 'Y', 'yes', 'Yes', 'YES', 'on', 'On', 'ON',\n 'n', 'N', 'no', 'No', 'NO', 'off', 'Off', 'OFF'\n];\n\nvar DEPRECATED_BASE60_SYNTAX = /^[-+]?[0-9_]+(?::[0-9_]+)+(?:\\.[0-9_]*)?$/;\n\nfunction compileStyleMap(schema, map) {\n var result, keys, index, length, tag, style, type;\n\n if (map === null) return {};\n\n result = {};\n keys = Object.keys(map);\n\n for (index = 0, length = keys.length; index < length; index += 1) {\n tag = keys[index];\n style = String(map[tag]);\n\n if (tag.slice(0, 2) === '!!') {\n tag = 'tag:yaml.org,2002:' + tag.slice(2);\n }\n type = schema.compiledTypeMap['fallback'][tag];\n\n if (type && _hasOwnProperty.call(type.styleAliases, style)) {\n style = type.styleAliases[style];\n }\n\n result[tag] = style;\n }\n\n return result;\n}\n\nfunction encodeHex(character) {\n var string, handle, length;\n\n string = character.toString(16).toUpperCase();\n\n if (character <= 0xFF) {\n handle = 'x';\n length = 2;\n } else if (character <= 0xFFFF) {\n handle = 'u';\n length = 4;\n } else if (character <= 0xFFFFFFFF) {\n handle = 'U';\n length = 8;\n } else {\n throw new exception('code point within a string may not be greater than 0xFFFFFFFF');\n }\n\n return '\\\\' + handle + common.repeat('0', length - string.length) + string;\n}\n\n\nvar QUOTING_TYPE_SINGLE = 1,\n QUOTING_TYPE_DOUBLE = 2;\n\nfunction State(options) {\n this.schema = options['schema'] || _default;\n this.indent = Math.max(1, (options['indent'] || 2));\n this.noArrayIndent = options['noArrayIndent'] || false;\n this.skipInvalid = options['skipInvalid'] || false;\n this.flowLevel = (common.isNothing(options['flowLevel']) ? -1 : options['flowLevel']);\n this.styleMap = compileStyleMap(this.schema, options['styles'] || null);\n this.sortKeys = options['sortKeys'] || false;\n this.lineWidth = options['lineWidth'] || 80;\n this.noRefs = options['noRefs'] || false;\n this.noCompatMode = options['noCompatMode'] || false;\n this.condenseFlow = options['condenseFlow'] || false;\n this.quotingType = options['quotingType'] === '\"' ? QUOTING_TYPE_DOUBLE : QUOTING_TYPE_SINGLE;\n this.forceQuotes = options['forceQuotes'] || false;\n this.replacer = typeof options['replacer'] === 'function' ? options['replacer'] : null;\n\n this.implicitTypes = this.schema.compiledImplicit;\n this.explicitTypes = this.schema.compiledExplicit;\n\n this.tag = null;\n this.result = '';\n\n this.duplicates = [];\n this.usedDuplicates = null;\n}\n\n// Indents every line in a string. Empty lines (\\n only) are not indented.\nfunction indentString(string, spaces) {\n var ind = common.repeat(' ', spaces),\n position = 0,\n next = -1,\n result = '',\n line,\n length = string.length;\n\n while (position < length) {\n next = string.indexOf('\\n', position);\n if (next === -1) {\n line = string.slice(position);\n position = length;\n } else {\n line = string.slice(position, next + 1);\n position = next + 1;\n }\n\n if (line.length && line !== '\\n') result += ind;\n\n result += line;\n }\n\n return result;\n}\n\nfunction generateNextLine(state, level) {\n return '\\n' + common.repeat(' ', state.indent * level);\n}\n\nfunction testImplicitResolving(state, str) {\n var index, length, type;\n\n for (index = 0, length = state.implicitTypes.length; index < length; index += 1) {\n type = state.implicitTypes[index];\n\n if (type.resolve(str)) {\n return true;\n }\n }\n\n return false;\n}\n\n// [33] s-white ::= s-space | s-tab\nfunction isWhitespace(c) {\n return c === CHAR_SPACE || c === CHAR_TAB;\n}\n\n// Returns true if the character can be printed without escaping.\n// From YAML 1.2: \"any allowed characters known to be non-printable\n// should also be escaped. [However,] This isn’t mandatory\"\n// Derived from nb-char - \\t - #x85 - #xA0 - #x2028 - #x2029.\nfunction isPrintable(c) {\n return (0x00020 <= c && c <= 0x00007E)\n || ((0x000A1 <= c && c <= 0x00D7FF) && c !== 0x2028 && c !== 0x2029)\n || ((0x0E000 <= c && c <= 0x00FFFD) && c !== CHAR_BOM)\n || (0x10000 <= c && c <= 0x10FFFF);\n}\n\n// [34] ns-char ::= nb-char - s-white\n// [27] nb-char ::= c-printable - b-char - c-byte-order-mark\n// [26] b-char ::= b-line-feed | b-carriage-return\n// Including s-white (for some reason, examples doesn't match specs in this aspect)\n// ns-char ::= c-printable - b-line-feed - b-carriage-return - c-byte-order-mark\nfunction isNsCharOrWhitespace(c) {\n return isPrintable(c)\n && c !== CHAR_BOM\n // - b-char\n && c !== CHAR_CARRIAGE_RETURN\n && c !== CHAR_LINE_FEED;\n}\n\n// [127] ns-plain-safe(c) ::= c = flow-out ⇒ ns-plain-safe-out\n// c = flow-in ⇒ ns-plain-safe-in\n// c = block-key ⇒ ns-plain-safe-out\n// c = flow-key ⇒ ns-plain-safe-in\n// [128] ns-plain-safe-out ::= ns-char\n// [129] ns-plain-safe-in ::= ns-char - c-flow-indicator\n// [130] ns-plain-char(c) ::= ( ns-plain-safe(c) - “:” - “#” )\n// | ( /* An ns-char preceding */ “#” )\n// | ( “:” /* Followed by an ns-plain-safe(c) */ )\nfunction isPlainSafe(c, prev, inblock) {\n var cIsNsCharOrWhitespace = isNsCharOrWhitespace(c);\n var cIsNsChar = cIsNsCharOrWhitespace && !isWhitespace(c);\n return (\n // ns-plain-safe\n inblock ? // c = flow-in\n cIsNsCharOrWhitespace\n : cIsNsCharOrWhitespace\n // - c-flow-indicator\n && c !== CHAR_COMMA\n && c !== CHAR_LEFT_SQUARE_BRACKET\n && c !== CHAR_RIGHT_SQUARE_BRACKET\n && c !== CHAR_LEFT_CURLY_BRACKET\n && c !== CHAR_RIGHT_CURLY_BRACKET\n )\n // ns-plain-char\n && c !== CHAR_SHARP // false on '#'\n && !(prev === CHAR_COLON && !cIsNsChar) // false on ': '\n || (isNsCharOrWhitespace(prev) && !isWhitespace(prev) && c === CHAR_SHARP) // change to true on '[^ ]#'\n || (prev === CHAR_COLON && cIsNsChar); // change to true on ':[^ ]'\n}\n\n// Simplified test for values allowed as the first character in plain style.\nfunction isPlainSafeFirst(c) {\n // Uses a subset of ns-char - c-indicator\n // where ns-char = nb-char - s-white.\n // No support of ( ( “?” | “:” | “-” ) /* Followed by an ns-plain-safe(c)) */ ) part\n return isPrintable(c) && c !== CHAR_BOM\n && !isWhitespace(c) // - s-white\n // - (c-indicator ::=\n // “-” | “?” | “:” | “,” | “[” | “]” | “{” | “}”\n && c !== CHAR_MINUS\n && c !== CHAR_QUESTION\n && c !== CHAR_COLON\n && c !== CHAR_COMMA\n && c !== CHAR_LEFT_SQUARE_BRACKET\n && c !== CHAR_RIGHT_SQUARE_BRACKET\n && c !== CHAR_LEFT_CURLY_BRACKET\n && c !== CHAR_RIGHT_CURLY_BRACKET\n // | “#” | “&” | “*” | “!” | “|” | “=” | “>” | “'” | “\"”\n && c !== CHAR_SHARP\n && c !== CHAR_AMPERSAND\n && c !== CHAR_ASTERISK\n && c !== CHAR_EXCLAMATION\n && c !== CHAR_VERTICAL_LINE\n && c !== CHAR_EQUALS\n && c !== CHAR_GREATER_THAN\n && c !== CHAR_SINGLE_QUOTE\n && c !== CHAR_DOUBLE_QUOTE\n // | “%” | “@” | “`”)\n && c !== CHAR_PERCENT\n && c !== CHAR_COMMERCIAL_AT\n && c !== CHAR_GRAVE_ACCENT;\n}\n\n// Simplified test for values allowed as the last character in plain style.\nfunction isPlainSafeLast(c) {\n // just not whitespace or colon, it will be checked to be plain character later\n return !isWhitespace(c) && c !== CHAR_COLON;\n}\n\n// Same as 'string'.codePointAt(pos), but works in older browsers.\nfunction codePointAt(string, pos) {\n var first = string.charCodeAt(pos), second;\n if (first >= 0xD800 && first <= 0xDBFF && pos + 1 < string.length) {\n second = string.charCodeAt(pos + 1);\n if (second >= 0xDC00 && second <= 0xDFFF) {\n // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n return first;\n}\n\n// Determines whether block indentation indicator is required.\nfunction needIndentIndicator(string) {\n var leadingSpaceRe = /^\\n* /;\n return leadingSpaceRe.test(string);\n}\n\nvar STYLE_PLAIN = 1,\n STYLE_SINGLE = 2,\n STYLE_LITERAL = 3,\n STYLE_FOLDED = 4,\n STYLE_DOUBLE = 5;\n\n// Determines which scalar styles are possible and returns the preferred style.\n// lineWidth = -1 => no limit.\n// Pre-conditions: str.length > 0.\n// Post-conditions:\n// STYLE_PLAIN or STYLE_SINGLE => no \\n are in the string.\n// STYLE_LITERAL => no lines are suitable for folding (or lineWidth is -1).\n// STYLE_FOLDED => a line > lineWidth and can be folded (and lineWidth != -1).\nfunction chooseScalarStyle(string, singleLineOnly, indentPerLevel, lineWidth,\n testAmbiguousType, quotingType, forceQuotes, inblock) {\n\n var i;\n var char = 0;\n var prevChar = null;\n var hasLineBreak = false;\n var hasFoldableLine = false; // only checked if shouldTrackWidth\n var shouldTrackWidth = lineWidth !== -1;\n var previousLineBreak = -1; // count the first line correctly\n var plain = isPlainSafeFirst(codePointAt(string, 0))\n && isPlainSafeLast(codePointAt(string, string.length - 1));\n\n if (singleLineOnly || forceQuotes) {\n // Case: no block styles.\n // Check for disallowed characters to rule out plain and single.\n for (i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) {\n char = codePointAt(string, i);\n if (!isPrintable(char)) {\n return STYLE_DOUBLE;\n }\n plain = plain && isPlainSafe(char, prevChar, inblock);\n prevChar = char;\n }\n } else {\n // Case: block styles permitted.\n for (i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) {\n char = codePointAt(string, i);\n if (char === CHAR_LINE_FEED) {\n hasLineBreak = true;\n // Check if any line can be folded.\n if (shouldTrackWidth) {\n hasFoldableLine = hasFoldableLine ||\n // Foldable line = too long, and not more-indented.\n (i - previousLineBreak - 1 > lineWidth &&\n string[previousLineBreak + 1] !== ' ');\n previousLineBreak = i;\n }\n } else if (!isPrintable(char)) {\n return STYLE_DOUBLE;\n }\n plain = plain && isPlainSafe(char, prevChar, inblock);\n prevChar = char;\n }\n // in case the end is missing a \\n\n hasFoldableLine = hasFoldableLine || (shouldTrackWidth &&\n (i - previousLineBreak - 1 > lineWidth &&\n string[previousLineBreak + 1] !== ' '));\n }\n // Although every style can represent \\n without escaping, prefer block styles\n // for multiline, since they're more readable and they don't add empty lines.\n // Also prefer folding a super-long line.\n if (!hasLineBreak && !hasFoldableLine) {\n // Strings interpretable as another type have to be quoted;\n // e.g. the string 'true' vs. the boolean true.\n if (plain && !forceQuotes && !testAmbiguousType(string)) {\n return STYLE_PLAIN;\n }\n return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE;\n }\n // Edge case: block indentation indicator can only have one digit.\n if (indentPerLevel > 9 && needIndentIndicator(string)) {\n return STYLE_DOUBLE;\n }\n // At this point we know block styles are valid.\n // Prefer literal style unless we want to fold.\n if (!forceQuotes) {\n return hasFoldableLine ? STYLE_FOLDED : STYLE_LITERAL;\n }\n return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE;\n}\n\n// Note: line breaking/folding is implemented for only the folded style.\n// NB. We drop the last trailing newline (if any) of a returned block scalar\n// since the dumper adds its own newline. This always works:\n// • No ending newline => unaffected; already using strip \"-\" chomping.\n// • Ending newline => removed then restored.\n// Importantly, this keeps the \"+\" chomp indicator from gaining an extra line.\nfunction writeScalar(state, string, level, iskey, inblock) {\n state.dump = (function () {\n if (string.length === 0) {\n return state.quotingType === QUOTING_TYPE_DOUBLE ? '\"\"' : \"''\";\n }\n if (!state.noCompatMode) {\n if (DEPRECATED_BOOLEANS_SYNTAX.indexOf(string) !== -1 || DEPRECATED_BASE60_SYNTAX.test(string)) {\n return state.quotingType === QUOTING_TYPE_DOUBLE ? ('\"' + string + '\"') : (\"'\" + string + \"'\");\n }\n }\n\n var indent = state.indent * Math.max(1, level); // no 0-indent scalars\n // As indentation gets deeper, let the width decrease monotonically\n // to the lower bound min(state.lineWidth, 40).\n // Note that this implies\n // state.lineWidth ≤ 40 + state.indent: width is fixed at the lower bound.\n // state.lineWidth > 40 + state.indent: width decreases until the lower bound.\n // This behaves better than a constant minimum width which disallows narrower options,\n // or an indent threshold which causes the width to suddenly increase.\n var lineWidth = state.lineWidth === -1\n ? -1 : Math.max(Math.min(state.lineWidth, 40), state.lineWidth - indent);\n\n // Without knowing if keys are implicit/explicit, assume implicit for safety.\n var singleLineOnly = iskey\n // No block styles in flow mode.\n || (state.flowLevel > -1 && level >= state.flowLevel);\n function testAmbiguity(string) {\n return testImplicitResolving(state, string);\n }\n\n switch (chooseScalarStyle(string, singleLineOnly, state.indent, lineWidth,\n testAmbiguity, state.quotingType, state.forceQuotes && !iskey, inblock)) {\n\n case STYLE_PLAIN:\n return string;\n case STYLE_SINGLE:\n return \"'\" + string.replace(/'/g, \"''\") + \"'\";\n case STYLE_LITERAL:\n return '|' + blockHeader(string, state.indent)\n + dropEndingNewline(indentString(string, indent));\n case STYLE_FOLDED:\n return '>' + blockHeader(string, state.indent)\n + dropEndingNewline(indentString(foldString(string, lineWidth), indent));\n case STYLE_DOUBLE:\n return '\"' + escapeString(string) + '\"';\n default:\n throw new exception('impossible error: invalid scalar style');\n }\n }());\n}\n\n// Pre-conditions: string is valid for a block scalar, 1 <= indentPerLevel <= 9.\nfunction blockHeader(string, indentPerLevel) {\n var indentIndicator = needIndentIndicator(string) ? String(indentPerLevel) : '';\n\n // note the special case: the string '\\n' counts as a \"trailing\" empty line.\n var clip = string[string.length - 1] === '\\n';\n var keep = clip && (string[string.length - 2] === '\\n' || string === '\\n');\n var chomp = keep ? '+' : (clip ? '' : '-');\n\n return indentIndicator + chomp + '\\n';\n}\n\n// (See the note for writeScalar.)\nfunction dropEndingNewline(string) {\n return string[string.length - 1] === '\\n' ? string.slice(0, -1) : string;\n}\n\n// Note: a long line without a suitable break point will exceed the width limit.\n// Pre-conditions: every char in str isPrintable, str.length > 0, width > 0.\nfunction foldString(string, width) {\n // In folded style, $k$ consecutive newlines output as $k+1$ newlines—\n // unless they're before or after a more-indented line, or at the very\n // beginning or end, in which case $k$ maps to $k$.\n // Therefore, parse each chunk as newline(s) followed by a content line.\n var lineRe = /(\\n+)([^\\n]*)/g;\n\n // first line (possibly an empty line)\n var result = (function () {\n var nextLF = string.indexOf('\\n');\n nextLF = nextLF !== -1 ? nextLF : string.length;\n lineRe.lastIndex = nextLF;\n return foldLine(string.slice(0, nextLF), width);\n }());\n // If we haven't reached the first content line yet, don't add an extra \\n.\n var prevMoreIndented = string[0] === '\\n' || string[0] === ' ';\n var moreIndented;\n\n // rest of the lines\n var match;\n while ((match = lineRe.exec(string))) {\n var prefix = match[1], line = match[2];\n moreIndented = (line[0] === ' ');\n result += prefix\n + (!prevMoreIndented && !moreIndented && line !== ''\n ? '\\n' : '')\n + foldLine(line, width);\n prevMoreIndented = moreIndented;\n }\n\n return result;\n}\n\n// Greedy line breaking.\n// Picks the longest line under the limit each time,\n// otherwise settles for the shortest line over the limit.\n// NB. More-indented lines *cannot* be folded, as that would add an extra \\n.\nfunction foldLine(line, width) {\n if (line === '' || line[0] === ' ') return line;\n\n // Since a more-indented line adds a \\n, breaks can't be followed by a space.\n var breakRe = / [^ ]/g; // note: the match index will always be <= length-2.\n var match;\n // start is an inclusive index. end, curr, and next are exclusive.\n var start = 0, end, curr = 0, next = 0;\n var result = '';\n\n // Invariants: 0 <= start <= length-1.\n // 0 <= curr <= next <= max(0, length-2). curr - start <= width.\n // Inside the loop:\n // A match implies length >= 2, so curr and next are <= length-2.\n while ((match = breakRe.exec(line))) {\n next = match.index;\n // maintain invariant: curr - start <= width\n if (next - start > width) {\n end = (curr > start) ? curr : next; // derive end <= length-2\n result += '\\n' + line.slice(start, end);\n // skip the space that was output as \\n\n start = end + 1; // derive start <= length-1\n }\n curr = next;\n }\n\n // By the invariants, start <= length-1, so there is something left over.\n // It is either the whole string or a part starting from non-whitespace.\n result += '\\n';\n // Insert a break if the remainder is too long and there is a break available.\n if (line.length - start > width && curr > start) {\n result += line.slice(start, curr) + '\\n' + line.slice(curr + 1);\n } else {\n result += line.slice(start);\n }\n\n return result.slice(1); // drop extra \\n joiner\n}\n\n// Escapes a double-quoted string.\nfunction escapeString(string) {\n var result = '';\n var char = 0;\n var escapeSeq;\n\n for (var i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) {\n char = codePointAt(string, i);\n escapeSeq = ESCAPE_SEQUENCES[char];\n\n if (!escapeSeq && isPrintable(char)) {\n result += string[i];\n if (char >= 0x10000) result += string[i + 1];\n } else {\n result += escapeSeq || encodeHex(char);\n }\n }\n\n return result;\n}\n\nfunction writeFlowSequence(state, level, object) {\n var _result = '',\n _tag = state.tag,\n index,\n length,\n value;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n value = object[index];\n\n if (state.replacer) {\n value = state.replacer.call(object, String(index), value);\n }\n\n // Write only valid elements, put null instead of invalid elements.\n if (writeNode(state, level, value, false, false) ||\n (typeof value === 'undefined' &&\n writeNode(state, level, null, false, false))) {\n\n if (_result !== '') _result += ',' + (!state.condenseFlow ? ' ' : '');\n _result += state.dump;\n }\n }\n\n state.tag = _tag;\n state.dump = '[' + _result + ']';\n}\n\nfunction writeBlockSequence(state, level, object, compact) {\n var _result = '',\n _tag = state.tag,\n index,\n length,\n value;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n value = object[index];\n\n if (state.replacer) {\n value = state.replacer.call(object, String(index), value);\n }\n\n // Write only valid elements, put null instead of invalid elements.\n if (writeNode(state, level + 1, value, true, true, false, true) ||\n (typeof value === 'undefined' &&\n writeNode(state, level + 1, null, true, true, false, true))) {\n\n if (!compact || _result !== '') {\n _result += generateNextLine(state, level);\n }\n\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n _result += '-';\n } else {\n _result += '- ';\n }\n\n _result += state.dump;\n }\n }\n\n state.tag = _tag;\n state.dump = _result || '[]'; // Empty sequence if no valid values.\n}\n\nfunction writeFlowMapping(state, level, object) {\n var _result = '',\n _tag = state.tag,\n objectKeyList = Object.keys(object),\n index,\n length,\n objectKey,\n objectValue,\n pairBuffer;\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n\n pairBuffer = '';\n if (_result !== '') pairBuffer += ', ';\n\n if (state.condenseFlow) pairBuffer += '\"';\n\n objectKey = objectKeyList[index];\n objectValue = object[objectKey];\n\n if (state.replacer) {\n objectValue = state.replacer.call(object, objectKey, objectValue);\n }\n\n if (!writeNode(state, level, objectKey, false, false)) {\n continue; // Skip this pair because of invalid key;\n }\n\n if (state.dump.length > 1024) pairBuffer += '? ';\n\n pairBuffer += state.dump + (state.condenseFlow ? '\"' : '') + ':' + (state.condenseFlow ? '' : ' ');\n\n if (!writeNode(state, level, objectValue, false, false)) {\n continue; // Skip this pair because of invalid value.\n }\n\n pairBuffer += state.dump;\n\n // Both key and value are valid.\n _result += pairBuffer;\n }\n\n state.tag = _tag;\n state.dump = '{' + _result + '}';\n}\n\nfunction writeBlockMapping(state, level, object, compact) {\n var _result = '',\n _tag = state.tag,\n objectKeyList = Object.keys(object),\n index,\n length,\n objectKey,\n objectValue,\n explicitPair,\n pairBuffer;\n\n // Allow sorting keys so that the output file is deterministic\n if (state.sortKeys === true) {\n // Default sorting\n objectKeyList.sort();\n } else if (typeof state.sortKeys === 'function') {\n // Custom sort function\n objectKeyList.sort(state.sortKeys);\n } else if (state.sortKeys) {\n // Something is wrong\n throw new exception('sortKeys must be a boolean or a function');\n }\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n pairBuffer = '';\n\n if (!compact || _result !== '') {\n pairBuffer += generateNextLine(state, level);\n }\n\n objectKey = objectKeyList[index];\n objectValue = object[objectKey];\n\n if (state.replacer) {\n objectValue = state.replacer.call(object, objectKey, objectValue);\n }\n\n if (!writeNode(state, level + 1, objectKey, true, true, true)) {\n continue; // Skip this pair because of invalid key.\n }\n\n explicitPair = (state.tag !== null && state.tag !== '?') ||\n (state.dump && state.dump.length > 1024);\n\n if (explicitPair) {\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n pairBuffer += '?';\n } else {\n pairBuffer += '? ';\n }\n }\n\n pairBuffer += state.dump;\n\n if (explicitPair) {\n pairBuffer += generateNextLine(state, level);\n }\n\n if (!writeNode(state, level + 1, objectValue, true, explicitPair)) {\n continue; // Skip this pair because of invalid value.\n }\n\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n pairBuffer += ':';\n } else {\n pairBuffer += ': ';\n }\n\n pairBuffer += state.dump;\n\n // Both key and value are valid.\n _result += pairBuffer;\n }\n\n state.tag = _tag;\n state.dump = _result || '{}'; // Empty mapping if no valid pairs.\n}\n\nfunction detectType(state, object, explicit) {\n var _result, typeList, index, length, type, style;\n\n typeList = explicit ? state.explicitTypes : state.implicitTypes;\n\n for (index = 0, length = typeList.length; index < length; index += 1) {\n type = typeList[index];\n\n if ((type.instanceOf || type.predicate) &&\n (!type.instanceOf || ((typeof object === 'object') && (object instanceof type.instanceOf))) &&\n (!type.predicate || type.predicate(object))) {\n\n if (explicit) {\n if (type.multi && type.representName) {\n state.tag = type.representName(object);\n } else {\n state.tag = type.tag;\n }\n } else {\n state.tag = '?';\n }\n\n if (type.represent) {\n style = state.styleMap[type.tag] || type.defaultStyle;\n\n if (_toString.call(type.represent) === '[object Function]') {\n _result = type.represent(object, style);\n } else if (_hasOwnProperty.call(type.represent, style)) {\n _result = type.represent[style](object, style);\n } else {\n throw new exception('!<' + type.tag + '> tag resolver accepts not \"' + style + '\" style');\n }\n\n state.dump = _result;\n }\n\n return true;\n }\n }\n\n return false;\n}\n\n// Serializes `object` and writes it to global `result`.\n// Returns true on success, or false on invalid object.\n//\nfunction writeNode(state, level, object, block, compact, iskey, isblockseq) {\n state.tag = null;\n state.dump = object;\n\n if (!detectType(state, object, false)) {\n detectType(state, object, true);\n }\n\n var type = _toString.call(state.dump);\n var inblock = block;\n var tagStr;\n\n if (block) {\n block = (state.flowLevel < 0 || state.flowLevel > level);\n }\n\n var objectOrArray = type === '[object Object]' || type === '[object Array]',\n duplicateIndex,\n duplicate;\n\n if (objectOrArray) {\n duplicateIndex = state.duplicates.indexOf(object);\n duplicate = duplicateIndex !== -1;\n }\n\n if ((state.tag !== null && state.tag !== '?') || duplicate || (state.indent !== 2 && level > 0)) {\n compact = false;\n }\n\n if (duplicate && state.usedDuplicates[duplicateIndex]) {\n state.dump = '*ref_' + duplicateIndex;\n } else {\n if (objectOrArray && duplicate && !state.usedDuplicates[duplicateIndex]) {\n state.usedDuplicates[duplicateIndex] = true;\n }\n if (type === '[object Object]') {\n if (block && (Object.keys(state.dump).length !== 0)) {\n writeBlockMapping(state, level, state.dump, compact);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + state.dump;\n }\n } else {\n writeFlowMapping(state, level, state.dump);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + ' ' + state.dump;\n }\n }\n } else if (type === '[object Array]') {\n if (block && (state.dump.length !== 0)) {\n if (state.noArrayIndent && !isblockseq && level > 0) {\n writeBlockSequence(state, level - 1, state.dump, compact);\n } else {\n writeBlockSequence(state, level, state.dump, compact);\n }\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + state.dump;\n }\n } else {\n writeFlowSequence(state, level, state.dump);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + ' ' + state.dump;\n }\n }\n } else if (type === '[object String]') {\n if (state.tag !== '?') {\n writeScalar(state, state.dump, level, iskey, inblock);\n }\n } else if (type === '[object Undefined]') {\n return false;\n } else {\n if (state.skipInvalid) return false;\n throw new exception('unacceptable kind of an object to dump ' + type);\n }\n\n if (state.tag !== null && state.tag !== '?') {\n // Need to encode all characters except those allowed by the spec:\n //\n // [35] ns-dec-digit ::= [#x30-#x39] /* 0-9 */\n // [36] ns-hex-digit ::= ns-dec-digit\n // | [#x41-#x46] /* A-F */ | [#x61-#x66] /* a-f */\n // [37] ns-ascii-letter ::= [#x41-#x5A] /* A-Z */ | [#x61-#x7A] /* a-z */\n // [38] ns-word-char ::= ns-dec-digit | ns-ascii-letter | “-”\n // [39] ns-uri-char ::= “%” ns-hex-digit ns-hex-digit | ns-word-char | “#”\n // | “;” | “/” | “?” | “:” | “@” | “&” | “=” | “+” | “$” | “,”\n // | “_” | “.” | “!” | “~” | “*” | “'” | “(” | “)” | “[” | “]”\n //\n // Also need to encode '!' because it has special meaning (end of tag prefix).\n //\n tagStr = encodeURI(\n state.tag[0] === '!' ? state.tag.slice(1) : state.tag\n ).replace(/!/g, '%21');\n\n if (state.tag[0] === '!') {\n tagStr = '!' + tagStr;\n } else if (tagStr.slice(0, 18) === 'tag:yaml.org,2002:') {\n tagStr = '!!' + tagStr.slice(18);\n } else {\n tagStr = '!<' + tagStr + '>';\n }\n\n state.dump = tagStr + ' ' + state.dump;\n }\n }\n\n return true;\n}\n\nfunction getDuplicateReferences(object, state) {\n var objects = [],\n duplicatesIndexes = [],\n index,\n length;\n\n inspectNode(object, objects, duplicatesIndexes);\n\n for (index = 0, length = duplicatesIndexes.length; index < length; index += 1) {\n state.duplicates.push(objects[duplicatesIndexes[index]]);\n }\n state.usedDuplicates = new Array(length);\n}\n\nfunction inspectNode(object, objects, duplicatesIndexes) {\n var objectKeyList,\n index,\n length;\n\n if (object !== null && typeof object === 'object') {\n index = objects.indexOf(object);\n if (index !== -1) {\n if (duplicatesIndexes.indexOf(index) === -1) {\n duplicatesIndexes.push(index);\n }\n } else {\n objects.push(object);\n\n if (Array.isArray(object)) {\n for (index = 0, length = object.length; index < length; index += 1) {\n inspectNode(object[index], objects, duplicatesIndexes);\n }\n } else {\n objectKeyList = Object.keys(object);\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n inspectNode(object[objectKeyList[index]], objects, duplicatesIndexes);\n }\n }\n }\n }\n}\n\nfunction dump$1(input, options) {\n options = options || {};\n\n var state = new State(options);\n\n if (!state.noRefs) getDuplicateReferences(input, state);\n\n var value = input;\n\n if (state.replacer) {\n value = state.replacer.call({ '': value }, '', value);\n }\n\n if (writeNode(state, 0, value, true, true)) return state.dump + '\\n';\n\n return '';\n}\n\nvar dump_1 = dump$1;\n\nvar dumper = {\n\tdump: dump_1\n};\n\nfunction renamed(from, to) {\n return function () {\n throw new Error('Function yaml.' + from + ' is removed in js-yaml 4. ' +\n 'Use yaml.' + to + ' instead, which is now safe by default.');\n };\n}\n\n\nvar Type = type;\nvar Schema = schema;\nvar FAILSAFE_SCHEMA = failsafe;\nvar JSON_SCHEMA = json;\nvar CORE_SCHEMA = core;\nvar DEFAULT_SCHEMA = _default;\nvar load = loader.load;\nvar loadAll = loader.loadAll;\nvar dump = dumper.dump;\nvar YAMLException = exception;\n\n// Re-export all types in case user wants to create custom schema\nvar types = {\n binary: binary,\n float: float,\n map: map,\n null: _null,\n pairs: pairs,\n set: set,\n timestamp: timestamp,\n bool: bool,\n int: int,\n merge: merge,\n omap: omap,\n seq: seq,\n str: str\n};\n\n// Removed functions from JS-YAML 3.0.x\nvar safeLoad = renamed('safeLoad', 'load');\nvar safeLoadAll = renamed('safeLoadAll', 'loadAll');\nvar safeDump = renamed('safeDump', 'dump');\n\nvar jsYaml = {\n\tType: Type,\n\tSchema: Schema,\n\tFAILSAFE_SCHEMA: FAILSAFE_SCHEMA,\n\tJSON_SCHEMA: JSON_SCHEMA,\n\tCORE_SCHEMA: CORE_SCHEMA,\n\tDEFAULT_SCHEMA: DEFAULT_SCHEMA,\n\tload: load,\n\tloadAll: loadAll,\n\tdump: dump,\n\tYAMLException: YAMLException,\n\ttypes: types,\n\tsafeLoad: safeLoad,\n\tsafeLoadAll: safeLoadAll,\n\tsafeDump: safeDump\n};\n\nexport { CORE_SCHEMA, DEFAULT_SCHEMA, FAILSAFE_SCHEMA, JSON_SCHEMA, Schema, Type, YAMLException, jsYaml as default, dump, load, loadAll, safeDump, safeLoad, safeLoadAll, types };\n","import {\n CallTask,\n DoTask,\n EmitTask,\n ForkTask,\n ForTask,\n ListenTask,\n RaiseTask,\n RunTask,\n SetTask,\n SwitchTask,\n Task,\n TaskItem,\n TryTask,\n WaitTask,\n Workflow,\n} from './generated/definitions/specification';\n\nconst entrySuffix = '-entry-node';\nconst exitSuffix = '-exit-node';\n\nconst rootId = 'root';\n\nconst doReference = '/do';\nconst forReference = '/for';\nconst catchReference = '/catch';\nconst branchReference = '/fork/branches';\nconst tryReference = '/try';\n\n/**\n * Enumeration of possible node types in a graph.\n */\nexport enum GraphNodeType {\n Root = 'root',\n Start = 'start',\n End = 'end',\n Entry = 'entry',\n Exit = 'exit',\n Call = 'call',\n Catch = 'catch',\n Do = 'do',\n Emit = 'emit',\n For = 'for',\n Fork = 'fork',\n Listen = 'listen',\n Raise = 'raise',\n Run = 'run',\n Set = 'set',\n Switch = 'switch',\n Try = 'try',\n TryCatch = 'try-catch',\n Wait = 'wait',\n}\n\n/**\n * Represents a generic within a graph.\n * This serves as a base type for nodes, edges, and graphs.\n */\nexport type GraphElement = {\n /** A unique identifier for this graph element. */\n id: string;\n /** An optional label to provide additional context or naming. */\n label?: string;\n};\n\n/**\n * Represents a node within the graph.\n */\nexport type GraphNode = GraphElement & {\n /** The type of the node. */\n type: GraphNodeType;\n /** The parent graph, if any. */\n parent?: Graph;\n /** The related task */\n task?: Task;\n};\n\n/**\n * Represents a flattened node within the graph.\n */\nexport type FlatGraphNode = Omit<GraphNode, 'parent'> & {\n /** The id of parent graph, if any. */\n parentId?: string;\n};\n\n/**\n * Represents a directed edge connecting two nodes in the graph.\n */\nexport type GraphEdge = GraphElement & {\n /** The unique identifier of the node where the edge originates. */\n sourceId: string;\n /** The unique identifier of the node where the edge terminates. */\n targetId: string;\n};\n\n/**\n * Represents a graph or a subgraph.\n */\nexport type Graph = GraphNode & {\n /** A collection of nodes that belong to this graph. */\n nodes: Array<Graph | GraphNode>;\n /** A collection of edges that define relationships between nodes. */\n edges: GraphEdge[];\n /** The entry node of the graph, if any. */\n entryNode?: GraphNode;\n /** The exit node of the graph, if any. */\n exitNode?: GraphNode;\n};\n\n/**\n * Represents a flattened graph.\n */\nexport type FlatGraph = FlatGraphNode & {\n /** A collection of nodes that belong to this graph. */\n nodes: FlatGraphNode[];\n /** A collection of edges that define relationships between nodes. */\n edges: GraphEdge[];\n /** The entry node of the graph, if any. */\n entryNode?: GraphNode;\n /** The exit node of the graph, if any. */\n exitNode?: GraphNode;\n};\n\n/**\n * Context information used when processing tasks in a workflow graph.\n */\ntype TaskContext = {\n /** The parent graph the node will be added to. */\n graph: Graph;\n /** The reference of the task list. */\n taskListReference: string;\n /** The list of sibling tasks. */\n taskList: Map<string, Task>;\n /** The current task name. */\n taskName?: string;\n /** The current reference. */\n taskReference: string;\n /** The ids of edges already visited */\n knownEdges: GraphEdge[];\n};\n\n/**\n * Identity information for a transition between tasks.\n */\ntype TransitionInfo = {\n /** Name of the task to transition to. */\n name: string;\n /** Index position in the task list. */\n index: number;\n /** Optional reference to the associated task. */\n task?: Task;\n /** Optional label of the transition. */\n label?: string;\n};\n\n/**\n * Enumeration of possible workflow flow directives.\n */\nenum FlowDirective {\n Exit = 'exit',\n End = 'end',\n Continue = 'continue',\n}\n\n/**\n * Converts an array of TaskItem objects into a Map for easy lookup.\n *\n * @param tasksList An array of TaskItem objects.\n * @returns A map where keys are task names and values are Task objects.\n */\nfunction mapTasks(tasksList: TaskItem[] | undefined): Map<string, Task> {\n return (tasksList || []).reduce((acc, item) => {\n const [key, task] = Object.entries(item)[0];\n acc.set(key, task);\n return acc;\n }, new Map<string, Task>());\n}\n\n/**\n * Initializes a graph with default entry and exit nodes.\n *\n * @param type The type of the graph node.\n * @param id Unique identifier for the graph.\n * @param task The related task\n * @param label Optional label for the graph.\n * @param parent Optional parent graph if this is a subgraph.\n * @returns A newly created Graph instance.\n */\nfunction initGraph(\n type: GraphNodeType,\n id: string = rootId,\n task: Task | undefined = undefined,\n label: string | undefined = undefined,\n parent: Graph | undefined = undefined,\n): Graph {\n const graph: Graph = {\n id,\n label,\n type,\n parent,\n task,\n nodes: [],\n edges: [],\n };\n const entryNode: GraphNode = {\n type: id === rootId ? GraphNodeType.Start : GraphNodeType.Entry,\n id: `${id}${entrySuffix}`,\n parent: graph,\n };\n const exitNode: GraphNode = {\n type: id === rootId ? GraphNodeType.End : GraphNodeType.Exit,\n id: `${id}${exitSuffix}`,\n parent: graph,\n };\n graph.entryNode = entryNode;\n graph.exitNode = exitNode;\n graph.nodes = [entryNode, exitNode];\n if (parent) parent.nodes.push(graph);\n return graph;\n}\n\n/**\n * Gets the next task to be executed in the workflow\n * @param tasksList The list of task to resolve the next task from\n * @param taskName The current task name, if any\n * @param transition A specific transition, if any\n * @returns\n */\nfunction getNextTask(\n tasksList: Map<string, Task>,\n taskName: string | undefined = undefined,\n transition: string | undefined = undefined,\n): TransitionInfo {\n if (!tasksList?.size) {\n return {\n name: FlowDirective.Exit,\n index: -1,\n };\n }\n const currentTask: Task | undefined = tasksList.get(taskName || '');\n transition = transition || currentTask?.then || '';\n if (transition == FlowDirective.End || transition == FlowDirective.Exit) {\n return {\n name: transition,\n index: -1,\n };\n }\n let index: number = 0;\n if (transition && transition != FlowDirective.Continue) {\n index = Array.from(tasksList.keys()).indexOf(transition);\n if (index === -1) throw new Error(`Unable to find task to transition to '${transition}' from '${taskName}'`);\n } else if (currentTask) {\n index = Array.from(tasksList.values()).indexOf(currentTask) + 1;\n if (index >= tasksList.size) {\n return {\n name: FlowDirective.Exit,\n index: -1,\n };\n }\n }\n const taskEntry = Array.from(tasksList.entries())[index];\n return {\n index,\n name: taskEntry[0],\n task: taskEntry[1],\n };\n}\n\n/**\n * Returns the root exit node.\n * @param graph\n * @returns\n */\nfunction getEndNode(graph: Graph): GraphNode {\n let rootGraph = graph;\n while (rootGraph.id !== rootId) {\n if (!rootGraph.parent) throw new Error(`Unable to reach root graph from graph id '${graph.id}'`);\n rootGraph = rootGraph.parent;\n }\n if (!rootGraph.exitNode) throw new Error('The root graph should have an exit node.');\n return rootGraph.exitNode;\n}\n\n/**\n * Builds the provided transition from the source node\n * @param sourceNode The node to build the transition from\n * @param transition The transition to follow\n * @param context The context in which the transition is built\n */\nfunction buildTransition(sourceNode: GraphNode | Graph, transition: TransitionInfo, context: TaskContext) {\n const exitAnchor = (sourceNode as Graph).exitNode || sourceNode;\n if (transition.index != -1) {\n const targetNode = buildTaskNode({\n ...context,\n taskReference: `${context.taskListReference}/${transition.index}/${transition.name}`,\n taskName: transition.name,\n });\n buildEdge(\n context.graph,\n context.knownEdges,\n exitAnchor,\n (targetNode as Graph).entryNode || targetNode,\n transition.label,\n );\n } else if (transition.name === FlowDirective.Exit) {\n if (!context.graph.exitNode) throw new Error(`Missing exit node on graph id '${context.graph.id}'`);\n buildEdge(context.graph, context.knownEdges, exitAnchor, context.graph.exitNode, transition.label);\n } else if (transition.name === FlowDirective.End) {\n buildEdge(context.graph, context.knownEdges, exitAnchor, getEndNode(context.graph), transition.label);\n } else throw new Error('Invalid transition');\n}\n\n/**\n * Builds all the possible transitions from the provided node in the provided context\n * @param sourceNode The node to build the transitions from\n * @param context The context in which the transitions are built\n */\nfunction buildTransitions(sourceNode: GraphNode | Graph, context: TaskContext) {\n const transitions: TransitionInfo[] = [];\n let nextTransition = getNextTask(context.taskList, context.taskName);\n transitions.push(nextTransition);\n while (nextTransition?.task?.if) {\n nextTransition.label = nextTransition?.task?.if;\n nextTransition = getNextTask(context.taskList, nextTransition.name, FlowDirective.Continue);\n transitions.push(nextTransition);\n }\n transitions\n .filter(\n (transition, index) =>\n transitions.findIndex(\n (t) => t.index === transition.index && t.name === transition.name && t.task === transition.task,\n ) === index,\n )\n .forEach((transition) => buildTransition(sourceNode, transition, context));\n}\n\n/**\n * Builds a graph representation of a task\n * @param context The context to build the graph/node for\n * @returns A graph or node for the provided context\n */\nfunction buildTaskNode(context: TaskContext): GraphNode | Graph {\n const existingNode = context.graph.nodes.find((node) => node.id === context.taskReference);\n if (existingNode) return existingNode;\n const task = context.taskList.get(context.taskName!);\n if (!task) throw new Error(`Unabled to find the task '${context.taskName}' in the current context`);\n if (task.call) return buildCallTaskNode(task, context);\n if (task.catch) return buildTryCatchTaskNode(task, context);\n if (task.emit) return buildEmitTaskNode(task, context);\n if (task.for) return buildForTaskNode(task, context);\n if (task.fork) return buildForkTaskNode(task, context);\n if (task.listen) return buildListenTaskNode(task, context);\n if (task.raise) return buildRaiseTaskNode(task, context);\n if (task.run) return buildRunTaskNode(task, context);\n if (task.set) return buildSetTaskNode(task, context);\n if (task.switch) return buildSwitchTaskNode(task, context);\n if (task.wait) return buildWaitTaskNode(task, context);\n if (task.do) return buildDoTaskNode(task, context);\n throw new Error(`Unable to defined task type of task named '${context.taskName}'`);\n}\n\n/**\n * Builds a graph node with the provided type and context\n * @param type The type of the node\n * @param context The context to build the graph node for\n * @returns A graph node for the provided context\n */\nfunction buildGenericTaskNode(task: Task, type: GraphNodeType, context: TaskContext): GraphNode {\n const node: GraphNode = {\n task,\n type,\n parent: context.graph,\n id: context.taskReference,\n label: context.taskName,\n };\n context.graph.nodes.push(node);\n buildTransitions(node, context);\n return node;\n}\n\n/**\n * Builds a graph node for the provided call task\n * @param task The task to build the graph node for\n * @param context The context to build the graph node for\n * @returns A graph node for the provided task\n */\nfunction buildCallTaskNode(task: CallTask, context: TaskContext): GraphNode {\n const node = buildGenericTaskNode(task, GraphNodeType.Call, context);\n return node;\n}\n\n/**\n * Builds a graph for the provided do task\n * @param task The task to build the graph for\n * @param context The context to build the graph for\n * @returns A graph for the provided task\n */\nfunction buildDoTaskNode(task: DoTask, context: TaskContext): Graph {\n const subgraph: Graph = initGraph(GraphNodeType.Do, context.taskReference, task, context.taskName, context.graph);\n const doContext: TaskContext = {\n ...context,\n graph: subgraph,\n taskListReference: context.taskReference + doReference,\n taskList: mapTasks(task.do),\n taskName: undefined,\n };\n if (!subgraph.entryNode) throw new Error(`Missing 'entryNode' on graph id '${subgraph.id}'`);\n buildTransitions(subgraph.entryNode, doContext);\n buildTransitions(subgraph, context);\n return subgraph;\n}\n\n/**\n * Builds a graph node for the provided emit task\n * @param task The task to build the graph node for\n * @param context The context to build the graph node for\n * @returns A graph node for the provided task\n */\nfunction buildEmitTaskNode(task: EmitTask, context: TaskContext): GraphNode {\n const node = buildGenericTaskNode(task, GraphNodeType.Emit, context);\n return node;\n}\n\n/**\n * Builds a graph for the provided for task\n * @param task The task to build the graph for\n * @param context The context to build the graph for\n * @returns A graph for the provided task\n */\nfunction buildForTaskNode(task: ForTask, context: TaskContext): Graph {\n const subgraph: Graph = initGraph(GraphNodeType.For, context.taskReference, task, context.taskName, context.graph);\n const forContext: TaskContext = {\n ...context,\n graph: subgraph,\n taskListReference: subgraph.id + forReference + doReference,\n taskList: mapTasks(task.do),\n taskName: undefined,\n };\n if (!subgraph.entryNode) throw new Error(`Missing 'entryNode' on graph id '${subgraph.id}'`);\n buildTransitions(subgraph.entryNode, forContext);\n buildTransitions(subgraph, context);\n return subgraph;\n}\n\n/**\n * Builds a graph for the provided fork task\n * @param task The task to build the graph for\n * @param context The context to build the graph for\n * @returns A graph for the provided task\n */\nfunction buildForkTaskNode(task: ForkTask, context: TaskContext): Graph {\n const subgraph: Graph = initGraph(GraphNodeType.Fork, context.taskReference, task, context.taskName, context.graph);\n for (let i = 0, c = task.fork?.branches.length || 0; i < c; i++) {\n const branchItem = task.fork?.branches[i];\n if (!branchItem) continue;\n const [branchName] = Object.entries(branchItem)[0];\n const branchContext: TaskContext = {\n ...context,\n graph: subgraph,\n taskListReference: `${context.taskReference}${branchReference}`,\n taskList: mapTasks([branchItem]),\n taskReference: `${context.taskReference}${branchReference}/${i}/${branchName}`,\n taskName: branchName,\n };\n const branchNode = buildTaskNode(branchContext);\n if (!subgraph.entryNode) throw new Error(`Missing 'entryNode' on graph id '${subgraph.id}'`);\n if (!subgraph.exitNode) throw new Error(`Missing 'exitNode' on graph id '${subgraph.id}'`);\n buildEdge(subgraph, context.knownEdges, subgraph.entryNode, (branchNode as Graph).entryNode || branchNode);\n buildEdge(subgraph, context.knownEdges, (branchNode as Graph).exitNode || branchNode, subgraph.exitNode);\n }\n buildTransitions(subgraph, context);\n return subgraph;\n}\n\n/**\n * Builds a graph node for the provided listen task\n * @param task The task to build the graph node for\n * @param context The context to build the graph node for\n * @returns A graph node for the provided task\n */\nfunction buildListenTaskNode(task: ListenTask, context: TaskContext): GraphNode {\n const node = buildGenericTaskNode(task, GraphNodeType.Listen, context);\n return node;\n}\n\n/**\n * Builds a graph node for the provided rasie task\n * @param task The task to build the graph node for\n * @param context The context to build the graph node for\n * @returns A graph node for the provided task\n */\nfunction buildRaiseTaskNode(task: RaiseTask, context: TaskContext): GraphNode {\n const node = buildGenericTaskNode(task, GraphNodeType.Raise, context);\n return node;\n}\n\n/**\n * Builds a graph node for the provided run task\n * @param task The task to build the graph node for\n * @param context The context to build the graph node for\n * @returns A graph node for the provided task\n */\nfunction buildRunTaskNode(task: RunTask, context: TaskContext): GraphNode {\n const node = buildGenericTaskNode(task, GraphNodeType.Run, context);\n return node;\n}\n\n/**\n * Builds a graph node for the provided set task\n * @param task The task to build the graph node for\n * @param context The context to build the graph node for\n * @returns A graph node for the provided task\n */\nfunction buildSetTaskNode(task: SetTask, context: TaskContext): GraphNode {\n const node = buildGenericTaskNode(task, GraphNodeType.Set, context);\n return node;\n}\n\n/**\n * Builds a graph node for the provided switch task\n * @param task The task to build the graph node for\n * @param context The context to build the graph node for\n * @returns A graph node for the provided task\n */\nfunction buildSwitchTaskNode(task: SwitchTask, context: TaskContext): GraphNode {\n const node: GraphNode = buildGenericTaskNode(task, GraphNodeType.Switch, context);\n let hasDefaultCase = false;\n task.switch?.forEach((switchItem) => {\n const [caseName, switchCase] = Object.entries(switchItem)[0];\n if (!switchCase.when) hasDefaultCase = true;\n const transition = getNextTask(context.taskList, context.taskName, switchCase.then);\n transition.label = caseName;\n buildTransition(node, transition, context);\n });\n if (!hasDefaultCase) {\n buildTransitions(node, context);\n }\n return node;\n}\n\n/**\n * Builds a graph for the provided try/catch task\n * @param task The task to build the graph for\n * @param context The context to build the graph for\n * @returns A graph for the provided task\n */\nfunction buildTryCatchTaskNode(task: TryTask, context: TaskContext): Graph {\n const containerSubgraph: Graph = initGraph(\n GraphNodeType.TryCatch,\n context.taskReference,\n task,\n context.taskName,\n context.graph,\n );\n const trySubgraph: Graph = initGraph(\n GraphNodeType.Try,\n context.taskReference + tryReference,\n task,\n context.taskName + ' (try)',\n containerSubgraph,\n );\n if (!containerSubgraph.entryNode) throw new Error(`Missing 'entryNode' on graph id '${containerSubgraph.id}'`);\n if (!trySubgraph.entryNode) throw new Error(`Missing 'entryNode' on graph id '${trySubgraph.id}'`);\n buildEdge(containerSubgraph, context.knownEdges, containerSubgraph.entryNode, trySubgraph.entryNode);\n const tryContext: TaskContext = {\n ...context,\n graph: trySubgraph,\n taskListReference: trySubgraph.id,\n taskList: mapTasks(task.try),\n taskName: undefined,\n };\n if (!trySubgraph.entryNode) throw new Error(`Missing 'entryNode' on graph id '${trySubgraph.id}'`);\n buildTransitions(trySubgraph.entryNode, tryContext);\n if (!task.catch?.do?.length) {\n const catchNode: GraphNode = {\n task,\n type: GraphNodeType.Catch,\n parent: containerSubgraph,\n id: context.taskReference + catchReference,\n label: context.taskName + ' (catch)',\n };\n containerSubgraph.nodes.push(catchNode);\n if (!trySubgraph.exitNode) throw new Error(`Missing 'exitNode' on graph id '${trySubgraph.id}'`);\n if (!containerSubgraph.exitNode) throw new Error(`Missing 'exitNode' on graph id '${containerSubgraph.id}'`);\n buildEdge(containerSubgraph, context.knownEdges, trySubgraph.exitNode, catchNode);\n buildEdge(containerSubgraph, context.knownEdges, catchNode, containerSubgraph.exitNode);\n } else {\n const catchSubgraph: Graph = initGraph(\n GraphNodeType.Catch,\n context.taskReference + catchReference + doReference,\n task,\n context.taskName + ' (catch)',\n containerSubgraph,\n );\n if (!trySubgraph.exitNode) throw new Error(`Missing 'exitNode' on graph id '${trySubgraph.id}'`);\n if (!catchSubgraph.entryNode) throw new Error(`Missing 'entryNode' on graph id '${catchSubgraph.entryNode}'`);\n buildEdge(containerSubgraph, context.knownEdges, trySubgraph.exitNode, catchSubgraph.entryNode);\n const catchContext: TaskContext = {\n ...context,\n graph: catchSubgraph,\n taskListReference: catchSubgraph.id,\n taskList: mapTasks(task.catch.do),\n taskName: undefined,\n };\n buildTransitions(catchSubgraph.entryNode, catchContext);\n if (!catchSubgraph.exitNode) throw new Error(`Missing 'exitNode' on graph id '${catchSubgraph.exitNode}'`);\n if (!containerSubgraph.exitNode) throw new Error(`Missing 'exitNode' on graph id '${containerSubgraph.exitNode}'`);\n buildEdge(containerSubgraph, context.knownEdges, catchSubgraph.exitNode, containerSubgraph.exitNode);\n }\n buildTransitions(containerSubgraph, context);\n return containerSubgraph;\n}\n\n/**\n * Builds a graph node for the provided wait task\n * @param task The task to build the graph node for\n * @param context The context to build the graph node for\n * @returns A graph node for the provided task\n */\nfunction buildWaitTaskNode(task: WaitTask, context: TaskContext): GraphNode {\n const node = buildGenericTaskNode(task, GraphNodeType.Wait, context);\n return node;\n}\n\n/**\n * Builds an edge between two elements\n * @param graph The graph element containing the nodes\n * @param source The origin node\n * @param target The target node\n * @param label The edge label, if any\n */\nfunction buildEdge(graph: Graph, knownEdges: GraphEdge[], source: GraphNode, target: GraphNode, label: string = '') {\n const edge = knownEdges.find((e) => e.sourceId === source.id && e.targetId === target.id);\n if (edge) {\n if (label && !edge.label?.includes(label)) {\n edge.label = edge.label + (edge.label ? ' / ' : '') + label;\n edge.id = `${source.id}-${target.id}-${edge.label}`;\n }\n return edge;\n }\n const newEdge: GraphEdge = {\n label,\n id: `${source.id}-${target.id}${label ? `-${label}` : ''}`,\n sourceId: source.id,\n targetId: target.id,\n };\n graph.edges.push(newEdge);\n knownEdges.push(newEdge);\n return newEdge;\n}\n\n/**\n * Remaps edges by getting rid of routes leading to entry/exit nodes\n * @param edges\n */\nexport const remapEdges = (edges: GraphEdge[]): GraphEdge[] => {\n let remappedEdges = [...edges.map((e) => ({ ...e }))];\n const leadsToPort = (edge: GraphEdge) =>\n edge.targetId !== 'root-exit-node' &&\n (edge.targetId.endsWith('-entry-node') || edge.targetId.endsWith('-exit-node'));\n const isPortToPort = (edge: GraphEdge) =>\n edge.sourceId !== 'root-entry-node' &&\n edge.targetId !== 'root-exit-node' &&\n (edge.sourceId.endsWith('-entry-node') || edge.sourceId.endsWith('-exit-node'));\n const edgesLeadingToPort = edges.filter((e) => leadsToPort(e) && !isPortToPort(e));\n const remap = (lead: GraphEdge, tails: GraphEdge[]) => {\n tails.forEach((tail) => {\n remappedEdges = remappedEdges.filter((e) => e.id !== tail.id);\n if (!leadsToPort(tail)) {\n const sourceId = lead.sourceId;\n const targetId = tail.targetId;\n const label = `${lead.label}${lead.label && tail.label ? ' / ' : ''}${tail.label}`;\n const id = `${sourceId}-${targetId}${label ? `-${label}` : ''}`;\n const newEdge: GraphEdge = {\n id,\n sourceId,\n targetId,\n label,\n };\n remappedEdges.push(newEdge);\n } else {\n remap(\n lead,\n edges.filter((e) => e.sourceId === tail.targetId),\n );\n }\n });\n };\n edgesLeadingToPort.forEach((lead) => {\n remappedEdges = remappedEdges.filter((e) => e.id !== lead.id);\n remap(\n lead,\n edges.filter((e) => e.sourceId === lead.targetId),\n );\n });\n return remappedEdges;\n};\n\n/**\n * Flattens the edges of the provided graph\n * @param graph The graph to flatten the edges of\n * @returns All the edge declared in the graph and its subgraphs\n */\nexport const flattenEdges = (graph: Graph): GraphEdge[] => [\n ...(graph.edges || []),\n ...((graph.nodes || []).filter((node) => (node as Graph).edges?.length) as Graph[]).flatMap(flattenEdges),\n];\n\n/**\n * Flattens the nodes of the provided graph/node\n * @param graph The graph/node to flatten the nodes of\n * @returns All the nodes and subnodes declared in the graph\n */\nexport const flattenNodes = (node: Graph | GraphNode): FlatGraphNode[] => [\n {\n id: node.id,\n label: node.label,\n type: node.type,\n task: node.task,\n parentId: node.parent?.id,\n },\n ...((node as Graph).nodes || []).flatMap(flattenNodes),\n];\n\n/**\n * Flattens the provided graph into a single node and edge collection.\n * @param graph The target graph\n * @param removePorts A boolean indicating whether the port nodes should be removed.\n * @returns The flattened graph\n */\nexport function flattenGraph(graph: Graph, removePorts: boolean = false): FlatGraph {\n const flatGraph: FlatGraph = {\n ...graph,\n edges: flattenEdges(graph),\n nodes: graph.nodes.flatMap((node) => flattenNodes(node)),\n };\n if (!removePorts) return flatGraph;\n return {\n ...flatGraph,\n edges: remapEdges(flatGraph.edges),\n nodes: flatGraph.nodes.filter((node) => node.type !== GraphNodeType.Entry && node.type !== GraphNodeType.Exit),\n };\n}\n\n/**\n * Constructs a graph representation based on the given workflow.\n *\n * @param workflow The workflow to be converted into a graph structure.\n * @returns A graph representation of the workflow.\n */\nexport function buildGraph(workflow: Workflow): Graph {\n const graph = initGraph(GraphNodeType.Root);\n if (!graph.entryNode) throw new Error('The root graph should have an entry node.');\n buildTransitions(graph.entryNode, {\n graph,\n taskListReference: doReference,\n taskList: mapTasks(workflow.do),\n taskReference: doReference,\n knownEdges: [],\n });\n return graph;\n}\n\n/**\n * Constructs a flattened graph representation based on the given workflow.\n *\n * @param workflow The workflow to be converted into a flattened graph structure.\n * @param removePorts A boolean indicating whether the port nodes should be removed.\n * @returns A flattened graph representation of the workflow.\n */\nexport function buildFlatGraph(workflow: Workflow, removePorts: boolean = false): FlatGraph {\n const graph = buildGraph(workflow);\n return flattenGraph(graph, removePorts);\n}\n","import { Workflow } from './generated/definitions/specification';\nimport { buildFlatGraph, FlatGraph, FlatGraphNode, GraphEdge, GraphNodeType } from './graph-builder';\n\n/**\n * Adds indentation to each line of the provided code\n * @param code The code to indent\n * @returns The indented code\n */\nconst indent = (code: string) =>\n code\n .split('\\n')\n .map((line) => ` ${line}`)\n .join('\\n');\n\n/**\n * Converts a graph to Mermaid code\n * @param root The root graph\n * @param subgraphNode The graph to convert\n * @returns The converted graph\n */\nfunction convertGraphToCode(root: FlatGraph, subgraphNode?: FlatGraphNode): string {\n const nodes = !subgraphNode ? root.nodes : root.nodes.filter((n) => n.parentId === subgraphNode.id);\n const edges = !subgraphNode ? root.edges : [];\n const code = `${!subgraphNode ? 'flowchart TD' : `subgraph ${subgraphNode.id} [\"${subgraphNode.label || subgraphNode.id}\"]`}\n${indent(nodes.map((node) => convertNodeToCode(root, node)).join('\\n'))}\n${indent(edges.map((edge) => convertEdgeToCode(edge)).join('\\n'))}\n${!subgraphNode ? '' : 'end'}`;\n return code;\n}\n\n/**\n * Converts a node to Mermaid code\n * @param node The node to convert\n * @param graph The root graph\n * @returns The converted node\n */\nfunction convertNodeToCode(root: FlatGraph, node: FlatGraphNode): string {\n let code = '';\n if (root.nodes.filter((n) => n.parentId === node.id).length) {\n code = convertGraphToCode(root, node);\n } else {\n code = node.id;\n switch (node.type) {\n case GraphNodeType.Entry: // shouldn't exist in a simplified graph\n case GraphNodeType.Exit:\n code += '[ ]:::hidden';\n break;\n case GraphNodeType.Start:\n code += '(( ))'; // alt '@{ shape: circle, label: \" \"}';\n break;\n case GraphNodeType.End:\n code += '((( )))'; // alt '@{ shape: dbl-circ, label: \" \"}';\n break;\n default:\n code += `[\"${node.label || ' '}\"]`; // alt `@{ label: \"${node.label}\" }`\n }\n }\n return code;\n}\n\n/**\n * Converts an edge to Mermaid code\n * @param edge The edge to convert\n * @returns The converted edge\n */\nfunction convertEdgeToCode(edge: GraphEdge): string {\n const ignoreEndArrow =\n !edge.targetId.startsWith('root') &&\n (edge.targetId.endsWith('-entry-node') || edge.targetId.endsWith('-exit-node'));\n const code = `${edge.sourceId} ${edge.label ? `--\"${edge.label}\"` : ''}--${ignoreEndArrow ? '-' : '>'} ${edge.targetId}`;\n return code;\n}\n\n/**\n * Converts the provided workflow to Mermaid code\n * @param workflow The workflow to convert\n * @returns The Mermaid diagram\n */\nexport function convertToMermaidCode(workflow: Workflow): string {\n const graph = buildFlatGraph(workflow, true);\n return (\n convertGraphToCode(graph) +\n `\n\nclassDef hidden width: 1px, height: 1px;` // should be \"classDef hidden display: none;\" but it can induce a Mermaid bug - https://github.com/mermaid-js/mermaid/issues/6452\n );\n}\n\n/**\n * Represents a Mermaid diagram generator for a given workflow.\n * This class takes a workflow definition and converts it into a Mermaid.js-compatible diagram.\n */\nexport class MermaidDiagram {\n constructor(private workflow: Workflow) {}\n\n /**\n * Generates the Mermaid code representation of the workflow.\n * @returns The Mermaid diagram source code as a string.\n */\n sourceCode(): string {\n return convertToMermaidCode(this.workflow);\n }\n}\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { _Document } from './document';\nimport { _Input } from './input';\nimport { _Use } from './use';\nimport { _TaskList } from './task-list';\nimport { _WorkflowTimeout } from './workflow-timeout';\nimport { _Output } from './output';\nimport { _Schedule } from './schedule';\nimport { ObjectHydrator } from '../../hydrator';\nimport { Specification } from '../definitions';\nimport { getLifecycleHooks } from '../../lifecycle-hooks';\nimport { validate } from '../../validation';\nimport { isObject } from '../../utils';\nimport * as yaml from 'js-yaml';\nimport { buildGraph, Graph } from '../../graph-builder';\nimport { convertToMermaidCode } from '../../mermaid-converter';\n\n/**\n * Represents the intersection between the Workflow class and type\n */\nexport type WorkflowIntersection = Workflow & Specification.Workflow;\n\n/**\n * Represents a constructor for the intersection of the Workflow class and type\n */\nexport interface WorkflowConstructor {\n new (model?: Partial<Specification.Workflow>): WorkflowIntersection;\n}\n\n/**\n * Represents a Workflow with methods for validation normalization, and serialization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class Workflow extends ObjectHydrator<Specification.Workflow> {\n /**\n * Instanciates a new instance of the Workflow class.\n * Initializes properties based on the provided model if it is an object.\n *\n * @param model - Optional partial model object to initialize the Workflow.\n */\n constructor(model?: Partial<Specification.Workflow>) {\n super(model);\n const self = this as unknown as Specification.Workflow & object;\n if (isObject(model)) {\n if (typeof model.document === 'object') self.document = new _Document(model.document);\n if (typeof model.input === 'object') self.input = new _Input(model.input);\n if (typeof model.use === 'object') self.use = new _Use(model.use);\n if (typeof model.do === 'object') self.do = new _TaskList(model.do);\n if (typeof model.timeout === 'object') self.timeout = new _WorkflowTimeout(model.timeout);\n if (typeof model.output === 'object') self.output = new _Output(model.output);\n if (typeof model.schedule === 'object') self.schedule = new _Schedule(model.schedule);\n }\n getLifecycleHooks('Workflow')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the Workflow.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new Workflow(this as any) as WorkflowIntersection;\n validate('Workflow', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the Workflow.\n * Creates a copy of the Workflow, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the Workflow instance.\n */\n normalize(): Workflow & Specification.Workflow {\n const copy = new Workflow(this as any) as WorkflowIntersection;\n return getLifecycleHooks('Workflow')?.normalize?.(copy) || copy;\n }\n\n static deserialize(text: string): WorkflowIntersection {\n const model = yaml.load(text) as Partial<Specification.Workflow>;\n validate('Workflow', model);\n return new Workflow(model) as WorkflowIntersection;\n }\n\n static serialize(\n model: Partial<WorkflowIntersection>,\n format: 'yaml' | 'json' = 'yaml',\n normalize: boolean = true,\n ): string {\n const workflow = new Workflow(model);\n workflow.validate();\n const normalized = normalize ? workflow.normalize() : workflow;\n if (format === 'json') {\n return JSON.stringify(normalized);\n }\n return yaml.dump(normalized);\n }\n\n static toGraph(model: Partial<WorkflowIntersection>): Graph {\n return buildGraph(model as unknown as WorkflowIntersection);\n }\n\n static toMermaidCode(model: Partial<WorkflowIntersection>): string {\n return convertToMermaidCode(model as unknown as WorkflowIntersection);\n }\n\n /**\n * Serializes the workflow to YAML or JSON\n * @param format The format, 'yaml' or 'json', default is 'yaml'\n * @param normalize If the workflow should be normalized before serialization, default true\n * @returns A string representation of the workflow\n */\n serialize(format: 'yaml' | 'json' = 'yaml', normalize: boolean = true): string {\n return Workflow.serialize(this as unknown as WorkflowIntersection, format, normalize);\n }\n\n /**\n * Creates a directed graph representation of the workflow\n * @returns A directed graph of the workflow\n */\n toGraph(): Graph {\n return Workflow.toGraph(this as unknown as WorkflowIntersection);\n }\n\n /**\n * Generates the MermaidJS code corresponding to the workflow\n * @returns The MermaidJS code\n */\n toMermaidCode(): string {\n return Workflow.toMermaidCode(this as unknown as WorkflowIntersection);\n }\n}\n\nexport const _Workflow = Workflow as WorkflowConstructor & {\n /**\n * Deserializes the provided string as a Workflow\n * @param text The YAML or JSON representation of a workflow\n * @returns A new Workflow instance\n */\n deserialize(text: string): WorkflowIntersection;\n\n /**\n * Serializes the provided Workflow to YAML or JSON\n * @param workflow The workflow to serialize\n * @param format The format, 'yaml' or 'json', default is 'yaml'\n * @param normalize If the workflow should be normalized before serialization, default true\n * @returns A string representation of the workflow\n */\n serialize(workflow: Partial<WorkflowIntersection>, format?: 'yaml' | 'json', normalize?: boolean): string;\n\n /**\n * Creates a directed graph representation of the provided workflow\n * @param workflow The workflow to convert\n * @returns A directed graph of the provided workflow\n */\n toGraph(workflow: Partial<WorkflowIntersection>): Graph;\n\n /**\n * Generates the MermaidJS code corresponding to the provided workflow\n * @param workflow The workflow to convert\n * @returns The MermaidJS code\n */\n toMermaidCode(workflow: Partial<WorkflowIntersection>): string;\n};\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { _A2AArguments } from './a2a-arguments';\nimport { _AllEventConsumptionStrategy } from './all-event-consumption-strategy';\nimport { _AllEventConsumptionStrategyConfiguration } from './all-event-consumption-strategy-configuration';\nimport { _AnyEventConsumptionStrategy } from './any-event-consumption-strategy';\nimport { _AnyEventConsumptionStrategyConfiguration } from './any-event-consumption-strategy-configuration';\nimport { _AnyEventConsumptionStrategyUntil } from './any-event-consumption-strategy-until';\nimport { _AnyEventUntilConsumed } from './any-event-until-consumed';\nimport { _AsyncApiArguments } from './async-api-arguments';\nimport { _AuthenticationPolicy } from './authentication-policy';\nimport { _AuthenticationPolicyReference } from './authentication-policy-reference';\nimport { _BasicAuthenticationPolicy } from './basic-authentication-policy';\nimport { _BasicAuthenticationPolicyConfiguration } from './basic-authentication-policy-configuration';\nimport { _BasicAuthenticationProperties } from './basic-authentication-properties';\nimport { _BearerAuthenticationPolicy } from './bearer-authentication-policy';\nimport { _BearerAuthenticationPolicyConfiguration } from './bearer-authentication-policy-configuration';\nimport { _BearerAuthenticationProperties } from './bearer-authentication-properties';\nimport { _CallA2A } from './call-a2a';\nimport { _CallAsyncAPI } from './call-async-api';\nimport { _CallFunction } from './call-function';\nimport { _CallGRPC } from './call-grpc';\nimport { _CallHTTP } from './call-http';\nimport { _CallMCP } from './call-mcp';\nimport { _CallOpenAPI } from './call-open-api';\nimport { _CallTask } from './call-task';\nimport { _Catalog } from './catalog';\nimport { _CatchErrors } from './catch-errors';\nimport { _ConstantBackoff } from './constant-backoff';\nimport { _Container } from './container';\nimport { _ContainerArguments } from './container-arguments';\nimport { _ContainerEnvironment } from './container-environment';\nimport { _ContainerLifetime } from './container-lifetime';\nimport { _ContainerPorts } from './container-ports';\nimport { _ContainerVolumes } from './container-volumes';\nimport { _DigestAuthenticationPolicy } from './digest-authentication-policy';\nimport { _DigestAuthenticationPolicyConfiguration } from './digest-authentication-policy-configuration';\nimport { _DigestAuthenticationProperties } from './digest-authentication-properties';\nimport { _Document } from './document';\nimport { _DoTask } from './do-task';\nimport { _Duration } from './duration';\nimport { _DurationInline } from './duration-inline';\nimport { _EmitEventDefinition } from './emit-event-definition';\nimport { _EmitEventWith } from './emit-event-with';\nimport { _EmitTask } from './emit-task';\nimport { _EmitTaskConfiguration } from './emit-task-configuration';\nimport { _Endpoint } from './endpoint';\nimport { _EndpointConfiguration } from './endpoint-configuration';\nimport { _EndpointUri } from './endpoint-uri';\nimport { _Error } from './error';\nimport { _ErrorDetails } from './error-details';\nimport { _ErrorFilter } from './error-filter';\nimport { _ErrorInstance } from './error-instance';\nimport { _ErrorTitle } from './error-title';\nimport { _ErrorType } from './error-type';\nimport { _EventConsumptionStrategy } from './event-consumption-strategy';\nimport { _EventData } from './event-data';\nimport { _EventDataschema } from './event-dataschema';\nimport { _EventFilter } from './event-filter';\nimport { _EventFilterCorrelate } from './event-filter-correlate';\nimport { _EventSource } from './event-source';\nimport { _EventTime } from './event-time';\nimport { _ExponentialBackOff } from './exponential-back-off';\nimport { _Export } from './export';\nimport { _ExportAs } from './export-as';\nimport { _Extension } from './extension';\nimport { _ExtensionItem } from './extension-item';\nimport { _ExternalResource } from './external-resource';\nimport { _ExternalScript } from './external-script';\nimport { _FlowDirective } from './flow-directive';\nimport { _ForkTask } from './fork-task';\nimport { _ForkTaskConfiguration } from './fork-task-configuration';\nimport { _ForTask } from './for-task';\nimport { _ForTaskConfiguration } from './for-task-configuration';\nimport { _FunctionArguments } from './function-arguments';\nimport { _GRPCArguments } from './grpc-arguments';\nimport { _HTTPArguments } from './http-arguments';\nimport { _HTTPBody } from './http-body';\nimport { _HTTPHeaders } from './http-headers';\nimport { _HTTPQuery } from './http-query';\nimport { _InlineScript } from './inline-script';\nimport { _Input } from './input';\nimport { _InputFrom } from './input-from';\nimport { _LinearBackoff } from './linear-backoff';\nimport { _ListenTask } from './listen-task';\nimport { _ListenTaskConfiguration } from './listen-task-configuration';\nimport { _MCPArguments } from './mcp-arguments';\nimport { _McpCallTransport } from './mcp-call-transport';\nimport { _McpClient } from './mcp-client';\nimport { _McpMethodParameters } from './mcp-method-parameters';\nimport { _OAuth2AuthenticationData } from './oauth2-authentication-data';\nimport { _OAuth2AuthenticationDataAudiences } from './oauth2-authentication-data-audiences';\nimport { _OAuth2AuthenticationDataClient } from './oauth2-authentication-data-client';\nimport { _OAuth2AuthenticationDataScopes } from './oauth2-authentication-data-scopes';\nimport { _OAuth2AuthenticationPolicy } from './oauth2-authentication-policy';\nimport { _OAuth2AuthenticationPolicyConfiguration } from './oauth2-authentication-policy-configuration';\nimport { _OAuth2AuthenticationPropertiesEndpoints } from './oauth2-authentication-properties-endpoints';\nimport { _OAuth2ConnectAuthenticationProperties } from './oauth2-connect-authentication-properties';\nimport { _OAuth2Issuers } from './oauth2-issuers';\nimport { _OAuth2TokenDefinition } from './oauth2-token-definition';\nimport { _OAuth2TokenRequest } from './oauth2-token-request';\nimport { _OneEventConsumptionStrategy } from './one-event-consumption-strategy';\nimport { _OpenAPIArguments } from './open-api-arguments';\nimport { _OpenIdConnectAuthenticationPolicy } from './open-id-connect-authentication-policy';\nimport { _OpenIdConnectAuthenticationPolicyConfiguration } from './open-id-connect-authentication-policy-configuration';\nimport { _OpenIdConnectAuthenticationProperties } from './open-id-connect-authentication-properties';\nimport { _Output } from './output';\nimport { _OutputAs } from './output-as';\nimport { _RaiseTask } from './raise-task';\nimport { _RaiseTaskConfiguration } from './raise-task-configuration';\nimport { _RaiseTaskError } from './raise-task-error';\nimport { _ReferenceableAuthenticationPolicy } from './referenceable-authentication-policy';\nimport { _RetryBackoff } from './retry-backoff';\nimport { _RetryLimit } from './retry-limit';\nimport { _RetryLimitAttempt } from './retry-limit-attempt';\nimport { _RetryPolicy } from './retry-policy';\nimport { _RetryPolicyJitter } from './retry-policy-jitter';\nimport { _RunContainer } from './run-container';\nimport { _RunScript } from './run-script';\nimport { _RunShell } from './run-shell';\nimport { _RunTask } from './run-task';\nimport { _RunTaskConfiguration } from './run-task-configuration';\nimport { _RuntimeExpression } from './runtime-expression';\nimport { _RunWorkflow } from './run-workflow';\nimport { _Schedule } from './schedule';\nimport { _Schema } from './schema';\nimport { _SchemaExternal } from './schema-external';\nimport { _SchemaInline } from './schema-inline';\nimport { _Script } from './script';\nimport { _SecretBasedAuthenticationPolicy } from './secret-based-authentication-policy';\nimport { _SetTask } from './set-task';\nimport { _SetTaskConfiguration } from './set-task-configuration';\nimport { _Shell } from './shell';\nimport { _ShellArguments } from './shell-arguments';\nimport { _ShellEnvironment } from './shell-environment';\nimport { _SubflowConfiguration } from './subflow-configuration';\nimport { _SubflowInput } from './subflow-input';\nimport { _SubscriptionIterator } from './subscription-iterator';\nimport { _SwitchCase } from './switch-case';\nimport { _SwitchItem } from './switch-item';\nimport { _SwitchTask } from './switch-task';\nimport { _SwitchTaskConfiguration } from './switch-task-configuration';\nimport { _Task } from './task';\nimport { _TaskBase } from './task-base';\nimport { _TaskBaseIf } from './task-base-if';\nimport { _TaskItem } from './task-item';\nimport { _TaskList } from './task-list';\nimport { _TaskMetadata } from './task-metadata';\nimport { _TaskTimeout } from './task-timeout';\nimport { _Timeout } from './timeout';\nimport { _TryTask } from './try-task';\nimport { _TryTaskCatch } from './try-task-catch';\nimport { _TryTaskCatchRetry } from './try-task-catch-retry';\nimport { _UriTemplate } from './uri-template';\nimport { _Use } from './use';\nimport { _UseAuthentications } from './use-authentications';\nimport { _UseCatalogs } from './use-catalogs';\nimport { _UseErrors } from './use-errors';\nimport { _UseExtensions } from './use-extensions';\nimport { _UseFunctions } from './use-functions';\nimport { _UseRetries } from './use-retries';\nimport { _UseSecrets } from './use-secrets';\nimport { _UseTimeouts } from './use-timeouts';\nimport { _WaitTask } from './wait-task';\nimport { _WithA2AParameters } from './with-a2a-parameters';\nimport { _WithEvent } from './with-event';\nimport { _WithGRPCArguments } from './with-grpc-arguments';\nimport { _WithGRPCService } from './with-grpc-service';\nimport { _WithOpenAPIParameters } from './with-open-api-parameters';\nimport { _Workflow } from './workflow';\nimport { _WorkflowMetadata } from './workflow-metadata';\nimport { _WorkflowTags } from './workflow-tags';\nimport { _WorkflowTimeout } from './workflow-timeout';\n\nexport const Classes = {\n A2AArguments: _A2AArguments,\n AllEventConsumptionStrategy: _AllEventConsumptionStrategy,\n AllEventConsumptionStrategyConfiguration: _AllEventConsumptionStrategyConfiguration,\n AnyEventConsumptionStrategy: _AnyEventConsumptionStrategy,\n AnyEventConsumptionStrategyConfiguration: _AnyEventConsumptionStrategyConfiguration,\n AnyEventConsumptionStrategyUntil: _AnyEventConsumptionStrategyUntil,\n AnyEventUntilConsumed: _AnyEventUntilConsumed,\n AsyncApiArguments: _AsyncApiArguments,\n AuthenticationPolicy: _AuthenticationPolicy,\n AuthenticationPolicyReference: _AuthenticationPolicyReference,\n BasicAuthenticationPolicy: _BasicAuthenticationPolicy,\n BasicAuthenticationPolicyConfiguration: _BasicAuthenticationPolicyConfiguration,\n BasicAuthenticationProperties: _BasicAuthenticationProperties,\n BearerAuthenticationPolicy: _BearerAuthenticationPolicy,\n BearerAuthenticationPolicyConfiguration: _BearerAuthenticationPolicyConfiguration,\n BearerAuthenticationProperties: _BearerAuthenticationProperties,\n CallA2A: _CallA2A,\n CallAsyncAPI: _CallAsyncAPI,\n CallFunction: _CallFunction,\n CallGRPC: _CallGRPC,\n CallHTTP: _CallHTTP,\n CallMCP: _CallMCP,\n CallOpenAPI: _CallOpenAPI,\n CallTask: _CallTask,\n Catalog: _Catalog,\n CatchErrors: _CatchErrors,\n ConstantBackoff: _ConstantBackoff,\n Container: _Container,\n ContainerArguments: _ContainerArguments,\n ContainerEnvironment: _ContainerEnvironment,\n ContainerLifetime: _ContainerLifetime,\n ContainerPorts: _ContainerPorts,\n ContainerVolumes: _ContainerVolumes,\n DigestAuthenticationPolicy: _DigestAuthenticationPolicy,\n DigestAuthenticationPolicyConfiguration: _DigestAuthenticationPolicyConfiguration,\n DigestAuthenticationProperties: _DigestAuthenticationProperties,\n Document: _Document,\n DoTask: _DoTask,\n Duration: _Duration,\n DurationInline: _DurationInline,\n EmitEventDefinition: _EmitEventDefinition,\n EmitEventWith: _EmitEventWith,\n EmitTask: _EmitTask,\n EmitTaskConfiguration: _EmitTaskConfiguration,\n Endpoint: _Endpoint,\n EndpointConfiguration: _EndpointConfiguration,\n EndpointUri: _EndpointUri,\n Error: _Error,\n ErrorDetails: _ErrorDetails,\n ErrorFilter: _ErrorFilter,\n ErrorInstance: _ErrorInstance,\n ErrorTitle: _ErrorTitle,\n ErrorType: _ErrorType,\n EventConsumptionStrategy: _EventConsumptionStrategy,\n EventData: _EventData,\n EventDataschema: _EventDataschema,\n EventFilter: _EventFilter,\n EventFilterCorrelate: _EventFilterCorrelate,\n EventSource: _EventSource,\n EventTime: _EventTime,\n ExponentialBackOff: _ExponentialBackOff,\n Export: _Export,\n ExportAs: _ExportAs,\n Extension: _Extension,\n ExtensionItem: _ExtensionItem,\n ExternalResource: _ExternalResource,\n ExternalScript: _ExternalScript,\n FlowDirective: _FlowDirective,\n ForkTask: _ForkTask,\n ForkTaskConfiguration: _ForkTaskConfiguration,\n ForTask: _ForTask,\n ForTaskConfiguration: _ForTaskConfiguration,\n FunctionArguments: _FunctionArguments,\n GRPCArguments: _GRPCArguments,\n HTTPArguments: _HTTPArguments,\n HTTPBody: _HTTPBody,\n HTTPHeaders: _HTTPHeaders,\n HTTPQuery: _HTTPQuery,\n InlineScript: _InlineScript,\n Input: _Input,\n InputFrom: _InputFrom,\n LinearBackoff: _LinearBackoff,\n ListenTask: _ListenTask,\n ListenTaskConfiguration: _ListenTaskConfiguration,\n MCPArguments: _MCPArguments,\n McpCallTransport: _McpCallTransport,\n McpClient: _McpClient,\n McpMethodParameters: _McpMethodParameters,\n OAuth2AuthenticationData: _OAuth2AuthenticationData,\n OAuth2AuthenticationDataAudiences: _OAuth2AuthenticationDataAudiences,\n OAuth2AuthenticationDataClient: _OAuth2AuthenticationDataClient,\n OAuth2AuthenticationDataScopes: _OAuth2AuthenticationDataScopes,\n OAuth2AuthenticationPolicy: _OAuth2AuthenticationPolicy,\n OAuth2AuthenticationPolicyConfiguration: _OAuth2AuthenticationPolicyConfiguration,\n OAuth2AuthenticationPropertiesEndpoints: _OAuth2AuthenticationPropertiesEndpoints,\n OAuth2ConnectAuthenticationProperties: _OAuth2ConnectAuthenticationProperties,\n OAuth2Issuers: _OAuth2Issuers,\n OAuth2TokenDefinition: _OAuth2TokenDefinition,\n OAuth2TokenRequest: _OAuth2TokenRequest,\n OneEventConsumptionStrategy: _OneEventConsumptionStrategy,\n OpenAPIArguments: _OpenAPIArguments,\n OpenIdConnectAuthenticationPolicy: _OpenIdConnectAuthenticationPolicy,\n OpenIdConnectAuthenticationPolicyConfiguration: _OpenIdConnectAuthenticationPolicyConfiguration,\n OpenIdConnectAuthenticationProperties: _OpenIdConnectAuthenticationProperties,\n Output: _Output,\n OutputAs: _OutputAs,\n RaiseTask: _RaiseTask,\n RaiseTaskConfiguration: _RaiseTaskConfiguration,\n RaiseTaskError: _RaiseTaskError,\n ReferenceableAuthenticationPolicy: _ReferenceableAuthenticationPolicy,\n RetryBackoff: _RetryBackoff,\n RetryLimit: _RetryLimit,\n RetryLimitAttempt: _RetryLimitAttempt,\n RetryPolicy: _RetryPolicy,\n RetryPolicyJitter: _RetryPolicyJitter,\n RunContainer: _RunContainer,\n RunScript: _RunScript,\n RunShell: _RunShell,\n RunTask: _RunTask,\n RunTaskConfiguration: _RunTaskConfiguration,\n RuntimeExpression: _RuntimeExpression,\n RunWorkflow: _RunWorkflow,\n Schedule: _Schedule,\n Schema: _Schema,\n SchemaExternal: _SchemaExternal,\n SchemaInline: _SchemaInline,\n Script: _Script,\n SecretBasedAuthenticationPolicy: _SecretBasedAuthenticationPolicy,\n SetTask: _SetTask,\n SetTaskConfiguration: _SetTaskConfiguration,\n Shell: _Shell,\n ShellArguments: _ShellArguments,\n ShellEnvironment: _ShellEnvironment,\n SubflowConfiguration: _SubflowConfiguration,\n SubflowInput: _SubflowInput,\n SubscriptionIterator: _SubscriptionIterator,\n SwitchCase: _SwitchCase,\n SwitchItem: _SwitchItem,\n SwitchTask: _SwitchTask,\n SwitchTaskConfiguration: _SwitchTaskConfiguration,\n Task: _Task,\n TaskBase: _TaskBase,\n TaskBaseIf: _TaskBaseIf,\n TaskItem: _TaskItem,\n TaskList: _TaskList,\n TaskMetadata: _TaskMetadata,\n TaskTimeout: _TaskTimeout,\n Timeout: _Timeout,\n TryTask: _TryTask,\n TryTaskCatch: _TryTaskCatch,\n TryTaskCatchRetry: _TryTaskCatchRetry,\n UriTemplate: _UriTemplate,\n Use: _Use,\n UseAuthentications: _UseAuthentications,\n UseCatalogs: _UseCatalogs,\n UseErrors: _UseErrors,\n UseExtensions: _UseExtensions,\n UseFunctions: _UseFunctions,\n UseRetries: _UseRetries,\n UseSecrets: _UseSecrets,\n UseTimeouts: _UseTimeouts,\n WaitTask: _WaitTask,\n WithA2AParameters: _WithA2AParameters,\n WithEvent: _WithEvent,\n WithGRPCArguments: _WithGRPCArguments,\n WithGRPCService: _WithGRPCService,\n WithOpenAPIParameters: _WithOpenAPIParameters,\n Workflow: _Workflow,\n WorkflowMetadata: _WorkflowMetadata,\n WorkflowTags: _WorkflowTags,\n WorkflowTimeout: _WorkflowTimeout,\n};\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { A2AArgumentsIntersection } from '../classes/a2a-arguments';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.A2AArguments} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {A2AArgumentsIntersection} The built object\n */\nfunction buildingFn(model: Specification.A2AArguments, options: BuildOptions): A2AArgumentsIntersection {\n const instance = new Classes.A2AArguments(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as A2AArgumentsIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `A2AArgumentsIntersection`\n * @returns {Builder<A2AArgumentsIntersection, A2AArgumentsIntersection>} A builder for `A2AArgumentsIntersection`\n */\nexport const a2AArgumentsBuilder = (\n model?: Partial<Specification.A2AArguments>,\n): Builder<Partial<Specification.A2AArguments>, A2AArgumentsIntersection> =>\n builder<Specification.A2AArguments, A2AArgumentsIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { AllEventConsumptionStrategyIntersection } from '../classes/all-event-consumption-strategy';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.AllEventConsumptionStrategy} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {AllEventConsumptionStrategyIntersection} The built object\n */\nfunction buildingFn(\n model: Specification.AllEventConsumptionStrategy,\n options: BuildOptions,\n): AllEventConsumptionStrategyIntersection {\n const instance = new Classes.AllEventConsumptionStrategy(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as AllEventConsumptionStrategyIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `AllEventConsumptionStrategyIntersection`\n * @returns {Builder<AllEventConsumptionStrategyIntersection, AllEventConsumptionStrategyIntersection>} A builder for `AllEventConsumptionStrategyIntersection`\n */\nexport const allEventConsumptionStrategyBuilder = (\n model?: Partial<Specification.AllEventConsumptionStrategy>,\n): Builder<Partial<Specification.AllEventConsumptionStrategy>, AllEventConsumptionStrategyIntersection> =>\n builder<Specification.AllEventConsumptionStrategy, AllEventConsumptionStrategyIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { arrayBuilder, ArrayBuilder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { AllEventConsumptionStrategyConfigurationIntersection } from '../classes/all-event-consumption-strategy-configuration';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying array\n * @param {Specification.AllEventConsumptionStrategyConfiguration} model The proxied array\n * @param {BuildOptions} options The build options to use\n * @returns {AllEventConsumptionStrategyConfigurationIntersection} The built array\n */\nfunction buildingFn(\n model: Specification.AllEventConsumptionStrategyConfiguration,\n options: BuildOptions,\n): AllEventConsumptionStrategyConfigurationIntersection {\n const instance = new Classes.AllEventConsumptionStrategyConfiguration(model);\n if (options.validate) instance.validate();\n return (options.normalize\n ? instance.normalize()\n : instance) as unknown as AllEventConsumptionStrategyConfigurationIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `AllEventConsumptionStrategyConfigurationIntersection`\n * @returns {ArrayBuilder<Specification.EventFilter, AllEventConsumptionStrategyConfigurationIntersection>} A builder for `AllEventConsumptionStrategyConfigurationIntersection`\n */\nexport const allEventConsumptionStrategyConfigurationBuilder = (\n model?: Specification.AllEventConsumptionStrategyConfiguration,\n): ArrayBuilder<Specification.EventFilter, AllEventConsumptionStrategyConfigurationIntersection> =>\n arrayBuilder<Specification.EventFilter, AllEventConsumptionStrategyConfigurationIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { AnyEventConsumptionStrategyIntersection } from '../classes/any-event-consumption-strategy';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.AnyEventConsumptionStrategy} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {AnyEventConsumptionStrategyIntersection} The built object\n */\nfunction buildingFn(\n model: Specification.AnyEventConsumptionStrategy,\n options: BuildOptions,\n): AnyEventConsumptionStrategyIntersection {\n const instance = new Classes.AnyEventConsumptionStrategy(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as AnyEventConsumptionStrategyIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `AnyEventConsumptionStrategyIntersection`\n * @returns {Builder<AnyEventConsumptionStrategyIntersection, AnyEventConsumptionStrategyIntersection>} A builder for `AnyEventConsumptionStrategyIntersection`\n */\nexport const anyEventConsumptionStrategyBuilder = (\n model?: Partial<Specification.AnyEventConsumptionStrategy>,\n): Builder<Partial<Specification.AnyEventConsumptionStrategy>, AnyEventConsumptionStrategyIntersection> =>\n builder<Specification.AnyEventConsumptionStrategy, AnyEventConsumptionStrategyIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { arrayBuilder, ArrayBuilder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { AnyEventConsumptionStrategyConfigurationIntersection } from '../classes/any-event-consumption-strategy-configuration';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying array\n * @param {Specification.AnyEventConsumptionStrategyConfiguration} model The proxied array\n * @param {BuildOptions} options The build options to use\n * @returns {AnyEventConsumptionStrategyConfigurationIntersection} The built array\n */\nfunction buildingFn(\n model: Specification.AnyEventConsumptionStrategyConfiguration,\n options: BuildOptions,\n): AnyEventConsumptionStrategyConfigurationIntersection {\n const instance = new Classes.AnyEventConsumptionStrategyConfiguration(model);\n if (options.validate) instance.validate();\n return (options.normalize\n ? instance.normalize()\n : instance) as unknown as AnyEventConsumptionStrategyConfigurationIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `AnyEventConsumptionStrategyConfigurationIntersection`\n * @returns {ArrayBuilder<Specification.EventFilter, AnyEventConsumptionStrategyConfigurationIntersection>} A builder for `AnyEventConsumptionStrategyConfigurationIntersection`\n */\nexport const anyEventConsumptionStrategyConfigurationBuilder = (\n model?: Specification.AnyEventConsumptionStrategyConfiguration,\n): ArrayBuilder<Specification.EventFilter, AnyEventConsumptionStrategyConfigurationIntersection> =>\n arrayBuilder<Specification.EventFilter, AnyEventConsumptionStrategyConfigurationIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { AnyEventConsumptionStrategyUntilIntersection } from '../classes/any-event-consumption-strategy-until';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.AnyEventConsumptionStrategyUntil} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {AnyEventConsumptionStrategyUntilIntersection} The built object\n */\nfunction buildingFn(\n model: Specification.AnyEventConsumptionStrategyUntil,\n options: BuildOptions,\n): AnyEventConsumptionStrategyUntilIntersection {\n const instance = new Classes.AnyEventConsumptionStrategyUntil(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as AnyEventConsumptionStrategyUntilIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `AnyEventConsumptionStrategyUntilIntersection`\n * @returns {Builder<AnyEventConsumptionStrategyUntilIntersection, AnyEventConsumptionStrategyUntilIntersection>} A builder for `AnyEventConsumptionStrategyUntilIntersection`\n */\nexport const anyEventConsumptionStrategyUntilBuilder = (\n model?: Partial<Specification.AnyEventConsumptionStrategyUntil>,\n): Builder<Partial<Specification.AnyEventConsumptionStrategyUntil>, AnyEventConsumptionStrategyUntilIntersection> =>\n builder<Specification.AnyEventConsumptionStrategyUntil, AnyEventConsumptionStrategyUntilIntersection>(\n model,\n buildingFn,\n );\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { AnyEventUntilConsumedIntersection } from '../classes/any-event-until-consumed';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.AnyEventUntilConsumed} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {AnyEventUntilConsumedIntersection} The built object\n */\nfunction buildingFn(\n model: Specification.AnyEventUntilConsumed,\n options: BuildOptions,\n): AnyEventUntilConsumedIntersection {\n const instance = new Classes.AnyEventUntilConsumed(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as AnyEventUntilConsumedIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `AnyEventUntilConsumedIntersection`\n * @returns {Builder<AnyEventUntilConsumedIntersection, AnyEventUntilConsumedIntersection>} A builder for `AnyEventUntilConsumedIntersection`\n */\nexport const anyEventUntilConsumedBuilder = (\n model?: Partial<Specification.AnyEventUntilConsumed>,\n): Builder<Partial<Specification.AnyEventUntilConsumed>, AnyEventUntilConsumedIntersection> =>\n builder<Specification.AnyEventUntilConsumed, AnyEventUntilConsumedIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { AsyncApiArgumentsIntersection } from '../classes/async-api-arguments';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.AsyncApiArguments} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {AsyncApiArgumentsIntersection} The built object\n */\nfunction buildingFn(model: Specification.AsyncApiArguments, options: BuildOptions): AsyncApiArgumentsIntersection {\n const instance = new Classes.AsyncApiArguments(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as AsyncApiArgumentsIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `AsyncApiArgumentsIntersection`\n * @returns {Builder<AsyncApiArgumentsIntersection, AsyncApiArgumentsIntersection>} A builder for `AsyncApiArgumentsIntersection`\n */\nexport const asyncApiArgumentsBuilder = (\n model?: Partial<Specification.AsyncApiArguments>,\n): Builder<Partial<Specification.AsyncApiArguments>, AsyncApiArgumentsIntersection> =>\n builder<Specification.AsyncApiArguments, AsyncApiArgumentsIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { AuthenticationPolicyIntersection } from '../classes/authentication-policy';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.AuthenticationPolicy} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {AuthenticationPolicyIntersection} The built object\n */\nfunction buildingFn(\n model: Specification.AuthenticationPolicy,\n options: BuildOptions,\n): AuthenticationPolicyIntersection {\n const instance = new Classes.AuthenticationPolicy(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as AuthenticationPolicyIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `AuthenticationPolicyIntersection`\n * @returns {Builder<AuthenticationPolicyIntersection, AuthenticationPolicyIntersection>} A builder for `AuthenticationPolicyIntersection`\n */\nexport const authenticationPolicyBuilder = (\n model?: Partial<Specification.AuthenticationPolicy>,\n): Builder<Partial<Specification.AuthenticationPolicy>, AuthenticationPolicyIntersection> =>\n builder<Specification.AuthenticationPolicy, AuthenticationPolicyIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { AuthenticationPolicyReferenceIntersection } from '../classes/authentication-policy-reference';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.AuthenticationPolicyReference} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {AuthenticationPolicyReferenceIntersection} The built object\n */\nfunction buildingFn(\n model: Specification.AuthenticationPolicyReference,\n options: BuildOptions,\n): AuthenticationPolicyReferenceIntersection {\n const instance = new Classes.AuthenticationPolicyReference(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as AuthenticationPolicyReferenceIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `AuthenticationPolicyReferenceIntersection`\n * @returns {Builder<AuthenticationPolicyReferenceIntersection, AuthenticationPolicyReferenceIntersection>} A builder for `AuthenticationPolicyReferenceIntersection`\n */\nexport const authenticationPolicyReferenceBuilder = (\n model?: Partial<Specification.AuthenticationPolicyReference>,\n): Builder<Partial<Specification.AuthenticationPolicyReference>, AuthenticationPolicyReferenceIntersection> =>\n builder<Specification.AuthenticationPolicyReference, AuthenticationPolicyReferenceIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { BasicAuthenticationPolicyIntersection } from '../classes/basic-authentication-policy';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.BasicAuthenticationPolicy} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {BasicAuthenticationPolicyIntersection} The built object\n */\nfunction buildingFn(\n model: Specification.BasicAuthenticationPolicy,\n options: BuildOptions,\n): BasicAuthenticationPolicyIntersection {\n const instance = new Classes.BasicAuthenticationPolicy(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as BasicAuthenticationPolicyIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `BasicAuthenticationPolicyIntersection`\n * @returns {Builder<BasicAuthenticationPolicyIntersection, BasicAuthenticationPolicyIntersection>} A builder for `BasicAuthenticationPolicyIntersection`\n */\nexport const basicAuthenticationPolicyBuilder = (\n model?: Partial<Specification.BasicAuthenticationPolicy>,\n): Builder<Partial<Specification.BasicAuthenticationPolicy>, BasicAuthenticationPolicyIntersection> =>\n builder<Specification.BasicAuthenticationPolicy, BasicAuthenticationPolicyIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { BasicAuthenticationPolicyConfigurationIntersection } from '../classes/basic-authentication-policy-configuration';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.BasicAuthenticationPolicyConfiguration} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {BasicAuthenticationPolicyConfigurationIntersection} The built object\n */\nfunction buildingFn(\n model: Specification.BasicAuthenticationPolicyConfiguration,\n options: BuildOptions,\n): BasicAuthenticationPolicyConfigurationIntersection {\n const instance = new Classes.BasicAuthenticationPolicyConfiguration(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as BasicAuthenticationPolicyConfigurationIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `BasicAuthenticationPolicyConfigurationIntersection`\n * @returns {Builder<BasicAuthenticationPolicyConfigurationIntersection, BasicAuthenticationPolicyConfigurationIntersection>} A builder for `BasicAuthenticationPolicyConfigurationIntersection`\n */\nexport const basicAuthenticationPolicyConfigurationBuilder = (\n model?: Partial<Specification.BasicAuthenticationPolicyConfiguration>,\n): Builder<\n Partial<Specification.BasicAuthenticationPolicyConfiguration>,\n BasicAuthenticationPolicyConfigurationIntersection\n> =>\n builder<Specification.BasicAuthenticationPolicyConfiguration, BasicAuthenticationPolicyConfigurationIntersection>(\n model,\n buildingFn,\n );\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { BasicAuthenticationPropertiesIntersection } from '../classes/basic-authentication-properties';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.BasicAuthenticationProperties} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {BasicAuthenticationPropertiesIntersection} The built object\n */\nfunction buildingFn(\n model: Specification.BasicAuthenticationProperties,\n options: BuildOptions,\n): BasicAuthenticationPropertiesIntersection {\n const instance = new Classes.BasicAuthenticationProperties(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as BasicAuthenticationPropertiesIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `BasicAuthenticationPropertiesIntersection`\n * @returns {Builder<BasicAuthenticationPropertiesIntersection, BasicAuthenticationPropertiesIntersection>} A builder for `BasicAuthenticationPropertiesIntersection`\n */\nexport const basicAuthenticationPropertiesBuilder = (\n model?: Partial<Specification.BasicAuthenticationProperties>,\n): Builder<Partial<Specification.BasicAuthenticationProperties>, BasicAuthenticationPropertiesIntersection> =>\n builder<Specification.BasicAuthenticationProperties, BasicAuthenticationPropertiesIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { BearerAuthenticationPolicyIntersection } from '../classes/bearer-authentication-policy';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.BearerAuthenticationPolicy} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {BearerAuthenticationPolicyIntersection} The built object\n */\nfunction buildingFn(\n model: Specification.BearerAuthenticationPolicy,\n options: BuildOptions,\n): BearerAuthenticationPolicyIntersection {\n const instance = new Classes.BearerAuthenticationPolicy(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as BearerAuthenticationPolicyIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `BearerAuthenticationPolicyIntersection`\n * @returns {Builder<BearerAuthenticationPolicyIntersection, BearerAuthenticationPolicyIntersection>} A builder for `BearerAuthenticationPolicyIntersection`\n */\nexport const bearerAuthenticationPolicyBuilder = (\n model?: Partial<Specification.BearerAuthenticationPolicy>,\n): Builder<Partial<Specification.BearerAuthenticationPolicy>, BearerAuthenticationPolicyIntersection> =>\n builder<Specification.BearerAuthenticationPolicy, BearerAuthenticationPolicyIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { BearerAuthenticationPolicyConfigurationIntersection } from '../classes/bearer-authentication-policy-configuration';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.BearerAuthenticationPolicyConfiguration} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {BearerAuthenticationPolicyConfigurationIntersection} The built object\n */\nfunction buildingFn(\n model: Specification.BearerAuthenticationPolicyConfiguration,\n options: BuildOptions,\n): BearerAuthenticationPolicyConfigurationIntersection {\n const instance = new Classes.BearerAuthenticationPolicyConfiguration(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as BearerAuthenticationPolicyConfigurationIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `BearerAuthenticationPolicyConfigurationIntersection`\n * @returns {Builder<BearerAuthenticationPolicyConfigurationIntersection, BearerAuthenticationPolicyConfigurationIntersection>} A builder for `BearerAuthenticationPolicyConfigurationIntersection`\n */\nexport const bearerAuthenticationPolicyConfigurationBuilder = (\n model?: Partial<Specification.BearerAuthenticationPolicyConfiguration>,\n): Builder<\n Partial<Specification.BearerAuthenticationPolicyConfiguration>,\n BearerAuthenticationPolicyConfigurationIntersection\n> =>\n builder<Specification.BearerAuthenticationPolicyConfiguration, BearerAuthenticationPolicyConfigurationIntersection>(\n model,\n buildingFn,\n );\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { BearerAuthenticationPropertiesIntersection } from '../classes/bearer-authentication-properties';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.BearerAuthenticationProperties} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {BearerAuthenticationPropertiesIntersection} The built object\n */\nfunction buildingFn(\n model: Specification.BearerAuthenticationProperties,\n options: BuildOptions,\n): BearerAuthenticationPropertiesIntersection {\n const instance = new Classes.BearerAuthenticationProperties(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as BearerAuthenticationPropertiesIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `BearerAuthenticationPropertiesIntersection`\n * @returns {Builder<BearerAuthenticationPropertiesIntersection, BearerAuthenticationPropertiesIntersection>} A builder for `BearerAuthenticationPropertiesIntersection`\n */\nexport const bearerAuthenticationPropertiesBuilder = (\n model?: Partial<Specification.BearerAuthenticationProperties>,\n): Builder<Partial<Specification.BearerAuthenticationProperties>, BearerAuthenticationPropertiesIntersection> =>\n builder<Specification.BearerAuthenticationProperties, BearerAuthenticationPropertiesIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { CallA2AIntersection } from '../classes/call-a2a';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.CallA2A} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {CallA2AIntersection} The built object\n */\nfunction buildingFn(model: Specification.CallA2A, options: BuildOptions): CallA2AIntersection {\n const instance = new Classes.CallA2A(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as CallA2AIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `CallA2AIntersection`\n * @returns {Builder<CallA2AIntersection, CallA2AIntersection>} A builder for `CallA2AIntersection`\n */\nexport const callA2ABuilder = (\n model?: Partial<Specification.CallA2A>,\n): Builder<Partial<Specification.CallA2A>, CallA2AIntersection> =>\n builder<Specification.CallA2A, CallA2AIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { CallAsyncAPIIntersection } from '../classes/call-async-api';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.CallAsyncAPI} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {CallAsyncAPIIntersection} The built object\n */\nfunction buildingFn(model: Specification.CallAsyncAPI, options: BuildOptions): CallAsyncAPIIntersection {\n const instance = new Classes.CallAsyncAPI(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as CallAsyncAPIIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `CallAsyncAPIIntersection`\n * @returns {Builder<CallAsyncAPIIntersection, CallAsyncAPIIntersection>} A builder for `CallAsyncAPIIntersection`\n */\nexport const callAsyncAPIBuilder = (\n model?: Partial<Specification.CallAsyncAPI>,\n): Builder<Partial<Specification.CallAsyncAPI>, CallAsyncAPIIntersection> =>\n builder<Specification.CallAsyncAPI, CallAsyncAPIIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { CallFunctionIntersection } from '../classes/call-function';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.CallFunction} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {CallFunctionIntersection} The built object\n */\nfunction buildingFn(model: Specification.CallFunction, options: BuildOptions): CallFunctionIntersection {\n const instance = new Classes.CallFunction(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as CallFunctionIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `CallFunctionIntersection`\n * @returns {Builder<CallFunctionIntersection, CallFunctionIntersection>} A builder for `CallFunctionIntersection`\n */\nexport const callFunctionBuilder = (\n model?: Partial<Specification.CallFunction>,\n): Builder<Partial<Specification.CallFunction>, CallFunctionIntersection> =>\n builder<Specification.CallFunction, CallFunctionIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { CallGRPCIntersection } from '../classes/call-grpc';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.CallGRPC} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {CallGRPCIntersection} The built object\n */\nfunction buildingFn(model: Specification.CallGRPC, options: BuildOptions): CallGRPCIntersection {\n const instance = new Classes.CallGRPC(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as CallGRPCIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `CallGRPCIntersection`\n * @returns {Builder<CallGRPCIntersection, CallGRPCIntersection>} A builder for `CallGRPCIntersection`\n */\nexport const callGRPCBuilder = (\n model?: Partial<Specification.CallGRPC>,\n): Builder<Partial<Specification.CallGRPC>, CallGRPCIntersection> =>\n builder<Specification.CallGRPC, CallGRPCIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { CallHTTPIntersection } from '../classes/call-http';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.CallHTTP} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {CallHTTPIntersection} The built object\n */\nfunction buildingFn(model: Specification.CallHTTP, options: BuildOptions): CallHTTPIntersection {\n const instance = new Classes.CallHTTP(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as CallHTTPIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `CallHTTPIntersection`\n * @returns {Builder<CallHTTPIntersection, CallHTTPIntersection>} A builder for `CallHTTPIntersection`\n */\nexport const callHTTPBuilder = (\n model?: Partial<Specification.CallHTTP>,\n): Builder<Partial<Specification.CallHTTP>, CallHTTPIntersection> =>\n builder<Specification.CallHTTP, CallHTTPIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { CallMCPIntersection } from '../classes/call-mcp';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.CallMCP} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {CallMCPIntersection} The built object\n */\nfunction buildingFn(model: Specification.CallMCP, options: BuildOptions): CallMCPIntersection {\n const instance = new Classes.CallMCP(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as CallMCPIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `CallMCPIntersection`\n * @returns {Builder<CallMCPIntersection, CallMCPIntersection>} A builder for `CallMCPIntersection`\n */\nexport const callMCPBuilder = (\n model?: Partial<Specification.CallMCP>,\n): Builder<Partial<Specification.CallMCP>, CallMCPIntersection> =>\n builder<Specification.CallMCP, CallMCPIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { CallOpenAPIIntersection } from '../classes/call-open-api';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.CallOpenAPI} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {CallOpenAPIIntersection} The built object\n */\nfunction buildingFn(model: Specification.CallOpenAPI, options: BuildOptions): CallOpenAPIIntersection {\n const instance = new Classes.CallOpenAPI(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as CallOpenAPIIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `CallOpenAPIIntersection`\n * @returns {Builder<CallOpenAPIIntersection, CallOpenAPIIntersection>} A builder for `CallOpenAPIIntersection`\n */\nexport const callOpenAPIBuilder = (\n model?: Partial<Specification.CallOpenAPI>,\n): Builder<Partial<Specification.CallOpenAPI>, CallOpenAPIIntersection> =>\n builder<Specification.CallOpenAPI, CallOpenAPIIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { CallTaskIntersection } from '../classes/call-task';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.CallTask} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {CallTaskIntersection} The built object\n */\nfunction buildingFn(model: Specification.CallTask, options: BuildOptions): CallTaskIntersection {\n const instance = new Classes.CallTask(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as CallTaskIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `CallTaskIntersection`\n * @returns {Builder<CallTaskIntersection, CallTaskIntersection>} A builder for `CallTaskIntersection`\n */\nexport const callTaskBuilder = (\n model?: Partial<Specification.CallTask>,\n): Builder<Partial<Specification.CallTask>, CallTaskIntersection> =>\n builder<Specification.CallTask, CallTaskIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { CatalogIntersection } from '../classes/catalog';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.Catalog} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {CatalogIntersection} The built object\n */\nfunction buildingFn(model: Specification.Catalog, options: BuildOptions): CatalogIntersection {\n const instance = new Classes.Catalog(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as CatalogIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `CatalogIntersection`\n * @returns {Builder<CatalogIntersection, CatalogIntersection>} A builder for `CatalogIntersection`\n */\nexport const catalogBuilder = (\n model?: Partial<Specification.Catalog>,\n): Builder<Partial<Specification.Catalog>, CatalogIntersection> =>\n builder<Specification.Catalog, CatalogIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { CatchErrorsIntersection } from '../classes/catch-errors';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.CatchErrors} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {CatchErrorsIntersection} The built object\n */\nfunction buildingFn(model: Specification.CatchErrors, options: BuildOptions): CatchErrorsIntersection {\n const instance = new Classes.CatchErrors(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as CatchErrorsIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `CatchErrorsIntersection`\n * @returns {Builder<CatchErrorsIntersection, CatchErrorsIntersection>} A builder for `CatchErrorsIntersection`\n */\nexport const catchErrorsBuilder = (\n model?: Partial<Specification.CatchErrors>,\n): Builder<Partial<Specification.CatchErrors>, CatchErrorsIntersection> =>\n builder<Specification.CatchErrors, CatchErrorsIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { ConstantBackoffIntersection } from '../classes/constant-backoff';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.ConstantBackoff} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {ConstantBackoffIntersection} The built object\n */\nfunction buildingFn(model: Specification.ConstantBackoff, options: BuildOptions): ConstantBackoffIntersection {\n const instance = new Classes.ConstantBackoff(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as ConstantBackoffIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `ConstantBackoffIntersection`\n * @returns {Builder<ConstantBackoffIntersection, ConstantBackoffIntersection>} A builder for `ConstantBackoffIntersection`\n */\nexport const constantBackoffBuilder = (\n model?: Partial<Specification.ConstantBackoff>,\n): Builder<Partial<Specification.ConstantBackoff>, ConstantBackoffIntersection> =>\n builder<Specification.ConstantBackoff, ConstantBackoffIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { ContainerIntersection } from '../classes/container';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.Container} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {ContainerIntersection} The built object\n */\nfunction buildingFn(model: Specification.Container, options: BuildOptions): ContainerIntersection {\n const instance = new Classes.Container(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as ContainerIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `ContainerIntersection`\n * @returns {Builder<ContainerIntersection, ContainerIntersection>} A builder for `ContainerIntersection`\n */\nexport const containerBuilder = (\n model?: Partial<Specification.Container>,\n): Builder<Partial<Specification.Container>, ContainerIntersection> =>\n builder<Specification.Container, ContainerIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { arrayBuilder, ArrayBuilder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { ContainerArgumentsIntersection } from '../classes/container-arguments';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying array\n * @param {Specification.ContainerArguments} model The proxied array\n * @param {BuildOptions} options The build options to use\n * @returns {ContainerArgumentsIntersection} The built array\n */\nfunction buildingFn(model: Specification.ContainerArguments, options: BuildOptions): ContainerArgumentsIntersection {\n const instance = new Classes.ContainerArguments(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as unknown as ContainerArgumentsIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `ContainerArgumentsIntersection`\n * @returns {ArrayBuilder<string, ContainerArgumentsIntersection>} A builder for `ContainerArgumentsIntersection`\n */\nexport const containerArgumentsBuilder = (\n model?: Specification.ContainerArguments,\n): ArrayBuilder<string, ContainerArgumentsIntersection> =>\n arrayBuilder<string, ContainerArgumentsIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { ContainerEnvironmentIntersection } from '../classes/container-environment';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.ContainerEnvironment} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {ContainerEnvironmentIntersection} The built object\n */\nfunction buildingFn(\n model: Specification.ContainerEnvironment,\n options: BuildOptions,\n): ContainerEnvironmentIntersection {\n const instance = new Classes.ContainerEnvironment(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as ContainerEnvironmentIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `ContainerEnvironmentIntersection`\n * @returns {Builder<ContainerEnvironmentIntersection, ContainerEnvironmentIntersection>} A builder for `ContainerEnvironmentIntersection`\n */\nexport const containerEnvironmentBuilder = (\n model?: Partial<Specification.ContainerEnvironment>,\n): Builder<Partial<Specification.ContainerEnvironment>, ContainerEnvironmentIntersection> =>\n builder<Specification.ContainerEnvironment, ContainerEnvironmentIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { ContainerLifetimeIntersection } from '../classes/container-lifetime';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.ContainerLifetime} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {ContainerLifetimeIntersection} The built object\n */\nfunction buildingFn(model: Specification.ContainerLifetime, options: BuildOptions): ContainerLifetimeIntersection {\n const instance = new Classes.ContainerLifetime(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as ContainerLifetimeIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `ContainerLifetimeIntersection`\n * @returns {Builder<ContainerLifetimeIntersection, ContainerLifetimeIntersection>} A builder for `ContainerLifetimeIntersection`\n */\nexport const containerLifetimeBuilder = (\n model?: Partial<Specification.ContainerLifetime>,\n): Builder<Partial<Specification.ContainerLifetime>, ContainerLifetimeIntersection> =>\n builder<Specification.ContainerLifetime, ContainerLifetimeIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { ContainerPortsIntersection } from '../classes/container-ports';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.ContainerPorts} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {ContainerPortsIntersection} The built object\n */\nfunction buildingFn(model: Specification.ContainerPorts, options: BuildOptions): ContainerPortsIntersection {\n const instance = new Classes.ContainerPorts(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as ContainerPortsIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `ContainerPortsIntersection`\n * @returns {Builder<ContainerPortsIntersection, ContainerPortsIntersection>} A builder for `ContainerPortsIntersection`\n */\nexport const containerPortsBuilder = (\n model?: Partial<Specification.ContainerPorts>,\n): Builder<Partial<Specification.ContainerPorts>, ContainerPortsIntersection> =>\n builder<Specification.ContainerPorts, ContainerPortsIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { ContainerVolumesIntersection } from '../classes/container-volumes';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.ContainerVolumes} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {ContainerVolumesIntersection} The built object\n */\nfunction buildingFn(model: Specification.ContainerVolumes, options: BuildOptions): ContainerVolumesIntersection {\n const instance = new Classes.ContainerVolumes(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as ContainerVolumesIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `ContainerVolumesIntersection`\n * @returns {Builder<ContainerVolumesIntersection, ContainerVolumesIntersection>} A builder for `ContainerVolumesIntersection`\n */\nexport const containerVolumesBuilder = (\n model?: Partial<Specification.ContainerVolumes>,\n): Builder<Partial<Specification.ContainerVolumes>, ContainerVolumesIntersection> =>\n builder<Specification.ContainerVolumes, ContainerVolumesIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { DigestAuthenticationPolicyIntersection } from '../classes/digest-authentication-policy';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.DigestAuthenticationPolicy} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {DigestAuthenticationPolicyIntersection} The built object\n */\nfunction buildingFn(\n model: Specification.DigestAuthenticationPolicy,\n options: BuildOptions,\n): DigestAuthenticationPolicyIntersection {\n const instance = new Classes.DigestAuthenticationPolicy(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as DigestAuthenticationPolicyIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `DigestAuthenticationPolicyIntersection`\n * @returns {Builder<DigestAuthenticationPolicyIntersection, DigestAuthenticationPolicyIntersection>} A builder for `DigestAuthenticationPolicyIntersection`\n */\nexport const digestAuthenticationPolicyBuilder = (\n model?: Partial<Specification.DigestAuthenticationPolicy>,\n): Builder<Partial<Specification.DigestAuthenticationPolicy>, DigestAuthenticationPolicyIntersection> =>\n builder<Specification.DigestAuthenticationPolicy, DigestAuthenticationPolicyIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { DigestAuthenticationPolicyConfigurationIntersection } from '../classes/digest-authentication-policy-configuration';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.DigestAuthenticationPolicyConfiguration} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {DigestAuthenticationPolicyConfigurationIntersection} The built object\n */\nfunction buildingFn(\n model: Specification.DigestAuthenticationPolicyConfiguration,\n options: BuildOptions,\n): DigestAuthenticationPolicyConfigurationIntersection {\n const instance = new Classes.DigestAuthenticationPolicyConfiguration(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as DigestAuthenticationPolicyConfigurationIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `DigestAuthenticationPolicyConfigurationIntersection`\n * @returns {Builder<DigestAuthenticationPolicyConfigurationIntersection, DigestAuthenticationPolicyConfigurationIntersection>} A builder for `DigestAuthenticationPolicyConfigurationIntersection`\n */\nexport const digestAuthenticationPolicyConfigurationBuilder = (\n model?: Partial<Specification.DigestAuthenticationPolicyConfiguration>,\n): Builder<\n Partial<Specification.DigestAuthenticationPolicyConfiguration>,\n DigestAuthenticationPolicyConfigurationIntersection\n> =>\n builder<Specification.DigestAuthenticationPolicyConfiguration, DigestAuthenticationPolicyConfigurationIntersection>(\n model,\n buildingFn,\n );\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { DigestAuthenticationPropertiesIntersection } from '../classes/digest-authentication-properties';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.DigestAuthenticationProperties} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {DigestAuthenticationPropertiesIntersection} The built object\n */\nfunction buildingFn(\n model: Specification.DigestAuthenticationProperties,\n options: BuildOptions,\n): DigestAuthenticationPropertiesIntersection {\n const instance = new Classes.DigestAuthenticationProperties(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as DigestAuthenticationPropertiesIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `DigestAuthenticationPropertiesIntersection`\n * @returns {Builder<DigestAuthenticationPropertiesIntersection, DigestAuthenticationPropertiesIntersection>} A builder for `DigestAuthenticationPropertiesIntersection`\n */\nexport const digestAuthenticationPropertiesBuilder = (\n model?: Partial<Specification.DigestAuthenticationProperties>,\n): Builder<Partial<Specification.DigestAuthenticationProperties>, DigestAuthenticationPropertiesIntersection> =>\n builder<Specification.DigestAuthenticationProperties, DigestAuthenticationPropertiesIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { DocumentIntersection } from '../classes/document';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.Document} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {DocumentIntersection} The built object\n */\nfunction buildingFn(model: Specification.Document, options: BuildOptions): DocumentIntersection {\n const instance = new Classes.Document(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as DocumentIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `DocumentIntersection`\n * @returns {Builder<DocumentIntersection, DocumentIntersection>} A builder for `DocumentIntersection`\n */\nexport const documentBuilder = (\n model?: Partial<Specification.Document>,\n): Builder<Partial<Specification.Document>, DocumentIntersection> =>\n builder<Specification.Document, DocumentIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { DoTaskIntersection } from '../classes/do-task';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.DoTask} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {DoTaskIntersection} The built object\n */\nfunction buildingFn(model: Specification.DoTask, options: BuildOptions): DoTaskIntersection {\n const instance = new Classes.DoTask(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as DoTaskIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `DoTaskIntersection`\n * @returns {Builder<DoTaskIntersection, DoTaskIntersection>} A builder for `DoTaskIntersection`\n */\nexport const doTaskBuilder = (\n model?: Partial<Specification.DoTask>,\n): Builder<Partial<Specification.DoTask>, DoTaskIntersection> =>\n builder<Specification.DoTask, DoTaskIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { DurationIntersection } from '../classes/duration';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.Duration} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {DurationIntersection} The built object\n */\nfunction buildingFn(model: Specification.Duration, options: BuildOptions): DurationIntersection {\n const instance = new Classes.Duration(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as DurationIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `DurationIntersection`\n * @returns {Builder<DurationIntersection, DurationIntersection>} A builder for `DurationIntersection`\n */\nexport const durationBuilder = (\n model?: Partial<Specification.Duration>,\n): Builder<Partial<Specification.Duration>, DurationIntersection> =>\n builder<Specification.Duration, DurationIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { DurationInlineIntersection } from '../classes/duration-inline';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.DurationInline} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {DurationInlineIntersection} The built object\n */\nfunction buildingFn(model: Specification.DurationInline, options: BuildOptions): DurationInlineIntersection {\n const instance = new Classes.DurationInline(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as DurationInlineIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `DurationInlineIntersection`\n * @returns {Builder<DurationInlineIntersection, DurationInlineIntersection>} A builder for `DurationInlineIntersection`\n */\nexport const durationInlineBuilder = (\n model?: Partial<Specification.DurationInline>,\n): Builder<Partial<Specification.DurationInline>, DurationInlineIntersection> =>\n builder<Specification.DurationInline, DurationInlineIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { EmitEventDefinitionIntersection } from '../classes/emit-event-definition';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.EmitEventDefinition} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {EmitEventDefinitionIntersection} The built object\n */\nfunction buildingFn(model: Specification.EmitEventDefinition, options: BuildOptions): EmitEventDefinitionIntersection {\n const instance = new Classes.EmitEventDefinition(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as EmitEventDefinitionIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `EmitEventDefinitionIntersection`\n * @returns {Builder<EmitEventDefinitionIntersection, EmitEventDefinitionIntersection>} A builder for `EmitEventDefinitionIntersection`\n */\nexport const emitEventDefinitionBuilder = (\n model?: Partial<Specification.EmitEventDefinition>,\n): Builder<Partial<Specification.EmitEventDefinition>, EmitEventDefinitionIntersection> =>\n builder<Specification.EmitEventDefinition, EmitEventDefinitionIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { EmitEventWithIntersection } from '../classes/emit-event-with';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.EmitEventWith} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {EmitEventWithIntersection} The built object\n */\nfunction buildingFn(model: Specification.EmitEventWith, options: BuildOptions): EmitEventWithIntersection {\n const instance = new Classes.EmitEventWith(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as EmitEventWithIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `EmitEventWithIntersection`\n * @returns {Builder<EmitEventWithIntersection, EmitEventWithIntersection>} A builder for `EmitEventWithIntersection`\n */\nexport const emitEventWithBuilder = (\n model?: Partial<Specification.EmitEventWith>,\n): Builder<Partial<Specification.EmitEventWith>, EmitEventWithIntersection> =>\n builder<Specification.EmitEventWith, EmitEventWithIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { EmitTaskIntersection } from '../classes/emit-task';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.EmitTask} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {EmitTaskIntersection} The built object\n */\nfunction buildingFn(model: Specification.EmitTask, options: BuildOptions): EmitTaskIntersection {\n const instance = new Classes.EmitTask(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as EmitTaskIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `EmitTaskIntersection`\n * @returns {Builder<EmitTaskIntersection, EmitTaskIntersection>} A builder for `EmitTaskIntersection`\n */\nexport const emitTaskBuilder = (\n model?: Partial<Specification.EmitTask>,\n): Builder<Partial<Specification.EmitTask>, EmitTaskIntersection> =>\n builder<Specification.EmitTask, EmitTaskIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { EmitTaskConfigurationIntersection } from '../classes/emit-task-configuration';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.EmitTaskConfiguration} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {EmitTaskConfigurationIntersection} The built object\n */\nfunction buildingFn(\n model: Specification.EmitTaskConfiguration,\n options: BuildOptions,\n): EmitTaskConfigurationIntersection {\n const instance = new Classes.EmitTaskConfiguration(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as EmitTaskConfigurationIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `EmitTaskConfigurationIntersection`\n * @returns {Builder<EmitTaskConfigurationIntersection, EmitTaskConfigurationIntersection>} A builder for `EmitTaskConfigurationIntersection`\n */\nexport const emitTaskConfigurationBuilder = (\n model?: Partial<Specification.EmitTaskConfiguration>,\n): Builder<Partial<Specification.EmitTaskConfiguration>, EmitTaskConfigurationIntersection> =>\n builder<Specification.EmitTaskConfiguration, EmitTaskConfigurationIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { EndpointIntersection } from '../classes/endpoint';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.Endpoint} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {EndpointIntersection} The built object\n */\nfunction buildingFn(model: Specification.Endpoint, options: BuildOptions): EndpointIntersection {\n const instance = new Classes.Endpoint(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as EndpointIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `EndpointIntersection`\n * @returns {Builder<EndpointIntersection, EndpointIntersection>} A builder for `EndpointIntersection`\n */\nexport const endpointBuilder = (\n model?: Partial<Specification.Endpoint>,\n): Builder<Partial<Specification.Endpoint>, EndpointIntersection> =>\n builder<Specification.Endpoint, EndpointIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { EndpointConfigurationIntersection } from '../classes/endpoint-configuration';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.EndpointConfiguration} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {EndpointConfigurationIntersection} The built object\n */\nfunction buildingFn(\n model: Specification.EndpointConfiguration,\n options: BuildOptions,\n): EndpointConfigurationIntersection {\n const instance = new Classes.EndpointConfiguration(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as EndpointConfigurationIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `EndpointConfigurationIntersection`\n * @returns {Builder<EndpointConfigurationIntersection, EndpointConfigurationIntersection>} A builder for `EndpointConfigurationIntersection`\n */\nexport const endpointConfigurationBuilder = (\n model?: Partial<Specification.EndpointConfiguration>,\n): Builder<Partial<Specification.EndpointConfiguration>, EndpointConfigurationIntersection> =>\n builder<Specification.EndpointConfiguration, EndpointConfigurationIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { EndpointUriIntersection } from '../classes/endpoint-uri';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.EndpointUri} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {EndpointUriIntersection} The built object\n */\nfunction buildingFn(model: Specification.EndpointUri, options: BuildOptions): EndpointUriIntersection {\n const instance = new Classes.EndpointUri(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as EndpointUriIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `EndpointUriIntersection`\n * @returns {Builder<EndpointUriIntersection, EndpointUriIntersection>} A builder for `EndpointUriIntersection`\n */\nexport const endpointUriBuilder = (\n model?: Partial<Specification.EndpointUri>,\n): Builder<Partial<Specification.EndpointUri>, EndpointUriIntersection> =>\n builder<Specification.EndpointUri, EndpointUriIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { ErrorIntersection } from '../classes/error';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.Error} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {ErrorIntersection} The built object\n */\nfunction buildingFn(model: Specification.Error, options: BuildOptions): ErrorIntersection {\n const instance = new Classes.Error(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as ErrorIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `ErrorIntersection`\n * @returns {Builder<ErrorIntersection, ErrorIntersection>} A builder for `ErrorIntersection`\n */\nexport const errorBuilder = (\n model?: Partial<Specification.Error>,\n): Builder<Partial<Specification.Error>, ErrorIntersection> =>\n builder<Specification.Error, ErrorIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { ErrorDetailsIntersection } from '../classes/error-details';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.ErrorDetails} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {ErrorDetailsIntersection} The built object\n */\nfunction buildingFn(model: Specification.ErrorDetails, options: BuildOptions): ErrorDetailsIntersection {\n const instance = new Classes.ErrorDetails(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as ErrorDetailsIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `ErrorDetailsIntersection`\n * @returns {Builder<ErrorDetailsIntersection, ErrorDetailsIntersection>} A builder for `ErrorDetailsIntersection`\n */\nexport const errorDetailsBuilder = (\n model?: Partial<Specification.ErrorDetails>,\n): Builder<Partial<Specification.ErrorDetails>, ErrorDetailsIntersection> =>\n builder<Specification.ErrorDetails, ErrorDetailsIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { ErrorFilterIntersection } from '../classes/error-filter';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.ErrorFilter} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {ErrorFilterIntersection} The built object\n */\nfunction buildingFn(model: Specification.ErrorFilter, options: BuildOptions): ErrorFilterIntersection {\n const instance = new Classes.ErrorFilter(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as ErrorFilterIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `ErrorFilterIntersection`\n * @returns {Builder<ErrorFilterIntersection, ErrorFilterIntersection>} A builder for `ErrorFilterIntersection`\n */\nexport const errorFilterBuilder = (\n model?: Partial<Specification.ErrorFilter>,\n): Builder<Partial<Specification.ErrorFilter>, ErrorFilterIntersection> =>\n builder<Specification.ErrorFilter, ErrorFilterIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { ErrorInstanceIntersection } from '../classes/error-instance';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.ErrorInstance} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {ErrorInstanceIntersection} The built object\n */\nfunction buildingFn(model: Specification.ErrorInstance, options: BuildOptions): ErrorInstanceIntersection {\n const instance = new Classes.ErrorInstance(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as ErrorInstanceIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `ErrorInstanceIntersection`\n * @returns {Builder<ErrorInstanceIntersection, ErrorInstanceIntersection>} A builder for `ErrorInstanceIntersection`\n */\nexport const errorInstanceBuilder = (\n model?: Partial<Specification.ErrorInstance>,\n): Builder<Partial<Specification.ErrorInstance>, ErrorInstanceIntersection> =>\n builder<Specification.ErrorInstance, ErrorInstanceIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { ErrorTitleIntersection } from '../classes/error-title';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.ErrorTitle} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {ErrorTitleIntersection} The built object\n */\nfunction buildingFn(model: Specification.ErrorTitle, options: BuildOptions): ErrorTitleIntersection {\n const instance = new Classes.ErrorTitle(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as ErrorTitleIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `ErrorTitleIntersection`\n * @returns {Builder<ErrorTitleIntersection, ErrorTitleIntersection>} A builder for `ErrorTitleIntersection`\n */\nexport const errorTitleBuilder = (\n model?: Partial<Specification.ErrorTitle>,\n): Builder<Partial<Specification.ErrorTitle>, ErrorTitleIntersection> =>\n builder<Specification.ErrorTitle, ErrorTitleIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { ErrorTypeIntersection } from '../classes/error-type';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.ErrorType} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {ErrorTypeIntersection} The built object\n */\nfunction buildingFn(model: Specification.ErrorType, options: BuildOptions): ErrorTypeIntersection {\n const instance = new Classes.ErrorType(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as ErrorTypeIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `ErrorTypeIntersection`\n * @returns {Builder<ErrorTypeIntersection, ErrorTypeIntersection>} A builder for `ErrorTypeIntersection`\n */\nexport const errorTypeBuilder = (\n model?: Partial<Specification.ErrorType>,\n): Builder<Partial<Specification.ErrorType>, ErrorTypeIntersection> =>\n builder<Specification.ErrorType, ErrorTypeIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { EventConsumptionStrategyIntersection } from '../classes/event-consumption-strategy';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.EventConsumptionStrategy} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {EventConsumptionStrategyIntersection} The built object\n */\nfunction buildingFn(\n model: Specification.EventConsumptionStrategy,\n options: BuildOptions,\n): EventConsumptionStrategyIntersection {\n const instance = new Classes.EventConsumptionStrategy(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as EventConsumptionStrategyIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `EventConsumptionStrategyIntersection`\n * @returns {Builder<EventConsumptionStrategyIntersection, EventConsumptionStrategyIntersection>} A builder for `EventConsumptionStrategyIntersection`\n */\nexport const eventConsumptionStrategyBuilder = (\n model?: Partial<Specification.EventConsumptionStrategy>,\n): Builder<Partial<Specification.EventConsumptionStrategy>, EventConsumptionStrategyIntersection> =>\n builder<Specification.EventConsumptionStrategy, EventConsumptionStrategyIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { EventDataIntersection } from '../classes/event-data';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.EventData} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {EventDataIntersection} The built object\n */\nfunction buildingFn(model: Specification.EventData, options: BuildOptions): EventDataIntersection {\n const instance = new Classes.EventData(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as EventDataIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `EventDataIntersection`\n * @returns {Builder<EventDataIntersection, EventDataIntersection>} A builder for `EventDataIntersection`\n */\nexport const eventDataBuilder = (\n model?: Partial<Specification.EventData>,\n): Builder<Partial<Specification.EventData>, EventDataIntersection> =>\n builder<Specification.EventData, EventDataIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { EventDataschemaIntersection } from '../classes/event-dataschema';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.EventDataschema} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {EventDataschemaIntersection} The built object\n */\nfunction buildingFn(model: Specification.EventDataschema, options: BuildOptions): EventDataschemaIntersection {\n const instance = new Classes.EventDataschema(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as EventDataschemaIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `EventDataschemaIntersection`\n * @returns {Builder<EventDataschemaIntersection, EventDataschemaIntersection>} A builder for `EventDataschemaIntersection`\n */\nexport const eventDataschemaBuilder = (\n model?: Partial<Specification.EventDataschema>,\n): Builder<Partial<Specification.EventDataschema>, EventDataschemaIntersection> =>\n builder<Specification.EventDataschema, EventDataschemaIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { EventFilterIntersection } from '../classes/event-filter';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.EventFilter} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {EventFilterIntersection} The built object\n */\nfunction buildingFn(model: Specification.EventFilter, options: BuildOptions): EventFilterIntersection {\n const instance = new Classes.EventFilter(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as EventFilterIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `EventFilterIntersection`\n * @returns {Builder<EventFilterIntersection, EventFilterIntersection>} A builder for `EventFilterIntersection`\n */\nexport const eventFilterBuilder = (\n model?: Partial<Specification.EventFilter>,\n): Builder<Partial<Specification.EventFilter>, EventFilterIntersection> =>\n builder<Specification.EventFilter, EventFilterIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { EventFilterCorrelateIntersection } from '../classes/event-filter-correlate';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.EventFilterCorrelate} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {EventFilterCorrelateIntersection} The built object\n */\nfunction buildingFn(\n model: Specification.EventFilterCorrelate,\n options: BuildOptions,\n): EventFilterCorrelateIntersection {\n const instance = new Classes.EventFilterCorrelate(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as EventFilterCorrelateIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `EventFilterCorrelateIntersection`\n * @returns {Builder<EventFilterCorrelateIntersection, EventFilterCorrelateIntersection>} A builder for `EventFilterCorrelateIntersection`\n */\nexport const eventFilterCorrelateBuilder = (\n model?: Partial<Specification.EventFilterCorrelate>,\n): Builder<Partial<Specification.EventFilterCorrelate>, EventFilterCorrelateIntersection> =>\n builder<Specification.EventFilterCorrelate, EventFilterCorrelateIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { EventSourceIntersection } from '../classes/event-source';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.EventSource} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {EventSourceIntersection} The built object\n */\nfunction buildingFn(model: Specification.EventSource, options: BuildOptions): EventSourceIntersection {\n const instance = new Classes.EventSource(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as EventSourceIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `EventSourceIntersection`\n * @returns {Builder<EventSourceIntersection, EventSourceIntersection>} A builder for `EventSourceIntersection`\n */\nexport const eventSourceBuilder = (\n model?: Partial<Specification.EventSource>,\n): Builder<Partial<Specification.EventSource>, EventSourceIntersection> =>\n builder<Specification.EventSource, EventSourceIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { EventTimeIntersection } from '../classes/event-time';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.EventTime} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {EventTimeIntersection} The built object\n */\nfunction buildingFn(model: Specification.EventTime, options: BuildOptions): EventTimeIntersection {\n const instance = new Classes.EventTime(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as EventTimeIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `EventTimeIntersection`\n * @returns {Builder<EventTimeIntersection, EventTimeIntersection>} A builder for `EventTimeIntersection`\n */\nexport const eventTimeBuilder = (\n model?: Partial<Specification.EventTime>,\n): Builder<Partial<Specification.EventTime>, EventTimeIntersection> =>\n builder<Specification.EventTime, EventTimeIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { ExponentialBackOffIntersection } from '../classes/exponential-back-off';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.ExponentialBackOff} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {ExponentialBackOffIntersection} The built object\n */\nfunction buildingFn(model: Specification.ExponentialBackOff, options: BuildOptions): ExponentialBackOffIntersection {\n const instance = new Classes.ExponentialBackOff(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as ExponentialBackOffIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `ExponentialBackOffIntersection`\n * @returns {Builder<ExponentialBackOffIntersection, ExponentialBackOffIntersection>} A builder for `ExponentialBackOffIntersection`\n */\nexport const exponentialBackOffBuilder = (\n model?: Partial<Specification.ExponentialBackOff>,\n): Builder<Partial<Specification.ExponentialBackOff>, ExponentialBackOffIntersection> =>\n builder<Specification.ExponentialBackOff, ExponentialBackOffIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { ExportIntersection } from '../classes/export';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.Export} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {ExportIntersection} The built object\n */\nfunction buildingFn(model: Specification.Export, options: BuildOptions): ExportIntersection {\n const instance = new Classes.Export(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as ExportIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `ExportIntersection`\n * @returns {Builder<ExportIntersection, ExportIntersection>} A builder for `ExportIntersection`\n */\nexport const exportBuilder = (\n model?: Partial<Specification.Export>,\n): Builder<Partial<Specification.Export>, ExportIntersection> =>\n builder<Specification.Export, ExportIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { ExportAsIntersection } from '../classes/export-as';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.ExportAs} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {ExportAsIntersection} The built object\n */\nfunction buildingFn(model: Specification.ExportAs, options: BuildOptions): ExportAsIntersection {\n const instance = new Classes.ExportAs(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as ExportAsIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `ExportAsIntersection`\n * @returns {Builder<ExportAsIntersection, ExportAsIntersection>} A builder for `ExportAsIntersection`\n */\nexport const exportAsBuilder = (\n model?: Partial<Specification.ExportAs>,\n): Builder<Partial<Specification.ExportAs>, ExportAsIntersection> =>\n builder<Specification.ExportAs, ExportAsIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { ExtensionIntersection } from '../classes/extension';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.Extension} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {ExtensionIntersection} The built object\n */\nfunction buildingFn(model: Specification.Extension, options: BuildOptions): ExtensionIntersection {\n const instance = new Classes.Extension(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as ExtensionIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `ExtensionIntersection`\n * @returns {Builder<ExtensionIntersection, ExtensionIntersection>} A builder for `ExtensionIntersection`\n */\nexport const extensionBuilder = (\n model?: Partial<Specification.Extension>,\n): Builder<Partial<Specification.Extension>, ExtensionIntersection> =>\n builder<Specification.Extension, ExtensionIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { ExtensionItemIntersection } from '../classes/extension-item';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.ExtensionItem} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {ExtensionItemIntersection} The built object\n */\nfunction buildingFn(model: Specification.ExtensionItem, options: BuildOptions): ExtensionItemIntersection {\n const instance = new Classes.ExtensionItem(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as ExtensionItemIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `ExtensionItemIntersection`\n * @returns {Builder<ExtensionItemIntersection, ExtensionItemIntersection>} A builder for `ExtensionItemIntersection`\n */\nexport const extensionItemBuilder = (\n model?: Partial<Specification.ExtensionItem>,\n): Builder<Partial<Specification.ExtensionItem>, ExtensionItemIntersection> =>\n builder<Specification.ExtensionItem, ExtensionItemIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { ExternalResourceIntersection } from '../classes/external-resource';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.ExternalResource} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {ExternalResourceIntersection} The built object\n */\nfunction buildingFn(model: Specification.ExternalResource, options: BuildOptions): ExternalResourceIntersection {\n const instance = new Classes.ExternalResource(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as ExternalResourceIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `ExternalResourceIntersection`\n * @returns {Builder<ExternalResourceIntersection, ExternalResourceIntersection>} A builder for `ExternalResourceIntersection`\n */\nexport const externalResourceBuilder = (\n model?: Partial<Specification.ExternalResource>,\n): Builder<Partial<Specification.ExternalResource>, ExternalResourceIntersection> =>\n builder<Specification.ExternalResource, ExternalResourceIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { ExternalScriptIntersection } from '../classes/external-script';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.ExternalScript} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {ExternalScriptIntersection} The built object\n */\nfunction buildingFn(model: Specification.ExternalScript, options: BuildOptions): ExternalScriptIntersection {\n const instance = new Classes.ExternalScript(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as ExternalScriptIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `ExternalScriptIntersection`\n * @returns {Builder<ExternalScriptIntersection, ExternalScriptIntersection>} A builder for `ExternalScriptIntersection`\n */\nexport const externalScriptBuilder = (\n model?: Partial<Specification.ExternalScript>,\n): Builder<Partial<Specification.ExternalScript>, ExternalScriptIntersection> =>\n builder<Specification.ExternalScript, ExternalScriptIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { FlowDirectiveIntersection } from '../classes/flow-directive';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.FlowDirective} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {FlowDirectiveIntersection} The built object\n */\nfunction buildingFn(model: Specification.FlowDirective, options: BuildOptions): FlowDirectiveIntersection {\n const instance = new Classes.FlowDirective(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as FlowDirectiveIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `FlowDirectiveIntersection`\n * @returns {Builder<FlowDirectiveIntersection, FlowDirectiveIntersection>} A builder for `FlowDirectiveIntersection`\n */\nexport const flowDirectiveBuilder = (\n model?: Partial<Specification.FlowDirective>,\n): Builder<Partial<Specification.FlowDirective>, FlowDirectiveIntersection> =>\n builder<Specification.FlowDirective, FlowDirectiveIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { ForkTaskIntersection } from '../classes/fork-task';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.ForkTask} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {ForkTaskIntersection} The built object\n */\nfunction buildingFn(model: Specification.ForkTask, options: BuildOptions): ForkTaskIntersection {\n const instance = new Classes.ForkTask(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as ForkTaskIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `ForkTaskIntersection`\n * @returns {Builder<ForkTaskIntersection, ForkTaskIntersection>} A builder for `ForkTaskIntersection`\n */\nexport const forkTaskBuilder = (\n model?: Partial<Specification.ForkTask>,\n): Builder<Partial<Specification.ForkTask>, ForkTaskIntersection> =>\n builder<Specification.ForkTask, ForkTaskIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { ForkTaskConfigurationIntersection } from '../classes/fork-task-configuration';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.ForkTaskConfiguration} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {ForkTaskConfigurationIntersection} The built object\n */\nfunction buildingFn(\n model: Specification.ForkTaskConfiguration,\n options: BuildOptions,\n): ForkTaskConfigurationIntersection {\n const instance = new Classes.ForkTaskConfiguration(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as ForkTaskConfigurationIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `ForkTaskConfigurationIntersection`\n * @returns {Builder<ForkTaskConfigurationIntersection, ForkTaskConfigurationIntersection>} A builder for `ForkTaskConfigurationIntersection`\n */\nexport const forkTaskConfigurationBuilder = (\n model?: Partial<Specification.ForkTaskConfiguration>,\n): Builder<Partial<Specification.ForkTaskConfiguration>, ForkTaskConfigurationIntersection> =>\n builder<Specification.ForkTaskConfiguration, ForkTaskConfigurationIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { ForTaskIntersection } from '../classes/for-task';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.ForTask} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {ForTaskIntersection} The built object\n */\nfunction buildingFn(model: Specification.ForTask, options: BuildOptions): ForTaskIntersection {\n const instance = new Classes.ForTask(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as ForTaskIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `ForTaskIntersection`\n * @returns {Builder<ForTaskIntersection, ForTaskIntersection>} A builder for `ForTaskIntersection`\n */\nexport const forTaskBuilder = (\n model?: Partial<Specification.ForTask>,\n): Builder<Partial<Specification.ForTask>, ForTaskIntersection> =>\n builder<Specification.ForTask, ForTaskIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { ForTaskConfigurationIntersection } from '../classes/for-task-configuration';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.ForTaskConfiguration} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {ForTaskConfigurationIntersection} The built object\n */\nfunction buildingFn(\n model: Specification.ForTaskConfiguration,\n options: BuildOptions,\n): ForTaskConfigurationIntersection {\n const instance = new Classes.ForTaskConfiguration(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as ForTaskConfigurationIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `ForTaskConfigurationIntersection`\n * @returns {Builder<ForTaskConfigurationIntersection, ForTaskConfigurationIntersection>} A builder for `ForTaskConfigurationIntersection`\n */\nexport const forTaskConfigurationBuilder = (\n model?: Partial<Specification.ForTaskConfiguration>,\n): Builder<Partial<Specification.ForTaskConfiguration>, ForTaskConfigurationIntersection> =>\n builder<Specification.ForTaskConfiguration, ForTaskConfigurationIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { FunctionArgumentsIntersection } from '../classes/function-arguments';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.FunctionArguments} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {FunctionArgumentsIntersection} The built object\n */\nfunction buildingFn(model: Specification.FunctionArguments, options: BuildOptions): FunctionArgumentsIntersection {\n const instance = new Classes.FunctionArguments(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as FunctionArgumentsIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `FunctionArgumentsIntersection`\n * @returns {Builder<FunctionArgumentsIntersection, FunctionArgumentsIntersection>} A builder for `FunctionArgumentsIntersection`\n */\nexport const functionArgumentsBuilder = (\n model?: Partial<Specification.FunctionArguments>,\n): Builder<Partial<Specification.FunctionArguments>, FunctionArgumentsIntersection> =>\n builder<Specification.FunctionArguments, FunctionArgumentsIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { GRPCArgumentsIntersection } from '../classes/grpc-arguments';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.GRPCArguments} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {GRPCArgumentsIntersection} The built object\n */\nfunction buildingFn(model: Specification.GRPCArguments, options: BuildOptions): GRPCArgumentsIntersection {\n const instance = new Classes.GRPCArguments(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as GRPCArgumentsIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `GRPCArgumentsIntersection`\n * @returns {Builder<GRPCArgumentsIntersection, GRPCArgumentsIntersection>} A builder for `GRPCArgumentsIntersection`\n */\nexport const gRPCArgumentsBuilder = (\n model?: Partial<Specification.GRPCArguments>,\n): Builder<Partial<Specification.GRPCArguments>, GRPCArgumentsIntersection> =>\n builder<Specification.GRPCArguments, GRPCArgumentsIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { HTTPArgumentsIntersection } from '../classes/http-arguments';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.HTTPArguments} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {HTTPArgumentsIntersection} The built object\n */\nfunction buildingFn(model: Specification.HTTPArguments, options: BuildOptions): HTTPArgumentsIntersection {\n const instance = new Classes.HTTPArguments(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as HTTPArgumentsIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `HTTPArgumentsIntersection`\n * @returns {Builder<HTTPArgumentsIntersection, HTTPArgumentsIntersection>} A builder for `HTTPArgumentsIntersection`\n */\nexport const hTTPArgumentsBuilder = (\n model?: Partial<Specification.HTTPArguments>,\n): Builder<Partial<Specification.HTTPArguments>, HTTPArgumentsIntersection> =>\n builder<Specification.HTTPArguments, HTTPArgumentsIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { HTTPBodyIntersection } from '../classes/http-body';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.HTTPBody} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {HTTPBodyIntersection} The built object\n */\nfunction buildingFn(model: Specification.HTTPBody, options: BuildOptions): HTTPBodyIntersection {\n const instance = new Classes.HTTPBody(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as HTTPBodyIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `HTTPBodyIntersection`\n * @returns {Builder<HTTPBodyIntersection, HTTPBodyIntersection>} A builder for `HTTPBodyIntersection`\n */\nexport const hTTPBodyBuilder = (\n model?: Partial<Specification.HTTPBody>,\n): Builder<Partial<Specification.HTTPBody>, HTTPBodyIntersection> =>\n builder<Specification.HTTPBody, HTTPBodyIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { HTTPHeadersIntersection } from '../classes/http-headers';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.HTTPHeaders} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {HTTPHeadersIntersection} The built object\n */\nfunction buildingFn(model: Specification.HTTPHeaders, options: BuildOptions): HTTPHeadersIntersection {\n const instance = new Classes.HTTPHeaders(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as HTTPHeadersIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `HTTPHeadersIntersection`\n * @returns {Builder<HTTPHeadersIntersection, HTTPHeadersIntersection>} A builder for `HTTPHeadersIntersection`\n */\nexport const hTTPHeadersBuilder = (\n model?: Partial<Specification.HTTPHeaders>,\n): Builder<Partial<Specification.HTTPHeaders>, HTTPHeadersIntersection> =>\n builder<Specification.HTTPHeaders, HTTPHeadersIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { HTTPQueryIntersection } from '../classes/http-query';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.HTTPQuery} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {HTTPQueryIntersection} The built object\n */\nfunction buildingFn(model: Specification.HTTPQuery, options: BuildOptions): HTTPQueryIntersection {\n const instance = new Classes.HTTPQuery(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as HTTPQueryIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `HTTPQueryIntersection`\n * @returns {Builder<HTTPQueryIntersection, HTTPQueryIntersection>} A builder for `HTTPQueryIntersection`\n */\nexport const hTTPQueryBuilder = (\n model?: Partial<Specification.HTTPQuery>,\n): Builder<Partial<Specification.HTTPQuery>, HTTPQueryIntersection> =>\n builder<Specification.HTTPQuery, HTTPQueryIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { InlineScriptIntersection } from '../classes/inline-script';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.InlineScript} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {InlineScriptIntersection} The built object\n */\nfunction buildingFn(model: Specification.InlineScript, options: BuildOptions): InlineScriptIntersection {\n const instance = new Classes.InlineScript(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as InlineScriptIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `InlineScriptIntersection`\n * @returns {Builder<InlineScriptIntersection, InlineScriptIntersection>} A builder for `InlineScriptIntersection`\n */\nexport const inlineScriptBuilder = (\n model?: Partial<Specification.InlineScript>,\n): Builder<Partial<Specification.InlineScript>, InlineScriptIntersection> =>\n builder<Specification.InlineScript, InlineScriptIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { InputIntersection } from '../classes/input';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.Input} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {InputIntersection} The built object\n */\nfunction buildingFn(model: Specification.Input, options: BuildOptions): InputIntersection {\n const instance = new Classes.Input(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as InputIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `InputIntersection`\n * @returns {Builder<InputIntersection, InputIntersection>} A builder for `InputIntersection`\n */\nexport const inputBuilder = (\n model?: Partial<Specification.Input>,\n): Builder<Partial<Specification.Input>, InputIntersection> =>\n builder<Specification.Input, InputIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { InputFromIntersection } from '../classes/input-from';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.InputFrom} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {InputFromIntersection} The built object\n */\nfunction buildingFn(model: Specification.InputFrom, options: BuildOptions): InputFromIntersection {\n const instance = new Classes.InputFrom(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as InputFromIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `InputFromIntersection`\n * @returns {Builder<InputFromIntersection, InputFromIntersection>} A builder for `InputFromIntersection`\n */\nexport const inputFromBuilder = (\n model?: Partial<Specification.InputFrom>,\n): Builder<Partial<Specification.InputFrom>, InputFromIntersection> =>\n builder<Specification.InputFrom, InputFromIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { LinearBackoffIntersection } from '../classes/linear-backoff';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.LinearBackoff} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {LinearBackoffIntersection} The built object\n */\nfunction buildingFn(model: Specification.LinearBackoff, options: BuildOptions): LinearBackoffIntersection {\n const instance = new Classes.LinearBackoff(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as LinearBackoffIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `LinearBackoffIntersection`\n * @returns {Builder<LinearBackoffIntersection, LinearBackoffIntersection>} A builder for `LinearBackoffIntersection`\n */\nexport const linearBackoffBuilder = (\n model?: Partial<Specification.LinearBackoff>,\n): Builder<Partial<Specification.LinearBackoff>, LinearBackoffIntersection> =>\n builder<Specification.LinearBackoff, LinearBackoffIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { ListenTaskIntersection } from '../classes/listen-task';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.ListenTask} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {ListenTaskIntersection} The built object\n */\nfunction buildingFn(model: Specification.ListenTask, options: BuildOptions): ListenTaskIntersection {\n const instance = new Classes.ListenTask(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as ListenTaskIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `ListenTaskIntersection`\n * @returns {Builder<ListenTaskIntersection, ListenTaskIntersection>} A builder for `ListenTaskIntersection`\n */\nexport const listenTaskBuilder = (\n model?: Partial<Specification.ListenTask>,\n): Builder<Partial<Specification.ListenTask>, ListenTaskIntersection> =>\n builder<Specification.ListenTask, ListenTaskIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { ListenTaskConfigurationIntersection } from '../classes/listen-task-configuration';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.ListenTaskConfiguration} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {ListenTaskConfigurationIntersection} The built object\n */\nfunction buildingFn(\n model: Specification.ListenTaskConfiguration,\n options: BuildOptions,\n): ListenTaskConfigurationIntersection {\n const instance = new Classes.ListenTaskConfiguration(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as ListenTaskConfigurationIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `ListenTaskConfigurationIntersection`\n * @returns {Builder<ListenTaskConfigurationIntersection, ListenTaskConfigurationIntersection>} A builder for `ListenTaskConfigurationIntersection`\n */\nexport const listenTaskConfigurationBuilder = (\n model?: Partial<Specification.ListenTaskConfiguration>,\n): Builder<Partial<Specification.ListenTaskConfiguration>, ListenTaskConfigurationIntersection> =>\n builder<Specification.ListenTaskConfiguration, ListenTaskConfigurationIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { MCPArgumentsIntersection } from '../classes/mcp-arguments';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.MCPArguments} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {MCPArgumentsIntersection} The built object\n */\nfunction buildingFn(model: Specification.MCPArguments, options: BuildOptions): MCPArgumentsIntersection {\n const instance = new Classes.MCPArguments(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as MCPArgumentsIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `MCPArgumentsIntersection`\n * @returns {Builder<MCPArgumentsIntersection, MCPArgumentsIntersection>} A builder for `MCPArgumentsIntersection`\n */\nexport const mCPArgumentsBuilder = (\n model?: Partial<Specification.MCPArguments>,\n): Builder<Partial<Specification.MCPArguments>, MCPArgumentsIntersection> =>\n builder<Specification.MCPArguments, MCPArgumentsIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { McpCallTransportIntersection } from '../classes/mcp-call-transport';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.McpCallTransport} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {McpCallTransportIntersection} The built object\n */\nfunction buildingFn(model: Specification.McpCallTransport, options: BuildOptions): McpCallTransportIntersection {\n const instance = new Classes.McpCallTransport(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as McpCallTransportIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `McpCallTransportIntersection`\n * @returns {Builder<McpCallTransportIntersection, McpCallTransportIntersection>} A builder for `McpCallTransportIntersection`\n */\nexport const mcpCallTransportBuilder = (\n model?: Partial<Specification.McpCallTransport>,\n): Builder<Partial<Specification.McpCallTransport>, McpCallTransportIntersection> =>\n builder<Specification.McpCallTransport, McpCallTransportIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { McpClientIntersection } from '../classes/mcp-client';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.McpClient} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {McpClientIntersection} The built object\n */\nfunction buildingFn(model: Specification.McpClient, options: BuildOptions): McpClientIntersection {\n const instance = new Classes.McpClient(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as McpClientIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `McpClientIntersection`\n * @returns {Builder<McpClientIntersection, McpClientIntersection>} A builder for `McpClientIntersection`\n */\nexport const mcpClientBuilder = (\n model?: Partial<Specification.McpClient>,\n): Builder<Partial<Specification.McpClient>, McpClientIntersection> =>\n builder<Specification.McpClient, McpClientIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { McpMethodParametersIntersection } from '../classes/mcp-method-parameters';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.McpMethodParameters} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {McpMethodParametersIntersection} The built object\n */\nfunction buildingFn(model: Specification.McpMethodParameters, options: BuildOptions): McpMethodParametersIntersection {\n const instance = new Classes.McpMethodParameters(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as McpMethodParametersIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `McpMethodParametersIntersection`\n * @returns {Builder<McpMethodParametersIntersection, McpMethodParametersIntersection>} A builder for `McpMethodParametersIntersection`\n */\nexport const mcpMethodParametersBuilder = (\n model?: Partial<Specification.McpMethodParameters>,\n): Builder<Partial<Specification.McpMethodParameters>, McpMethodParametersIntersection> =>\n builder<Specification.McpMethodParameters, McpMethodParametersIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { OAuth2AuthenticationDataIntersection } from '../classes/oauth2-authentication-data';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.OAuth2AuthenticationData} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {OAuth2AuthenticationDataIntersection} The built object\n */\nfunction buildingFn(\n model: Specification.OAuth2AuthenticationData,\n options: BuildOptions,\n): OAuth2AuthenticationDataIntersection {\n const instance = new Classes.OAuth2AuthenticationData(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as OAuth2AuthenticationDataIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `OAuth2AuthenticationDataIntersection`\n * @returns {Builder<OAuth2AuthenticationDataIntersection, OAuth2AuthenticationDataIntersection>} A builder for `OAuth2AuthenticationDataIntersection`\n */\nexport const oAuth2AuthenticationDataBuilder = (\n model?: Partial<Specification.OAuth2AuthenticationData>,\n): Builder<Partial<Specification.OAuth2AuthenticationData>, OAuth2AuthenticationDataIntersection> =>\n builder<Specification.OAuth2AuthenticationData, OAuth2AuthenticationDataIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { arrayBuilder, ArrayBuilder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { OAuth2AuthenticationDataAudiencesIntersection } from '../classes/oauth2-authentication-data-audiences';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying array\n * @param {Specification.OAuth2AuthenticationDataAudiences} model The proxied array\n * @param {BuildOptions} options The build options to use\n * @returns {OAuth2AuthenticationDataAudiencesIntersection} The built array\n */\nfunction buildingFn(\n model: Specification.OAuth2AuthenticationDataAudiences,\n options: BuildOptions,\n): OAuth2AuthenticationDataAudiencesIntersection {\n const instance = new Classes.OAuth2AuthenticationDataAudiences(model);\n if (options.validate) instance.validate();\n return (options.normalize\n ? instance.normalize()\n : instance) as unknown as OAuth2AuthenticationDataAudiencesIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `OAuth2AuthenticationDataAudiencesIntersection`\n * @returns {ArrayBuilder<string, OAuth2AuthenticationDataAudiencesIntersection>} A builder for `OAuth2AuthenticationDataAudiencesIntersection`\n */\nexport const oAuth2AuthenticationDataAudiencesBuilder = (\n model?: Specification.OAuth2AuthenticationDataAudiences,\n): ArrayBuilder<string, OAuth2AuthenticationDataAudiencesIntersection> =>\n arrayBuilder<string, OAuth2AuthenticationDataAudiencesIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { OAuth2AuthenticationDataClientIntersection } from '../classes/oauth2-authentication-data-client';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.OAuth2AuthenticationDataClient} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {OAuth2AuthenticationDataClientIntersection} The built object\n */\nfunction buildingFn(\n model: Specification.OAuth2AuthenticationDataClient,\n options: BuildOptions,\n): OAuth2AuthenticationDataClientIntersection {\n const instance = new Classes.OAuth2AuthenticationDataClient(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as OAuth2AuthenticationDataClientIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `OAuth2AuthenticationDataClientIntersection`\n * @returns {Builder<OAuth2AuthenticationDataClientIntersection, OAuth2AuthenticationDataClientIntersection>} A builder for `OAuth2AuthenticationDataClientIntersection`\n */\nexport const oAuth2AuthenticationDataClientBuilder = (\n model?: Partial<Specification.OAuth2AuthenticationDataClient>,\n): Builder<Partial<Specification.OAuth2AuthenticationDataClient>, OAuth2AuthenticationDataClientIntersection> =>\n builder<Specification.OAuth2AuthenticationDataClient, OAuth2AuthenticationDataClientIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { arrayBuilder, ArrayBuilder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { OAuth2AuthenticationDataScopesIntersection } from '../classes/oauth2-authentication-data-scopes';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying array\n * @param {Specification.OAuth2AuthenticationDataScopes} model The proxied array\n * @param {BuildOptions} options The build options to use\n * @returns {OAuth2AuthenticationDataScopesIntersection} The built array\n */\nfunction buildingFn(\n model: Specification.OAuth2AuthenticationDataScopes,\n options: BuildOptions,\n): OAuth2AuthenticationDataScopesIntersection {\n const instance = new Classes.OAuth2AuthenticationDataScopes(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as unknown as OAuth2AuthenticationDataScopesIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `OAuth2AuthenticationDataScopesIntersection`\n * @returns {ArrayBuilder<string, OAuth2AuthenticationDataScopesIntersection>} A builder for `OAuth2AuthenticationDataScopesIntersection`\n */\nexport const oAuth2AuthenticationDataScopesBuilder = (\n model?: Specification.OAuth2AuthenticationDataScopes,\n): ArrayBuilder<string, OAuth2AuthenticationDataScopesIntersection> =>\n arrayBuilder<string, OAuth2AuthenticationDataScopesIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { OAuth2AuthenticationPolicyIntersection } from '../classes/oauth2-authentication-policy';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.OAuth2AuthenticationPolicy} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {OAuth2AuthenticationPolicyIntersection} The built object\n */\nfunction buildingFn(\n model: Specification.OAuth2AuthenticationPolicy,\n options: BuildOptions,\n): OAuth2AuthenticationPolicyIntersection {\n const instance = new Classes.OAuth2AuthenticationPolicy(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as OAuth2AuthenticationPolicyIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `OAuth2AuthenticationPolicyIntersection`\n * @returns {Builder<OAuth2AuthenticationPolicyIntersection, OAuth2AuthenticationPolicyIntersection>} A builder for `OAuth2AuthenticationPolicyIntersection`\n */\nexport const oAuth2AuthenticationPolicyBuilder = (\n model?: Partial<Specification.OAuth2AuthenticationPolicy>,\n): Builder<Partial<Specification.OAuth2AuthenticationPolicy>, OAuth2AuthenticationPolicyIntersection> =>\n builder<Specification.OAuth2AuthenticationPolicy, OAuth2AuthenticationPolicyIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { OAuth2AuthenticationPolicyConfigurationIntersection } from '../classes/oauth2-authentication-policy-configuration';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.OAuth2AuthenticationPolicyConfiguration} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {OAuth2AuthenticationPolicyConfigurationIntersection} The built object\n */\nfunction buildingFn(\n model: Specification.OAuth2AuthenticationPolicyConfiguration,\n options: BuildOptions,\n): OAuth2AuthenticationPolicyConfigurationIntersection {\n const instance = new Classes.OAuth2AuthenticationPolicyConfiguration(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as OAuth2AuthenticationPolicyConfigurationIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `OAuth2AuthenticationPolicyConfigurationIntersection`\n * @returns {Builder<OAuth2AuthenticationPolicyConfigurationIntersection, OAuth2AuthenticationPolicyConfigurationIntersection>} A builder for `OAuth2AuthenticationPolicyConfigurationIntersection`\n */\nexport const oAuth2AuthenticationPolicyConfigurationBuilder = (\n model?: Partial<Specification.OAuth2AuthenticationPolicyConfiguration>,\n): Builder<\n Partial<Specification.OAuth2AuthenticationPolicyConfiguration>,\n OAuth2AuthenticationPolicyConfigurationIntersection\n> =>\n builder<Specification.OAuth2AuthenticationPolicyConfiguration, OAuth2AuthenticationPolicyConfigurationIntersection>(\n model,\n buildingFn,\n );\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { OAuth2AuthenticationPropertiesEndpointsIntersection } from '../classes/oauth2-authentication-properties-endpoints';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.OAuth2AuthenticationPropertiesEndpoints} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {OAuth2AuthenticationPropertiesEndpointsIntersection} The built object\n */\nfunction buildingFn(\n model: Specification.OAuth2AuthenticationPropertiesEndpoints,\n options: BuildOptions,\n): OAuth2AuthenticationPropertiesEndpointsIntersection {\n const instance = new Classes.OAuth2AuthenticationPropertiesEndpoints(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as OAuth2AuthenticationPropertiesEndpointsIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `OAuth2AuthenticationPropertiesEndpointsIntersection`\n * @returns {Builder<OAuth2AuthenticationPropertiesEndpointsIntersection, OAuth2AuthenticationPropertiesEndpointsIntersection>} A builder for `OAuth2AuthenticationPropertiesEndpointsIntersection`\n */\nexport const oAuth2AuthenticationPropertiesEndpointsBuilder = (\n model?: Partial<Specification.OAuth2AuthenticationPropertiesEndpoints>,\n): Builder<\n Partial<Specification.OAuth2AuthenticationPropertiesEndpoints>,\n OAuth2AuthenticationPropertiesEndpointsIntersection\n> =>\n builder<Specification.OAuth2AuthenticationPropertiesEndpoints, OAuth2AuthenticationPropertiesEndpointsIntersection>(\n model,\n buildingFn,\n );\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { OAuth2ConnectAuthenticationPropertiesIntersection } from '../classes/oauth2-connect-authentication-properties';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.OAuth2ConnectAuthenticationProperties} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {OAuth2ConnectAuthenticationPropertiesIntersection} The built object\n */\nfunction buildingFn(\n model: Specification.OAuth2ConnectAuthenticationProperties,\n options: BuildOptions,\n): OAuth2ConnectAuthenticationPropertiesIntersection {\n const instance = new Classes.OAuth2ConnectAuthenticationProperties(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as OAuth2ConnectAuthenticationPropertiesIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `OAuth2ConnectAuthenticationPropertiesIntersection`\n * @returns {Builder<OAuth2ConnectAuthenticationPropertiesIntersection, OAuth2ConnectAuthenticationPropertiesIntersection>} A builder for `OAuth2ConnectAuthenticationPropertiesIntersection`\n */\nexport const oAuth2ConnectAuthenticationPropertiesBuilder = (\n model?: Partial<Specification.OAuth2ConnectAuthenticationProperties>,\n): Builder<\n Partial<Specification.OAuth2ConnectAuthenticationProperties>,\n OAuth2ConnectAuthenticationPropertiesIntersection\n> =>\n builder<Specification.OAuth2ConnectAuthenticationProperties, OAuth2ConnectAuthenticationPropertiesIntersection>(\n model,\n buildingFn,\n );\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { arrayBuilder, ArrayBuilder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { OAuth2IssuersIntersection } from '../classes/oauth2-issuers';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying array\n * @param {Specification.OAuth2Issuers} model The proxied array\n * @param {BuildOptions} options The build options to use\n * @returns {OAuth2IssuersIntersection} The built array\n */\nfunction buildingFn(model: Specification.OAuth2Issuers, options: BuildOptions): OAuth2IssuersIntersection {\n const instance = new Classes.OAuth2Issuers(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as unknown as OAuth2IssuersIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `OAuth2IssuersIntersection`\n * @returns {ArrayBuilder<string, OAuth2IssuersIntersection>} A builder for `OAuth2IssuersIntersection`\n */\nexport const oAuth2IssuersBuilder = (\n model?: Specification.OAuth2Issuers,\n): ArrayBuilder<string, OAuth2IssuersIntersection> =>\n arrayBuilder<string, OAuth2IssuersIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { OAuth2TokenDefinitionIntersection } from '../classes/oauth2-token-definition';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.OAuth2TokenDefinition} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {OAuth2TokenDefinitionIntersection} The built object\n */\nfunction buildingFn(\n model: Specification.OAuth2TokenDefinition,\n options: BuildOptions,\n): OAuth2TokenDefinitionIntersection {\n const instance = new Classes.OAuth2TokenDefinition(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as OAuth2TokenDefinitionIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `OAuth2TokenDefinitionIntersection`\n * @returns {Builder<OAuth2TokenDefinitionIntersection, OAuth2TokenDefinitionIntersection>} A builder for `OAuth2TokenDefinitionIntersection`\n */\nexport const oAuth2TokenDefinitionBuilder = (\n model?: Partial<Specification.OAuth2TokenDefinition>,\n): Builder<Partial<Specification.OAuth2TokenDefinition>, OAuth2TokenDefinitionIntersection> =>\n builder<Specification.OAuth2TokenDefinition, OAuth2TokenDefinitionIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { OAuth2TokenRequestIntersection } from '../classes/oauth2-token-request';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.OAuth2TokenRequest} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {OAuth2TokenRequestIntersection} The built object\n */\nfunction buildingFn(model: Specification.OAuth2TokenRequest, options: BuildOptions): OAuth2TokenRequestIntersection {\n const instance = new Classes.OAuth2TokenRequest(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as OAuth2TokenRequestIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `OAuth2TokenRequestIntersection`\n * @returns {Builder<OAuth2TokenRequestIntersection, OAuth2TokenRequestIntersection>} A builder for `OAuth2TokenRequestIntersection`\n */\nexport const oAuth2TokenRequestBuilder = (\n model?: Partial<Specification.OAuth2TokenRequest>,\n): Builder<Partial<Specification.OAuth2TokenRequest>, OAuth2TokenRequestIntersection> =>\n builder<Specification.OAuth2TokenRequest, OAuth2TokenRequestIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { OneEventConsumptionStrategyIntersection } from '../classes/one-event-consumption-strategy';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.OneEventConsumptionStrategy} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {OneEventConsumptionStrategyIntersection} The built object\n */\nfunction buildingFn(\n model: Specification.OneEventConsumptionStrategy,\n options: BuildOptions,\n): OneEventConsumptionStrategyIntersection {\n const instance = new Classes.OneEventConsumptionStrategy(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as OneEventConsumptionStrategyIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `OneEventConsumptionStrategyIntersection`\n * @returns {Builder<OneEventConsumptionStrategyIntersection, OneEventConsumptionStrategyIntersection>} A builder for `OneEventConsumptionStrategyIntersection`\n */\nexport const oneEventConsumptionStrategyBuilder = (\n model?: Partial<Specification.OneEventConsumptionStrategy>,\n): Builder<Partial<Specification.OneEventConsumptionStrategy>, OneEventConsumptionStrategyIntersection> =>\n builder<Specification.OneEventConsumptionStrategy, OneEventConsumptionStrategyIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { OpenAPIArgumentsIntersection } from '../classes/open-api-arguments';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.OpenAPIArguments} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {OpenAPIArgumentsIntersection} The built object\n */\nfunction buildingFn(model: Specification.OpenAPIArguments, options: BuildOptions): OpenAPIArgumentsIntersection {\n const instance = new Classes.OpenAPIArguments(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as OpenAPIArgumentsIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `OpenAPIArgumentsIntersection`\n * @returns {Builder<OpenAPIArgumentsIntersection, OpenAPIArgumentsIntersection>} A builder for `OpenAPIArgumentsIntersection`\n */\nexport const openAPIArgumentsBuilder = (\n model?: Partial<Specification.OpenAPIArguments>,\n): Builder<Partial<Specification.OpenAPIArguments>, OpenAPIArgumentsIntersection> =>\n builder<Specification.OpenAPIArguments, OpenAPIArgumentsIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { OpenIdConnectAuthenticationPolicyIntersection } from '../classes/open-id-connect-authentication-policy';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.OpenIdConnectAuthenticationPolicy} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {OpenIdConnectAuthenticationPolicyIntersection} The built object\n */\nfunction buildingFn(\n model: Specification.OpenIdConnectAuthenticationPolicy,\n options: BuildOptions,\n): OpenIdConnectAuthenticationPolicyIntersection {\n const instance = new Classes.OpenIdConnectAuthenticationPolicy(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as OpenIdConnectAuthenticationPolicyIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `OpenIdConnectAuthenticationPolicyIntersection`\n * @returns {Builder<OpenIdConnectAuthenticationPolicyIntersection, OpenIdConnectAuthenticationPolicyIntersection>} A builder for `OpenIdConnectAuthenticationPolicyIntersection`\n */\nexport const openIdConnectAuthenticationPolicyBuilder = (\n model?: Partial<Specification.OpenIdConnectAuthenticationPolicy>,\n): Builder<Partial<Specification.OpenIdConnectAuthenticationPolicy>, OpenIdConnectAuthenticationPolicyIntersection> =>\n builder<Specification.OpenIdConnectAuthenticationPolicy, OpenIdConnectAuthenticationPolicyIntersection>(\n model,\n buildingFn,\n );\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { OpenIdConnectAuthenticationPolicyConfigurationIntersection } from '../classes/open-id-connect-authentication-policy-configuration';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.OpenIdConnectAuthenticationPolicyConfiguration} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {OpenIdConnectAuthenticationPolicyConfigurationIntersection} The built object\n */\nfunction buildingFn(\n model: Specification.OpenIdConnectAuthenticationPolicyConfiguration,\n options: BuildOptions,\n): OpenIdConnectAuthenticationPolicyConfigurationIntersection {\n const instance = new Classes.OpenIdConnectAuthenticationPolicyConfiguration(model);\n if (options.validate) instance.validate();\n return (\n options.normalize ? instance.normalize() : instance\n ) as OpenIdConnectAuthenticationPolicyConfigurationIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `OpenIdConnectAuthenticationPolicyConfigurationIntersection`\n * @returns {Builder<OpenIdConnectAuthenticationPolicyConfigurationIntersection, OpenIdConnectAuthenticationPolicyConfigurationIntersection>} A builder for `OpenIdConnectAuthenticationPolicyConfigurationIntersection`\n */\nexport const openIdConnectAuthenticationPolicyConfigurationBuilder = (\n model?: Partial<Specification.OpenIdConnectAuthenticationPolicyConfiguration>,\n): Builder<\n Partial<Specification.OpenIdConnectAuthenticationPolicyConfiguration>,\n OpenIdConnectAuthenticationPolicyConfigurationIntersection\n> =>\n builder<\n Specification.OpenIdConnectAuthenticationPolicyConfiguration,\n OpenIdConnectAuthenticationPolicyConfigurationIntersection\n >(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { OpenIdConnectAuthenticationPropertiesIntersection } from '../classes/open-id-connect-authentication-properties';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.OpenIdConnectAuthenticationProperties} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {OpenIdConnectAuthenticationPropertiesIntersection} The built object\n */\nfunction buildingFn(\n model: Specification.OpenIdConnectAuthenticationProperties,\n options: BuildOptions,\n): OpenIdConnectAuthenticationPropertiesIntersection {\n const instance = new Classes.OpenIdConnectAuthenticationProperties(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as OpenIdConnectAuthenticationPropertiesIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `OpenIdConnectAuthenticationPropertiesIntersection`\n * @returns {Builder<OpenIdConnectAuthenticationPropertiesIntersection, OpenIdConnectAuthenticationPropertiesIntersection>} A builder for `OpenIdConnectAuthenticationPropertiesIntersection`\n */\nexport const openIdConnectAuthenticationPropertiesBuilder = (\n model?: Partial<Specification.OpenIdConnectAuthenticationProperties>,\n): Builder<\n Partial<Specification.OpenIdConnectAuthenticationProperties>,\n OpenIdConnectAuthenticationPropertiesIntersection\n> =>\n builder<Specification.OpenIdConnectAuthenticationProperties, OpenIdConnectAuthenticationPropertiesIntersection>(\n model,\n buildingFn,\n );\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { OutputIntersection } from '../classes/output';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.Output} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {OutputIntersection} The built object\n */\nfunction buildingFn(model: Specification.Output, options: BuildOptions): OutputIntersection {\n const instance = new Classes.Output(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as OutputIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `OutputIntersection`\n * @returns {Builder<OutputIntersection, OutputIntersection>} A builder for `OutputIntersection`\n */\nexport const outputBuilder = (\n model?: Partial<Specification.Output>,\n): Builder<Partial<Specification.Output>, OutputIntersection> =>\n builder<Specification.Output, OutputIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { OutputAsIntersection } from '../classes/output-as';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.OutputAs} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {OutputAsIntersection} The built object\n */\nfunction buildingFn(model: Specification.OutputAs, options: BuildOptions): OutputAsIntersection {\n const instance = new Classes.OutputAs(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as OutputAsIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `OutputAsIntersection`\n * @returns {Builder<OutputAsIntersection, OutputAsIntersection>} A builder for `OutputAsIntersection`\n */\nexport const outputAsBuilder = (\n model?: Partial<Specification.OutputAs>,\n): Builder<Partial<Specification.OutputAs>, OutputAsIntersection> =>\n builder<Specification.OutputAs, OutputAsIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { RaiseTaskIntersection } from '../classes/raise-task';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.RaiseTask} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {RaiseTaskIntersection} The built object\n */\nfunction buildingFn(model: Specification.RaiseTask, options: BuildOptions): RaiseTaskIntersection {\n const instance = new Classes.RaiseTask(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as RaiseTaskIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `RaiseTaskIntersection`\n * @returns {Builder<RaiseTaskIntersection, RaiseTaskIntersection>} A builder for `RaiseTaskIntersection`\n */\nexport const raiseTaskBuilder = (\n model?: Partial<Specification.RaiseTask>,\n): Builder<Partial<Specification.RaiseTask>, RaiseTaskIntersection> =>\n builder<Specification.RaiseTask, RaiseTaskIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { RaiseTaskConfigurationIntersection } from '../classes/raise-task-configuration';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.RaiseTaskConfiguration} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {RaiseTaskConfigurationIntersection} The built object\n */\nfunction buildingFn(\n model: Specification.RaiseTaskConfiguration,\n options: BuildOptions,\n): RaiseTaskConfigurationIntersection {\n const instance = new Classes.RaiseTaskConfiguration(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as RaiseTaskConfigurationIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `RaiseTaskConfigurationIntersection`\n * @returns {Builder<RaiseTaskConfigurationIntersection, RaiseTaskConfigurationIntersection>} A builder for `RaiseTaskConfigurationIntersection`\n */\nexport const raiseTaskConfigurationBuilder = (\n model?: Partial<Specification.RaiseTaskConfiguration>,\n): Builder<Partial<Specification.RaiseTaskConfiguration>, RaiseTaskConfigurationIntersection> =>\n builder<Specification.RaiseTaskConfiguration, RaiseTaskConfigurationIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { RaiseTaskErrorIntersection } from '../classes/raise-task-error';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.RaiseTaskError} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {RaiseTaskErrorIntersection} The built object\n */\nfunction buildingFn(model: Specification.RaiseTaskError, options: BuildOptions): RaiseTaskErrorIntersection {\n const instance = new Classes.RaiseTaskError(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as RaiseTaskErrorIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `RaiseTaskErrorIntersection`\n * @returns {Builder<RaiseTaskErrorIntersection, RaiseTaskErrorIntersection>} A builder for `RaiseTaskErrorIntersection`\n */\nexport const raiseTaskErrorBuilder = (\n model?: Partial<Specification.RaiseTaskError>,\n): Builder<Partial<Specification.RaiseTaskError>, RaiseTaskErrorIntersection> =>\n builder<Specification.RaiseTaskError, RaiseTaskErrorIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { ReferenceableAuthenticationPolicyIntersection } from '../classes/referenceable-authentication-policy';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.ReferenceableAuthenticationPolicy} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {ReferenceableAuthenticationPolicyIntersection} The built object\n */\nfunction buildingFn(\n model: Specification.ReferenceableAuthenticationPolicy,\n options: BuildOptions,\n): ReferenceableAuthenticationPolicyIntersection {\n const instance = new Classes.ReferenceableAuthenticationPolicy(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as ReferenceableAuthenticationPolicyIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `ReferenceableAuthenticationPolicyIntersection`\n * @returns {Builder<ReferenceableAuthenticationPolicyIntersection, ReferenceableAuthenticationPolicyIntersection>} A builder for `ReferenceableAuthenticationPolicyIntersection`\n */\nexport const referenceableAuthenticationPolicyBuilder = (\n model?: Partial<Specification.ReferenceableAuthenticationPolicy>,\n): Builder<Partial<Specification.ReferenceableAuthenticationPolicy>, ReferenceableAuthenticationPolicyIntersection> =>\n builder<Specification.ReferenceableAuthenticationPolicy, ReferenceableAuthenticationPolicyIntersection>(\n model,\n buildingFn,\n );\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { RetryBackoffIntersection } from '../classes/retry-backoff';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.RetryBackoff} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {RetryBackoffIntersection} The built object\n */\nfunction buildingFn(model: Specification.RetryBackoff, options: BuildOptions): RetryBackoffIntersection {\n const instance = new Classes.RetryBackoff(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as RetryBackoffIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `RetryBackoffIntersection`\n * @returns {Builder<RetryBackoffIntersection, RetryBackoffIntersection>} A builder for `RetryBackoffIntersection`\n */\nexport const retryBackoffBuilder = (\n model?: Partial<Specification.RetryBackoff>,\n): Builder<Partial<Specification.RetryBackoff>, RetryBackoffIntersection> =>\n builder<Specification.RetryBackoff, RetryBackoffIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { RetryLimitIntersection } from '../classes/retry-limit';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.RetryLimit} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {RetryLimitIntersection} The built object\n */\nfunction buildingFn(model: Specification.RetryLimit, options: BuildOptions): RetryLimitIntersection {\n const instance = new Classes.RetryLimit(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as RetryLimitIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `RetryLimitIntersection`\n * @returns {Builder<RetryLimitIntersection, RetryLimitIntersection>} A builder for `RetryLimitIntersection`\n */\nexport const retryLimitBuilder = (\n model?: Partial<Specification.RetryLimit>,\n): Builder<Partial<Specification.RetryLimit>, RetryLimitIntersection> =>\n builder<Specification.RetryLimit, RetryLimitIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { RetryLimitAttemptIntersection } from '../classes/retry-limit-attempt';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.RetryLimitAttempt} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {RetryLimitAttemptIntersection} The built object\n */\nfunction buildingFn(model: Specification.RetryLimitAttempt, options: BuildOptions): RetryLimitAttemptIntersection {\n const instance = new Classes.RetryLimitAttempt(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as RetryLimitAttemptIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `RetryLimitAttemptIntersection`\n * @returns {Builder<RetryLimitAttemptIntersection, RetryLimitAttemptIntersection>} A builder for `RetryLimitAttemptIntersection`\n */\nexport const retryLimitAttemptBuilder = (\n model?: Partial<Specification.RetryLimitAttempt>,\n): Builder<Partial<Specification.RetryLimitAttempt>, RetryLimitAttemptIntersection> =>\n builder<Specification.RetryLimitAttempt, RetryLimitAttemptIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { RetryPolicyIntersection } from '../classes/retry-policy';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.RetryPolicy} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {RetryPolicyIntersection} The built object\n */\nfunction buildingFn(model: Specification.RetryPolicy, options: BuildOptions): RetryPolicyIntersection {\n const instance = new Classes.RetryPolicy(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as RetryPolicyIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `RetryPolicyIntersection`\n * @returns {Builder<RetryPolicyIntersection, RetryPolicyIntersection>} A builder for `RetryPolicyIntersection`\n */\nexport const retryPolicyBuilder = (\n model?: Partial<Specification.RetryPolicy>,\n): Builder<Partial<Specification.RetryPolicy>, RetryPolicyIntersection> =>\n builder<Specification.RetryPolicy, RetryPolicyIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { RetryPolicyJitterIntersection } from '../classes/retry-policy-jitter';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.RetryPolicyJitter} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {RetryPolicyJitterIntersection} The built object\n */\nfunction buildingFn(model: Specification.RetryPolicyJitter, options: BuildOptions): RetryPolicyJitterIntersection {\n const instance = new Classes.RetryPolicyJitter(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as RetryPolicyJitterIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `RetryPolicyJitterIntersection`\n * @returns {Builder<RetryPolicyJitterIntersection, RetryPolicyJitterIntersection>} A builder for `RetryPolicyJitterIntersection`\n */\nexport const retryPolicyJitterBuilder = (\n model?: Partial<Specification.RetryPolicyJitter>,\n): Builder<Partial<Specification.RetryPolicyJitter>, RetryPolicyJitterIntersection> =>\n builder<Specification.RetryPolicyJitter, RetryPolicyJitterIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { RunContainerIntersection } from '../classes/run-container';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.RunContainer} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {RunContainerIntersection} The built object\n */\nfunction buildingFn(model: Specification.RunContainer, options: BuildOptions): RunContainerIntersection {\n const instance = new Classes.RunContainer(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as RunContainerIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `RunContainerIntersection`\n * @returns {Builder<RunContainerIntersection, RunContainerIntersection>} A builder for `RunContainerIntersection`\n */\nexport const runContainerBuilder = (\n model?: Partial<Specification.RunContainer>,\n): Builder<Partial<Specification.RunContainer>, RunContainerIntersection> =>\n builder<Specification.RunContainer, RunContainerIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { RunScriptIntersection } from '../classes/run-script';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.RunScript} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {RunScriptIntersection} The built object\n */\nfunction buildingFn(model: Specification.RunScript, options: BuildOptions): RunScriptIntersection {\n const instance = new Classes.RunScript(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as RunScriptIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `RunScriptIntersection`\n * @returns {Builder<RunScriptIntersection, RunScriptIntersection>} A builder for `RunScriptIntersection`\n */\nexport const runScriptBuilder = (\n model?: Partial<Specification.RunScript>,\n): Builder<Partial<Specification.RunScript>, RunScriptIntersection> =>\n builder<Specification.RunScript, RunScriptIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { RunShellIntersection } from '../classes/run-shell';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.RunShell} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {RunShellIntersection} The built object\n */\nfunction buildingFn(model: Specification.RunShell, options: BuildOptions): RunShellIntersection {\n const instance = new Classes.RunShell(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as RunShellIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `RunShellIntersection`\n * @returns {Builder<RunShellIntersection, RunShellIntersection>} A builder for `RunShellIntersection`\n */\nexport const runShellBuilder = (\n model?: Partial<Specification.RunShell>,\n): Builder<Partial<Specification.RunShell>, RunShellIntersection> =>\n builder<Specification.RunShell, RunShellIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { RunTaskIntersection } from '../classes/run-task';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.RunTask} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {RunTaskIntersection} The built object\n */\nfunction buildingFn(model: Specification.RunTask, options: BuildOptions): RunTaskIntersection {\n const instance = new Classes.RunTask(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as RunTaskIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `RunTaskIntersection`\n * @returns {Builder<RunTaskIntersection, RunTaskIntersection>} A builder for `RunTaskIntersection`\n */\nexport const runTaskBuilder = (\n model?: Partial<Specification.RunTask>,\n): Builder<Partial<Specification.RunTask>, RunTaskIntersection> =>\n builder<Specification.RunTask, RunTaskIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { RunTaskConfigurationIntersection } from '../classes/run-task-configuration';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.RunTaskConfiguration} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {RunTaskConfigurationIntersection} The built object\n */\nfunction buildingFn(\n model: Specification.RunTaskConfiguration,\n options: BuildOptions,\n): RunTaskConfigurationIntersection {\n const instance = new Classes.RunTaskConfiguration(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as RunTaskConfigurationIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `RunTaskConfigurationIntersection`\n * @returns {Builder<RunTaskConfigurationIntersection, RunTaskConfigurationIntersection>} A builder for `RunTaskConfigurationIntersection`\n */\nexport const runTaskConfigurationBuilder = (\n model?: Partial<Specification.RunTaskConfiguration>,\n): Builder<Partial<Specification.RunTaskConfiguration>, RunTaskConfigurationIntersection> =>\n builder<Specification.RunTaskConfiguration, RunTaskConfigurationIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { RuntimeExpressionIntersection } from '../classes/runtime-expression';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.RuntimeExpression} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {RuntimeExpressionIntersection} The built object\n */\nfunction buildingFn(model: Specification.RuntimeExpression, options: BuildOptions): RuntimeExpressionIntersection {\n const instance = new Classes.RuntimeExpression(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as RuntimeExpressionIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `RuntimeExpressionIntersection`\n * @returns {Builder<RuntimeExpressionIntersection, RuntimeExpressionIntersection>} A builder for `RuntimeExpressionIntersection`\n */\nexport const runtimeExpressionBuilder = (\n model?: Partial<Specification.RuntimeExpression>,\n): Builder<Partial<Specification.RuntimeExpression>, RuntimeExpressionIntersection> =>\n builder<Specification.RuntimeExpression, RuntimeExpressionIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { RunWorkflowIntersection } from '../classes/run-workflow';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.RunWorkflow} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {RunWorkflowIntersection} The built object\n */\nfunction buildingFn(model: Specification.RunWorkflow, options: BuildOptions): RunWorkflowIntersection {\n const instance = new Classes.RunWorkflow(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as RunWorkflowIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `RunWorkflowIntersection`\n * @returns {Builder<RunWorkflowIntersection, RunWorkflowIntersection>} A builder for `RunWorkflowIntersection`\n */\nexport const runWorkflowBuilder = (\n model?: Partial<Specification.RunWorkflow>,\n): Builder<Partial<Specification.RunWorkflow>, RunWorkflowIntersection> =>\n builder<Specification.RunWorkflow, RunWorkflowIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { ScheduleIntersection } from '../classes/schedule';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.Schedule} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {ScheduleIntersection} The built object\n */\nfunction buildingFn(model: Specification.Schedule, options: BuildOptions): ScheduleIntersection {\n const instance = new Classes.Schedule(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as ScheduleIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `ScheduleIntersection`\n * @returns {Builder<ScheduleIntersection, ScheduleIntersection>} A builder for `ScheduleIntersection`\n */\nexport const scheduleBuilder = (\n model?: Partial<Specification.Schedule>,\n): Builder<Partial<Specification.Schedule>, ScheduleIntersection> =>\n builder<Specification.Schedule, ScheduleIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { SchemaIntersection } from '../classes/schema';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.Schema} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {SchemaIntersection} The built object\n */\nfunction buildingFn(model: Specification.Schema, options: BuildOptions): SchemaIntersection {\n const instance = new Classes.Schema(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as SchemaIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `SchemaIntersection`\n * @returns {Builder<SchemaIntersection, SchemaIntersection>} A builder for `SchemaIntersection`\n */\nexport const schemaBuilder = (\n model?: Partial<Specification.Schema>,\n): Builder<Partial<Specification.Schema>, SchemaIntersection> =>\n builder<Specification.Schema, SchemaIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { SchemaExternalIntersection } from '../classes/schema-external';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.SchemaExternal} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {SchemaExternalIntersection} The built object\n */\nfunction buildingFn(model: Specification.SchemaExternal, options: BuildOptions): SchemaExternalIntersection {\n const instance = new Classes.SchemaExternal(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as SchemaExternalIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `SchemaExternalIntersection`\n * @returns {Builder<SchemaExternalIntersection, SchemaExternalIntersection>} A builder for `SchemaExternalIntersection`\n */\nexport const schemaExternalBuilder = (\n model?: Partial<Specification.SchemaExternal>,\n): Builder<Partial<Specification.SchemaExternal>, SchemaExternalIntersection> =>\n builder<Specification.SchemaExternal, SchemaExternalIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { SchemaInlineIntersection } from '../classes/schema-inline';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.SchemaInline} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {SchemaInlineIntersection} The built object\n */\nfunction buildingFn(model: Specification.SchemaInline, options: BuildOptions): SchemaInlineIntersection {\n const instance = new Classes.SchemaInline(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as SchemaInlineIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `SchemaInlineIntersection`\n * @returns {Builder<SchemaInlineIntersection, SchemaInlineIntersection>} A builder for `SchemaInlineIntersection`\n */\nexport const schemaInlineBuilder = (\n model?: Partial<Specification.SchemaInline>,\n): Builder<Partial<Specification.SchemaInline>, SchemaInlineIntersection> =>\n builder<Specification.SchemaInline, SchemaInlineIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { ScriptIntersection } from '../classes/script';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.Script} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {ScriptIntersection} The built object\n */\nfunction buildingFn(model: Specification.Script, options: BuildOptions): ScriptIntersection {\n const instance = new Classes.Script(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as ScriptIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `ScriptIntersection`\n * @returns {Builder<ScriptIntersection, ScriptIntersection>} A builder for `ScriptIntersection`\n */\nexport const scriptBuilder = (\n model?: Partial<Specification.Script>,\n): Builder<Partial<Specification.Script>, ScriptIntersection> =>\n builder<Specification.Script, ScriptIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { SecretBasedAuthenticationPolicyIntersection } from '../classes/secret-based-authentication-policy';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.SecretBasedAuthenticationPolicy} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {SecretBasedAuthenticationPolicyIntersection} The built object\n */\nfunction buildingFn(\n model: Specification.SecretBasedAuthenticationPolicy,\n options: BuildOptions,\n): SecretBasedAuthenticationPolicyIntersection {\n const instance = new Classes.SecretBasedAuthenticationPolicy(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as SecretBasedAuthenticationPolicyIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `SecretBasedAuthenticationPolicyIntersection`\n * @returns {Builder<SecretBasedAuthenticationPolicyIntersection, SecretBasedAuthenticationPolicyIntersection>} A builder for `SecretBasedAuthenticationPolicyIntersection`\n */\nexport const secretBasedAuthenticationPolicyBuilder = (\n model?: Partial<Specification.SecretBasedAuthenticationPolicy>,\n): Builder<Partial<Specification.SecretBasedAuthenticationPolicy>, SecretBasedAuthenticationPolicyIntersection> =>\n builder<Specification.SecretBasedAuthenticationPolicy, SecretBasedAuthenticationPolicyIntersection>(\n model,\n buildingFn,\n );\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { SetTaskIntersection } from '../classes/set-task';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.SetTask} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {SetTaskIntersection} The built object\n */\nfunction buildingFn(model: Specification.SetTask, options: BuildOptions): SetTaskIntersection {\n const instance = new Classes.SetTask(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as SetTaskIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `SetTaskIntersection`\n * @returns {Builder<SetTaskIntersection, SetTaskIntersection>} A builder for `SetTaskIntersection`\n */\nexport const setTaskBuilder = (\n model?: Partial<Specification.SetTask>,\n): Builder<Partial<Specification.SetTask>, SetTaskIntersection> =>\n builder<Specification.SetTask, SetTaskIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { SetTaskConfigurationIntersection } from '../classes/set-task-configuration';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.SetTaskConfiguration} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {SetTaskConfigurationIntersection} The built object\n */\nfunction buildingFn(\n model: Specification.SetTaskConfiguration,\n options: BuildOptions,\n): SetTaskConfigurationIntersection {\n const instance = new Classes.SetTaskConfiguration(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as SetTaskConfigurationIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `SetTaskConfigurationIntersection`\n * @returns {Builder<SetTaskConfigurationIntersection, SetTaskConfigurationIntersection>} A builder for `SetTaskConfigurationIntersection`\n */\nexport const setTaskConfigurationBuilder = (\n model?: Partial<Specification.SetTaskConfiguration>,\n): Builder<Partial<Specification.SetTaskConfiguration>, SetTaskConfigurationIntersection> =>\n builder<Specification.SetTaskConfiguration, SetTaskConfigurationIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { ShellIntersection } from '../classes/shell';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.Shell} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {ShellIntersection} The built object\n */\nfunction buildingFn(model: Specification.Shell, options: BuildOptions): ShellIntersection {\n const instance = new Classes.Shell(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as ShellIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `ShellIntersection`\n * @returns {Builder<ShellIntersection, ShellIntersection>} A builder for `ShellIntersection`\n */\nexport const shellBuilder = (\n model?: Partial<Specification.Shell>,\n): Builder<Partial<Specification.Shell>, ShellIntersection> =>\n builder<Specification.Shell, ShellIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { arrayBuilder, ArrayBuilder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { ShellArgumentsIntersection } from '../classes/shell-arguments';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying array\n * @param {Specification.ShellArguments} model The proxied array\n * @param {BuildOptions} options The build options to use\n * @returns {ShellArgumentsIntersection} The built array\n */\nfunction buildingFn(model: Specification.ShellArguments, options: BuildOptions): ShellArgumentsIntersection {\n const instance = new Classes.ShellArguments(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as unknown as ShellArgumentsIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `ShellArgumentsIntersection`\n * @returns {ArrayBuilder<string, ShellArgumentsIntersection>} A builder for `ShellArgumentsIntersection`\n */\nexport const shellArgumentsBuilder = (\n model?: Specification.ShellArguments,\n): ArrayBuilder<string, ShellArgumentsIntersection> =>\n arrayBuilder<string, ShellArgumentsIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { ShellEnvironmentIntersection } from '../classes/shell-environment';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.ShellEnvironment} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {ShellEnvironmentIntersection} The built object\n */\nfunction buildingFn(model: Specification.ShellEnvironment, options: BuildOptions): ShellEnvironmentIntersection {\n const instance = new Classes.ShellEnvironment(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as ShellEnvironmentIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `ShellEnvironmentIntersection`\n * @returns {Builder<ShellEnvironmentIntersection, ShellEnvironmentIntersection>} A builder for `ShellEnvironmentIntersection`\n */\nexport const shellEnvironmentBuilder = (\n model?: Partial<Specification.ShellEnvironment>,\n): Builder<Partial<Specification.ShellEnvironment>, ShellEnvironmentIntersection> =>\n builder<Specification.ShellEnvironment, ShellEnvironmentIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { SubflowConfigurationIntersection } from '../classes/subflow-configuration';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.SubflowConfiguration} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {SubflowConfigurationIntersection} The built object\n */\nfunction buildingFn(\n model: Specification.SubflowConfiguration,\n options: BuildOptions,\n): SubflowConfigurationIntersection {\n const instance = new Classes.SubflowConfiguration(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as SubflowConfigurationIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `SubflowConfigurationIntersection`\n * @returns {Builder<SubflowConfigurationIntersection, SubflowConfigurationIntersection>} A builder for `SubflowConfigurationIntersection`\n */\nexport const subflowConfigurationBuilder = (\n model?: Partial<Specification.SubflowConfiguration>,\n): Builder<Partial<Specification.SubflowConfiguration>, SubflowConfigurationIntersection> =>\n builder<Specification.SubflowConfiguration, SubflowConfigurationIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { SubflowInputIntersection } from '../classes/subflow-input';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.SubflowInput} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {SubflowInputIntersection} The built object\n */\nfunction buildingFn(model: Specification.SubflowInput, options: BuildOptions): SubflowInputIntersection {\n const instance = new Classes.SubflowInput(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as SubflowInputIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `SubflowInputIntersection`\n * @returns {Builder<SubflowInputIntersection, SubflowInputIntersection>} A builder for `SubflowInputIntersection`\n */\nexport const subflowInputBuilder = (\n model?: Partial<Specification.SubflowInput>,\n): Builder<Partial<Specification.SubflowInput>, SubflowInputIntersection> =>\n builder<Specification.SubflowInput, SubflowInputIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { SubscriptionIteratorIntersection } from '../classes/subscription-iterator';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.SubscriptionIterator} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {SubscriptionIteratorIntersection} The built object\n */\nfunction buildingFn(\n model: Specification.SubscriptionIterator,\n options: BuildOptions,\n): SubscriptionIteratorIntersection {\n const instance = new Classes.SubscriptionIterator(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as SubscriptionIteratorIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `SubscriptionIteratorIntersection`\n * @returns {Builder<SubscriptionIteratorIntersection, SubscriptionIteratorIntersection>} A builder for `SubscriptionIteratorIntersection`\n */\nexport const subscriptionIteratorBuilder = (\n model?: Partial<Specification.SubscriptionIterator>,\n): Builder<Partial<Specification.SubscriptionIterator>, SubscriptionIteratorIntersection> =>\n builder<Specification.SubscriptionIterator, SubscriptionIteratorIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { SwitchCaseIntersection } from '../classes/switch-case';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.SwitchCase} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {SwitchCaseIntersection} The built object\n */\nfunction buildingFn(model: Specification.SwitchCase, options: BuildOptions): SwitchCaseIntersection {\n const instance = new Classes.SwitchCase(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as SwitchCaseIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `SwitchCaseIntersection`\n * @returns {Builder<SwitchCaseIntersection, SwitchCaseIntersection>} A builder for `SwitchCaseIntersection`\n */\nexport const switchCaseBuilder = (\n model?: Partial<Specification.SwitchCase>,\n): Builder<Partial<Specification.SwitchCase>, SwitchCaseIntersection> =>\n builder<Specification.SwitchCase, SwitchCaseIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { SwitchItemIntersection } from '../classes/switch-item';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.SwitchItem} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {SwitchItemIntersection} The built object\n */\nfunction buildingFn(model: Specification.SwitchItem, options: BuildOptions): SwitchItemIntersection {\n const instance = new Classes.SwitchItem(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as SwitchItemIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `SwitchItemIntersection`\n * @returns {Builder<SwitchItemIntersection, SwitchItemIntersection>} A builder for `SwitchItemIntersection`\n */\nexport const switchItemBuilder = (\n model?: Partial<Specification.SwitchItem>,\n): Builder<Partial<Specification.SwitchItem>, SwitchItemIntersection> =>\n builder<Specification.SwitchItem, SwitchItemIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { SwitchTaskIntersection } from '../classes/switch-task';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.SwitchTask} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {SwitchTaskIntersection} The built object\n */\nfunction buildingFn(model: Specification.SwitchTask, options: BuildOptions): SwitchTaskIntersection {\n const instance = new Classes.SwitchTask(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as SwitchTaskIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `SwitchTaskIntersection`\n * @returns {Builder<SwitchTaskIntersection, SwitchTaskIntersection>} A builder for `SwitchTaskIntersection`\n */\nexport const switchTaskBuilder = (\n model?: Partial<Specification.SwitchTask>,\n): Builder<Partial<Specification.SwitchTask>, SwitchTaskIntersection> =>\n builder<Specification.SwitchTask, SwitchTaskIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { SwitchTaskConfigurationIntersection } from '../classes/switch-task-configuration';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.SwitchTaskConfiguration} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {SwitchTaskConfigurationIntersection} The built object\n */\nfunction buildingFn(\n model: Specification.SwitchTaskConfiguration,\n options: BuildOptions,\n): SwitchTaskConfigurationIntersection {\n const instance = new Classes.SwitchTaskConfiguration(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as unknown as SwitchTaskConfigurationIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `SwitchTaskConfigurationIntersection`\n * @returns {Builder<SwitchTaskConfigurationIntersection, SwitchTaskConfigurationIntersection>} A builder for `SwitchTaskConfigurationIntersection`\n */\nexport const switchTaskConfigurationBuilder = (\n model?: Partial<Specification.SwitchTaskConfiguration>,\n): Builder<Partial<Specification.SwitchTaskConfiguration>, SwitchTaskConfigurationIntersection> =>\n builder<Specification.SwitchTaskConfiguration, SwitchTaskConfigurationIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { TaskIntersection } from '../classes/task';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.Task} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {TaskIntersection} The built object\n */\nfunction buildingFn(model: Specification.Task, options: BuildOptions): TaskIntersection {\n const instance = new Classes.Task(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as TaskIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `TaskIntersection`\n * @returns {Builder<TaskIntersection, TaskIntersection>} A builder for `TaskIntersection`\n */\nexport const taskBuilder = (\n model?: Partial<Specification.Task>,\n): Builder<Partial<Specification.Task>, TaskIntersection> =>\n builder<Specification.Task, TaskIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { TaskBaseIntersection } from '../classes/task-base';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.TaskBase} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {TaskBaseIntersection} The built object\n */\nfunction buildingFn(model: Specification.TaskBase, options: BuildOptions): TaskBaseIntersection {\n const instance = new Classes.TaskBase(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as TaskBaseIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `TaskBaseIntersection`\n * @returns {Builder<TaskBaseIntersection, TaskBaseIntersection>} A builder for `TaskBaseIntersection`\n */\nexport const taskBaseBuilder = (\n model?: Partial<Specification.TaskBase>,\n): Builder<Partial<Specification.TaskBase>, TaskBaseIntersection> =>\n builder<Specification.TaskBase, TaskBaseIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { TaskBaseIfIntersection } from '../classes/task-base-if';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.TaskBaseIf} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {TaskBaseIfIntersection} The built object\n */\nfunction buildingFn(model: Specification.TaskBaseIf, options: BuildOptions): TaskBaseIfIntersection {\n const instance = new Classes.TaskBaseIf(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as TaskBaseIfIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `TaskBaseIfIntersection`\n * @returns {Builder<TaskBaseIfIntersection, TaskBaseIfIntersection>} A builder for `TaskBaseIfIntersection`\n */\nexport const taskBaseIfBuilder = (\n model?: Partial<Specification.TaskBaseIf>,\n): Builder<Partial<Specification.TaskBaseIf>, TaskBaseIfIntersection> =>\n builder<Specification.TaskBaseIf, TaskBaseIfIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { TaskItemIntersection } from '../classes/task-item';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.TaskItem} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {TaskItemIntersection} The built object\n */\nfunction buildingFn(model: Specification.TaskItem, options: BuildOptions): TaskItemIntersection {\n const instance = new Classes.TaskItem(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as TaskItemIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `TaskItemIntersection`\n * @returns {Builder<TaskItemIntersection, TaskItemIntersection>} A builder for `TaskItemIntersection`\n */\nexport const taskItemBuilder = (\n model?: Partial<Specification.TaskItem>,\n): Builder<Partial<Specification.TaskItem>, TaskItemIntersection> =>\n builder<Specification.TaskItem, TaskItemIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { arrayBuilder, ArrayBuilder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { TaskListIntersection } from '../classes/task-list';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying array\n * @param {Specification.TaskList} model The proxied array\n * @param {BuildOptions} options The build options to use\n * @returns {TaskListIntersection} The built array\n */\nfunction buildingFn(model: Specification.TaskList, options: BuildOptions): TaskListIntersection {\n const instance = new Classes.TaskList(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as unknown as TaskListIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `TaskListIntersection`\n * @returns {ArrayBuilder<Specification.TaskItem, TaskListIntersection>} A builder for `TaskListIntersection`\n */\nexport const taskListBuilder = (\n model?: Specification.TaskList,\n): ArrayBuilder<Specification.TaskItem, TaskListIntersection> =>\n arrayBuilder<Specification.TaskItem, TaskListIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { TaskMetadataIntersection } from '../classes/task-metadata';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.TaskMetadata} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {TaskMetadataIntersection} The built object\n */\nfunction buildingFn(model: Specification.TaskMetadata, options: BuildOptions): TaskMetadataIntersection {\n const instance = new Classes.TaskMetadata(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as TaskMetadataIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `TaskMetadataIntersection`\n * @returns {Builder<TaskMetadataIntersection, TaskMetadataIntersection>} A builder for `TaskMetadataIntersection`\n */\nexport const taskMetadataBuilder = (\n model?: Partial<Specification.TaskMetadata>,\n): Builder<Partial<Specification.TaskMetadata>, TaskMetadataIntersection> =>\n builder<Specification.TaskMetadata, TaskMetadataIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { TaskTimeoutIntersection } from '../classes/task-timeout';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.TaskTimeout} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {TaskTimeoutIntersection} The built object\n */\nfunction buildingFn(model: Specification.TaskTimeout, options: BuildOptions): TaskTimeoutIntersection {\n const instance = new Classes.TaskTimeout(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as TaskTimeoutIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `TaskTimeoutIntersection`\n * @returns {Builder<TaskTimeoutIntersection, TaskTimeoutIntersection>} A builder for `TaskTimeoutIntersection`\n */\nexport const taskTimeoutBuilder = (\n model?: Partial<Specification.TaskTimeout>,\n): Builder<Partial<Specification.TaskTimeout>, TaskTimeoutIntersection> =>\n builder<Specification.TaskTimeout, TaskTimeoutIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { TimeoutIntersection } from '../classes/timeout';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.Timeout} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {TimeoutIntersection} The built object\n */\nfunction buildingFn(model: Specification.Timeout, options: BuildOptions): TimeoutIntersection {\n const instance = new Classes.Timeout(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as TimeoutIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `TimeoutIntersection`\n * @returns {Builder<TimeoutIntersection, TimeoutIntersection>} A builder for `TimeoutIntersection`\n */\nexport const timeoutBuilder = (\n model?: Partial<Specification.Timeout>,\n): Builder<Partial<Specification.Timeout>, TimeoutIntersection> =>\n builder<Specification.Timeout, TimeoutIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { TryTaskIntersection } from '../classes/try-task';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.TryTask} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {TryTaskIntersection} The built object\n */\nfunction buildingFn(model: Specification.TryTask, options: BuildOptions): TryTaskIntersection {\n const instance = new Classes.TryTask(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as TryTaskIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `TryTaskIntersection`\n * @returns {Builder<TryTaskIntersection, TryTaskIntersection>} A builder for `TryTaskIntersection`\n */\nexport const tryTaskBuilder = (\n model?: Partial<Specification.TryTask>,\n): Builder<Partial<Specification.TryTask>, TryTaskIntersection> =>\n builder<Specification.TryTask, TryTaskIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { TryTaskCatchIntersection } from '../classes/try-task-catch';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.TryTaskCatch} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {TryTaskCatchIntersection} The built object\n */\nfunction buildingFn(model: Specification.TryTaskCatch, options: BuildOptions): TryTaskCatchIntersection {\n const instance = new Classes.TryTaskCatch(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as TryTaskCatchIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `TryTaskCatchIntersection`\n * @returns {Builder<TryTaskCatchIntersection, TryTaskCatchIntersection>} A builder for `TryTaskCatchIntersection`\n */\nexport const tryTaskCatchBuilder = (\n model?: Partial<Specification.TryTaskCatch>,\n): Builder<Partial<Specification.TryTaskCatch>, TryTaskCatchIntersection> =>\n builder<Specification.TryTaskCatch, TryTaskCatchIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { TryTaskCatchRetryIntersection } from '../classes/try-task-catch-retry';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.TryTaskCatchRetry} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {TryTaskCatchRetryIntersection} The built object\n */\nfunction buildingFn(model: Specification.TryTaskCatchRetry, options: BuildOptions): TryTaskCatchRetryIntersection {\n const instance = new Classes.TryTaskCatchRetry(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as TryTaskCatchRetryIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `TryTaskCatchRetryIntersection`\n * @returns {Builder<TryTaskCatchRetryIntersection, TryTaskCatchRetryIntersection>} A builder for `TryTaskCatchRetryIntersection`\n */\nexport const tryTaskCatchRetryBuilder = (\n model?: Partial<Specification.TryTaskCatchRetry>,\n): Builder<Partial<Specification.TryTaskCatchRetry>, TryTaskCatchRetryIntersection> =>\n builder<Specification.TryTaskCatchRetry, TryTaskCatchRetryIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { UriTemplateIntersection } from '../classes/uri-template';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.UriTemplate} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {UriTemplateIntersection} The built object\n */\nfunction buildingFn(model: Specification.UriTemplate, options: BuildOptions): UriTemplateIntersection {\n const instance = new Classes.UriTemplate(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as UriTemplateIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `UriTemplateIntersection`\n * @returns {Builder<UriTemplateIntersection, UriTemplateIntersection>} A builder for `UriTemplateIntersection`\n */\nexport const uriTemplateBuilder = (\n model?: Partial<Specification.UriTemplate>,\n): Builder<Partial<Specification.UriTemplate>, UriTemplateIntersection> =>\n builder<Specification.UriTemplate, UriTemplateIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { UseIntersection } from '../classes/use';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.Use} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {UseIntersection} The built object\n */\nfunction buildingFn(model: Specification.Use, options: BuildOptions): UseIntersection {\n const instance = new Classes.Use(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as UseIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `UseIntersection`\n * @returns {Builder<UseIntersection, UseIntersection>} A builder for `UseIntersection`\n */\nexport const useBuilder = (model?: Partial<Specification.Use>): Builder<Partial<Specification.Use>, UseIntersection> =>\n builder<Specification.Use, UseIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { UseAuthenticationsIntersection } from '../classes/use-authentications';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.UseAuthentications} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {UseAuthenticationsIntersection} The built object\n */\nfunction buildingFn(model: Specification.UseAuthentications, options: BuildOptions): UseAuthenticationsIntersection {\n const instance = new Classes.UseAuthentications(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as UseAuthenticationsIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `UseAuthenticationsIntersection`\n * @returns {Builder<UseAuthenticationsIntersection, UseAuthenticationsIntersection>} A builder for `UseAuthenticationsIntersection`\n */\nexport const useAuthenticationsBuilder = (\n model?: Partial<Specification.UseAuthentications>,\n): Builder<Partial<Specification.UseAuthentications>, UseAuthenticationsIntersection> =>\n builder<Specification.UseAuthentications, UseAuthenticationsIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { UseCatalogsIntersection } from '../classes/use-catalogs';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.UseCatalogs} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {UseCatalogsIntersection} The built object\n */\nfunction buildingFn(model: Specification.UseCatalogs, options: BuildOptions): UseCatalogsIntersection {\n const instance = new Classes.UseCatalogs(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as UseCatalogsIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `UseCatalogsIntersection`\n * @returns {Builder<UseCatalogsIntersection, UseCatalogsIntersection>} A builder for `UseCatalogsIntersection`\n */\nexport const useCatalogsBuilder = (\n model?: Partial<Specification.UseCatalogs>,\n): Builder<Partial<Specification.UseCatalogs>, UseCatalogsIntersection> =>\n builder<Specification.UseCatalogs, UseCatalogsIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { UseErrorsIntersection } from '../classes/use-errors';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.UseErrors} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {UseErrorsIntersection} The built object\n */\nfunction buildingFn(model: Specification.UseErrors, options: BuildOptions): UseErrorsIntersection {\n const instance = new Classes.UseErrors(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as UseErrorsIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `UseErrorsIntersection`\n * @returns {Builder<UseErrorsIntersection, UseErrorsIntersection>} A builder for `UseErrorsIntersection`\n */\nexport const useErrorsBuilder = (\n model?: Partial<Specification.UseErrors>,\n): Builder<Partial<Specification.UseErrors>, UseErrorsIntersection> =>\n builder<Specification.UseErrors, UseErrorsIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { arrayBuilder, ArrayBuilder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { UseExtensionsIntersection } from '../classes/use-extensions';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying array\n * @param {Specification.UseExtensions} model The proxied array\n * @param {BuildOptions} options The build options to use\n * @returns {UseExtensionsIntersection} The built array\n */\nfunction buildingFn(model: Specification.UseExtensions, options: BuildOptions): UseExtensionsIntersection {\n const instance = new Classes.UseExtensions(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as unknown as UseExtensionsIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `UseExtensionsIntersection`\n * @returns {ArrayBuilder<Specification.ExtensionItem, UseExtensionsIntersection>} A builder for `UseExtensionsIntersection`\n */\nexport const useExtensionsBuilder = (\n model?: Specification.UseExtensions,\n): ArrayBuilder<Specification.ExtensionItem, UseExtensionsIntersection> =>\n arrayBuilder<Specification.ExtensionItem, UseExtensionsIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { UseFunctionsIntersection } from '../classes/use-functions';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.UseFunctions} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {UseFunctionsIntersection} The built object\n */\nfunction buildingFn(model: Specification.UseFunctions, options: BuildOptions): UseFunctionsIntersection {\n const instance = new Classes.UseFunctions(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as UseFunctionsIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `UseFunctionsIntersection`\n * @returns {Builder<UseFunctionsIntersection, UseFunctionsIntersection>} A builder for `UseFunctionsIntersection`\n */\nexport const useFunctionsBuilder = (\n model?: Partial<Specification.UseFunctions>,\n): Builder<Partial<Specification.UseFunctions>, UseFunctionsIntersection> =>\n builder<Specification.UseFunctions, UseFunctionsIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { UseRetriesIntersection } from '../classes/use-retries';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.UseRetries} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {UseRetriesIntersection} The built object\n */\nfunction buildingFn(model: Specification.UseRetries, options: BuildOptions): UseRetriesIntersection {\n const instance = new Classes.UseRetries(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as UseRetriesIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `UseRetriesIntersection`\n * @returns {Builder<UseRetriesIntersection, UseRetriesIntersection>} A builder for `UseRetriesIntersection`\n */\nexport const useRetriesBuilder = (\n model?: Partial<Specification.UseRetries>,\n): Builder<Partial<Specification.UseRetries>, UseRetriesIntersection> =>\n builder<Specification.UseRetries, UseRetriesIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { arrayBuilder, ArrayBuilder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { UseSecretsIntersection } from '../classes/use-secrets';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying array\n * @param {Specification.UseSecrets} model The proxied array\n * @param {BuildOptions} options The build options to use\n * @returns {UseSecretsIntersection} The built array\n */\nfunction buildingFn(model: Specification.UseSecrets, options: BuildOptions): UseSecretsIntersection {\n const instance = new Classes.UseSecrets(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as unknown as UseSecretsIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `UseSecretsIntersection`\n * @returns {ArrayBuilder<string, UseSecretsIntersection>} A builder for `UseSecretsIntersection`\n */\nexport const useSecretsBuilder = (model?: Specification.UseSecrets): ArrayBuilder<string, UseSecretsIntersection> =>\n arrayBuilder<string, UseSecretsIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { UseTimeoutsIntersection } from '../classes/use-timeouts';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.UseTimeouts} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {UseTimeoutsIntersection} The built object\n */\nfunction buildingFn(model: Specification.UseTimeouts, options: BuildOptions): UseTimeoutsIntersection {\n const instance = new Classes.UseTimeouts(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as UseTimeoutsIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `UseTimeoutsIntersection`\n * @returns {Builder<UseTimeoutsIntersection, UseTimeoutsIntersection>} A builder for `UseTimeoutsIntersection`\n */\nexport const useTimeoutsBuilder = (\n model?: Partial<Specification.UseTimeouts>,\n): Builder<Partial<Specification.UseTimeouts>, UseTimeoutsIntersection> =>\n builder<Specification.UseTimeouts, UseTimeoutsIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { WaitTaskIntersection } from '../classes/wait-task';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.WaitTask} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {WaitTaskIntersection} The built object\n */\nfunction buildingFn(model: Specification.WaitTask, options: BuildOptions): WaitTaskIntersection {\n const instance = new Classes.WaitTask(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as WaitTaskIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `WaitTaskIntersection`\n * @returns {Builder<WaitTaskIntersection, WaitTaskIntersection>} A builder for `WaitTaskIntersection`\n */\nexport const waitTaskBuilder = (\n model?: Partial<Specification.WaitTask>,\n): Builder<Partial<Specification.WaitTask>, WaitTaskIntersection> =>\n builder<Specification.WaitTask, WaitTaskIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { WithA2AParametersIntersection } from '../classes/with-a2a-parameters';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.WithA2AParameters} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {WithA2AParametersIntersection} The built object\n */\nfunction buildingFn(model: Specification.WithA2AParameters, options: BuildOptions): WithA2AParametersIntersection {\n const instance = new Classes.WithA2AParameters(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as WithA2AParametersIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `WithA2AParametersIntersection`\n * @returns {Builder<WithA2AParametersIntersection, WithA2AParametersIntersection>} A builder for `WithA2AParametersIntersection`\n */\nexport const withA2AParametersBuilder = (\n model?: Partial<Specification.WithA2AParameters>,\n): Builder<Partial<Specification.WithA2AParameters>, WithA2AParametersIntersection> =>\n builder<Specification.WithA2AParameters, WithA2AParametersIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { WithEventIntersection } from '../classes/with-event';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.WithEvent} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {WithEventIntersection} The built object\n */\nfunction buildingFn(model: Specification.WithEvent, options: BuildOptions): WithEventIntersection {\n const instance = new Classes.WithEvent(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as WithEventIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `WithEventIntersection`\n * @returns {Builder<WithEventIntersection, WithEventIntersection>} A builder for `WithEventIntersection`\n */\nexport const withEventBuilder = (\n model?: Partial<Specification.WithEvent>,\n): Builder<Partial<Specification.WithEvent>, WithEventIntersection> =>\n builder<Specification.WithEvent, WithEventIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { WithGRPCArgumentsIntersection } from '../classes/with-grpc-arguments';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.WithGRPCArguments} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {WithGRPCArgumentsIntersection} The built object\n */\nfunction buildingFn(model: Specification.WithGRPCArguments, options: BuildOptions): WithGRPCArgumentsIntersection {\n const instance = new Classes.WithGRPCArguments(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as WithGRPCArgumentsIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `WithGRPCArgumentsIntersection`\n * @returns {Builder<WithGRPCArgumentsIntersection, WithGRPCArgumentsIntersection>} A builder for `WithGRPCArgumentsIntersection`\n */\nexport const withGRPCArgumentsBuilder = (\n model?: Partial<Specification.WithGRPCArguments>,\n): Builder<Partial<Specification.WithGRPCArguments>, WithGRPCArgumentsIntersection> =>\n builder<Specification.WithGRPCArguments, WithGRPCArgumentsIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { WithGRPCServiceIntersection } from '../classes/with-grpc-service';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.WithGRPCService} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {WithGRPCServiceIntersection} The built object\n */\nfunction buildingFn(model: Specification.WithGRPCService, options: BuildOptions): WithGRPCServiceIntersection {\n const instance = new Classes.WithGRPCService(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as WithGRPCServiceIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `WithGRPCServiceIntersection`\n * @returns {Builder<WithGRPCServiceIntersection, WithGRPCServiceIntersection>} A builder for `WithGRPCServiceIntersection`\n */\nexport const withGRPCServiceBuilder = (\n model?: Partial<Specification.WithGRPCService>,\n): Builder<Partial<Specification.WithGRPCService>, WithGRPCServiceIntersection> =>\n builder<Specification.WithGRPCService, WithGRPCServiceIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { WithOpenAPIParametersIntersection } from '../classes/with-open-api-parameters';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.WithOpenAPIParameters} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {WithOpenAPIParametersIntersection} The built object\n */\nfunction buildingFn(\n model: Specification.WithOpenAPIParameters,\n options: BuildOptions,\n): WithOpenAPIParametersIntersection {\n const instance = new Classes.WithOpenAPIParameters(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as WithOpenAPIParametersIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `WithOpenAPIParametersIntersection`\n * @returns {Builder<WithOpenAPIParametersIntersection, WithOpenAPIParametersIntersection>} A builder for `WithOpenAPIParametersIntersection`\n */\nexport const withOpenAPIParametersBuilder = (\n model?: Partial<Specification.WithOpenAPIParameters>,\n): Builder<Partial<Specification.WithOpenAPIParameters>, WithOpenAPIParametersIntersection> =>\n builder<Specification.WithOpenAPIParameters, WithOpenAPIParametersIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { WorkflowIntersection } from '../classes/workflow';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.Workflow} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {WorkflowIntersection} The built object\n */\nfunction buildingFn(model: Specification.Workflow, options: BuildOptions): WorkflowIntersection {\n const instance = new Classes.Workflow(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as WorkflowIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `WorkflowIntersection`\n * @returns {Builder<WorkflowIntersection, WorkflowIntersection>} A builder for `WorkflowIntersection`\n */\nexport const workflowBuilder = (\n model?: Partial<Specification.Workflow>,\n): Builder<Partial<Specification.Workflow>, WorkflowIntersection> =>\n builder<Specification.Workflow, WorkflowIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { WorkflowMetadataIntersection } from '../classes/workflow-metadata';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.WorkflowMetadata} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {WorkflowMetadataIntersection} The built object\n */\nfunction buildingFn(model: Specification.WorkflowMetadata, options: BuildOptions): WorkflowMetadataIntersection {\n const instance = new Classes.WorkflowMetadata(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as WorkflowMetadataIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `WorkflowMetadataIntersection`\n * @returns {Builder<WorkflowMetadataIntersection, WorkflowMetadataIntersection>} A builder for `WorkflowMetadataIntersection`\n */\nexport const workflowMetadataBuilder = (\n model?: Partial<Specification.WorkflowMetadata>,\n): Builder<Partial<Specification.WorkflowMetadata>, WorkflowMetadataIntersection> =>\n builder<Specification.WorkflowMetadata, WorkflowMetadataIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { WorkflowTagsIntersection } from '../classes/workflow-tags';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.WorkflowTags} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {WorkflowTagsIntersection} The built object\n */\nfunction buildingFn(model: Specification.WorkflowTags, options: BuildOptions): WorkflowTagsIntersection {\n const instance = new Classes.WorkflowTags(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as WorkflowTagsIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `WorkflowTagsIntersection`\n * @returns {Builder<WorkflowTagsIntersection, WorkflowTagsIntersection>} A builder for `WorkflowTagsIntersection`\n */\nexport const workflowTagsBuilder = (\n model?: Partial<Specification.WorkflowTags>,\n): Builder<Partial<Specification.WorkflowTags>, WorkflowTagsIntersection> =>\n builder<Specification.WorkflowTags, WorkflowTagsIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\nimport { builder, Builder, BuildOptions } from '../../builder';\nimport { Classes } from '../classes';\nimport { WorkflowTimeoutIntersection } from '../classes/workflow-timeout';\nimport { Specification } from '../definitions';\n\n/**\n * The internal function used by the builder proxy to validate and return its underlying object\n * @param {Specification.WorkflowTimeout} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {WorkflowTimeoutIntersection} The built object\n */\nfunction buildingFn(model: Specification.WorkflowTimeout, options: BuildOptions): WorkflowTimeoutIntersection {\n const instance = new Classes.WorkflowTimeout(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as WorkflowTimeoutIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `WorkflowTimeoutIntersection`\n * @returns {Builder<WorkflowTimeoutIntersection, WorkflowTimeoutIntersection>} A builder for `WorkflowTimeoutIntersection`\n */\nexport const workflowTimeoutBuilder = (\n model?: Partial<Specification.WorkflowTimeout>,\n): Builder<Partial<Specification.WorkflowTimeout>, WorkflowTimeoutIntersection> =>\n builder<Specification.WorkflowTimeout, WorkflowTimeoutIntersection>(model, buildingFn);\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*****************************************************************************************\n *\n * /!\\ This file is computer generated. Any manual modification can and will be lost. /!\\\n *\n *****************************************************************************************/\n\n/**\n * Represents the definition of a schema.\n */\nexport type Schema = SchemaInline | SchemaExternal;\n/**\n * Represents an endpoint.\n */\nexport type Endpoint = RuntimeExpression | UriTemplate | EndpointConfiguration;\n/**\n * A runtime expression.\n */\nexport type RuntimeExpression = string;\nexport type UriTemplate = string;\n/**\n * The endpoint's URI.\n */\nexport type EndpointUri = UriTemplate | RuntimeExpression;\n/**\n * Represents a referenceable authentication policy.\n */\nexport type ReferenceableAuthenticationPolicy = AuthenticationPolicyReference | AuthenticationPolicy;\n/**\n * Defines an authentication policy.\n */\nexport type AuthenticationPolicy =\n | BasicAuthenticationPolicy\n | BearerAuthenticationPolicy\n | DigestAuthenticationPolicy\n | OAuth2AuthenticationPolicy\n | OpenIdConnectAuthenticationPolicy;\n/**\n * The configuration of the basic authentication policy.\n */\nexport type BasicAuthenticationPolicyConfiguration = BasicAuthenticationProperties | SecretBasedAuthenticationPolicy;\n/**\n * The configuration of the bearer authentication policy.\n */\nexport type BearerAuthenticationPolicyConfiguration = BearerAuthenticationProperties | SecretBasedAuthenticationPolicy;\n/**\n * The configuration of the digest authentication policy.\n */\nexport type DigestAuthenticationPolicyConfiguration = DigestAuthenticationProperties | SecretBasedAuthenticationPolicy;\n/**\n * The configuration of the OAuth2 authentication policy.\n */\nexport type OAuth2AuthenticationPolicyConfiguration =\n | OAuth2ConnectAuthenticationProperties\n | SecretBasedAuthenticationPolicy;\n/**\n * The inline configuration of the OAuth2 authentication policy.\n */\nexport type OAuth2ConnectAuthenticationProperties = OAuth2AuthenticationData & {\n endpoints?: OAuth2AuthenticationPropertiesEndpoints;\n [k: string]: unknown;\n};\n/**\n * A list that contains that contains valid issuers that will be used to check against the issuer of generated tokens.\n */\nexport type OAuth2Issuers = string[];\n/**\n * The scopes, if any, to request the token for.\n */\nexport type OAuth2AuthenticationDataScopes = string[];\n/**\n * The audiences, if any, to request the token for.\n */\nexport type OAuth2AuthenticationDataAudiences = string[];\n/**\n * The configuration of the OpenIdConnect authentication policy.\n */\nexport type OpenIdConnectAuthenticationPolicyConfiguration =\n | OpenIdConnectAuthenticationProperties\n | SecretBasedAuthenticationPolicy;\n/**\n * A runtime expression, if any, used to mutate and/or filter the input of the workflow or task.\n */\nexport type InputFrom =\n | string\n | {\n [k: string]: unknown;\n };\n/**\n * A URI reference that identifies the error type.\n */\nexport type ErrorType = UriTemplate | RuntimeExpression;\n/**\n * A JSON Pointer used to reference the component the error originates from.\n */\nexport type ErrorInstance = RuntimeExpression;\n/**\n * A short, human-readable summary of the error.\n */\nexport type ErrorTitle = RuntimeExpression;\n/**\n * A human-readable explanation specific to this occurrence of the error.\n */\nexport type ErrorDetails = RuntimeExpression;\n/**\n * A discrete unit of work that contributes to achieving the overall objectives defined by the workflow.\n */\nexport type Task =\n | CallTask\n | DoTask\n | ForkTask\n | EmitTask\n | ForTask\n | ListenTask\n | RaiseTask\n | RunTask\n | SetTask\n | SwitchTask\n | TryTask\n | WaitTask;\n/**\n * Defines the call to perform.\n */\nexport type CallTask = CallAsyncAPI | CallGRPC | CallHTTP | CallOpenAPI | CallA2A | CallMCP | CallFunction;\n/**\n * Defines the AsyncAPI call to perform.\n */\nexport type CallAsyncAPI = TaskBase & {\n call?: 'asyncapi';\n with?: AsyncApiArguments;\n [k: string]: unknown;\n};\n/**\n * A runtime expression, if any, used to determine whether or not the task should be run.\n */\nexport type TaskBaseIf = string;\n/**\n * A runtime expression, if any, used to mutate and/or filter the output of the workflow or task.\n */\nexport type OutputAs =\n | string\n | {\n [k: string]: unknown;\n };\n/**\n * A runtime expression, if any, used to export the output data to the context.\n */\nexport type ExportAs =\n | string\n | {\n [k: string]: unknown;\n };\nexport type TaskTimeout = Timeout | string;\nexport type Duration = DurationInline | RuntimeExpression | string;\n/**\n * Represents different transition options for a workflow.\n */\nexport type FlowDirective = ('continue' | 'exit' | 'end') | string;\n/**\n * The Async API call arguments.\n */\nexport type AsyncApiArguments = {\n [k: string]: unknown;\n};\n/**\n * Defines the GRPC call to perform.\n */\nexport type CallGRPC = TaskBase & {\n call?: 'grpc';\n with?: GRPCArguments;\n [k: string]: unknown;\n};\n/**\n * Defines the HTTP call to perform.\n */\nexport type CallHTTP = TaskBase & {\n call?: 'http';\n with?: HTTPArguments;\n [k: string]: unknown;\n};\n/**\n * A name/value mapping of the headers, if any, of the HTTP request to perform.\n */\nexport type HTTPHeaders =\n | {\n [k: string]: string;\n }\n | RuntimeExpression;\n/**\n * A name/value mapping of the query parameters, if any, of the HTTP request to perform.\n */\nexport type HTTPQuery =\n | {\n [k: string]: string;\n }\n | RuntimeExpression;\n/**\n * Defines the OpenAPI call to perform.\n */\nexport type CallOpenAPI = TaskBase & {\n call?: 'openapi';\n with?: OpenAPIArguments;\n [k: string]: unknown;\n};\n/**\n * Defines the A2A call to perform.\n */\nexport type CallA2A = TaskBase & {\n call?: 'a2a';\n with?: A2AArguments;\n [k: string]: unknown;\n};\n/**\n * The parameters object to send with the A2A method.\n */\nexport type WithA2AParameters =\n | {\n [k: string]: unknown;\n }\n | string;\n/**\n * Defines the MCP call to perform.\n */\nexport type CallMCP = TaskBase & {\n call?: 'mcp';\n with?: MCPArguments;\n [k: string]: unknown;\n};\n/**\n * The MCP method parameters.\n */\nexport type McpMethodParameters =\n | {\n [k: string]: unknown;\n }\n | string;\n/**\n * The transport to use to perform the MCP call.\n */\nexport type McpCallTransport = {\n [k: string]: unknown;\n};\n/**\n * Defines the function call to perform.\n */\nexport type CallFunction = TaskBase & {\n /**\n * The name of the function to call.\n */\n call?: string;\n with?: FunctionArguments;\n [k: string]: unknown;\n};\n/**\n * Allows to execute a list of tasks in sequence.\n */\nexport type DoTask = TaskBase & {\n do?: TaskList;\n [k: string]: unknown;\n};\n/**\n * Allows workflows to execute multiple tasks concurrently and optionally race them against each other, with a single possible winner, which sets the task's output.\n */\nexport type ForkTask = TaskBase & {\n fork?: ForkTaskConfiguration;\n [k: string]: unknown;\n};\n/**\n * Allows workflows to publish events to event brokers or messaging systems, facilitating communication and coordination between different components and services.\n */\nexport type EmitTask = TaskBase & {\n emit?: EmitTaskConfiguration;\n [k: string]: unknown;\n};\n/**\n * Identifies the context in which an event happened.\n */\nexport type EventSource = UriTemplate | RuntimeExpression;\n/**\n * When the event occured.\n */\nexport type EventTime = RuntimeExpression;\n/**\n * The schema describing the event format.\n */\nexport type EventDataschema = UriTemplate | RuntimeExpression;\n/**\n * The event's payload data\n */\nexport type EventData =\n | RuntimeExpression\n | {\n [k: string]: unknown;\n };\n/**\n * Allows workflows to iterate over a collection of items, executing a defined set of subtasks for each item in the collection. This task type is instrumental in handling scenarios such as batch processing, data transformation, and repetitive operations across datasets.\n */\nexport type ForTask = TaskBase & {\n for?: ForTaskConfiguration;\n /**\n * A runtime expression that represents the condition, if any, that must be met for the iteration to continue.\n */\n while?: string;\n do?: TaskList;\n [k: string]: unknown;\n};\n/**\n * Provides a mechanism for workflows to await and react to external events, enabling event-driven behavior within workflow systems.\n */\nexport type ListenTask = TaskBase & {\n listen?: ListenTaskConfiguration;\n foreach?: SubscriptionIterator;\n [k: string]: unknown;\n};\n/**\n * Describe the event consumption strategy to adopt.\n */\nexport type EventConsumptionStrategy =\n | AllEventConsumptionStrategy\n | AnyEventConsumptionStrategy\n | OneEventConsumptionStrategy;\n/**\n * A list containing all the events that must be consumed.\n */\nexport type AllEventConsumptionStrategyConfiguration = EventFilter[];\n/**\n * A list containing any of the events to consume.\n */\nexport type AnyEventConsumptionStrategyConfiguration = EventFilter[];\nexport type AnyEventConsumptionStrategyUntil = string | AnyEventUntilConsumed;\nexport type AnyEventUntilConsumed = EventConsumptionStrategy & {\n until?: never;\n [k: string]: unknown;\n};\n/**\n * Intentionally triggers and propagates errors.\n */\nexport type RaiseTask = TaskBase & {\n raise?: RaiseTaskConfiguration;\n [k: string]: unknown;\n};\nexport type RaiseTaskError = Error | string;\n/**\n * Provides the capability to execute external containers, shell commands, scripts, or workflows.\n */\nexport type RunTask = TaskBase & {\n run?: RunTaskConfiguration;\n [k: string]: unknown;\n};\n/**\n * The configuration of the process to execute.\n */\nexport type RunTaskConfiguration = RunContainer | RunScript | RunShell | RunWorkflow;\n/**\n * A list of the arguments, if any, passed as argv to the command or default container CMD\n */\nexport type ContainerArguments = string[];\n/**\n * The configuration of the script to run.\n */\nexport type Script = InlineScript | ExternalScript;\n/**\n * A list of the arguments, if any, to the shell command as argv\n */\nexport type ShellArguments = string[];\n/**\n * A task used to set data.\n */\nexport type SetTask = TaskBase & {\n set?: SetTaskConfiguration;\n [k: string]: unknown;\n};\n/**\n * The data to set.\n */\nexport type SetTaskConfiguration =\n | {\n [k: string]: unknown;\n }\n | string;\n/**\n * Enables conditional branching within workflows, allowing them to dynamically select different paths based on specified conditions or criteria.\n */\nexport type SwitchTask = TaskBase & {\n switch?: SwitchTaskConfiguration;\n [k: string]: unknown;\n};\n/**\n * The definition of the switch to use.\n *\n * @minItems 1\n */\nexport type SwitchTaskConfiguration = [SwitchItem, ...SwitchItem[]];\n/**\n * Serves as a mechanism within workflows to handle errors gracefully, potentially retrying failed tasks before proceeding with alternate ones.\n */\nexport type TryTask = TaskBase & {\n try?: TaskList;\n catch?: TryTaskCatch;\n [k: string]: unknown;\n};\nexport type TryTaskCatchRetry = RetryPolicy | string;\n/**\n * The retry duration backoff.\n */\nexport type RetryBackoff = ConstantBackoff | ExponentialBackOff | LinearBackoff;\n/**\n * Allows workflows to pause or delay their execution for a specified period of time.\n */\nexport type WaitTask = TaskBase & {\n wait?: Duration;\n [k: string]: unknown;\n};\n/**\n * List of named tasks to perform.\n */\nexport type TaskList = TaskItem[];\n/**\n * The workflow's extensions.\n */\nexport type UseExtensions = ExtensionItem[];\n/**\n * The workflow's reusable secrets.\n */\nexport type UseSecrets = string[];\nexport type WorkflowTimeout = Timeout | string;\n\n/**\n * Serverless Workflow DSL - Workflow Schema.\n */\nexport interface Workflow {\n document: Document;\n input?: Input;\n use?: Use;\n do: TaskList;\n timeout?: WorkflowTimeout;\n output?: Output;\n schedule?: Schedule;\n [k: string]: unknown;\n}\n/**\n * Documents the workflow.\n */\nexport interface Document {\n /**\n * The version of the DSL used by the workflow.\n */\n dsl: string;\n /**\n * The workflow's namespace.\n */\n namespace: string;\n /**\n * The workflow's name.\n */\n name: string;\n /**\n * The workflow's semantic version.\n */\n version: string;\n /**\n * The workflow's title.\n */\n title?: string;\n /**\n * The workflow's Markdown summary.\n */\n summary?: string;\n tags?: WorkflowTags;\n metadata?: WorkflowMetadata;\n}\n/**\n * A key/value mapping of the workflow's tags, if any.\n */\nexport interface WorkflowTags {\n [k: string]: unknown;\n}\n/**\n * Holds additional information about the workflow.\n */\nexport interface WorkflowMetadata {\n [k: string]: unknown;\n}\n/**\n * Configures the input of a workflow or task.\n */\nexport interface Input {\n schema?: Schema;\n from?: InputFrom;\n}\nexport interface SchemaInline {\n /**\n * The schema's inline definition.\n */\n document: {\n [k: string]: unknown;\n };\n [k: string]: unknown;\n}\nexport interface SchemaExternal {\n resource: ExternalResource;\n [k: string]: unknown;\n}\n/**\n * Represents an external resource.\n */\nexport interface ExternalResource {\n /**\n * The name of the external resource, if any.\n */\n name?: string;\n endpoint: Endpoint;\n}\nexport interface EndpointConfiguration {\n uri: EndpointUri;\n authentication?: ReferenceableAuthenticationPolicy;\n}\n/**\n * The reference of the authentication policy to use.\n */\nexport interface AuthenticationPolicyReference {\n /**\n * The name of the authentication policy to use.\n */\n use: string;\n [k: string]: unknown;\n}\n/**\n * Use basic authentication.\n */\nexport interface BasicAuthenticationPolicy {\n basic: BasicAuthenticationPolicyConfiguration;\n [k: string]: unknown;\n}\n/**\n * Inline configuration of the basic authentication policy.\n */\nexport interface BasicAuthenticationProperties {\n /**\n * The username to use.\n */\n username: string;\n /**\n * The password to use.\n */\n password: string;\n [k: string]: unknown;\n}\n/**\n * Represents an authentication policy based on secrets.\n */\nexport interface SecretBasedAuthenticationPolicy {\n /**\n * The name of the authentication policy to use.\n */\n use: string;\n}\n/**\n * Use bearer authentication.\n */\nexport interface BearerAuthenticationPolicy {\n bearer: BearerAuthenticationPolicyConfiguration;\n [k: string]: unknown;\n}\n/**\n * Inline configuration of the bearer authentication policy.\n */\nexport interface BearerAuthenticationProperties {\n /**\n * The bearer token to use.\n */\n token: string;\n [k: string]: unknown;\n}\n/**\n * Use digest authentication.\n */\nexport interface DigestAuthenticationPolicy {\n digest: DigestAuthenticationPolicyConfiguration;\n [k: string]: unknown;\n}\n/**\n * Inline configuration of the digest authentication policy.\n */\nexport interface DigestAuthenticationProperties {\n /**\n * The username to use.\n */\n username: string;\n /**\n * The password to use.\n */\n password: string;\n [k: string]: unknown;\n}\n/**\n * Use OAuth2 authentication.\n */\nexport interface OAuth2AuthenticationPolicy {\n oauth2: OAuth2AuthenticationPolicyConfiguration;\n [k: string]: unknown;\n}\n/**\n * Inline configuration of the OAuth2 authentication policy.\n */\nexport interface OAuth2AuthenticationData {\n authority?: UriTemplate;\n /**\n * The grant type to use.\n */\n grant?:\n | 'authorization_code'\n | 'client_credentials'\n | 'password'\n | 'refresh_token'\n | 'urn:ietf:params:oauth:grant-type:token-exchange';\n client?: OAuth2AuthenticationDataClient;\n request?: OAuth2TokenRequest;\n issuers?: OAuth2Issuers;\n scopes?: OAuth2AuthenticationDataScopes;\n audiences?: OAuth2AuthenticationDataAudiences;\n /**\n * The username to use. Used only if the grant type is Password.\n */\n username?: string;\n /**\n * The password to use. Used only if the grant type is Password.\n */\n password?: string;\n subject?: OAuth2TokenDefinition;\n actor?: OAuth2TokenDefinition;\n [k: string]: unknown;\n}\n/**\n * The definition of an OAuth2 client.\n */\nexport interface OAuth2AuthenticationDataClient {\n /**\n * The client id to use.\n */\n id?: string;\n /**\n * The client secret to use, if any.\n */\n secret?: string;\n /**\n * A JWT containing a signed assertion with your application credentials.\n */\n assertion?: string;\n /**\n * The authentication method to use to authenticate the client.\n */\n authentication?: 'client_secret_basic' | 'client_secret_post' | 'client_secret_jwt' | 'private_key_jwt' | 'none';\n}\n/**\n * The configuration of an OAuth2 token request\n */\nexport interface OAuth2TokenRequest {\n encoding?: 'application/x-www-form-urlencoded' | 'application/json';\n [k: string]: unknown;\n}\n/**\n * Represents an OAuth2 token.\n */\nexport interface OAuth2TokenDefinition {\n /**\n * The security token to use.\n */\n token: string;\n /**\n * The type of the security token to use.\n */\n type: string;\n}\n/**\n * The endpoint configurations for OAuth2.\n */\nexport interface OAuth2AuthenticationPropertiesEndpoints {\n /**\n * The relative path to the token endpoint. Defaults to `/oauth2/token`.\n */\n token?: string;\n /**\n * The relative path to the revocation endpoint. Defaults to `/oauth2/revoke`.\n */\n revocation?: string;\n /**\n * The relative path to the introspection endpoint. Defaults to `/oauth2/introspect`.\n */\n introspection?: string;\n [k: string]: unknown;\n}\n/**\n * Use OpenIdConnect authentication.\n */\nexport interface OpenIdConnectAuthenticationPolicy {\n oidc: OpenIdConnectAuthenticationPolicyConfiguration;\n [k: string]: unknown;\n}\n/**\n * Inline configuration of the OAuth2 authentication policy.\n */\nexport interface OpenIdConnectAuthenticationProperties {\n authority?: UriTemplate;\n /**\n * The grant type to use.\n */\n grant?:\n | 'authorization_code'\n | 'client_credentials'\n | 'password'\n | 'refresh_token'\n | 'urn:ietf:params:oauth:grant-type:token-exchange';\n client?: OAuth2AuthenticationDataClient;\n request?: OAuth2TokenRequest;\n issuers?: OAuth2Issuers;\n scopes?: OAuth2AuthenticationDataScopes;\n audiences?: OAuth2AuthenticationDataAudiences;\n /**\n * The username to use. Used only if the grant type is Password.\n */\n username?: string;\n /**\n * The password to use. Used only if the grant type is Password.\n */\n password?: string;\n subject?: OAuth2TokenDefinition;\n actor?: OAuth2TokenDefinition;\n}\n/**\n * Defines the workflow's reusable components.\n */\nexport interface Use {\n authentications?: UseAuthentications;\n errors?: UseErrors;\n extensions?: UseExtensions;\n functions?: UseFunctions;\n retries?: UseRetries;\n secrets?: UseSecrets;\n timeouts?: UseTimeouts;\n catalogs?: UseCatalogs;\n}\n/**\n * The workflow's reusable authentication policies.\n */\nexport interface UseAuthentications {\n [k: string]: AuthenticationPolicy;\n}\n/**\n * The workflow's reusable errors.\n */\nexport interface UseErrors {\n [k: string]: Error;\n}\n/**\n * Represents an error.\n */\nexport interface Error {\n type: ErrorType;\n /**\n * The status code generated by the origin for this occurrence of the error.\n */\n status: number;\n instance?: ErrorInstance;\n title?: ErrorTitle;\n detail?: ErrorDetails;\n}\nexport interface ExtensionItem {\n [k: string]: Extension;\n}\n/**\n * The definition of an extension.\n */\nexport interface Extension {\n /**\n * The type of task to extend.\n */\n extend:\n | 'call'\n | 'composite'\n | 'emit'\n | 'for'\n | 'listen'\n | 'raise'\n | 'run'\n | 'set'\n | 'switch'\n | 'try'\n | 'wait'\n | 'all';\n /**\n * A runtime expression, if any, used to determine whether or not the extension should apply in the specified context.\n */\n when?: string;\n before?: TaskList;\n after?: TaskList;\n}\nexport interface TaskItem {\n [k: string]: Task;\n}\n/**\n * An object inherited by all tasks.\n */\nexport interface TaskBase {\n if?: TaskBaseIf;\n input?: Input;\n output?: Output;\n export?: Export;\n timeout?: TaskTimeout;\n then?: FlowDirective;\n metadata?: TaskMetadata;\n [k: string]: unknown;\n}\n/**\n * Configures the output of a workflow or task.\n */\nexport interface Output {\n schema?: Schema;\n as?: OutputAs;\n}\n/**\n * Set the content of the context. .\n */\nexport interface Export {\n schema?: Schema;\n as?: ExportAs;\n}\n/**\n * The definition of a timeout.\n */\nexport interface Timeout {\n after: Duration;\n}\n/**\n * The inline definition of a duration.\n */\nexport interface DurationInline {\n /**\n * Number of days, if any.\n */\n days?: number;\n /**\n * Number of days, if any.\n */\n hours?: number;\n /**\n * Number of minutes, if any.\n */\n minutes?: number;\n /**\n * Number of seconds, if any.\n */\n seconds?: number;\n /**\n * Number of milliseconds, if any.\n */\n milliseconds?: number;\n}\n/**\n * Holds additional information about the task.\n */\nexport interface TaskMetadata {\n [k: string]: unknown;\n}\n/**\n * The GRPC call arguments.\n */\nexport interface GRPCArguments {\n proto: ExternalResource;\n service: WithGRPCService;\n /**\n * The name of the method to call on the defined GRPC service.\n */\n method: string;\n arguments?: WithGRPCArguments;\n}\nexport interface WithGRPCService {\n /**\n * The name of the GRPC service to call.\n */\n name: string;\n /**\n * The hostname of the GRPC service to call.\n */\n host: string;\n /**\n * The port number of the GRPC service to call.\n */\n port?: number;\n authentication?: ReferenceableAuthenticationPolicy;\n}\n/**\n * The arguments, if any, to call the method with.\n */\nexport interface WithGRPCArguments {\n [k: string]: unknown;\n}\n/**\n * The HTTP call arguments.\n */\nexport interface HTTPArguments {\n /**\n * The HTTP method of the HTTP request to perform.\n */\n method: string;\n endpoint: Endpoint;\n headers?: HTTPHeaders;\n body?: HTTPBody;\n query?: HTTPQuery;\n /**\n * The http call output format. Defaults to 'content'.\n */\n output?: 'raw' | 'content' | 'response';\n /**\n * Specifies whether redirection status codes (`300–399`) should be treated as errors.\n */\n redirect?: boolean;\n}\n/**\n * The body, if any, of the HTTP request to perform.\n */\nexport interface HTTPBody {\n [k: string]: unknown;\n}\n/**\n * The OpenAPI call arguments.\n */\nexport interface OpenAPIArguments {\n document: ExternalResource;\n /**\n * The id of the OpenAPI operation to call.\n */\n operationId: string;\n parameters?: WithOpenAPIParameters;\n authentication?: ReferenceableAuthenticationPolicy;\n /**\n * The http call output format. Defaults to 'content'.\n */\n output?: 'raw' | 'content' | 'response';\n /**\n * Specifies whether redirection status codes (`300–399`) should be treated as errors.\n */\n redirect?: boolean;\n}\n/**\n * A name/value mapping of the parameters of the OpenAPI operation to call.\n */\nexport interface WithOpenAPIParameters {\n [k: string]: unknown;\n}\n/**\n * The A2A call arguments.\n */\nexport interface A2AArguments {\n agentCard?: ExternalResource;\n server?: Endpoint;\n /**\n * The A2A method to send.\n */\n method:\n | 'message/send'\n | 'message/stream'\n | 'tasks/get'\n | 'tasks/list'\n | 'tasks/cancel'\n | 'tasks/resubscribe'\n | 'tasks/pushNotificationConfig/set'\n | 'tasks/pushNotificationConfig/get'\n | 'tasks/pushNotificationConfig/list'\n | 'tasks/pushNotificationConfig/delete'\n | 'agent/getAuthenticatedExtendedCard';\n parameters?: WithA2AParameters;\n}\n/**\n * The MCP call arguments.\n */\nexport interface MCPArguments {\n /**\n * The version of the MCP protocol to use.\n */\n protocolVersion?: string;\n /**\n * The MCP method to call.\n */\n method:\n | 'tools/list'\n | 'tools/call'\n | 'prompts/list'\n | 'prompts/get'\n | 'resources/list'\n | 'resources/read'\n | 'resources/templates/list';\n parameters?: McpMethodParameters;\n timeout?: Duration;\n transport: McpCallTransport;\n client?: McpClient;\n [k: string]: unknown;\n}\n/**\n * Describes the client used to perform the MCP call.\n */\nexport interface McpClient {\n /**\n * The name of the client used to connect to the MCP server.\n */\n name: string;\n /**\n * The version of the client used to connect to the MCP server.\n */\n description?: string;\n [k: string]: unknown;\n}\n/**\n * A name/value mapping of the parameters, if any, to call the function with.\n */\nexport interface FunctionArguments {\n [k: string]: unknown;\n}\n/**\n * The configuration of the branches to perform concurrently.\n */\nexport interface ForkTaskConfiguration {\n branches: TaskList;\n /**\n * Indicates whether or not the concurrent tasks are racing against each other, with a single possible winner, which sets the composite task's output.\n */\n compete?: boolean;\n}\n/**\n * The configuration of an event's emission.\n */\nexport interface EmitTaskConfiguration {\n event: EmitEventDefinition;\n}\n/**\n * The definition of the event to emit.\n */\nexport interface EmitEventDefinition {\n with?: EmitEventWith;\n [k: string]: unknown;\n}\n/**\n * Defines the properties of event to emit.\n */\nexport interface EmitEventWith {\n /**\n * The event's unique identifier.\n */\n id?: string;\n source: EventSource;\n /**\n * This attribute contains a value describing the type of event related to the originating occurrence.\n */\n type: string;\n time?: EventTime;\n /**\n * The subject of the event.\n */\n subject?: string;\n /**\n * Content type of data value. This attribute enables data to carry any type of content, whereby format and encoding might differ from that of the chosen event format.\n */\n datacontenttype?: string;\n dataschema?: EventDataschema;\n data?: EventData;\n [k: string]: unknown;\n}\n/**\n * The definition of the loop that iterates over a range of values.\n */\nexport interface ForTaskConfiguration {\n /**\n * The name of the variable used to store the current item being enumerated.\n */\n each?: string;\n /**\n * A runtime expression used to get the collection to enumerate.\n */\n in: string;\n /**\n * The name of the variable used to store the index of the current item being enumerated.\n */\n at?: string;\n}\n/**\n * The configuration of the listener to use.\n */\nexport interface ListenTaskConfiguration {\n to: EventConsumptionStrategy;\n /**\n * Specifies how events are read during the listen operation.\n */\n read?: 'data' | 'envelope' | 'raw';\n}\nexport interface AllEventConsumptionStrategy {\n all: AllEventConsumptionStrategyConfiguration;\n [k: string]: unknown;\n}\n/**\n * An event filter is a mechanism used to selectively process or handle events based on predefined criteria, such as event type, source, or specific attributes.\n */\nexport interface EventFilter {\n with: WithEvent;\n correlate?: EventFilterCorrelate;\n}\n/**\n * An event filter is a mechanism used to selectively process or handle events based on predefined criteria, such as event type, source, or specific attributes.\n */\nexport interface WithEvent {\n /**\n * The event's unique identifier.\n */\n id?: string;\n source?: EventSource;\n /**\n * This attribute contains a value describing the type of event related to the originating occurrence.\n */\n type?: string;\n time?: EventTime;\n /**\n * The subject of the event.\n */\n subject?: string;\n /**\n * Content type of data value. This attribute enables data to carry any type of content, whereby format and encoding might differ from that of the chosen event format.\n */\n datacontenttype?: string;\n dataschema?: EventDataschema;\n data?: EventData;\n [k: string]: unknown;\n}\n/**\n * A correlation is a link between events and data, established by mapping event attributes to specific data attributes, allowing for coordinated processing or handling based on event characteristics.\n */\nexport interface EventFilterCorrelate {\n [k: string]: {\n /**\n * A runtime expression used to extract the correlation value from the filtered event.\n */\n from: string;\n /**\n * A constant or a runtime expression, if any, used to determine whether or not the extracted correlation value matches expectations. If not set, the first extracted value will be used as the correlation's expectation.\n */\n expect?: string;\n [k: string]: unknown;\n };\n}\nexport interface AnyEventConsumptionStrategy {\n any: AnyEventConsumptionStrategyConfiguration;\n until?: AnyEventConsumptionStrategyUntil;\n [k: string]: unknown;\n}\nexport interface OneEventConsumptionStrategy {\n one: EventFilter;\n [k: string]: unknown;\n}\n/**\n * Configures the iteration over each item (event or message) consumed by a subscription.\n */\nexport interface SubscriptionIterator {\n /**\n * The name of the variable used to store the current item being enumerated.\n */\n item?: string;\n /**\n * The name of the variable used to store the index of the current item being enumerated.\n */\n at?: string;\n do?: TaskList;\n output?: Output;\n export?: Export;\n}\n/**\n * The definition of the error to raise.\n */\nexport interface RaiseTaskConfiguration {\n error: RaiseTaskError;\n}\n/**\n * Enables the execution of external processes encapsulated within a containerized environment.\n */\nexport interface RunContainer {\n container: Container;\n [k: string]: unknown;\n}\n/**\n * The configuration of the container to run.\n */\nexport interface Container {\n /**\n * The name of the container image to run.\n */\n image: string;\n /**\n * A runtime expression, if any, used to give specific name to the container.\n */\n name?: string;\n /**\n * The command, if any, to execute on the container.\n */\n command?: string;\n ports?: ContainerPorts;\n volumes?: ContainerVolumes;\n environment?: ContainerEnvironment;\n /**\n * A runtime expression, if any, passed as standard input (stdin) to the command or default container CMD\n */\n stdin?: string;\n arguments?: ContainerArguments;\n lifetime?: ContainerLifetime;\n /**\n * Policy that controls how the container's image should be pulled from the registry. Defaults to `ifNotPresent`\n */\n pullPolicy?: 'ifNotPresent' | 'always' | 'never';\n}\n/**\n * The container's port mappings, if any.\n */\nexport interface ContainerPorts {\n [k: string]: unknown;\n}\n/**\n * The container's volume mappings, if any.\n */\nexport interface ContainerVolumes {\n [k: string]: unknown;\n}\n/**\n * A key/value mapping of the environment variables, if any, to use when running the configured process.\n */\nexport interface ContainerEnvironment {\n [k: string]: unknown;\n}\n/**\n * The configuration of a container's lifetime\n */\nexport interface ContainerLifetime {\n /**\n * The container cleanup policy to use\n */\n cleanup: 'always' | 'never' | 'eventually';\n after?: Duration;\n}\n/**\n * Enables the execution of custom scripts or code within a workflow, empowering workflows to perform specialized logic, data processing, or integration tasks by executing user-defined scripts written in various programming languages.\n */\nexport interface RunScript {\n script: Script;\n [k: string]: unknown;\n}\n/**\n * The script's code.\n */\nexport interface InlineScript {\n code: string;\n [k: string]: unknown;\n}\n/**\n * The script's resource.\n */\nexport interface ExternalScript {\n source: ExternalResource;\n [k: string]: unknown;\n}\n/**\n * Enables the execution of shell commands within a workflow, enabling workflows to interact with the underlying operating system and perform system-level operations, such as file manipulation, environment configuration, or system administration tasks.\n */\nexport interface RunShell {\n shell: Shell;\n [k: string]: unknown;\n}\n/**\n * The configuration of the shell command to run.\n */\nexport interface Shell {\n /**\n * The shell command to run.\n */\n command: string;\n /**\n * A runtime expression, if any, to the shell command as standard input (stdin).\n */\n stdin?: string;\n arguments?: ShellArguments;\n environment?: ShellEnvironment;\n}\n/**\n * A key/value mapping of the environment variables, if any, to use when running the configured process.\n */\nexport interface ShellEnvironment {\n [k: string]: unknown;\n}\n/**\n * Enables the invocation and execution of nested workflows within a parent workflow, facilitating modularization, reusability, and abstraction of complex logic or business processes by encapsulating them into standalone workflow units.\n */\nexport interface RunWorkflow {\n workflow: SubflowConfiguration;\n [k: string]: unknown;\n}\n/**\n * The configuration of the workflow to run.\n */\nexport interface SubflowConfiguration {\n /**\n * The namespace the workflow to run belongs to.\n */\n namespace: string;\n /**\n * The name of the workflow to run.\n */\n name: string;\n /**\n * The version of the workflow to run. Defaults to latest.\n */\n version: string;\n input?: SubflowInput;\n}\n/**\n * The data, if any, to pass as input to the workflow to execute. The value should be validated against the target workflow's input schema, if specified.\n */\nexport interface SubflowInput {\n [k: string]: unknown;\n}\nexport interface SwitchItem {\n [k: string]: SwitchCase;\n}\n/**\n * The definition of a case within a switch task, defining a condition and corresponding tasks to execute if the condition is met.\n */\nexport interface SwitchCase {\n /**\n * A runtime expression used to determine whether or not the case matches.\n */\n when?: string;\n then: FlowDirective;\n [k: string]: unknown;\n}\n/**\n * The object used to define the errors to catch.\n */\nexport interface TryTaskCatch {\n errors?: CatchErrors;\n /**\n * The name of the runtime expression variable to save the error as. Defaults to 'error'.\n */\n as?: string;\n /**\n * A runtime expression used to determine whether to catch the filtered error.\n */\n when?: string;\n /**\n * A runtime expression used to determine whether not to catch the filtered error.\n */\n exceptWhen?: string;\n retry?: TryTaskCatchRetry;\n do?: TaskList;\n}\n/**\n * static error filter\n */\nexport interface CatchErrors {\n with?: ErrorFilter;\n [k: string]: unknown;\n}\n/**\n * Error filtering base on static values. For error filtering on dynamic values, use catch.when property\n */\nexport interface ErrorFilter {\n /**\n * if present, means this value should be used for filtering\n */\n type?: string;\n /**\n * if present, means this value should be used for filtering\n */\n status?: number;\n /**\n * if present, means this value should be used for filtering\n */\n instance?: string;\n /**\n * if present, means this value should be used for filtering\n */\n title?: string;\n /**\n * if present, means this value should be used for filtering\n */\n details?: string;\n [k: string]: unknown;\n}\n/**\n * Defines a retry policy.\n */\nexport interface RetryPolicy {\n /**\n * A runtime expression, if any, used to determine whether or not to retry running the task, in a given context.\n */\n when?: string;\n /**\n * A runtime expression used to determine whether or not to retry running the task, in a given context.\n */\n exceptWhen?: string;\n delay?: Duration;\n backoff?: RetryBackoff;\n limit?: RetryLimit;\n jitter?: RetryPolicyJitter;\n}\nexport interface ConstantBackoff {\n /**\n * The definition of the constant backoff to use, if any.\n */\n constant: {\n [k: string]: unknown;\n };\n [k: string]: unknown;\n}\nexport interface ExponentialBackOff {\n /**\n * The definition of the exponential backoff to use, if any.\n */\n exponential: {\n [k: string]: unknown;\n };\n [k: string]: unknown;\n}\nexport interface LinearBackoff {\n /**\n * The definition of the linear backoff to use, if any.\n */\n linear: {\n [k: string]: unknown;\n };\n [k: string]: unknown;\n}\n/**\n * The retry limit, if any.\n */\nexport interface RetryLimit {\n attempt?: RetryLimitAttempt;\n duration?: Duration;\n}\nexport interface RetryLimitAttempt {\n /**\n * The maximum amount of retry attempts, if any.\n */\n count?: number;\n duration?: Duration;\n}\n/**\n * The parameters, if any, that control the randomness or variability of the delay between retry attempts.\n */\nexport interface RetryPolicyJitter {\n from: Duration;\n to: Duration;\n}\n/**\n * The workflow's reusable functions.\n */\nexport interface UseFunctions {\n [k: string]: Task;\n}\n/**\n * The workflow's reusable retry policies.\n */\nexport interface UseRetries {\n [k: string]: RetryPolicy;\n}\n/**\n * The workflow's reusable timeouts.\n */\nexport interface UseTimeouts {\n [k: string]: Timeout;\n}\n/**\n * The workflow's reusable catalogs.\n */\nexport interface UseCatalogs {\n [k: string]: Catalog;\n}\n/**\n * The definition of a resource catalog.\n */\nexport interface Catalog {\n endpoint: Endpoint;\n}\n/**\n * Schedules the workflow.\n */\nexport interface Schedule {\n every?: Duration;\n /**\n * Specifies the schedule using a cron expression, e.g., '0 0 * * *' for daily at midnight.\n */\n cron?: string;\n after?: Duration;\n on?: EventConsumptionStrategy;\n}\n"],"x_google_ignoreList":[6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,274],"mappings":"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AAU,oFACV,QAAS,oFACT,YAAa,oFACb,SAAU,4EACV,QAAS,2EACT,YACE,sHACF,gBACE,0GACF,UACE,+HACF,mBACE,oJACF,qBACE,sJACF,kBACE,mJACF,eACE,gJACF,iBACE,kJACF,2BACE,gGACF,wCACE,kHACF,+BACE,0HACF,SAAU,iFACV,OAAQ,0EACR,SAAU,4EACV,eAAgB,oFAChB,oBACE,qHACF,cACE,qIACF,SAAU,4EACV,sBACE,oGACF,SAAU,4EACV,sBAAuB,oFACvB,YAAa,mGACb,MAAO,yEACP,aAAc,2FACd,YAAa,+EACb,cAAe,6FACf,WAAY,0FACZ,UAAW,yFACX,yBAA0B,4FAC1B,UAAW,mGACX,gBACE,yGACF,YAAa,+EACb,qBACE,oGACF,YAAa,qGACb,UAAW,mGACX,mBACE,0GACF,OAAQ,0EACR,SAAU,wFACV,UAAW,6EACX,cACE,wGACF,iBAAkB,oFAClB,eACE,oIACF,cAAe,iFACf,SAAU,4EACV,sBACE,oGACF,QAAS,2EACT,qBACE,kGACF,kBACE,4GACF,cACE,4GACF,cACE,4GACF,SACE,4HACF,YACE,+HACF,UACE,6HACF,aACE,oIACF,MAAO,8EACP,UAAW,yFACX,cACE,0GACF,WAAY,8EACZ,wBACE,wGACF,aACE,4GACF,iBACE,iIACF,UACE,8HACF,oBACE,kIACF,yBACE,kGACF,kCACE,uHACF,+BACE,oHACF,+BACE,oHACF,2BACE,gGACF,wCACE,kHACF,wCACE,+IACF,sCACE,0HACF,cACE,qHACF,sBAAuB,+EACvB,mBACE,qHACF,4BACE,oGACF,iBACE,4GACF,kCACE,gGACF,+CACE,gHACF,sCACE,wHACF,OAAQ,+EACR,SAAU,wFACV,UAAW,6EACX,uBACE,sGACF,eACE,uHACF,kCACE,qGACF,aAAc,kGACd,WAAY,gGACZ,kBACE,mHACF,YAAa,+EACb,kBAAmB,iGACnB,aACE,0GACF,UAAW,0GACX,SAAU,0GACV,QAAS,2EACT,qBACE,kGACF,kBAAmB,qFACnB,YACE,0GACF,SAAU,iFACV,OAAQ,0EACR,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"}