@serverlessworkflow/sdk 1.0.1 → 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 (701) hide show
  1. package/README.md +410 -368
  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 -31288
  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 -168
  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 -88
  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/graph-builder.d.ts +0 -74
  677. package/lib/graph-builder.d.ts.map +0 -1
  678. package/lib/hooks/index.d.ts +0 -2
  679. package/lib/hooks/index.d.ts.map +0 -1
  680. package/lib/hooks/workflow-hooks.d.ts +0 -4
  681. package/lib/hooks/workflow-hooks.d.ts.map +0 -1
  682. package/lib/hydrator.d.ts +0 -13
  683. package/lib/hydrator.d.ts.map +0 -1
  684. package/lib/lifecycle-hooks.d.ts +0 -42
  685. package/lib/lifecycle-hooks.d.ts.map +0 -1
  686. package/lib/mermaid-converter.d.ts +0 -21
  687. package/lib/mermaid-converter.d.ts.map +0 -1
  688. package/lib/utils.d.ts +0 -19
  689. package/lib/utils.d.ts.map +0 -1
  690. package/lib/validation.d.ts +0 -10
  691. package/lib/validation.d.ts.map +0 -1
  692. package/serverless-workflow-sdk.d.ts +0 -7
  693. package/serverless-workflow-sdk.d.ts.map +0 -1
  694. package/systemjs/index.systemjs.js +0 -31301
  695. package/systemjs/index.systemjs.js.map +0 -1
  696. package/systemjs/index.systemjs.min.js +0 -10
  697. package/systemjs/index.systemjs.min.js.map +0 -1
  698. package/umd/index.umd.js +0 -31463
  699. package/umd/index.umd.js.map +0 -1
  700. package/umd/index.umd.min.js +0 -10
  701. package/umd/index.umd.min.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.esm.min.js","sources":["../../src/lib/builder.ts","../../src/lib/utils.ts","../../src/lib/lifecycle-hooks.ts","../../src/lib/hydrator.ts","../../src/lib/hooks/workflow-hooks.ts","../../node_modules/ajv/lib/compile/codegen/code.ts","../../node_modules/ajv/lib/compile/codegen/scope.ts","../../node_modules/ajv/lib/compile/codegen/index.ts","../../node_modules/ajv/lib/compile/util.ts","../../node_modules/ajv/lib/compile/names.ts","../../node_modules/ajv/lib/compile/errors.ts","../../node_modules/ajv/lib/compile/rules.ts","../../node_modules/ajv/lib/compile/validate/applicability.ts","../../node_modules/ajv/lib/compile/validate/dataType.ts","../../node_modules/ajv/lib/vocabularies/code.ts","../../node_modules/ajv/lib/compile/validate/keyword.ts","../../node_modules/fast-deep-equal/index.js","../../node_modules/json-schema-traverse/index.js","../../node_modules/ajv/lib/compile/resolve.ts","../../node_modules/ajv/lib/compile/validate/index.ts","../../node_modules/ajv/lib/compile/validate/boolSchema.ts","../../node_modules/ajv/lib/compile/validate/defaults.ts","../../node_modules/ajv/lib/compile/validate/subschema.ts","../../node_modules/ajv/lib/runtime/validation_error.ts","../../node_modules/ajv/lib/compile/ref_error.ts","../../node_modules/ajv/lib/compile/index.ts","../../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/lib/runtime/uri.ts","../../node_modules/ajv/lib/core.ts","../../node_modules/ajv/lib/vocabularies/core/id.ts","../../node_modules/ajv/lib/vocabularies/core/ref.ts","../../node_modules/ajv/lib/vocabularies/core/index.ts","../../node_modules/ajv/lib/vocabularies/validation/limitNumber.ts","../../node_modules/ajv/lib/vocabularies/validation/multipleOf.ts","../../node_modules/ajv/lib/runtime/ucs2length.ts","../../node_modules/ajv/lib/vocabularies/validation/limitLength.ts","../../node_modules/ajv/lib/vocabularies/validation/pattern.ts","../../node_modules/ajv/lib/vocabularies/validation/limitProperties.ts","../../node_modules/ajv/lib/vocabularies/validation/required.ts","../../node_modules/ajv/lib/vocabularies/validation/limitItems.ts","../../node_modules/ajv/lib/runtime/equal.ts","../../node_modules/ajv/lib/vocabularies/validation/uniqueItems.ts","../../node_modules/ajv/lib/vocabularies/validation/const.ts","../../node_modules/ajv/lib/vocabularies/validation/enum.ts","../../node_modules/ajv/lib/vocabularies/validation/index.ts","../../node_modules/ajv/lib/vocabularies/applicator/additionalItems.ts","../../node_modules/ajv/lib/vocabularies/applicator/items.ts","../../node_modules/ajv/lib/vocabularies/applicator/prefixItems.ts","../../node_modules/ajv/lib/vocabularies/applicator/items2020.ts","../../node_modules/ajv/lib/vocabularies/applicator/contains.ts","../../node_modules/ajv/lib/vocabularies/applicator/dependencies.ts","../../node_modules/ajv/lib/vocabularies/applicator/propertyNames.ts","../../node_modules/ajv/lib/vocabularies/applicator/additionalProperties.ts","../../node_modules/ajv/lib/vocabularies/applicator/properties.ts","../../node_modules/ajv/lib/vocabularies/applicator/patternProperties.ts","../../node_modules/ajv/lib/vocabularies/applicator/not.ts","../../node_modules/ajv/lib/vocabularies/applicator/anyOf.ts","../../node_modules/ajv/lib/vocabularies/applicator/oneOf.ts","../../node_modules/ajv/lib/vocabularies/applicator/allOf.ts","../../node_modules/ajv/lib/vocabularies/applicator/if.ts","../../node_modules/ajv/lib/vocabularies/applicator/thenElse.ts","../../node_modules/ajv/lib/vocabularies/applicator/index.ts","../../node_modules/ajv/lib/vocabularies/dynamic/dynamicAnchor.ts","../../node_modules/ajv/lib/vocabularies/dynamic/dynamicRef.ts","../../node_modules/ajv/lib/vocabularies/dynamic/recursiveAnchor.ts","../../node_modules/ajv/lib/vocabularies/dynamic/recursiveRef.ts","../../node_modules/ajv/lib/vocabularies/dynamic/index.ts","../../node_modules/ajv/lib/vocabularies/validation/dependentRequired.ts","../../node_modules/ajv/lib/vocabularies/applicator/dependentSchemas.ts","../../node_modules/ajv/lib/vocabularies/validation/limitContains.ts","../../node_modules/ajv/lib/vocabularies/next.ts","../../node_modules/ajv/lib/vocabularies/unevaluated/unevaluatedProperties.ts","../../node_modules/ajv/lib/vocabularies/unevaluated/unevaluatedItems.ts","../../node_modules/ajv/lib/vocabularies/unevaluated/index.ts","../../node_modules/ajv/lib/vocabularies/format/format.ts","../../node_modules/ajv/lib/vocabularies/format/index.ts","../../node_modules/ajv/lib/vocabularies/metadata.ts","../../node_modules/ajv/lib/vocabularies/draft2020.ts","../../node_modules/ajv/lib/vocabularies/discriminator/types.ts","../../node_modules/ajv/lib/vocabularies/discriminator/index.ts","../../node_modules/ajv/lib/refs/json-schema-2020-12/index.ts","../../node_modules/ajv/lib/2020.ts","../../node_modules/ajv-formats/src/formats.ts","../../node_modules/ajv/lib/vocabularies/draft7.ts","../../node_modules/ajv/lib/ajv.ts","../../node_modules/ajv-formats/src/limit.ts","../../node_modules/ajv-formats/src/index.ts","../../src/lib/validation.ts","../../src/lib/generated/validation/validation-pointers.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/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-autenthication-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/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/referenceable-authentication-policy.ts","../../src/lib/generated/classes/endpoint.ts","../../src/lib/generated/classes/external-resource.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-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-headers.ts","../../src/lib/generated/classes/http-body.ts","../../src/lib/generated/classes/http-query.ts","../../src/lib/generated/classes/http-arguments.ts","../../src/lib/generated/classes/call-http.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/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-arguments.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/set-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-instance.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/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/oauth2-autenthication-data.ts","../../src/lib/generated/classes/oauth2-autenthication-data-audiences.ts","../../src/lib/generated/classes/oauth2-autenthication-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/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/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/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-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-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-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-filter-builder.ts","../../src/lib/generated/builders/error-instance-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/oauth2-autenthication-data-builder.ts","../../src/lib/generated/builders/oauth2-autenthication-data-audiences-builder.ts","../../src/lib/generated/builders/oauth2-autenthication-data-client-builder.ts","../../src/lib/generated/builders/oauth2-autenthication-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-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"],"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: Partial<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: Partial<TSpec>, options: BuildOptions): TBuilt {\n // prevents @typescript-eslint/no-unused-vars ...\n if (options.validate == null) {\n options.validate = true;\n }\n if (options.normalize == null) {\n options.normalize = true;\n }\n return model 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<TSpec, TBuilt> {\n const proxy = new Proxy({} as Builder<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 return (value: unknown): Builder<TSpec, TBuilt> => {\n (model as any)[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 { 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 */\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","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * 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","// eslint-disable-next-line @typescript-eslint/no-extraneous-class\nexport abstract class _CodeOrName {\n abstract readonly str: string\n abstract readonly names: UsedNames\n abstract toString(): string\n abstract emptyStr(): boolean\n}\n\nexport const IDENTIFIER = /^[a-z$_][a-z$_0-9]*$/i\n\nexport class Name extends _CodeOrName {\n readonly str: string\n constructor(s: string) {\n super()\n if (!IDENTIFIER.test(s)) throw new Error(\"CodeGen: name must be a valid identifier\")\n this.str = s\n }\n\n toString(): string {\n return this.str\n }\n\n emptyStr(): boolean {\n return false\n }\n\n get names(): UsedNames {\n return {[this.str]: 1}\n }\n}\n\nexport class _Code extends _CodeOrName {\n readonly _items: readonly CodeItem[]\n private _str?: string\n private _names?: UsedNames\n\n constructor(code: string | readonly CodeItem[]) {\n super()\n this._items = typeof code === \"string\" ? [code] : code\n }\n\n toString(): string {\n return this.str\n }\n\n emptyStr(): boolean {\n if (this._items.length > 1) return false\n const item = this._items[0]\n return item === \"\" || item === '\"\"'\n }\n\n get str(): string {\n return (this._str ??= this._items.reduce((s: string, c: CodeItem) => `${s}${c}`, \"\"))\n }\n\n get names(): UsedNames {\n return (this._names ??= this._items.reduce((names: UsedNames, c) => {\n if (c instanceof Name) names[c.str] = (names[c.str] || 0) + 1\n return names\n }, {}))\n }\n}\n\nexport type CodeItem = Name | string | number | boolean | null\n\nexport type UsedNames = Record<string, number | undefined>\n\nexport type Code = _Code | Name\n\nexport type SafeExpr = Code | number | boolean | null\n\nexport const nil = new _Code(\"\")\n\ntype CodeArg = SafeExpr | string | undefined\n\nexport function _(strs: TemplateStringsArray, ...args: CodeArg[]): _Code {\n const code: CodeItem[] = [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}\n\nconst plus = new _Code(\"+\")\n\nexport function str(strs: TemplateStringsArray, ...args: (CodeArg | string[])[]): _Code {\n const expr: CodeItem[] = [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}\n\nexport function addCodeArg(code: CodeItem[], arg: CodeArg | string[]): void {\n if (arg instanceof _Code) code.push(...arg._items)\n else if (arg instanceof Name) code.push(arg)\n else code.push(interpolate(arg))\n}\n\nfunction optimize(expr: CodeItem[]): void {\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}\n\nfunction mergeExprItems(a: CodeItem, b: CodeItem): CodeItem | undefined {\n if (b === '\"\"') return a\n if (a === '\"\"') return b\n if (typeof a == \"string\") {\n if (b instanceof Name || a[a.length - 1] !== '\"') return\n if (typeof b != \"string\") return `${a.slice(0, -1)}${b}\"`\n if (b[0] === '\"') return a.slice(0, -1) + b.slice(1)\n return\n }\n if (typeof b == \"string\" && b[0] === '\"' && !(a instanceof Name)) return `\"${a}${b.slice(1)}`\n return\n}\n\nexport function strConcat(c1: Code, c2: Code): Code {\n return c2.emptyStr() ? c1 : c1.emptyStr() ? c2 : str`${c1}${c2}`\n}\n\n// TODO do not allow arrays here\nfunction interpolate(x?: string | string[] | number | boolean | null): SafeExpr | string {\n return typeof x == \"number\" || typeof x == \"boolean\" || x === null\n ? x\n : safeStringify(Array.isArray(x) ? x.join(\",\") : x)\n}\n\nexport function stringify(x: unknown): Code {\n return new _Code(safeStringify(x))\n}\n\nexport function safeStringify(x: unknown): string {\n return JSON.stringify(x)\n .replace(/\\u2028/g, \"\\\\u2028\")\n .replace(/\\u2029/g, \"\\\\u2029\")\n}\n\nexport function getProperty(key: Code | string | number): Code {\n return typeof key == \"string\" && IDENTIFIER.test(key) ? new _Code(`.${key}`) : _`[${key}]`\n}\n\n//Does best effort to format the name properly\nexport function getEsmExportName(key: Code | string | number): Code {\n if (typeof key == \"string\" && IDENTIFIER.test(key)) {\n return new _Code(`${key}`)\n }\n throw new Error(`CodeGen: invalid export name: ${key}, use explicit $id name mapping`)\n}\n\nexport function regexpCode(rx: RegExp): Code {\n return new _Code(rx.toString())\n}\n","import {_, nil, Code, Name} from \"./code\"\n\ninterface NameGroup {\n prefix: string\n index: number\n}\n\nexport interface NameValue {\n ref: ValueReference // this is the reference to any value that can be referred to from generated code via `globals` var in the closure\n key?: unknown // any key to identify a global to avoid duplicates, if not passed ref is used\n code?: Code // this is the code creating the value needed for standalone code wit_out closure - can be a primitive value, function or import (`require`)\n}\n\nexport type ValueReference = unknown // possibly make CodeGen parameterized type on this type\n\nclass ValueError extends Error {\n readonly value?: NameValue\n constructor(name: ValueScopeName) {\n super(`CodeGen: \"code\" for ${name} not defined`)\n this.value = name.value\n }\n}\n\ninterface ScopeOptions {\n prefixes?: Set<string>\n parent?: Scope\n}\n\ninterface ValueScopeOptions extends ScopeOptions {\n scope: ScopeStore\n es5?: boolean\n lines?: boolean\n}\n\nexport type ScopeStore = Record<string, ValueReference[] | undefined>\n\ntype ScopeValues = {\n [Prefix in string]?: Map<unknown, ValueScopeName>\n}\n\nexport type ScopeValueSets = {\n [Prefix in string]?: Set<ValueScopeName>\n}\n\nexport enum UsedValueState {\n Started,\n Completed,\n}\n\nexport type UsedScopeValues = {\n [Prefix in string]?: Map<ValueScopeName, UsedValueState | undefined>\n}\n\nexport const varKinds = {\n const: new Name(\"const\"),\n let: new Name(\"let\"),\n var: new Name(\"var\"),\n}\n\nexport class Scope {\n protected readonly _names: {[Prefix in string]?: NameGroup} = {}\n protected readonly _prefixes?: Set<string>\n protected readonly _parent?: Scope\n\n constructor({prefixes, parent}: ScopeOptions = {}) {\n this._prefixes = prefixes\n this._parent = parent\n }\n\n toName(nameOrPrefix: Name | string): Name {\n return nameOrPrefix instanceof Name ? nameOrPrefix : this.name(nameOrPrefix)\n }\n\n name(prefix: string): Name {\n return new Name(this._newName(prefix))\n }\n\n protected _newName(prefix: string): string {\n const ng = this._names[prefix] || this._nameGroup(prefix)\n return `${prefix}${ng.index++}`\n }\n\n private _nameGroup(prefix: string): NameGroup {\n if (this._parent?._prefixes?.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}\n\ninterface ScopePath {\n property: string\n itemIndex: number\n}\n\nexport class ValueScopeName extends Name {\n readonly prefix: string\n value?: NameValue\n scopePath?: Code\n\n constructor(prefix: string, nameStr: string) {\n super(nameStr)\n this.prefix = prefix\n }\n\n setValue(value: NameValue, {property, itemIndex}: ScopePath): void {\n this.value = value\n this.scopePath = _`.${new Name(property)}[${itemIndex}]`\n }\n}\n\ninterface VSOptions extends ValueScopeOptions {\n _n: Code\n}\n\nconst line = _`\\n`\n\nexport class ValueScope extends Scope {\n protected readonly _values: ScopeValues = {}\n protected readonly _scope: ScopeStore\n readonly opts: VSOptions\n\n constructor(opts: ValueScopeOptions) {\n super(opts)\n this._scope = opts.scope\n this.opts = {...opts, _n: opts.lines ? line : nil}\n }\n\n get(): ScopeStore {\n return this._scope\n }\n\n name(prefix: string): ValueScopeName {\n return new ValueScopeName(prefix, this._newName(prefix))\n }\n\n value(nameOrPrefix: ValueScopeName | string, value: NameValue): ValueScopeName {\n if (value.ref === undefined) throw new Error(\"CodeGen: ref must be passed in value\")\n const name = this.toName(nameOrPrefix) as ValueScopeName\n const {prefix} = name\n const valueKey = value.key ?? value.ref\n let vs = this._values[prefix]\n if (vs) {\n const _name = vs.get(valueKey)\n if (_name) return _name\n } else {\n vs = this._values[prefix] = new Map()\n }\n vs.set(valueKey, name)\n\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\n getValue(prefix: string, keyOrRef: unknown): ValueScopeName | undefined {\n const vs = this._values[prefix]\n if (!vs) return\n return vs.get(keyOrRef)\n }\n\n scopeRefs(scopeName: Name, values: ScopeValues | ScopeValueSets = this._values): Code {\n return this._reduceValues(values, (name: ValueScopeName) => {\n if (name.scopePath === undefined) throw new Error(`CodeGen: name \"${name}\" has no value`)\n return _`${scopeName}${name.scopePath}`\n })\n }\n\n scopeCode(\n values: ScopeValues | ScopeValueSets = this._values,\n usedValues?: UsedScopeValues,\n getCode?: (n: ValueScopeName) => Code | undefined\n ): Code {\n return this._reduceValues(\n values,\n (name: ValueScopeName) => {\n if (name.value === undefined) throw new Error(`CodeGen: name \"${name}\" has no value`)\n return name.value.code\n },\n usedValues,\n getCode\n )\n }\n\n private _reduceValues(\n values: ScopeValues | ScopeValueSets,\n valueCode: (n: ValueScopeName) => Code | undefined,\n usedValues: UsedScopeValues = {},\n getCode?: (n: ValueScopeName) => Code | undefined\n ): Code {\n let code: Code = nil\n for (const prefix in values) {\n const vs = values[prefix]\n if (!vs) continue\n const nameSet = (usedValues[prefix] = usedValues[prefix] || new Map())\n vs.forEach((name: ValueScopeName) => {\n if (nameSet.has(name)) return\n nameSet.set(name, UsedValueState.Started)\n let c = valueCode(name)\n if (c) {\n const def = this.opts.es5 ? varKinds.var : varKinds.const\n code = _`${code}${def} ${name} = ${c};${this.opts._n}`\n } else if ((c = getCode?.(name))) {\n code = _`${code}${c}${this.opts._n}`\n } else {\n throw new ValueError(name)\n }\n nameSet.set(name, UsedValueState.Completed)\n })\n }\n return code\n }\n}\n","import type {ScopeValueSets, NameValue, ValueScope, ValueScopeName} from \"./scope\"\nimport {_, nil, _Code, Code, Name, UsedNames, CodeItem, addCodeArg, _CodeOrName} from \"./code\"\nimport {Scope, varKinds} from \"./scope\"\n\nexport {_, str, strConcat, nil, getProperty, stringify, regexpCode, Name, Code} from \"./code\"\nexport {Scope, ScopeStore, ValueScope, ValueScopeName, ScopeValueSets, varKinds} from \"./scope\"\n\n// type for expressions that can be safely inserted in code without quotes\nexport type SafeExpr = Code | number | boolean | null\n\n// type that is either Code of function that adds code to CodeGen instance using its methods\nexport type Block = Code | (() => void)\n\nexport const operators = {\n GT: new _Code(\">\"),\n GTE: new _Code(\">=\"),\n LT: new _Code(\"<\"),\n LTE: new _Code(\"<=\"),\n EQ: new _Code(\"===\"),\n NEQ: new _Code(\"!==\"),\n NOT: new _Code(\"!\"),\n OR: new _Code(\"||\"),\n AND: new _Code(\"&&\"),\n ADD: new _Code(\"+\"),\n}\n\nabstract class Node {\n abstract readonly names: UsedNames\n\n optimizeNodes(): this | ChildNode | ChildNode[] | undefined {\n return this\n }\n\n optimizeNames(_names: UsedNames, _constants: Constants): this | undefined {\n return this\n }\n\n // get count(): number {\n // return 1\n // }\n}\n\nclass Def extends Node {\n constructor(\n private readonly varKind: Name,\n private readonly name: Name,\n private rhs?: SafeExpr\n ) {\n super()\n }\n\n render({es5, _n}: CGOptions): string {\n const varKind = es5 ? varKinds.var : this.varKind\n const rhs = this.rhs === undefined ? \"\" : ` = ${this.rhs}`\n return `${varKind} ${this.name}${rhs};` + _n\n }\n\n optimizeNames(names: UsedNames, constants: Constants): this | undefined {\n if (!names[this.name.str]) return\n if (this.rhs) this.rhs = optimizeExpr(this.rhs, names, constants)\n return this\n }\n\n get names(): UsedNames {\n return this.rhs instanceof _CodeOrName ? this.rhs.names : {}\n }\n}\n\nclass Assign extends Node {\n constructor(\n readonly lhs: Code,\n public rhs: SafeExpr,\n private readonly sideEffects?: boolean\n ) {\n super()\n }\n\n render({_n}: CGOptions): string {\n return `${this.lhs} = ${this.rhs};` + _n\n }\n\n optimizeNames(names: UsedNames, constants: Constants): this | undefined {\n if (this.lhs instanceof Name && !names[this.lhs.str] && !this.sideEffects) return\n this.rhs = optimizeExpr(this.rhs, names, constants)\n return this\n }\n\n get names(): UsedNames {\n const names = this.lhs instanceof Name ? {} : {...this.lhs.names}\n return addExprNames(names, this.rhs)\n }\n}\n\nclass AssignOp extends Assign {\n constructor(\n lhs: Code,\n private readonly op: Code,\n rhs: SafeExpr,\n sideEffects?: boolean\n ) {\n super(lhs, rhs, sideEffects)\n }\n\n render({_n}: CGOptions): string {\n return `${this.lhs} ${this.op}= ${this.rhs};` + _n\n }\n}\n\nclass Label extends Node {\n readonly names: UsedNames = {}\n constructor(readonly label: Name) {\n super()\n }\n\n render({_n}: CGOptions): string {\n return `${this.label}:` + _n\n }\n}\n\nclass Break extends Node {\n readonly names: UsedNames = {}\n constructor(readonly label?: Code) {\n super()\n }\n\n render({_n}: CGOptions): string {\n const label = this.label ? ` ${this.label}` : \"\"\n return `break${label};` + _n\n }\n}\n\nclass Throw extends Node {\n constructor(readonly error: Code) {\n super()\n }\n\n render({_n}: CGOptions): string {\n return `throw ${this.error};` + _n\n }\n\n get names(): UsedNames {\n return this.error.names\n }\n}\n\nclass AnyCode extends Node {\n constructor(private code: SafeExpr) {\n super()\n }\n\n render({_n}: CGOptions): string {\n return `${this.code};` + _n\n }\n\n optimizeNodes(): this | undefined {\n return `${this.code}` ? this : undefined\n }\n\n optimizeNames(names: UsedNames, constants: Constants): this {\n this.code = optimizeExpr(this.code, names, constants)\n return this\n }\n\n get names(): UsedNames {\n return this.code instanceof _CodeOrName ? this.code.names : {}\n }\n}\n\nabstract class ParentNode extends Node {\n constructor(readonly nodes: ChildNode[] = []) {\n super()\n }\n\n render(opts: CGOptions): string {\n return this.nodes.reduce((code, n) => code + n.render(opts), \"\")\n }\n\n optimizeNodes(): this | ChildNode | ChildNode[] | undefined {\n const {nodes} = this\n let i = nodes.length\n while (i--) {\n const n = nodes[i].optimizeNodes()\n if (Array.isArray(n)) nodes.splice(i, 1, ...n)\n else if (n) nodes[i] = n\n else nodes.splice(i, 1)\n }\n return nodes.length > 0 ? this : undefined\n }\n\n optimizeNames(names: UsedNames, constants: Constants): this | undefined {\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)) continue\n subtractNames(names, n.names)\n nodes.splice(i, 1)\n }\n return nodes.length > 0 ? this : undefined\n }\n\n get names(): UsedNames {\n return this.nodes.reduce((names: UsedNames, n) => addNames(names, n.names), {})\n }\n\n // get count(): number {\n // return this.nodes.reduce((c, n) => c + n.count, 1)\n // }\n}\n\nabstract class BlockNode extends ParentNode {\n render(opts: CGOptions): string {\n return \"{\" + opts._n + super.render(opts) + \"}\" + opts._n\n }\n}\n\nclass Root extends ParentNode {}\n\nclass Else extends BlockNode {\n static readonly kind = \"else\"\n}\n\nclass If extends BlockNode {\n static readonly kind = \"if\"\n else?: If | Else\n constructor(\n private condition: Code | boolean,\n nodes?: ChildNode[]\n ) {\n super(nodes)\n }\n\n render(opts: CGOptions): string {\n let code = `if(${this.condition})` + super.render(opts)\n if (this.else) code += \"else \" + this.else.render(opts)\n return code\n }\n\n optimizeNodes(): If | ChildNode[] | undefined {\n super.optimizeNodes()\n const cond = this.condition\n if (cond === true) 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 as Else | undefined)\n }\n if (e) {\n if (cond === false) return e instanceof If ? e : e.nodes\n if (this.nodes.length) return this\n return new If(not(cond), e instanceof If ? [e] : e.nodes)\n }\n if (cond === false || !this.nodes.length) return undefined\n return this\n }\n\n optimizeNames(names: UsedNames, constants: Constants): this | undefined {\n this.else = this.else?.optimizeNames(names, constants)\n if (!(super.optimizeNames(names, constants) || this.else)) return\n this.condition = optimizeExpr(this.condition, names, constants)\n return this\n }\n\n get names(): UsedNames {\n const names = super.names\n addExprNames(names, this.condition)\n if (this.else) addNames(names, this.else.names)\n return names\n }\n\n // get count(): number {\n // return super.count + (this.else?.count || 0)\n // }\n}\n\nabstract class For extends BlockNode {\n static readonly kind = \"for\"\n}\n\nclass ForLoop extends For {\n constructor(private iteration: Code) {\n super()\n }\n\n render(opts: CGOptions): string {\n return `for(${this.iteration})` + super.render(opts)\n }\n\n optimizeNames(names: UsedNames, constants: Constants): this | undefined {\n if (!super.optimizeNames(names, constants)) return\n this.iteration = optimizeExpr(this.iteration, names, constants)\n return this\n }\n\n get names(): UsedNames {\n return addNames(super.names, this.iteration.names)\n }\n}\n\nclass ForRange extends For {\n constructor(\n private readonly varKind: Name,\n private readonly name: Name,\n private readonly from: SafeExpr,\n private readonly to: SafeExpr\n ) {\n super()\n }\n\n render(opts: CGOptions): string {\n const varKind = opts.es5 ? varKinds.var : this.varKind\n const {name, from, to} = this\n return `for(${varKind} ${name}=${from}; ${name}<${to}; ${name}++)` + super.render(opts)\n }\n\n get names(): UsedNames {\n const names = addExprNames(super.names, this.from)\n return addExprNames(names, this.to)\n }\n}\n\nclass ForIter extends For {\n constructor(\n private readonly loop: \"of\" | \"in\",\n private readonly varKind: Name,\n private readonly name: Name,\n private iterable: Code\n ) {\n super()\n }\n\n render(opts: CGOptions): string {\n return `for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})` + super.render(opts)\n }\n\n optimizeNames(names: UsedNames, constants: Constants): this | undefined {\n if (!super.optimizeNames(names, constants)) return\n this.iterable = optimizeExpr(this.iterable, names, constants)\n return this\n }\n\n get names(): UsedNames {\n return addNames(super.names, this.iterable.names)\n }\n}\n\nclass Func extends BlockNode {\n static readonly kind = \"func\"\n constructor(\n public name: Name,\n public args: Code,\n public async?: boolean\n ) {\n super()\n }\n\n render(opts: CGOptions): string {\n const _async = this.async ? \"async \" : \"\"\n return `${_async}function ${this.name}(${this.args})` + super.render(opts)\n }\n}\n\nclass Return extends ParentNode {\n static readonly kind = \"return\"\n\n render(opts: CGOptions): string {\n return \"return \" + super.render(opts)\n }\n}\n\nclass Try extends BlockNode {\n catch?: Catch\n finally?: Finally\n\n render(opts: CGOptions): string {\n let code = \"try\" + super.render(opts)\n if (this.catch) code += this.catch.render(opts)\n if (this.finally) code += this.finally.render(opts)\n return code\n }\n\n optimizeNodes(): this {\n super.optimizeNodes()\n this.catch?.optimizeNodes() as Catch | undefined\n this.finally?.optimizeNodes() as Finally | undefined\n return this\n }\n\n optimizeNames(names: UsedNames, constants: Constants): this {\n super.optimizeNames(names, constants)\n this.catch?.optimizeNames(names, constants)\n this.finally?.optimizeNames(names, constants)\n return this\n }\n\n get names(): UsedNames {\n const names = super.names\n if (this.catch) addNames(names, this.catch.names)\n if (this.finally) addNames(names, this.finally.names)\n return names\n }\n\n // get count(): number {\n // return super.count + (this.catch?.count || 0) + (this.finally?.count || 0)\n // }\n}\n\nclass Catch extends BlockNode {\n static readonly kind = \"catch\"\n constructor(readonly error: Name) {\n super()\n }\n\n render(opts: CGOptions): string {\n return `catch(${this.error})` + super.render(opts)\n }\n}\n\nclass Finally extends BlockNode {\n static readonly kind = \"finally\"\n render(opts: CGOptions): string {\n return \"finally\" + super.render(opts)\n }\n}\n\ntype StartBlockNode = If | For | Func | Return | Try\n\ntype LeafNode = Def | Assign | Label | Break | Throw | AnyCode\n\ntype ChildNode = StartBlockNode | LeafNode\n\ntype EndBlockNodeType =\n | typeof If\n | typeof Else\n | typeof For\n | typeof Func\n | typeof Return\n | typeof Catch\n | typeof Finally\n\ntype Constants = Record<string, SafeExpr | undefined>\n\nexport interface CodeGenOptions {\n es5?: boolean\n lines?: boolean\n ownProperties?: boolean\n}\n\ninterface CGOptions extends CodeGenOptions {\n _n: \"\\n\" | \"\"\n}\n\nexport class CodeGen {\n readonly _scope: Scope\n readonly _extScope: ValueScope\n readonly _values: ScopeValueSets = {}\n private readonly _nodes: ParentNode[]\n private readonly _blockStarts: number[] = []\n private readonly _constants: Constants = {}\n private readonly opts: CGOptions\n\n constructor(extScope: ValueScope, opts: CodeGenOptions = {}) {\n this.opts = {...opts, _n: opts.lines ? \"\\n\" : \"\"}\n this._extScope = extScope\n this._scope = new Scope({parent: extScope})\n this._nodes = [new Root()]\n }\n\n toString(): string {\n return this._root.render(this.opts)\n }\n\n // returns unique name in the internal scope\n name(prefix: string): Name {\n return this._scope.name(prefix)\n }\n\n // reserves unique name in the external scope\n scopeName(prefix: string): ValueScopeName {\n return this._extScope.name(prefix)\n }\n\n // reserves unique name in the external scope and assigns value to it\n scopeValue(prefixOrName: ValueScopeName | string, value: NameValue): Name {\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\n getScopeValue(prefix: string, keyOrRef: unknown): ValueScopeName | undefined {\n return this._extScope.getValue(prefix, keyOrRef)\n }\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: Name): Code {\n return this._extScope.scopeRefs(scopeName, this._values)\n }\n\n scopeCode(): Code {\n return this._extScope.scopeCode(this._values)\n }\n\n private _def(\n varKind: Name,\n nameOrPrefix: Name | string,\n rhs?: SafeExpr,\n constant?: boolean\n ): Name {\n const name = this._scope.toName(nameOrPrefix)\n if (rhs !== undefined && constant) this._constants[name.str] = rhs\n this._leafNode(new Def(varKind, name, rhs))\n return name\n }\n\n // `const` declaration (`var` in es5 mode)\n const(nameOrPrefix: Name | string, rhs: SafeExpr, _constant?: boolean): Name {\n return this._def(varKinds.const, nameOrPrefix, rhs, _constant)\n }\n\n // `let` declaration with optional assignment (`var` in es5 mode)\n let(nameOrPrefix: Name | string, rhs?: SafeExpr, _constant?: boolean): Name {\n return this._def(varKinds.let, nameOrPrefix, rhs, _constant)\n }\n\n // `var` declaration with optional assignment\n var(nameOrPrefix: Name | string, rhs?: SafeExpr, _constant?: boolean): Name {\n return this._def(varKinds.var, nameOrPrefix, rhs, _constant)\n }\n\n // assignment code\n assign(lhs: Code, rhs: SafeExpr, sideEffects?: boolean): CodeGen {\n return this._leafNode(new Assign(lhs, rhs, sideEffects))\n }\n\n // `+=` code\n add(lhs: Code, rhs: SafeExpr): CodeGen {\n return this._leafNode(new AssignOp(lhs, operators.ADD, rhs))\n }\n\n // appends passed SafeExpr to code or executes Block\n code(c: Block | SafeExpr): CodeGen {\n if (typeof c == \"function\") c()\n else if (c !== nil) this._leafNode(new AnyCode(c))\n return this\n }\n\n // returns code for object literal for the passed argument list of key-value pairs\n object(...keyValues: [Name | string, SafeExpr | string][]): _Code {\n const code: CodeItem[] = [\"{\"]\n for (const [key, value] of keyValues) {\n if (code.length > 1) code.push(\",\")\n code.push(key)\n if (key !== value || this.opts.es5) {\n code.push(\":\")\n addCodeArg(code, value)\n }\n }\n code.push(\"}\")\n return new _Code(code)\n }\n\n // `if` clause (or statement if `thenBody` and, optionally, `elseBody` are passed)\n if(condition: Code | boolean, thenBody?: Block, elseBody?: Block): CodeGen {\n this._blockNode(new If(condition))\n\n if (thenBody && elseBody) {\n this.code(thenBody).else().code(elseBody).endIf()\n } else if (thenBody) {\n this.code(thenBody).endIf()\n } else if (elseBody) {\n throw new Error('CodeGen: \"else\" body without \"then\" body')\n }\n return this\n }\n\n // `else if` clause - invalid without `if` or after `else` clauses\n elseIf(condition: Code | boolean): CodeGen {\n return this._elseNode(new If(condition))\n }\n\n // `else` clause - only valid after `if` or `else if` clauses\n else(): CodeGen {\n return this._elseNode(new Else())\n }\n\n // end `if` statement (needed if gen.if was used only with condition)\n endIf(): CodeGen {\n return this._endBlockNode(If, Else)\n }\n\n private _for(node: For, forBody?: Block): CodeGen {\n this._blockNode(node)\n if (forBody) this.code(forBody).endFor()\n return this\n }\n\n // a generic `for` clause (or statement if `forBody` is passed)\n for(iteration: Code, forBody?: Block): CodeGen {\n return this._for(new ForLoop(iteration), forBody)\n }\n\n // `for` statement for a range of values\n forRange(\n nameOrPrefix: Name | string,\n from: SafeExpr,\n to: SafeExpr,\n forBody: (index: Name) => void,\n varKind: Code = this.opts.es5 ? varKinds.var : varKinds.let\n ): CodeGen {\n const name = this._scope.toName(nameOrPrefix)\n return this._for(new ForRange(varKind, name, from, to), () => forBody(name))\n }\n\n // `for-of` statement (in es5 mode replace with a normal for loop)\n forOf(\n nameOrPrefix: Name | string,\n iterable: Code,\n forBody: (item: Name) => void,\n varKind: Code = varKinds.const\n ): CodeGen {\n const name = this._scope.toName(nameOrPrefix)\n if (this.opts.es5) {\n const arr = iterable instanceof Name ? iterable : this.var(\"_arr\", iterable)\n return this.forRange(\"_i\", 0, _`${arr}.length`, (i) => {\n this.var(name, _`${arr}[${i}]`)\n forBody(name)\n })\n }\n return this._for(new ForIter(\"of\", varKind, name, iterable), () => forBody(name))\n }\n\n // `for-in` statement.\n // With option `ownProperties` replaced with a `for-of` loop for object keys\n forIn(\n nameOrPrefix: Name | string,\n obj: Code,\n forBody: (item: Name) => void,\n varKind: Code = this.opts.es5 ? varKinds.var : varKinds.const\n ): CodeGen {\n if (this.opts.ownProperties) {\n return this.forOf(nameOrPrefix, _`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\n // end `for` loop\n endFor(): CodeGen {\n return this._endBlockNode(For)\n }\n\n // `label` statement\n label(label: Name): CodeGen {\n return this._leafNode(new Label(label))\n }\n\n // `break` statement\n break(label?: Code): CodeGen {\n return this._leafNode(new Break(label))\n }\n\n // `return` statement\n return(value: Block | SafeExpr): CodeGen {\n const node = new Return()\n this._blockNode(node)\n this.code(value)\n if (node.nodes.length !== 1) throw new Error('CodeGen: \"return\" should have one node')\n return this._endBlockNode(Return)\n }\n\n // `try` statement\n try(tryBody: Block, catchCode?: (e: Name) => void, finallyCode?: Block): CodeGen {\n if (!catchCode && !finallyCode) 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\n // `throw` statement\n throw(error: Code): CodeGen {\n return this._leafNode(new Throw(error))\n }\n\n // start self-balancing block\n block(body?: Block, nodeCount?: number): CodeGen {\n this._blockStarts.push(this._nodes.length)\n if (body) this.code(body).endBlock(nodeCount)\n return this\n }\n\n // end the current self-balancing block\n endBlock(nodeCount?: number): CodeGen {\n const len = this._blockStarts.pop()\n if (len === undefined) 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\n // `function` heading (or definition if funcBody is passed)\n func(name: Name, args: Code = nil, async?: boolean, funcBody?: Block): CodeGen {\n this._blockNode(new Func(name, args, async))\n if (funcBody) this.code(funcBody).endFunc()\n return this\n }\n\n // end function definition\n endFunc(): CodeGen {\n return this._endBlockNode(Func)\n }\n\n optimize(n = 1): void {\n while (n-- > 0) {\n this._root.optimizeNodes()\n this._root.optimizeNames(this._root.names, this._constants)\n }\n }\n\n private _leafNode(node: LeafNode): CodeGen {\n this._currNode.nodes.push(node)\n return this\n }\n\n private _blockNode(node: StartBlockNode): void {\n this._currNode.nodes.push(node)\n this._nodes.push(node)\n }\n\n private _endBlockNode(N1: EndBlockNodeType, N2?: EndBlockNodeType): CodeGen {\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\n private _elseNode(node: If | Else): CodeGen {\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\n private get _root(): Root {\n return this._nodes[0] as Root\n }\n\n private get _currNode(): ParentNode {\n const ns = this._nodes\n return ns[ns.length - 1]\n }\n\n private set _currNode(node: ParentNode) {\n const ns = this._nodes\n ns[ns.length - 1] = node\n }\n\n // get nodeCount(): number {\n // return this._root.count\n // }\n}\n\nfunction addNames(names: UsedNames, from: UsedNames): UsedNames {\n for (const n in from) names[n] = (names[n] || 0) + (from[n] || 0)\n return names\n}\n\nfunction addExprNames(names: UsedNames, from: SafeExpr): UsedNames {\n return from instanceof _CodeOrName ? addNames(names, from.names) : names\n}\n\nfunction optimizeExpr<T extends SafeExpr | Code>(expr: T, names: UsedNames, constants: Constants): T\nfunction optimizeExpr(expr: SafeExpr, names: UsedNames, constants: Constants): SafeExpr {\n if (expr instanceof Name) return replaceName(expr)\n if (!canOptimize(expr)) return expr\n return new _Code(\n expr._items.reduce((items: CodeItem[], c: SafeExpr | string) => {\n if (c instanceof Name) c = replaceName(c)\n if (c instanceof _Code) items.push(...c._items)\n else items.push(c)\n return items\n }, [])\n )\n\n function replaceName(n: Name): SafeExpr {\n const c = constants[n.str]\n if (c === undefined || names[n.str] !== 1) return n\n delete names[n.str]\n return c\n }\n\n function canOptimize(e: SafeExpr): e is _Code {\n return (\n e instanceof _Code &&\n e._items.some(\n (c) => c instanceof Name && names[c.str] === 1 && constants[c.str] !== undefined\n )\n )\n }\n}\n\nfunction subtractNames(names: UsedNames, from: UsedNames): void {\n for (const n in from) names[n] = (names[n] || 0) - (from[n] || 0)\n}\n\nexport function not<T extends Code | SafeExpr>(x: T): T\nexport function not(x: Code | SafeExpr): Code | SafeExpr {\n return typeof x == \"boolean\" || typeof x == \"number\" || x === null ? !x : _`!${par(x)}`\n}\n\nconst andCode = mappend(operators.AND)\n\n// boolean AND (&&) expression with the passed arguments\nexport function and(...args: Code[]): Code {\n return args.reduce(andCode)\n}\n\nconst orCode = mappend(operators.OR)\n\n// boolean OR (||) expression with the passed arguments\nexport function or(...args: Code[]): Code {\n return args.reduce(orCode)\n}\n\ntype MAppend = (x: Code, y: Code) => Code\n\nfunction mappend(op: Code): MAppend {\n return (x, y) => (x === nil ? y : y === nil ? x : _`${par(x)} ${op} ${par(y)}`)\n}\n\nfunction par(x: Code): Code {\n return x instanceof Name ? x : _`(${x})`\n}\n","import type {AnySchema, EvaluatedProperties, EvaluatedItems} from \"../types\"\nimport type {SchemaCxt, SchemaObjCxt} from \".\"\nimport {_, getProperty, Code, Name, CodeGen} from \"./codegen\"\nimport {_Code} from \"./codegen/code\"\nimport type {Rule, ValidationRules} from \"./rules\"\n\n// TODO refactor to use Set\nexport function toHash<T extends string = string>(arr: T[]): {[K in T]?: true} {\n const hash: {[K in T]?: true} = {}\n for (const item of arr) hash[item] = true\n return hash\n}\n\nexport function alwaysValidSchema(it: SchemaCxt, schema: AnySchema): boolean | void {\n if (typeof schema == \"boolean\") return schema\n if (Object.keys(schema).length === 0) return true\n checkUnknownRules(it, schema)\n return !schemaHasRules(schema, it.self.RULES.all)\n}\n\nexport function checkUnknownRules(it: SchemaCxt, schema: AnySchema = it.schema): void {\n const {opts, self} = it\n if (!opts.strictSchema) return\n if (typeof schema === \"boolean\") return\n const rules = self.RULES.keywords\n for (const key in schema) {\n if (!rules[key]) checkStrictMode(it, `unknown keyword: \"${key}\"`)\n }\n}\n\nexport function schemaHasRules(\n schema: AnySchema,\n rules: {[Key in string]?: boolean | Rule}\n): boolean {\n if (typeof schema == \"boolean\") return !schema\n for (const key in schema) if (rules[key]) return true\n return false\n}\n\nexport function schemaHasRulesButRef(schema: AnySchema, RULES: ValidationRules): boolean {\n if (typeof schema == \"boolean\") return !schema\n for (const key in schema) if (key !== \"$ref\" && RULES.all[key]) return true\n return false\n}\n\nexport function schemaRefOrVal(\n {topSchemaRef, schemaPath}: SchemaObjCxt,\n schema: unknown,\n keyword: string,\n $data?: string | false\n): Code | number | boolean {\n if (!$data) {\n if (typeof schema == \"number\" || typeof schema == \"boolean\") return schema\n if (typeof schema == \"string\") return _`${schema}`\n }\n return _`${topSchemaRef}${schemaPath}${getProperty(keyword)}`\n}\n\nexport function unescapeFragment(str: string): string {\n return unescapeJsonPointer(decodeURIComponent(str))\n}\n\nexport function escapeFragment(str: string | number): string {\n return encodeURIComponent(escapeJsonPointer(str))\n}\n\nexport function escapeJsonPointer(str: string | number): string {\n if (typeof str == \"number\") return `${str}`\n return str.replace(/~/g, \"~0\").replace(/\\//g, \"~1\")\n}\n\nexport function unescapeJsonPointer(str: string): string {\n return str.replace(/~1/g, \"/\").replace(/~0/g, \"~\")\n}\n\nexport function eachItem<T>(xs: T | T[], f: (x: T) => void): void {\n if (Array.isArray(xs)) {\n for (const x of xs) f(x)\n } else {\n f(xs)\n }\n}\n\ntype SomeEvaluated = EvaluatedProperties | EvaluatedItems\n\ntype MergeEvaluatedFunc<T extends SomeEvaluated> = (\n gen: CodeGen,\n from: Name | T,\n to: Name | Exclude<T, true> | undefined,\n toName?: typeof Name\n) => Name | T\n\ninterface MakeMergeFuncArgs<T extends SomeEvaluated> {\n mergeNames: (gen: CodeGen, from: Name, to: Name) => void\n mergeToName: (gen: CodeGen, from: T, to: Name) => void\n mergeValues: (from: T, to: Exclude<T, true>) => T\n resultToName: (gen: CodeGen, res?: T) => Name\n}\n\nfunction makeMergeEvaluated<T extends SomeEvaluated>({\n mergeNames,\n mergeToName,\n mergeValues,\n resultToName,\n}: MakeMergeFuncArgs<T>): MergeEvaluatedFunc<T> {\n return (gen, from, to, toName) => {\n const res =\n to === undefined\n ? from\n : to instanceof Name\n ? (from instanceof Name ? mergeNames(gen, from, to) : mergeToName(gen, from, to), to)\n : from instanceof Name\n ? (mergeToName(gen, to, from), from)\n : mergeValues(from, to)\n return toName === Name && !(res instanceof Name) ? resultToName(gen, res) : res\n }\n}\n\ninterface MergeEvaluated {\n props: MergeEvaluatedFunc<EvaluatedProperties>\n items: MergeEvaluatedFunc<EvaluatedItems>\n}\n\nexport const mergeEvaluated: MergeEvaluated = {\n props: makeMergeEvaluated({\n mergeNames: (gen, from, to) =>\n gen.if(_`${to} !== true && ${from} !== undefined`, () => {\n gen.if(\n _`${from} === true`,\n () => gen.assign(to, true),\n () => gen.assign(to, _`${to} || {}`).code(_`Object.assign(${to}, ${from})`)\n )\n }),\n mergeToName: (gen, from, to) =>\n gen.if(_`${to} !== true`, () => {\n if (from === true) {\n gen.assign(to, true)\n } else {\n gen.assign(to, _`${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) =>\n gen.if(_`${to} !== true && ${from} !== undefined`, () =>\n gen.assign(to, _`${from} === true ? true : ${to} > ${from} ? ${to} : ${from}`)\n ),\n mergeToName: (gen, from, to) =>\n gen.if(_`${to} !== true`, () =>\n gen.assign(to, from === true ? true : _`${to} > ${from} ? ${to} : ${from}`)\n ),\n mergeValues: (from, to) => (from === true ? true : Math.max(from, to)),\n resultToName: (gen, items) => gen.var(\"items\", items),\n }),\n}\n\nexport function evaluatedPropsToName(gen: CodeGen, ps?: EvaluatedProperties): Name {\n if (ps === true) return gen.var(\"props\", true)\n const props = gen.var(\"props\", _`{}`)\n if (ps !== undefined) setEvaluated(gen, props, ps)\n return props\n}\n\nexport function setEvaluated(gen: CodeGen, props: Name, ps: {[K in string]?: true}): void {\n Object.keys(ps).forEach((p) => gen.assign(_`${props}${getProperty(p)}`, true))\n}\n\nconst snippets: {[S in string]?: _Code} = {}\n\nexport function useFunc(gen: CodeGen, f: {code: string}): Name {\n return gen.scopeValue(\"func\", {\n ref: f,\n code: snippets[f.code] || (snippets[f.code] = new _Code(f.code)),\n })\n}\n\nexport enum Type {\n Num,\n Str,\n}\n\nexport function getErrorPath(\n dataProp: Name | string | number,\n dataPropType?: Type,\n jsPropertySyntax?: boolean\n): Code | string {\n // let path\n if (dataProp instanceof Name) {\n const isNumber = dataPropType === Type.Num\n return jsPropertySyntax\n ? isNumber\n ? _`\"[\" + ${dataProp} + \"]\"`\n : _`\"['\" + ${dataProp} + \"']\"`\n : isNumber\n ? _`\"/\" + ${dataProp}`\n : _`\"/\" + ${dataProp}.replace(/~/g, \"~0\").replace(/\\\\//g, \"~1\")` // TODO maybe use global escapePointer\n }\n return jsPropertySyntax ? getProperty(dataProp).toString() : \"/\" + escapeJsonPointer(dataProp)\n}\n\nexport function checkStrictMode(\n it: SchemaCxt,\n msg: string,\n mode: boolean | \"log\" = it.opts.strictSchema\n): void {\n if (!mode) return\n msg = `strict mode: ${msg}`\n if (mode === true) throw new Error(msg)\n it.self.logger.warn(msg)\n}\n","import {Name} from \"./codegen\"\n\nconst names = {\n // validation function arguments\n data: new Name(\"data\"), // data passed to validation function\n // args passed from referencing schema\n valCxt: new Name(\"valCxt\"), // validation/data context - should not be used directly, it is destructured to the names below\n instancePath: new Name(\"instancePath\"),\n parentData: new Name(\"parentData\"),\n parentDataProperty: new Name(\"parentDataProperty\"),\n rootData: new Name(\"rootData\"), // root data - same as the data passed to the first/top validation function\n dynamicAnchors: new Name(\"dynamicAnchors\"), // used to support recursiveRef and dynamicRef\n // function scoped variables\n vErrors: new Name(\"vErrors\"), // null or array of validation errors\n errors: new Name(\"errors\"), // counter of validation errors\n this: new Name(\"this\"),\n // \"globals\"\n self: new Name(\"self\"),\n scope: new Name(\"scope\"),\n // JTD serialize/parse name for JSON string and position\n json: new Name(\"json\"),\n jsonPos: new Name(\"jsonPos\"),\n jsonLen: new Name(\"jsonLen\"),\n jsonPart: new Name(\"jsonPart\"),\n}\n\nexport default names\n","import type {KeywordErrorCxt, KeywordErrorDefinition} from \"../types\"\nimport type {SchemaCxt} from \"./index\"\nimport {CodeGen, _, str, strConcat, Code, Name} from \"./codegen\"\nimport {SafeExpr} from \"./codegen/code\"\nimport {getErrorPath, Type} from \"./util\"\nimport N from \"./names\"\n\nexport const keywordError: KeywordErrorDefinition = {\n message: ({keyword}) => str`must pass \"${keyword}\" keyword validation`,\n}\n\nexport const keyword$DataError: KeywordErrorDefinition = {\n message: ({keyword, schemaType}) =>\n schemaType\n ? str`\"${keyword}\" keyword must be ${schemaType} ($data)`\n : str`\"${keyword}\" keyword is invalid ($data)`,\n}\n\nexport interface ErrorPaths {\n instancePath?: Code\n schemaPath?: string\n parentSchema?: boolean\n}\n\nexport function reportError(\n cxt: KeywordErrorCxt,\n error: KeywordErrorDefinition = keywordError,\n errorPaths?: ErrorPaths,\n overrideAllErrors?: boolean\n): void {\n const {it} = cxt\n const {gen, compositeRule, allErrors} = it\n const errObj = errorObjectCode(cxt, error, errorPaths)\n if (overrideAllErrors ?? (compositeRule || allErrors)) {\n addError(gen, errObj)\n } else {\n returnErrors(it, _`[${errObj}]`)\n }\n}\n\nexport function reportExtraError(\n cxt: KeywordErrorCxt,\n error: KeywordErrorDefinition = keywordError,\n errorPaths?: ErrorPaths\n): void {\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, N.vErrors)\n }\n}\n\nexport function resetErrorsCount(gen: CodeGen, errsCount: Name): void {\n gen.assign(N.errors, errsCount)\n gen.if(_`${N.vErrors} !== null`, () =>\n gen.if(\n errsCount,\n () => gen.assign(_`${N.vErrors}.length`, errsCount),\n () => gen.assign(N.vErrors, null)\n )\n )\n}\n\nexport function extendErrors({\n gen,\n keyword,\n schemaValue,\n data,\n errsCount,\n it,\n}: KeywordErrorCxt): void {\n /* istanbul ignore if */\n if (errsCount === undefined) throw new Error(\"ajv implementation error\")\n const err = gen.name(\"err\")\n gen.forRange(\"i\", errsCount, N.errors, (i) => {\n gen.const(err, _`${N.vErrors}[${i}]`)\n gen.if(_`${err}.instancePath === undefined`, () =>\n gen.assign(_`${err}.instancePath`, strConcat(N.instancePath, it.errorPath))\n )\n gen.assign(_`${err}.schemaPath`, str`${it.errSchemaPath}/${keyword}`)\n if (it.opts.verbose) {\n gen.assign(_`${err}.schema`, schemaValue)\n gen.assign(_`${err}.data`, data)\n }\n })\n}\n\nfunction addError(gen: CodeGen, errObj: Code): void {\n const err = gen.const(\"err\", errObj)\n gen.if(\n _`${N.vErrors} === null`,\n () => gen.assign(N.vErrors, _`[${err}]`),\n _`${N.vErrors}.push(${err})`\n )\n gen.code(_`${N.errors}++`)\n}\n\nfunction returnErrors(it: SchemaCxt, errs: Code): void {\n const {gen, validateName, schemaEnv} = it\n if (schemaEnv.$async) {\n gen.throw(_`new ${it.ValidationError as Name}(${errs})`)\n } else {\n gen.assign(_`${validateName}.errors`, errs)\n gen.return(false)\n }\n}\n\nconst E = {\n keyword: new Name(\"keyword\"),\n schemaPath: new Name(\"schemaPath\"), // also used in JTD errors\n params: new Name(\"params\"),\n propertyName: new Name(\"propertyName\"),\n message: new Name(\"message\"),\n schema: new Name(\"schema\"),\n parentSchema: new Name(\"parentSchema\"),\n}\n\nfunction errorObjectCode(\n cxt: KeywordErrorCxt,\n error: KeywordErrorDefinition,\n errorPaths?: ErrorPaths\n): Code {\n const {createErrors} = cxt.it\n if (createErrors === false) return _`{}`\n return errorObject(cxt, error, errorPaths)\n}\n\nfunction errorObject(\n cxt: KeywordErrorCxt,\n error: KeywordErrorDefinition,\n errorPaths: ErrorPaths = {}\n): Code {\n const {gen, it} = cxt\n const keyValues: [Name, SafeExpr | string][] = [\n errorInstancePath(it, errorPaths),\n errorSchemaPath(cxt, errorPaths),\n ]\n extraErrorProps(cxt, error, keyValues)\n return gen.object(...keyValues)\n}\n\nfunction errorInstancePath({errorPath}: SchemaCxt, {instancePath}: ErrorPaths): [Name, Code] {\n const instPath = instancePath\n ? str`${errorPath}${getErrorPath(instancePath, Type.Str)}`\n : errorPath\n return [N.instancePath, strConcat(N.instancePath, instPath)]\n}\n\nfunction errorSchemaPath(\n {keyword, it: {errSchemaPath}}: KeywordErrorCxt,\n {schemaPath, parentSchema}: ErrorPaths\n): [Name, string | Code] {\n let schPath = parentSchema ? errSchemaPath : str`${errSchemaPath}/${keyword}`\n if (schemaPath) {\n schPath = str`${schPath}${getErrorPath(schemaPath, Type.Str)}`\n }\n return [E.schemaPath, schPath]\n}\n\nfunction extraErrorProps(\n cxt: KeywordErrorCxt,\n {params, message}: KeywordErrorDefinition,\n keyValues: [Name, SafeExpr | string][]\n): void {\n const {keyword, data, schemaValue, it} = cxt\n const {opts, propertyName, topSchemaRef, schemaPath} = it\n keyValues.push(\n [E.keyword, keyword],\n [E.params, typeof params == \"function\" ? params(cxt) : params || _`{}`]\n )\n if (opts.messages) {\n keyValues.push([E.message, typeof message == \"function\" ? message(cxt) : message])\n }\n if (opts.verbose) {\n keyValues.push(\n [E.schema, schemaValue],\n [E.parentSchema, _`${topSchemaRef}${schemaPath}`],\n [N.data, data]\n )\n }\n if (propertyName) keyValues.push([E.propertyName, propertyName])\n}\n","import type {AddedKeywordDefinition} from \"../types\"\n\nconst _jsonTypes = [\"string\", \"number\", \"integer\", \"boolean\", \"null\", \"object\", \"array\"] as const\n\nexport type JSONType = (typeof _jsonTypes)[number]\n\nconst jsonTypes: Set<string> = new Set(_jsonTypes)\n\nexport function isJSONType(x: unknown): x is JSONType {\n return typeof x == \"string\" && jsonTypes.has(x)\n}\n\ntype ValidationTypes = {\n [K in JSONType]: boolean | RuleGroup | undefined\n}\n\nexport interface ValidationRules {\n rules: RuleGroup[]\n post: RuleGroup\n all: {[Key in string]?: boolean | Rule} // rules that have to be validated\n keywords: {[Key in string]?: boolean} // all known keywords (superset of \"all\")\n types: ValidationTypes\n}\n\nexport interface RuleGroup {\n type?: JSONType\n rules: Rule[]\n}\n\n// This interface wraps KeywordDefinition because definition can have multiple keywords\nexport interface Rule {\n keyword: string\n definition: AddedKeywordDefinition\n}\n\nexport function getRules(): ValidationRules {\n const groups: Record<\"number\" | \"string\" | \"array\" | \"object\", RuleGroup> = {\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}\n","import type {AnySchemaObject} from \"../../types\"\nimport type {SchemaObjCxt} from \"..\"\nimport type {JSONType, RuleGroup, Rule} from \"../rules\"\n\nexport function schemaHasRulesForType(\n {schema, self}: SchemaObjCxt,\n type: JSONType\n): boolean | undefined {\n const group = self.RULES.types[type]\n return group && group !== true && shouldUseGroup(schema, group)\n}\n\nexport function shouldUseGroup(schema: AnySchemaObject, group: RuleGroup): boolean {\n return group.rules.some((rule) => shouldUseRule(schema, rule))\n}\n\nexport function shouldUseRule(schema: AnySchemaObject, rule: Rule): boolean | undefined {\n return (\n schema[rule.keyword] !== undefined ||\n rule.definition.implements?.some((kwd) => schema[kwd] !== undefined)\n )\n}\n","import type {\n KeywordErrorDefinition,\n KeywordErrorCxt,\n ErrorObject,\n AnySchemaObject,\n} from \"../../types\"\nimport type {SchemaObjCxt} from \"..\"\nimport {isJSONType, JSONType} from \"../rules\"\nimport {schemaHasRulesForType} from \"./applicability\"\nimport {reportError} from \"../errors\"\nimport {_, nil, and, not, operators, Code, Name} from \"../codegen\"\nimport {toHash, schemaRefOrVal} from \"../util\"\n\nexport enum DataType {\n Correct,\n Wrong,\n}\n\nexport function getSchemaTypes(schema: AnySchemaObject): JSONType[] {\n const types = getJSONTypes(schema.type)\n const hasNull = types.includes(\"null\")\n if (hasNull) {\n if (schema.nullable === false) throw new Error(\"type: null contradicts nullable: false\")\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) types.push(\"null\")\n }\n return types\n}\n\n// eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\nexport function getJSONTypes(ts: unknown | unknown[]): JSONType[] {\n const types: unknown[] = Array.isArray(ts) ? ts : ts ? [ts] : []\n if (types.every(isJSONType)) return types\n throw new Error(\"type must be JSONType or JSONType[]: \" + types.join(\",\"))\n}\n\nexport function coerceAndCheckDataType(it: SchemaObjCxt, types: JSONType[]): boolean {\n const {gen, data, opts} = it\n const coerceTo = coerceToTypes(types, opts.coerceTypes)\n const checkTypes =\n types.length > 0 &&\n !(coerceTo.length === 0 && types.length === 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) coerceData(it, types, coerceTo)\n else reportTypeError(it)\n })\n }\n return checkTypes\n}\n\nconst COERCIBLE: Set<JSONType> = new Set([\"string\", \"number\", \"integer\", \"boolean\", \"null\"])\nfunction coerceToTypes(types: JSONType[], coerceTypes?: boolean | \"array\"): JSONType[] {\n return coerceTypes\n ? types.filter((t) => COERCIBLE.has(t) || (coerceTypes === \"array\" && t === \"array\"))\n : []\n}\n\nfunction coerceData(it: SchemaObjCxt, types: JSONType[], coerceTo: JSONType[]): void {\n const {gen, data, opts} = it\n const dataType = gen.let(\"dataType\", _`typeof ${data}`)\n const coerced = gen.let(\"coerced\", _`undefined`)\n if (opts.coerceTypes === \"array\") {\n gen.if(_`${dataType} == 'object' && Array.isArray(${data}) && ${data}.length == 1`, () =>\n gen\n .assign(data, _`${data}[0]`)\n .assign(dataType, _`typeof ${data}`)\n .if(checkDataTypes(types, data, opts.strictNumbers), () => gen.assign(coerced, data))\n )\n }\n gen.if(_`${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\n gen.if(_`${coerced} !== undefined`, () => {\n gen.assign(data, coerced)\n assignParentData(it, coerced)\n })\n\n function coerceSpecificType(t: string): void {\n switch (t) {\n case \"string\":\n gen\n .elseIf(_`${dataType} == \"number\" || ${dataType} == \"boolean\"`)\n .assign(coerced, _`\"\" + ${data}`)\n .elseIf(_`${data} === null`)\n .assign(coerced, _`\"\"`)\n return\n case \"number\":\n gen\n .elseIf(\n _`${dataType} == \"boolean\" || ${data} === null\n || (${dataType} == \"string\" && ${data} && ${data} == +${data})`\n )\n .assign(coerced, _`+${data}`)\n return\n case \"integer\":\n gen\n .elseIf(\n _`${dataType} === \"boolean\" || ${data} === null\n || (${dataType} === \"string\" && ${data} && ${data} == +${data} && !(${data} % 1))`\n )\n .assign(coerced, _`+${data}`)\n return\n case \"boolean\":\n gen\n .elseIf(_`${data} === \"false\" || ${data} === 0 || ${data} === null`)\n .assign(coerced, false)\n .elseIf(_`${data} === \"true\" || ${data} === 1`)\n .assign(coerced, true)\n return\n case \"null\":\n gen.elseIf(_`${data} === \"\" || ${data} === 0 || ${data} === false`)\n gen.assign(coerced, null)\n return\n\n case \"array\":\n gen\n .elseIf(\n _`${dataType} === \"string\" || ${dataType} === \"number\"\n || ${dataType} === \"boolean\" || ${data} === null`\n )\n .assign(coerced, _`[${data}]`)\n }\n }\n}\n\nfunction assignParentData({gen, parentData, parentDataProperty}: SchemaObjCxt, expr: Name): void {\n // TODO use gen.property\n gen.if(_`${parentData} !== undefined`, () =>\n gen.assign(_`${parentData}[${parentDataProperty}]`, expr)\n )\n}\n\nexport function checkDataType(\n dataType: JSONType,\n data: Name,\n strictNums?: boolean | \"log\",\n correct = DataType.Correct\n): Code {\n const EQ = correct === DataType.Correct ? operators.EQ : operators.NEQ\n let cond: Code\n switch (dataType) {\n case \"null\":\n return _`${data} ${EQ} null`\n case \"array\":\n cond = _`Array.isArray(${data})`\n break\n case \"object\":\n cond = _`${data} && typeof ${data} == \"object\" && !Array.isArray(${data})`\n break\n case \"integer\":\n cond = numCond(_`!(${data} % 1) && !isNaN(${data})`)\n break\n case \"number\":\n cond = numCond()\n break\n default:\n return _`typeof ${data} ${EQ} ${dataType}`\n }\n return correct === DataType.Correct ? cond : not(cond)\n\n function numCond(_cond: Code = nil): Code {\n return and(_`typeof ${data} == \"number\"`, _cond, strictNums ? _`isFinite(${data})` : nil)\n }\n}\n\nexport function checkDataTypes(\n dataTypes: JSONType[],\n data: Name,\n strictNums?: boolean | \"log\",\n correct?: DataType\n): Code {\n if (dataTypes.length === 1) {\n return checkDataType(dataTypes[0], data, strictNums, correct)\n }\n let cond: Code\n const types = toHash(dataTypes)\n if (types.array && types.object) {\n const notObj = _`typeof ${data} != \"object\"`\n cond = types.null ? notObj : _`!${data} || ${notObj}`\n delete types.null\n delete types.array\n delete types.object\n } else {\n cond = nil\n }\n if (types.number) delete types.integer\n for (const t in types) cond = and(cond, checkDataType(t as JSONType, data, strictNums, correct))\n return cond\n}\n\nexport type TypeError = ErrorObject<\"type\", {type: string}>\n\nconst typeError: KeywordErrorDefinition = {\n message: ({schema}) => `must be ${schema}`,\n params: ({schema, schemaValue}) =>\n typeof schema == \"string\" ? _`{type: ${schema}}` : _`{type: ${schemaValue}}`,\n}\n\nexport function reportTypeError(it: SchemaObjCxt): void {\n const cxt = getTypeErrorContext(it)\n reportError(cxt, typeError)\n}\n\nfunction getTypeErrorContext(it: SchemaObjCxt): KeywordErrorCxt {\n const {gen, data, schema} = it\n const schemaCode = 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","import type {AnySchema, SchemaMap} from \"../types\"\nimport type {SchemaCxt} from \"../compile\"\nimport type {KeywordCxt} from \"../compile/validate\"\nimport {CodeGen, _, and, or, not, nil, strConcat, getProperty, Code, Name} from \"../compile/codegen\"\nimport {alwaysValidSchema, Type} from \"../compile/util\"\nimport N from \"../compile/names\"\nimport {useFunc} from \"../compile/util\"\nexport function checkReportMissingProp(cxt: KeywordCxt, prop: string): void {\n const {gen, data, it} = cxt\n gen.if(noPropertyInData(gen, data, prop, it.opts.ownProperties), () => {\n cxt.setParams({missingProperty: _`${prop}`}, true)\n cxt.error()\n })\n}\n\nexport function checkMissingProp(\n {gen, data, it: {opts}}: KeywordCxt,\n properties: string[],\n missing: Name\n): Code {\n return or(\n ...properties.map((prop) =>\n and(noPropertyInData(gen, data, prop, opts.ownProperties), _`${missing} = ${prop}`)\n )\n )\n}\n\nexport function reportMissingProp(cxt: KeywordCxt, missing: Name): void {\n cxt.setParams({missingProperty: missing}, true)\n cxt.error()\n}\n\nexport function hasPropFunc(gen: CodeGen): Name {\n return gen.scopeValue(\"func\", {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n ref: Object.prototype.hasOwnProperty,\n code: _`Object.prototype.hasOwnProperty`,\n })\n}\n\nexport function isOwnProperty(gen: CodeGen, data: Name, property: Name | string): Code {\n return _`${hasPropFunc(gen)}.call(${data}, ${property})`\n}\n\nexport function propertyInData(\n gen: CodeGen,\n data: Name,\n property: Name | string,\n ownProperties?: boolean\n): Code {\n const cond = _`${data}${getProperty(property)} !== undefined`\n return ownProperties ? _`${cond} && ${isOwnProperty(gen, data, property)}` : cond\n}\n\nexport function noPropertyInData(\n gen: CodeGen,\n data: Name,\n property: Name | string,\n ownProperties?: boolean\n): Code {\n const cond = _`${data}${getProperty(property)} === undefined`\n return ownProperties ? or(cond, not(isOwnProperty(gen, data, property))) : cond\n}\n\nexport function allSchemaProperties(schemaMap?: SchemaMap): string[] {\n return schemaMap ? Object.keys(schemaMap).filter((p) => p !== \"__proto__\") : []\n}\n\nexport function schemaProperties(it: SchemaCxt, schemaMap: SchemaMap): string[] {\n return allSchemaProperties(schemaMap).filter(\n (p) => !alwaysValidSchema(it, schemaMap[p] as AnySchema)\n )\n}\n\nexport function callValidateCode(\n {schemaCode, data, it: {gen, topSchemaRef, schemaPath, errorPath}, it}: KeywordCxt,\n func: Code,\n context: Code,\n passSchema?: boolean\n): Code {\n const dataAndSchema = passSchema ? _`${schemaCode}, ${data}, ${topSchemaRef}${schemaPath}` : data\n const valCxt: [Name, Code | number][] = [\n [N.instancePath, strConcat(N.instancePath, errorPath)],\n [N.parentData, it.parentData],\n [N.parentDataProperty, it.parentDataProperty],\n [N.rootData, N.rootData],\n ]\n if (it.opts.dynamicRef) valCxt.push([N.dynamicAnchors, N.dynamicAnchors])\n const args = _`${dataAndSchema}, ${gen.object(...valCxt)}`\n return context !== nil ? _`${func}.call(${context}, ${args})` : _`${func}(${args})`\n}\n\nconst newRegExp = _`new RegExp`\n\nexport function usePattern({gen, it: {opts}}: KeywordCxt, pattern: string): Name {\n const u = opts.unicodeRegExp ? \"u\" : \"\"\n const {regExp} = opts.code\n const rx = regExp(pattern, u)\n\n return gen.scopeValue(\"pattern\", {\n key: rx.toString(),\n ref: rx,\n code: _`${regExp.code === \"new RegExp\" ? newRegExp : useFunc(gen, regExp)}(${pattern}, ${u})`,\n })\n}\n\nexport function validateArray(cxt: KeywordCxt): Name {\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\n function validateItems(notValid: () => void): void {\n const len = gen.const(\"len\", _`${data}.length`)\n gen.forRange(\"i\", 0, len, (i) => {\n cxt.subschema(\n {\n keyword,\n dataProp: i,\n dataPropType: Type.Num,\n },\n valid\n )\n gen.if(not(valid), notValid)\n })\n }\n}\n\nexport function validateUnion(cxt: KeywordCxt): void {\n const {gen, schema, keyword, it} = cxt\n /* istanbul ignore if */\n if (!Array.isArray(schema)) throw new Error(\"ajv implementation error\")\n const alwaysValid = schema.some((sch: AnySchema) => alwaysValidSchema(it, sch))\n if (alwaysValid && !it.opts.unevaluated) return\n\n const valid = gen.let(\"valid\", false)\n const schValid = gen.name(\"_valid\")\n\n gen.block(() =>\n schema.forEach((_sch: AnySchema, i: number) => {\n const schCxt = cxt.subschema(\n {\n keyword,\n schemaProp: i,\n compositeRule: true,\n },\n schValid\n )\n gen.assign(valid, _`${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) gen.if(not(valid))\n })\n )\n\n cxt.result(\n valid,\n () => cxt.reset(),\n () => cxt.error(true)\n )\n}\n","import type {KeywordCxt} from \".\"\nimport type {\n AnySchema,\n SchemaValidateFunction,\n AnyValidateFunction,\n AddedKeywordDefinition,\n MacroKeywordDefinition,\n FuncKeywordDefinition,\n} from \"../../types\"\nimport type {SchemaObjCxt} from \"..\"\nimport {_, nil, not, stringify, Code, Name, CodeGen} from \"../codegen\"\nimport N from \"../names\"\nimport type {JSONType} from \"../rules\"\nimport {callValidateCode} from \"../../vocabularies/code\"\nimport {extendErrors} from \"../errors\"\n\ntype KeywordCompilationResult = AnySchema | SchemaValidateFunction | AnyValidateFunction\n\nexport function macroKeywordCode(cxt: KeywordCxt, def: MacroKeywordDefinition): void {\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) it.self.validateSchema(macroSchema, true)\n\n const valid = gen.name(\"valid\")\n cxt.subschema(\n {\n schema: macroSchema,\n schemaPath: nil,\n errSchemaPath: `${it.errSchemaPath}/${keyword}`,\n topSchemaRef: schemaRef,\n compositeRule: true,\n },\n valid\n )\n cxt.pass(valid, () => cxt.error(true))\n}\n\nexport function funcKeywordCode(cxt: KeywordCxt, def: FuncKeywordDefinition): void {\n const {gen, keyword, schema, parentSchema, $data, it} = cxt\n checkAsyncKeyword(it, def)\n const validate =\n !$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(def.valid ?? valid)\n\n function validateKeyword(): void {\n if (def.errors === false) {\n assignValid()\n if (def.modifying) modifyData(cxt)\n reportErrs(() => cxt.error())\n } else {\n const ruleErrs = def.async ? validateAsync() : validateSync()\n if (def.modifying) modifyData(cxt)\n reportErrs(() => addErrs(cxt, ruleErrs))\n }\n }\n\n function validateAsync(): Name {\n const ruleErrs = gen.let(\"ruleErrs\", null)\n gen.try(\n () => assignValid(_`await `),\n (e) =>\n gen.assign(valid, false).if(\n _`${e} instanceof ${it.ValidationError as Name}`,\n () => gen.assign(ruleErrs, _`${e}.errors`),\n () => gen.throw(e)\n )\n )\n return ruleErrs\n }\n\n function validateSync(): Code {\n const validateErrs = _`${validateRef}.errors`\n gen.assign(validateErrs, null)\n assignValid(nil)\n return validateErrs\n }\n\n function assignValid(_await: Code = def.async ? _`await ` : nil): void {\n const passCxt = it.opts.passContext ? N.this : N.self\n const passSchema = !((\"compile\" in def && !$data) || def.schema === false)\n gen.assign(\n valid,\n _`${_await}${callValidateCode(cxt, validateRef, passCxt, passSchema)}`,\n def.modifying\n )\n }\n\n function reportErrs(errors: () => void): void {\n gen.if(not(def.valid ?? valid), errors)\n }\n}\n\nfunction modifyData(cxt: KeywordCxt): void {\n const {gen, data, it} = cxt\n gen.if(it.parentData, () => gen.assign(data, _`${it.parentData}[${it.parentDataProperty}]`))\n}\n\nfunction addErrs(cxt: KeywordCxt, errs: Code): void {\n const {gen} = cxt\n gen.if(\n _`Array.isArray(${errs})`,\n () => {\n gen\n .assign(N.vErrors, _`${N.vErrors} === null ? ${errs} : ${N.vErrors}.concat(${errs})`)\n .assign(N.errors, _`${N.vErrors}.length`)\n extendErrors(cxt)\n },\n () => cxt.error()\n )\n}\n\nfunction checkAsyncKeyword({schemaEnv}: SchemaObjCxt, def: FuncKeywordDefinition): void {\n if (def.async && !schemaEnv.$async) throw new Error(\"async keyword in sync schema\")\n}\n\nfunction useKeyword(gen: CodeGen, keyword: string, result?: KeywordCompilationResult): Name {\n if (result === undefined) throw new Error(`keyword \"${keyword}\" failed to compile`)\n return gen.scopeValue(\n \"keyword\",\n typeof result == \"function\" ? {ref: result} : {ref: result, code: stringify(result)}\n )\n}\n\nexport function validSchemaType(\n schema: unknown,\n schemaType: JSONType[],\n allowUndefined = false\n): boolean {\n // TODO add tests\n return (\n !schemaType.length ||\n schemaType.some((st) =>\n 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 )\n )\n}\n\nexport function validateKeywordUsage(\n {schema, opts, self, errSchemaPath}: SchemaObjCxt,\n def: AddedKeywordDefinition,\n keyword: string\n): void {\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\n const deps = def.dependencies\n if (deps?.some((kwd) => !Object.prototype.hasOwnProperty.call(schema, kwd))) {\n throw new Error(`parent schema must have dependencies of ${keyword}: ${deps.join(\",\")}`)\n }\n\n if (def.validateSchema) {\n const valid = def.validateSchema(schema[keyword])\n if (!valid) {\n const msg =\n `keyword \"${keyword}\" value is invalid at path \"${errSchemaPath}\": ` +\n self.errorsText(def.validateSchema.errors)\n if (opts.validateSchema === \"log\") self.logger.error(msg)\n else throw new Error(msg)\n }\n }\n}\n","'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","import type {AnySchema, AnySchemaObject, UriResolver} from \"../types\"\nimport type Ajv from \"../ajv\"\nimport type {URIComponent} from \"fast-uri\"\nimport {eachItem} from \"./util\"\nimport * as equal from \"fast-deep-equal\"\nimport * as traverse from \"json-schema-traverse\"\n\n// the hash of local references inside the schema (created by getSchemaRefs), used for inline resolution\nexport type LocalRefs = {[Ref in string]?: AnySchemaObject}\n\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])\n\nexport function inlineRef(schema: AnySchema, limit: boolean | number = true): boolean {\n if (typeof schema == \"boolean\") return true\n if (limit === true) return !hasRef(schema)\n if (!limit) return false\n return countKeys(schema) <= limit\n}\n\nconst REF_KEYWORDS = new Set([\n \"$ref\",\n \"$recursiveRef\",\n \"$recursiveAnchor\",\n \"$dynamicRef\",\n \"$dynamicAnchor\",\n])\n\nfunction hasRef(schema: AnySchemaObject): boolean {\n for (const key in schema) {\n if (REF_KEYWORDS.has(key)) return true\n const sch = schema[key]\n if (Array.isArray(sch) && sch.some(hasRef)) return true\n if (typeof sch == \"object\" && hasRef(sch)) return true\n }\n return false\n}\n\nfunction countKeys(schema: AnySchemaObject): number {\n let count = 0\n for (const key in schema) {\n if (key === \"$ref\") return Infinity\n count++\n if (SIMPLE_INLINED.has(key)) continue\n if (typeof schema[key] == \"object\") {\n eachItem(schema[key], (sch) => (count += countKeys(sch)))\n }\n if (count === Infinity) return Infinity\n }\n return count\n}\n\nexport function getFullPath(resolver: UriResolver, id = \"\", normalize?: boolean): string {\n if (normalize !== false) id = normalizeId(id)\n const p = resolver.parse(id)\n return _getFullPath(resolver, p)\n}\n\nexport function _getFullPath(resolver: UriResolver, p: URIComponent): string {\n const serialized = resolver.serialize(p)\n return serialized.split(\"#\")[0] + \"#\"\n}\n\nconst TRAILING_SLASH_HASH = /#\\/?$/\nexport function normalizeId(id: string | undefined): string {\n return id ? id.replace(TRAILING_SLASH_HASH, \"\") : \"\"\n}\n\nexport function resolveUrl(resolver: UriResolver, baseId: string, id: string): string {\n id = normalizeId(id)\n return resolver.resolve(baseId, id)\n}\n\nconst ANCHOR = /^[a-z_][-a-z0-9._]*$/i\n\nexport function getSchemaRefs(this: Ajv, schema: AnySchema, baseId: string): LocalRefs {\n if (typeof schema == \"boolean\") return {}\n const {schemaId, uriResolver} = this.opts\n const schId = normalizeId(schema[schemaId] || baseId)\n const baseIds: {[JsonPtr in string]?: string} = {\"\": schId}\n const pathPrefix = getFullPath(uriResolver, schId, false)\n const localRefs: LocalRefs = {}\n const schemaRefs: Set<string> = new Set()\n\n traverse(schema, {allKeys: true}, (sch, jsonPtr, _, parentJsonPtr) => {\n if (parentJsonPtr === undefined) return\n const fullPath = pathPrefix + jsonPtr\n let innerBaseId = baseIds[parentJsonPtr]\n if (typeof sch[schemaId] == \"string\") innerBaseId = addRef.call(this, sch[schemaId])\n addAnchor.call(this, sch.$anchor)\n addAnchor.call(this, sch.$dynamicAnchor)\n baseIds[jsonPtr] = innerBaseId\n\n function addRef(this: Ajv, ref: string): string {\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)) throw ambiguos(ref)\n schemaRefs.add(ref)\n let schOrRef = this.refs[ref]\n if (typeof schOrRef == \"string\") schOrRef = this.refs[schOrRef]\n if (typeof schOrRef == \"object\") {\n checkAmbiguosRef(sch, schOrRef.schema, ref)\n } else if (ref !== normalizeId(fullPath)) {\n if (ref[0] === \"#\") {\n checkAmbiguosRef(sch, localRefs[ref], ref)\n localRefs[ref] = sch\n } else {\n this.refs[ref] = fullPath\n }\n }\n return ref\n }\n\n function addAnchor(this: Ajv, anchor: unknown): void {\n if (typeof anchor == \"string\") {\n if (!ANCHOR.test(anchor)) throw new Error(`invalid anchor \"${anchor}\"`)\n addRef.call(this, `#${anchor}`)\n }\n }\n })\n\n return localRefs\n\n function checkAmbiguosRef(sch1: AnySchema, sch2: AnySchema | undefined, ref: string): void {\n if (sch2 !== undefined && !equal(sch1, sch2)) throw ambiguos(ref)\n }\n\n function ambiguos(ref: string): Error {\n return new Error(`reference \"${ref}\" resolves to more than one schema`)\n }\n}\n","import type {\n AddedKeywordDefinition,\n AnySchema,\n AnySchemaObject,\n KeywordErrorCxt,\n KeywordCxtParams,\n} from \"../../types\"\nimport type {SchemaCxt, SchemaObjCxt} from \"..\"\nimport type {InstanceOptions} from \"../../core\"\nimport {boolOrEmptySchema, topBoolOrEmptySchema} from \"./boolSchema\"\nimport {coerceAndCheckDataType, getSchemaTypes} from \"./dataType\"\nimport {shouldUseGroup, shouldUseRule} from \"./applicability\"\nimport {checkDataType, checkDataTypes, reportTypeError, DataType} from \"./dataType\"\nimport {assignDefaults} from \"./defaults\"\nimport {funcKeywordCode, macroKeywordCode, validateKeywordUsage, validSchemaType} from \"./keyword\"\nimport {getSubschema, extendSubschemaData, SubschemaArgs, extendSubschemaMode} from \"./subschema\"\nimport {_, nil, str, or, not, getProperty, Block, Code, Name, CodeGen} from \"../codegen\"\nimport N from \"../names\"\nimport {resolveUrl} from \"../resolve\"\nimport {\n schemaRefOrVal,\n schemaHasRulesButRef,\n checkUnknownRules,\n checkStrictMode,\n unescapeJsonPointer,\n mergeEvaluated,\n} from \"../util\"\nimport type {JSONType, Rule, RuleGroup} from \"../rules\"\nimport {\n ErrorPaths,\n reportError,\n reportExtraError,\n resetErrorsCount,\n keyword$DataError,\n} from \"../errors\"\n\n// schema compilation - generates validation function, subschemaCode (below) is used for subschemas\nexport function validateFunctionCode(it: SchemaCxt): void {\n if (isSchemaObj(it)) {\n checkKeywords(it)\n if (schemaCxtHasRules(it)) {\n topSchemaObjCode(it)\n return\n }\n }\n validateFunction(it, () => topBoolOrEmptySchema(it))\n}\n\nfunction validateFunction(\n {gen, validateName, schema, schemaEnv, opts}: SchemaCxt,\n body: Block\n): void {\n if (opts.code.es5) {\n gen.func(validateName, _`${N.data}, ${N.valCxt}`, schemaEnv.$async, () => {\n gen.code(_`\"use strict\"; ${funcSourceUrl(schema, opts)}`)\n destructureValCxtES5(gen, opts)\n gen.code(body)\n })\n } else {\n gen.func(validateName, _`${N.data}, ${destructureValCxt(opts)}`, schemaEnv.$async, () =>\n gen.code(funcSourceUrl(schema, opts)).code(body)\n )\n }\n}\n\nfunction destructureValCxt(opts: InstanceOptions): Code {\n return _`{${N.instancePath}=\"\", ${N.parentData}, ${N.parentDataProperty}, ${N.rootData}=${\n N.data\n }${opts.dynamicRef ? _`, ${N.dynamicAnchors}={}` : nil}}={}`\n}\n\nfunction destructureValCxtES5(gen: CodeGen, opts: InstanceOptions): void {\n gen.if(\n N.valCxt,\n () => {\n gen.var(N.instancePath, _`${N.valCxt}.${N.instancePath}`)\n gen.var(N.parentData, _`${N.valCxt}.${N.parentData}`)\n gen.var(N.parentDataProperty, _`${N.valCxt}.${N.parentDataProperty}`)\n gen.var(N.rootData, _`${N.valCxt}.${N.rootData}`)\n if (opts.dynamicRef) gen.var(N.dynamicAnchors, _`${N.valCxt}.${N.dynamicAnchors}`)\n },\n () => {\n gen.var(N.instancePath, _`\"\"`)\n gen.var(N.parentData, _`undefined`)\n gen.var(N.parentDataProperty, _`undefined`)\n gen.var(N.rootData, N.data)\n if (opts.dynamicRef) gen.var(N.dynamicAnchors, _`{}`)\n }\n )\n}\n\nfunction topSchemaObjCode(it: SchemaObjCxt): void {\n const {schema, opts, gen} = it\n validateFunction(it, () => {\n if (opts.$comment && schema.$comment) commentKeyword(it)\n checkNoDefault(it)\n gen.let(N.vErrors, null)\n gen.let(N.errors, 0)\n if (opts.unevaluated) resetEvaluated(it)\n typeAndKeywords(it)\n returnResults(it)\n })\n return\n}\n\nfunction resetEvaluated(it: SchemaObjCxt): void {\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\", _`${validateName}.evaluated`)\n gen.if(_`${it.evaluated}.dynamicProps`, () => gen.assign(_`${it.evaluated}.props`, _`undefined`))\n gen.if(_`${it.evaluated}.dynamicItems`, () => gen.assign(_`${it.evaluated}.items`, _`undefined`))\n}\n\nfunction funcSourceUrl(schema: AnySchema, opts: InstanceOptions): Code {\n const schId = typeof schema == \"object\" && schema[opts.schemaId]\n return schId && (opts.code.source || opts.code.process) ? _`/*# sourceURL=${schId} */` : nil\n}\n\n// schema compilation - this function is used recursively to generate code for sub-schemas\nfunction subschemaCode(it: SchemaCxt, valid: Name): void {\n if (isSchemaObj(it)) {\n checkKeywords(it)\n if (schemaCxtHasRules(it)) {\n subSchemaObjCode(it, valid)\n return\n }\n }\n boolOrEmptySchema(it, valid)\n}\n\nfunction schemaCxtHasRules({schema, self}: SchemaCxt): boolean {\n if (typeof schema == \"boolean\") return !schema\n for (const key in schema) if (self.RULES.all[key]) return true\n return false\n}\n\nfunction isSchemaObj(it: SchemaCxt): it is SchemaObjCxt {\n return typeof it.schema != \"boolean\"\n}\n\nfunction subSchemaObjCode(it: SchemaObjCxt, valid: Name): void {\n const {schema, gen, opts} = it\n if (opts.$comment && schema.$comment) commentKeyword(it)\n updateContext(it)\n checkAsyncSchema(it)\n const errsCount = gen.const(\"_errs\", N.errors)\n typeAndKeywords(it, errsCount)\n // TODO var\n gen.var(valid, _`${errsCount} === ${N.errors}`)\n}\n\nfunction checkKeywords(it: SchemaObjCxt): void {\n checkUnknownRules(it)\n checkRefsAndKeywords(it)\n}\n\nfunction typeAndKeywords(it: SchemaObjCxt, errsCount?: Name): void {\n if (it.opts.jtd) return schemaKeywords(it, [], false, errsCount)\n const types = getSchemaTypes(it.schema)\n const checkedTypes = coerceAndCheckDataType(it, types)\n schemaKeywords(it, types, !checkedTypes, errsCount)\n}\n\nfunction checkRefsAndKeywords(it: SchemaObjCxt): void {\n const {schema, errSchemaPath, opts, self} = it\n if (schema.$ref && opts.ignoreKeywordsWithRef && schemaHasRulesButRef(schema, self.RULES)) {\n self.logger.warn(`$ref: keywords ignored in schema at path \"${errSchemaPath}\"`)\n }\n}\n\nfunction checkNoDefault(it: SchemaObjCxt): void {\n const {schema, opts} = it\n if (schema.default !== undefined && opts.useDefaults && opts.strictSchema) {\n checkStrictMode(it, \"default is ignored in the schema root\")\n }\n}\n\nfunction updateContext(it: SchemaObjCxt): void {\n const schId = it.schema[it.opts.schemaId]\n if (schId) it.baseId = resolveUrl(it.opts.uriResolver, it.baseId, schId)\n}\n\nfunction checkAsyncSchema(it: SchemaObjCxt): void {\n if (it.schema.$async && !it.schemaEnv.$async) throw new Error(\"async schema in sync schema\")\n}\n\nfunction commentKeyword({gen, schemaEnv, schema, errSchemaPath, opts}: SchemaObjCxt): void {\n const msg = schema.$comment\n if (opts.$comment === true) {\n gen.code(_`${N.self}.logger.log(${msg})`)\n } else if (typeof opts.$comment == \"function\") {\n const schemaPath = str`${errSchemaPath}/$comment`\n const rootName = gen.scopeValue(\"root\", {ref: schemaEnv.root})\n gen.code(_`${N.self}.opts.$comment(${msg}, ${schemaPath}, ${rootName}.schema)`)\n }\n}\n\nfunction returnResults(it: SchemaCxt): void {\n const {gen, schemaEnv, validateName, ValidationError, opts} = it\n if (schemaEnv.$async) {\n // TODO assign unevaluated\n gen.if(\n _`${N.errors} === 0`,\n () => gen.return(N.data),\n () => gen.throw(_`new ${ValidationError as Name}(${N.vErrors})`)\n )\n } else {\n gen.assign(_`${validateName}.errors`, N.vErrors)\n if (opts.unevaluated) assignEvaluated(it)\n gen.return(_`${N.errors} === 0`)\n }\n}\n\nfunction assignEvaluated({gen, evaluated, props, items}: SchemaCxt): void {\n if (props instanceof Name) gen.assign(_`${evaluated}.props`, props)\n if (items instanceof Name) gen.assign(_`${evaluated}.items`, items)\n}\n\nfunction schemaKeywords(\n it: SchemaObjCxt,\n types: JSONType[],\n typeErrors: boolean,\n errsCount?: Name\n): void {\n const {gen, schema, data, allErrors, opts, self} = it\n const {RULES} = self\n if (schema.$ref && (opts.ignoreKeywordsWithRef || !schemaHasRulesButRef(schema, RULES))) {\n gen.block(() => keywordCode(it, \"$ref\", (RULES.all.$ref as Rule).definition)) // TODO typecast\n return\n }\n if (!opts.jtd) checkStrictTypes(it, types)\n gen.block(() => {\n for (const group of RULES.rules) groupKeywords(group)\n groupKeywords(RULES.post)\n })\n\n function groupKeywords(group: RuleGroup): void {\n if (!shouldUseGroup(schema, group)) return\n if (group.type) {\n gen.if(checkDataType(group.type, data, opts.strictNumbers))\n iterateKeywords(it, group)\n if (types.length === 1 && types[0] === group.type && typeErrors) {\n gen.else()\n reportTypeError(it)\n }\n gen.endIf()\n } else {\n iterateKeywords(it, group)\n }\n // TODO make it \"ok\" call?\n if (!allErrors) gen.if(_`${N.errors} === ${errsCount || 0}`)\n }\n}\n\nfunction iterateKeywords(it: SchemaObjCxt, group: RuleGroup): void {\n const {\n gen,\n schema,\n opts: {useDefaults},\n } = it\n if (useDefaults) assignDefaults(it, group.type)\n gen.block(() => {\n for (const rule of group.rules) {\n if (shouldUseRule(schema, rule)) {\n keywordCode(it, rule.keyword, rule.definition, group.type)\n }\n }\n })\n}\n\nfunction checkStrictTypes(it: SchemaObjCxt, types: JSONType[]): void {\n if (it.schemaEnv.meta || !it.opts.strictTypes) return\n checkContextTypes(it, types)\n if (!it.opts.allowUnionTypes) checkMultipleTypes(it, types)\n checkKeywordTypes(it, it.dataTypes)\n}\n\nfunction checkContextTypes(it: SchemaObjCxt, types: JSONType[]): void {\n if (!types.length) 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}\n\nfunction checkMultipleTypes(it: SchemaObjCxt, ts: JSONType[]): void {\n if (ts.length > 1 && !(ts.length === 2 && ts.includes(\"null\"))) {\n strictTypesError(it, \"use allowUnionTypes to allow union type keyword\")\n }\n}\n\nfunction checkKeywordTypes(it: SchemaObjCxt, ts: JSONType[]): void {\n const rules = it.self.RULES.all\n for (const keyword in rules) {\n const rule = rules[keyword]\n if (typeof rule == \"object\" && 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}\n\nfunction hasApplicableType(schTs: JSONType[], kwdT: JSONType): boolean {\n return schTs.includes(kwdT) || (kwdT === \"number\" && schTs.includes(\"integer\"))\n}\n\nfunction includesType(ts: JSONType[], t: JSONType): boolean {\n return ts.includes(t) || (t === \"integer\" && ts.includes(\"number\"))\n}\n\nfunction narrowSchemaTypes(it: SchemaObjCxt, withTypes: JSONType[]): void {\n const ts: JSONType[] = []\n for (const t of it.dataTypes) {\n if (includesType(withTypes, t)) ts.push(t)\n else if (withTypes.includes(\"integer\") && t === \"number\") ts.push(\"integer\")\n }\n it.dataTypes = ts\n}\n\nfunction strictTypesError(it: SchemaObjCxt, msg: string): void {\n const schemaPath = it.schemaEnv.baseId + it.errSchemaPath\n msg += ` at \"${schemaPath}\" (strictTypes)`\n checkStrictMode(it, msg, it.opts.strictTypes)\n}\n\nexport class KeywordCxt implements KeywordErrorCxt {\n readonly gen: CodeGen\n readonly allErrors?: boolean\n readonly keyword: string\n readonly data: Name // Name referencing the current level of the data instance\n readonly $data?: string | false\n schema: any // keyword value in the schema\n readonly schemaValue: Code | number | boolean // Code reference to keyword schema value or primitive value\n readonly schemaCode: Code | number | boolean // Code reference to resolved schema value (different if schema is $data)\n readonly schemaType: JSONType[] // allowed type(s) of keyword value in the schema\n readonly parentSchema: AnySchemaObject\n readonly errsCount?: Name // Name reference to the number of validation errors collected before this keyword,\n // requires option trackErrors in keyword definition\n params: KeywordCxtParams // object to pass parameters to error messages from keyword code\n readonly it: SchemaObjCxt // schema compilation context (schema is guaranteed to be an object, not boolean)\n readonly def: AddedKeywordDefinition\n\n constructor(it: SchemaObjCxt, def: AddedKeywordDefinition, keyword: string) {\n 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 = 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\n if (this.$data) {\n this.schemaCode = it.gen.const(\"vSchema\", getData(this.$data, it))\n } else {\n this.schemaCode = this.schemaValue\n if (!validSchemaType(this.schema, def.schemaType, def.allowUndefined)) {\n throw new Error(`${keyword} value must be ${JSON.stringify(def.schemaType)}`)\n }\n }\n\n if (\"code\" in def ? def.trackErrors : def.errors !== false) {\n this.errsCount = it.gen.const(\"_errs\", N.errors)\n }\n }\n\n result(condition: Code, successAction?: () => void, failAction?: () => void): void {\n this.failResult(not(condition), successAction, failAction)\n }\n\n failResult(condition: Code, successAction?: () => void, failAction?: () => void): void {\n this.gen.if(condition)\n if (failAction) failAction()\n else this.error()\n if (successAction) {\n this.gen.else()\n successAction()\n if (this.allErrors) this.gen.endIf()\n } else {\n if (this.allErrors) this.gen.endIf()\n else this.gen.else()\n }\n }\n\n pass(condition: Code, failAction?: () => void): void {\n this.failResult(not(condition), undefined, failAction)\n }\n\n fail(condition?: Code): void {\n if (condition === undefined) {\n this.error()\n if (!this.allErrors) 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) this.gen.endIf()\n else this.gen.else()\n }\n\n fail$data(condition: Code): void {\n if (!this.$data) return this.fail(condition)\n const {schemaCode} = this\n this.fail(_`${schemaCode} !== undefined && (${or(this.invalid$data(), condition)})`)\n }\n\n error(append?: boolean, errorParams?: KeywordCxtParams, errorPaths?: ErrorPaths): void {\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\n private _error(append?: boolean, errorPaths?: ErrorPaths): void {\n ;(append ? reportExtraError : reportError)(this, this.def.error, errorPaths)\n }\n\n $dataError(): void {\n reportError(this, this.def.$dataError || keyword$DataError)\n }\n\n reset(): void {\n if (this.errsCount === undefined) throw new Error('add \"trackErrors\" to keyword definition')\n resetErrorsCount(this.gen, this.errsCount)\n }\n\n ok(cond: Code | boolean): void {\n if (!this.allErrors) this.gen.if(cond)\n }\n\n setParams(obj: KeywordCxtParams, assign?: true): void {\n if (assign) Object.assign(this.params, obj)\n else this.params = obj\n }\n\n block$data(valid: Name, codeBlock: () => void, $dataValid: Code = nil): void {\n this.gen.block(() => {\n this.check$data(valid, $dataValid)\n codeBlock()\n })\n }\n\n check$data(valid: Name = nil, $dataValid: Code = nil): void {\n if (!this.$data) return\n const {gen, schemaCode, schemaType, def} = this\n gen.if(or(_`${schemaCode} === undefined`, $dataValid))\n if (valid !== nil) gen.assign(valid, true)\n if (schemaType.length || def.validateSchema) {\n gen.elseIf(this.invalid$data())\n this.$dataError()\n if (valid !== nil) gen.assign(valid, false)\n }\n gen.else()\n }\n\n invalid$data(): Code {\n const {gen, schemaCode, schemaType, def, it} = this\n return or(wrong$DataType(), invalid$DataSchema())\n\n function wrong$DataType(): Code {\n if (schemaType.length) {\n /* istanbul ignore if */\n if (!(schemaCode instanceof Name)) throw new Error(\"ajv implementation error\")\n const st = Array.isArray(schemaType) ? schemaType : [schemaType]\n return _`${checkDataTypes(st, schemaCode, it.opts.strictNumbers, DataType.Wrong)}`\n }\n return nil\n }\n\n function invalid$DataSchema(): Code {\n if (def.validateSchema) {\n const validateSchemaRef = gen.scopeValue(\"validate$data\", {ref: def.validateSchema}) // TODO value.code for standalone\n return _`!${validateSchemaRef}(${schemaCode})`\n }\n return nil\n }\n }\n\n subschema(appl: SubschemaArgs, valid: Name): SchemaCxt {\n const subschema = getSubschema(this.it, appl)\n extendSubschemaData(subschema, this.it, appl)\n extendSubschemaMode(subschema, appl)\n const nextContext = {...this.it, ...subschema, items: undefined, props: undefined}\n subschemaCode(nextContext, valid)\n return nextContext\n }\n\n mergeEvaluated(schemaCxt: SchemaCxt, toName?: typeof Name): void {\n const {it, gen} = this\n if (!it.opts.unevaluated) return\n if (it.props !== true && schemaCxt.props !== undefined) {\n it.props = mergeEvaluated.props(gen, schemaCxt.props, it.props, toName)\n }\n if (it.items !== true && schemaCxt.items !== undefined) {\n it.items = mergeEvaluated.items(gen, schemaCxt.items, it.items, toName)\n }\n }\n\n mergeValidEvaluated(schemaCxt: SchemaCxt, valid: Name): boolean | void {\n const {it, gen} = this\n if (it.opts.unevaluated && (it.props !== true || it.items !== true)) {\n gen.if(valid, () => this.mergeEvaluated(schemaCxt, Name))\n return true\n }\n }\n}\n\nfunction keywordCode(\n it: SchemaObjCxt,\n keyword: string,\n def: AddedKeywordDefinition,\n ruleType?: JSONType\n): void {\n const cxt = new KeywordCxt(it, def, keyword)\n if (\"code\" in def) {\n def.code(cxt, ruleType)\n } else if (cxt.$data && def.validate) {\n funcKeywordCode(cxt, def)\n } else if (\"macro\" in def) {\n macroKeywordCode(cxt, def)\n } else if (def.compile || def.validate) {\n funcKeywordCode(cxt, def)\n }\n}\n\nconst JSON_POINTER = /^\\/(?:[^~]|~0|~1)*$/\nconst RELATIVE_JSON_POINTER = /^([0-9]+)(#|\\/(?:[^~]|~0|~1)*)?$/\nexport function getData(\n $data: string,\n {dataLevel, dataNames, dataPathArr}: SchemaCxt\n): Code | number {\n let jsonPointer\n let data: Code\n if ($data === \"\") return N.rootData\n if ($data[0] === \"/\") {\n if (!JSON_POINTER.test($data)) throw new Error(`Invalid JSON-pointer: ${$data}`)\n jsonPointer = $data\n data = N.rootData\n } else {\n const matches = RELATIVE_JSON_POINTER.exec($data)\n if (!matches) throw new Error(`Invalid JSON-pointer: ${$data}`)\n const up: number = +matches[1]\n jsonPointer = matches[2]\n if (jsonPointer === \"#\") {\n if (up >= dataLevel) throw new Error(errorMsg(\"property/index\", up))\n return dataPathArr[dataLevel - up]\n }\n if (up > dataLevel) throw new Error(errorMsg(\"data\", up))\n data = dataNames[dataLevel - up]\n if (!jsonPointer) return data\n }\n\n let expr = data\n const segments = jsonPointer.split(\"/\")\n for (const segment of segments) {\n if (segment) {\n data = _`${data}${getProperty(unescapeJsonPointer(segment))}`\n expr = _`${expr} && ${data}`\n }\n }\n return expr\n\n function errorMsg(pointerType: string, up: number): string {\n return `Cannot access ${pointerType} ${up} levels up, current level is ${dataLevel}`\n }\n}\n","import type {KeywordErrorDefinition, KeywordErrorCxt} from \"../../types\"\nimport type {SchemaCxt} from \"..\"\nimport {reportError} from \"../errors\"\nimport {_, Name} from \"../codegen\"\nimport N from \"../names\"\n\nconst boolError: KeywordErrorDefinition = {\n message: \"boolean schema is false\",\n}\n\nexport function topBoolOrEmptySchema(it: SchemaCxt): void {\n const {gen, schema, validateName} = it\n if (schema === false) {\n falseSchemaError(it, false)\n } else if (typeof schema == \"object\" && schema.$async === true) {\n gen.return(N.data)\n } else {\n gen.assign(_`${validateName}.errors`, null)\n gen.return(true)\n }\n}\n\nexport function boolOrEmptySchema(it: SchemaCxt, valid: Name): void {\n const {gen, schema} = it\n if (schema === false) {\n gen.var(valid, false) // TODO var\n falseSchemaError(it)\n } else {\n gen.var(valid, true) // TODO var\n }\n}\n\nfunction falseSchemaError(it: SchemaCxt, overrideAllErrors?: boolean): void {\n const {gen, data} = it\n // TODO maybe some other interface should be used for non-keyword validation errors...\n const cxt: KeywordErrorCxt = {\n gen,\n keyword: \"false schema\",\n data,\n schema: false,\n schemaCode: false,\n schemaValue: false,\n params: {},\n it,\n }\n reportError(cxt, boolError, undefined, overrideAllErrors)\n}\n","import type {SchemaObjCxt} from \"..\"\nimport {_, getProperty, stringify} from \"../codegen\"\nimport {checkStrictMode} from \"../util\"\n\nexport function assignDefaults(it: SchemaObjCxt, ty?: string): void {\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 } else if (ty === \"array\" && Array.isArray(items)) {\n items.forEach((sch, i: number) => assignDefault(it, i, sch.default))\n }\n}\n\nfunction assignDefault(it: SchemaObjCxt, prop: string | number, defaultValue: unknown): void {\n const {gen, compositeRule, data, opts} = it\n if (defaultValue === undefined) return\n const childData = _`${data}${getProperty(prop)}`\n if (compositeRule) {\n checkStrictMode(it, `default is ignored for: ${childData}`)\n return\n }\n\n let condition = _`${childData} === undefined`\n if (opts.useDefaults === \"empty\") {\n condition = _`${condition} || ${childData} === null || ${childData} === \"\"`\n }\n // `${childData} === undefined` +\n // (opts.useDefaults === \"empty\" ? ` || ${childData} === null || ${childData} === \"\"` : \"\")\n gen.if(condition, _`${childData} = ${stringify(defaultValue)}`)\n}\n","import type {AnySchema} from \"../../types\"\nimport type {SchemaObjCxt} from \"..\"\nimport {_, str, getProperty, Code, Name} from \"../codegen\"\nimport {escapeFragment, getErrorPath, Type} from \"../util\"\nimport type {JSONType} from \"../rules\"\n\nexport interface SubschemaContext {\n // TODO use Optional? align with SchemCxt property types\n schema: AnySchema\n schemaPath: Code\n errSchemaPath: string\n topSchemaRef?: Code\n errorPath?: Code\n dataLevel?: number\n dataTypes?: JSONType[]\n data?: Name\n parentData?: Name\n parentDataProperty?: Code | number\n dataNames?: Name[]\n dataPathArr?: (Code | number)[]\n propertyName?: Name\n jtdDiscriminator?: string\n jtdMetadata?: boolean\n compositeRule?: true\n createErrors?: boolean\n allErrors?: boolean\n}\n\nexport type SubschemaArgs = Partial<{\n keyword: string\n schemaProp: string | number\n schema: AnySchema\n schemaPath: Code\n errSchemaPath: string\n topSchemaRef: Code\n data: Name | Code\n dataProp: Code | string | number\n dataTypes: JSONType[]\n definedProperties: Set<string>\n propertyName: Name\n dataPropType: Type\n jtdDiscriminator: string\n jtdMetadata: boolean\n compositeRule: true\n createErrors: boolean\n allErrors: boolean\n}>\n\nexport function getSubschema(\n it: SchemaObjCxt,\n {keyword, schemaProp, schema, schemaPath, errSchemaPath, topSchemaRef}: SubschemaArgs\n): SubschemaContext {\n if (keyword !== undefined && schema !== undefined) {\n throw new Error('both \"keyword\" and \"schema\" passed, only one allowed')\n }\n\n if (keyword !== undefined) {\n const sch = it.schema[keyword]\n return schemaProp === undefined\n ? {\n schema: sch,\n schemaPath: _`${it.schemaPath}${getProperty(keyword)}`,\n errSchemaPath: `${it.errSchemaPath}/${keyword}`,\n }\n : {\n schema: sch[schemaProp],\n schemaPath: _`${it.schemaPath}${getProperty(keyword)}${getProperty(schemaProp)}`,\n errSchemaPath: `${it.errSchemaPath}/${keyword}/${escapeFragment(schemaProp)}`,\n }\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\n throw new Error('either \"keyword\" or \"schema\" must be passed')\n}\n\nexport function extendSubschemaData(\n subschema: SubschemaContext,\n it: SchemaObjCxt,\n {dataProp, dataPropType: dpType, data, dataTypes, propertyName}: SubschemaArgs\n): void {\n if (data !== undefined && dataProp !== undefined) {\n throw new Error('both \"data\" and \"dataProp\" passed, only one allowed')\n }\n\n const {gen} = it\n\n if (dataProp !== undefined) {\n const {errorPath, dataPathArr, opts} = it\n const nextData = gen.let(\"data\", _`${it.data}${getProperty(dataProp)}`, true)\n dataContextProps(nextData)\n subschema.errorPath = str`${errorPath}${getErrorPath(dataProp, dpType, opts.jsPropertySyntax)}`\n subschema.parentDataProperty = _`${dataProp}`\n subschema.dataPathArr = [...dataPathArr, subschema.parentDataProperty]\n }\n\n if (data !== undefined) {\n const nextData = data instanceof Name ? data : gen.let(\"data\", data, true) // replaceable if used once?\n dataContextProps(nextData)\n if (propertyName !== undefined) subschema.propertyName = propertyName\n // TODO something is possibly wrong here with not changing parentDataProperty and not appending dataPathArr\n }\n\n if (dataTypes) subschema.dataTypes = dataTypes\n\n function dataContextProps(_nextData: Name): void {\n subschema.data = _nextData\n subschema.dataLevel = it.dataLevel + 1\n subschema.dataTypes = []\n it.definedProperties = new Set<string>()\n subschema.parentData = it.data\n subschema.dataNames = [...it.dataNames, _nextData]\n }\n}\n\nexport function extendSubschemaMode(\n subschema: SubschemaContext,\n {jtdDiscriminator, jtdMetadata, compositeRule, createErrors, allErrors}: SubschemaArgs\n): void {\n if (compositeRule !== undefined) subschema.compositeRule = compositeRule\n if (createErrors !== undefined) subschema.createErrors = createErrors\n if (allErrors !== undefined) subschema.allErrors = allErrors\n subschema.jtdDiscriminator = jtdDiscriminator // not inherited\n subschema.jtdMetadata = jtdMetadata // not inherited\n}\n","import type {ErrorObject} from \"../types\"\n\nexport default class ValidationError extends Error {\n readonly errors: Partial<ErrorObject>[]\n readonly ajv: true\n readonly validation: true\n\n constructor(errors: Partial<ErrorObject>[]) {\n super(\"validation failed\")\n this.errors = errors\n this.ajv = this.validation = true\n }\n}\n","import {resolveUrl, normalizeId, getFullPath} from \"./resolve\"\nimport type {UriResolver} from \"../types\"\n\nexport default class MissingRefError extends Error {\n readonly missingRef: string\n readonly missingSchema: string\n\n constructor(resolver: UriResolver, baseId: string, ref: string, msg?: string) {\n super(msg || `can't resolve reference ${ref} from id ${baseId}`)\n this.missingRef = resolveUrl(resolver, baseId, ref)\n this.missingSchema = normalizeId(getFullPath(resolver, this.missingRef))\n }\n}\n","import type {\n AnySchema,\n AnySchemaObject,\n AnyValidateFunction,\n AsyncValidateFunction,\n EvaluatedProperties,\n EvaluatedItems,\n} from \"../types\"\nimport type Ajv from \"../core\"\nimport type {InstanceOptions} from \"../core\"\nimport {CodeGen, _, nil, stringify, Name, Code, ValueScopeName} from \"./codegen\"\nimport ValidationError from \"../runtime/validation_error\"\nimport N from \"./names\"\nimport {LocalRefs, getFullPath, _getFullPath, inlineRef, normalizeId, resolveUrl} from \"./resolve\"\nimport {schemaHasRulesButRef, unescapeFragment} from \"./util\"\nimport {validateFunctionCode} from \"./validate\"\nimport {URIComponent} from \"fast-uri\"\nimport {JSONType} from \"./rules\"\n\nexport type SchemaRefs = {\n [Ref in string]?: SchemaEnv | AnySchema\n}\n\nexport interface SchemaCxt {\n readonly gen: CodeGen\n readonly allErrors?: boolean // validation mode - whether to collect all errors or break on error\n readonly data: Name // Name with reference to the current part of data instance\n readonly parentData: Name // should be used in keywords modifying data\n readonly parentDataProperty: Code | number // should be used in keywords modifying data\n readonly dataNames: Name[]\n readonly dataPathArr: (Code | number)[]\n readonly dataLevel: number // the level of the currently validated data,\n // it can be used to access both the property names and the data on all levels from the top.\n dataTypes: JSONType[] // data types applied to the current part of data instance\n definedProperties: Set<string> // set of properties to keep track of for required checks\n readonly topSchemaRef: Code\n readonly validateName: Name\n evaluated?: Name\n readonly ValidationError?: Name\n readonly schema: AnySchema // current schema object - equal to parentSchema passed via KeywordCxt\n readonly schemaEnv: SchemaEnv\n readonly rootId: string\n baseId: string // the current schema base URI that should be used as the base for resolving URIs in references (\\$ref)\n readonly schemaPath: Code // the run-time expression that evaluates to the property name of the current schema\n readonly errSchemaPath: string // this is actual string, should not be changed to Code\n readonly errorPath: Code\n readonly propertyName?: Name\n readonly compositeRule?: boolean // true indicates that the current schema is inside the compound keyword,\n // where failing some rule doesn't mean validation failure (`anyOf`, `oneOf`, `not`, `if`).\n // This flag is used to determine whether you can return validation result immediately after any error in case the option `allErrors` is not `true.\n // You only need to use it if you have many steps in your keywords and potentially can define multiple errors.\n props?: EvaluatedProperties | Name // properties evaluated by this schema - used by parent schema or assigned to validation function\n items?: EvaluatedItems | Name // last item evaluated by this schema - used by parent schema or assigned to validation function\n jtdDiscriminator?: string\n jtdMetadata?: boolean\n readonly createErrors?: boolean\n readonly opts: InstanceOptions // Ajv instance option.\n readonly self: Ajv // current Ajv instance\n}\n\nexport interface SchemaObjCxt extends SchemaCxt {\n readonly schema: AnySchemaObject\n}\ninterface SchemaEnvArgs {\n readonly schema: AnySchema\n readonly schemaId?: \"$id\" | \"id\"\n readonly root?: SchemaEnv\n readonly baseId?: string\n readonly schemaPath?: string\n readonly localRefs?: LocalRefs\n readonly meta?: boolean\n}\n\nexport class SchemaEnv implements SchemaEnvArgs {\n readonly schema: AnySchema\n readonly schemaId?: \"$id\" | \"id\"\n readonly root: SchemaEnv\n baseId: string // TODO possibly, it should be readonly\n schemaPath?: string\n localRefs?: LocalRefs\n readonly meta?: boolean\n readonly $async?: boolean // true if the current schema is asynchronous.\n readonly refs: SchemaRefs = {}\n readonly dynamicAnchors: {[Ref in string]?: true} = {}\n validate?: AnyValidateFunction\n validateName?: ValueScopeName\n serialize?: (data: unknown) => string\n serializeName?: ValueScopeName\n parse?: (data: string) => unknown\n parseName?: ValueScopeName\n\n constructor(env: SchemaEnvArgs) {\n let schema: AnySchemaObject | undefined\n if (typeof env.schema == \"object\") schema = env.schema\n this.schema = env.schema\n this.schemaId = env.schemaId\n this.root = env.root || this\n this.baseId = env.baseId ?? normalizeId(schema?.[env.schemaId || \"$id\"])\n this.schemaPath = env.schemaPath\n this.localRefs = env.localRefs\n this.meta = env.meta\n this.$async = schema?.$async\n this.refs = {}\n }\n}\n\n// let codeSize = 0\n// let nodeCount = 0\n\n// Compiles schema in SchemaEnv\nexport function compileSchema(this: Ajv, sch: SchemaEnv): SchemaEnv {\n // TODO refactor - remove compilations\n const _sch = getCompilingSchema.call(this, sch)\n if (_sch) return _sch\n const rootId = 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(this.scope, {es5, lines, ownProperties})\n let _ValidationError\n if (sch.$async) {\n _ValidationError = gen.scopeValue(\"Error\", {\n ref: ValidationError,\n code: _`require(\"ajv/dist/runtime/validation_error\").default`,\n })\n }\n\n const validateName = gen.scopeName(\"validate\")\n sch.validateName = validateName\n\n const schemaCxt: SchemaCxt = {\n gen,\n allErrors: this.opts.allErrors,\n data: N.data,\n parentData: N.parentData,\n parentDataProperty: N.parentDataProperty,\n dataNames: [N.data],\n dataPathArr: [nil], // TODO can its length be used as dataLevel if nil is removed?\n dataLevel: 0,\n dataTypes: [],\n definedProperties: new Set<string>(),\n topSchemaRef: gen.scopeValue(\n \"schema\",\n this.opts.code.source === true\n ? {ref: sch.schema, code: stringify(sch.schema)}\n : {ref: sch.schema}\n ),\n validateName,\n ValidationError: _ValidationError,\n schema: sch.schema,\n schemaEnv: sch,\n rootId,\n baseId: sch.baseId || rootId,\n schemaPath: nil,\n errSchemaPath: sch.schemaPath || (this.opts.jtd ? \"\" : \"#\"),\n errorPath: _`\"\"`,\n opts: this.opts,\n self: this,\n }\n\n let sourceCode: string | undefined\n try {\n this._compilations.add(sch)\n validateFunctionCode(schemaCxt)\n gen.optimize(this.opts.code.optimize)\n // gen.optimize(1)\n const validateCode = gen.toString()\n sourceCode = `${gen.scopeRefs(N.scope)}return ${validateCode}`\n // console.log((codeSize += sourceCode.length), (nodeCount += gen.nodeCount))\n if (this.opts.code.process) sourceCode = this.opts.code.process(sourceCode, sch)\n // console.log(\"\\n\\n\\n *** \\n\", sourceCode)\n const makeValidate = new Function(`${N.self}`, `${N.scope}`, sourceCode)\n const validate: AnyValidateFunction = makeValidate(this, this.scope.get())\n this.scope.value(validateName, {ref: validate})\n\n validate.errors = null\n validate.schema = sch.schema\n validate.schemaEnv = sch\n if (sch.$async) (validate as AsyncValidateFunction).$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 Name ? undefined : props,\n items: items instanceof Name ? undefined : items,\n dynamicProps: props instanceof Name,\n dynamicItems: items instanceof Name,\n }\n if (validate.source) validate.source.evaluated = stringify(validate.evaluated)\n }\n sch.validate = validate\n return sch\n } catch (e) {\n delete sch.validate\n delete sch.validateName\n if (sourceCode) this.logger.error(\"Error compiling schema, function code:\", sourceCode)\n // console.log(\"\\n\\n\\n *** \\n\", sourceCode, this.opts)\n throw e\n } finally {\n this._compilations.delete(sch)\n }\n}\n\nexport function resolveRef(\n this: Ajv,\n root: SchemaEnv,\n baseId: string,\n ref: string\n): AnySchema | SchemaEnv | undefined {\n ref = resolveUrl(this.opts.uriResolver, baseId, ref)\n const schOrFunc = root.refs[ref]\n if (schOrFunc) return schOrFunc\n\n let _sch = resolve.call(this, root, ref)\n if (_sch === undefined) {\n const schema = root.localRefs?.[ref] // TODO maybe localRefs should hold SchemaEnv\n const {schemaId} = this.opts\n if (schema) _sch = new SchemaEnv({schema, schemaId, root, baseId})\n }\n\n if (_sch === undefined) return\n return (root.refs[ref] = inlineOrCompile.call(this, _sch))\n}\n\nfunction inlineOrCompile(this: Ajv, sch: SchemaEnv): AnySchema | SchemaEnv {\n if (inlineRef(sch.schema, this.opts.inlineRefs)) return sch.schema\n return sch.validate ? sch : compileSchema.call(this, sch)\n}\n\n// Index of schema compilation in the currently compiled list\nexport function getCompilingSchema(this: Ajv, schEnv: SchemaEnv): SchemaEnv | void {\n for (const sch of this._compilations) {\n if (sameSchemaEnv(sch, schEnv)) return sch\n }\n}\n\nfunction sameSchemaEnv(s1: SchemaEnv, s2: SchemaEnv): boolean {\n return s1.schema === s2.schema && s1.root === s2.root && s1.baseId === s2.baseId\n}\n\n// resolve and compile the references ($ref)\n// TODO returns AnySchemaObject (if the schema can be inlined) or validation function\nfunction resolve(\n this: Ajv,\n root: SchemaEnv, // information about the root schema for the current schema\n ref: string // reference to resolve\n): SchemaEnv | undefined {\n let sch\n while (typeof (sch = this.refs[ref]) == \"string\") ref = sch\n return sch || this.schemas[ref] || resolveSchema.call(this, root, ref)\n}\n\n// Resolve schema, its root and baseId\nexport function resolveSchema(\n this: Ajv,\n root: SchemaEnv, // root object with properties schema, refs TODO below SchemaEnv is assigned to it\n ref: string // reference to resolve\n): SchemaEnv | undefined {\n const p = this.opts.uriResolver.parse(ref)\n const refPath = _getFullPath(this.opts.uriResolver, p)\n let baseId = 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\n const id = 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?.schema !== \"object\") return\n return getJsonPointer.call(this, p, sch)\n }\n\n if (typeof schOrRef?.schema !== \"object\") return\n if (!schOrRef.validate) compileSchema.call(this, schOrRef)\n if (id === normalizeId(ref)) {\n const {schema} = schOrRef\n const {schemaId} = this.opts\n const schId = schema[schemaId]\n if (schId) baseId = resolveUrl(this.opts.uriResolver, baseId, schId)\n return new SchemaEnv({schema, schemaId, root, baseId})\n }\n return getJsonPointer.call(this, p, schOrRef)\n}\n\nconst PREVENT_SCOPE_CHANGE = new Set([\n \"properties\",\n \"patternProperties\",\n \"enum\",\n \"dependencies\",\n \"definitions\",\n])\n\nfunction getJsonPointer(\n this: Ajv,\n parsedRef: URIComponent,\n {baseId, schema, root}: SchemaEnv\n): SchemaEnv | undefined {\n if (parsedRef.fragment?.[0] !== \"/\") return\n for (const part of parsedRef.fragment.slice(1).split(\"/\")) {\n if (typeof schema === \"boolean\") return\n const partSchema = schema[unescapeFragment(part)]\n if (partSchema === undefined) 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 = resolveUrl(this.opts.uriResolver, baseId, schId)\n }\n }\n let env: SchemaEnv | undefined\n if (typeof schema != \"boolean\" && schema.$ref && !schemaHasRulesButRef(schema, this.RULES)) {\n const $ref = 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) return env\n return undefined\n}\n","'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","import * as uri from \"fast-uri\"\n\ntype URI = typeof uri & {code: string}\n;(uri as URI).code = 'require(\"ajv/dist/runtime/uri\").default'\n\nexport default uri as URI\n","export {\n Format,\n FormatDefinition,\n AsyncFormatDefinition,\n KeywordDefinition,\n KeywordErrorDefinition,\n CodeKeywordDefinition,\n MacroKeywordDefinition,\n FuncKeywordDefinition,\n Vocabulary,\n Schema,\n SchemaObject,\n AnySchemaObject,\n AsyncSchema,\n AnySchema,\n ValidateFunction,\n AsyncValidateFunction,\n AnyValidateFunction,\n ErrorObject,\n ErrorNoParams,\n} from \"./types\"\n\nexport {SchemaCxt, SchemaObjCxt} from \"./compile\"\nexport interface Plugin<Opts> {\n (ajv: Ajv, options?: Opts): Ajv\n [prop: string]: any\n}\n\nexport {KeywordCxt} from \"./compile/validate\"\nexport {DefinedError} from \"./vocabularies/errors\"\nexport {JSONType} from \"./compile/rules\"\nexport {JSONSchemaType} from \"./types/json-schema\"\nexport {JTDSchemaType, SomeJTDSchemaType, JTDDataType} from \"./types/jtd-schema\"\nexport {_, str, stringify, nil, Name, Code, CodeGen, CodeGenOptions} from \"./compile/codegen\"\n\nimport type {\n Schema,\n AnySchema,\n AnySchemaObject,\n SchemaObject,\n AsyncSchema,\n Vocabulary,\n KeywordDefinition,\n AddedKeywordDefinition,\n AnyValidateFunction,\n ValidateFunction,\n AsyncValidateFunction,\n ErrorObject,\n Format,\n AddedFormat,\n RegExpEngine,\n UriResolver,\n} from \"./types\"\nimport type {JSONSchemaType} from \"./types/json-schema\"\nimport type {JTDSchemaType, SomeJTDSchemaType, JTDDataType} from \"./types/jtd-schema\"\nimport ValidationError from \"./runtime/validation_error\"\nimport MissingRefError from \"./compile/ref_error\"\nimport {getRules, ValidationRules, Rule, RuleGroup, JSONType} from \"./compile/rules\"\nimport {SchemaEnv, compileSchema, resolveSchema} from \"./compile\"\nimport {Code, ValueScope} from \"./compile/codegen\"\nimport {normalizeId, getSchemaRefs} from \"./compile/resolve\"\nimport {getJSONTypes} from \"./compile/validate/dataType\"\nimport {eachItem} from \"./compile/util\"\nimport * as $dataRefSchema from \"./refs/data.json\"\n\nimport DefaultUriResolver from \"./runtime/uri\"\n\nconst defaultRegExp: RegExpEngine = (str, flags) => new RegExp(str, flags)\ndefaultRegExp.code = \"new RegExp\"\n\nconst META_IGNORE_OPTIONS: (keyof 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])\n\nexport type Options = CurrentOptions & DeprecatedOptions\n\nexport interface CurrentOptions {\n // strict mode options (NEW)\n strict?: boolean | \"log\"\n strictSchema?: boolean | \"log\"\n strictNumbers?: boolean | \"log\"\n strictTypes?: boolean | \"log\"\n strictTuples?: boolean | \"log\"\n strictRequired?: boolean | \"log\"\n allowMatchingProperties?: boolean // disables a strict mode restriction\n allowUnionTypes?: boolean\n validateFormats?: boolean\n // validation and reporting options:\n $data?: boolean\n allErrors?: boolean\n verbose?: boolean\n discriminator?: boolean\n unicodeRegExp?: boolean\n timestamp?: \"string\" | \"date\" // JTD only\n parseDate?: boolean // JTD only\n allowDate?: boolean // JTD only\n $comment?:\n | true\n | ((comment: string, schemaPath?: string, rootSchema?: AnySchemaObject) => unknown)\n formats?: {[Name in string]?: Format}\n keywords?: Vocabulary\n schemas?: AnySchema[] | {[Key in string]?: AnySchema}\n logger?: Logger | false\n loadSchema?: (uri: string) => Promise<AnySchemaObject>\n // options to modify validated data:\n removeAdditional?: boolean | \"all\" | \"failing\"\n useDefaults?: boolean | \"empty\"\n coerceTypes?: boolean | \"array\"\n // advanced options:\n next?: boolean // NEW\n unevaluated?: boolean // NEW\n dynamicRef?: boolean // NEW\n schemaId?: \"id\" | \"$id\"\n jtd?: boolean // NEW\n meta?: SchemaObject | boolean\n defaultMeta?: string | AnySchemaObject\n validateSchema?: boolean | \"log\"\n addUsedSchema?: boolean\n inlineRefs?: boolean | number\n passContext?: boolean\n loopRequired?: number\n loopEnum?: number // NEW\n ownProperties?: boolean\n multipleOfPrecision?: number\n int32range?: boolean // JTD only\n messages?: boolean\n code?: CodeOptions // NEW\n uriResolver?: UriResolver\n}\n\nexport interface CodeOptions {\n es5?: boolean\n esm?: boolean\n lines?: boolean\n optimize?: boolean | number\n formats?: Code // code to require (or construct) map of available formats - for standalone code\n source?: boolean\n process?: (code: string, schema?: SchemaEnv) => string\n regExp?: RegExpEngine\n}\n\ninterface InstanceCodeOptions extends CodeOptions {\n regExp: RegExpEngine\n optimize: number\n}\n\ninterface DeprecatedOptions {\n /** @deprecated */\n ignoreKeywordsWithRef?: boolean\n /** @deprecated */\n jsPropertySyntax?: boolean // added instead of jsonPointers\n /** @deprecated */\n unicode?: boolean\n}\n\ninterface RemovedOptions {\n format?: boolean\n errorDataPath?: \"object\" | \"property\"\n nullable?: boolean // \"nullable\" keyword is supported by default\n jsonPointers?: boolean\n extendRefs?: true | \"ignore\" | \"fail\"\n missingRefs?: true | \"ignore\" | \"fail\"\n processCode?: (code: string, schema?: SchemaEnv) => string\n sourceCode?: boolean\n strictDefaults?: boolean\n strictKeywords?: boolean\n uniqueItems?: boolean\n unknownFormats?: true | string[] | \"ignore\"\n cache?: any\n serialize?: (schema: AnySchema) => unknown\n ajvErrors?: boolean\n}\n\ntype OptionsInfo<T extends RemovedOptions | DeprecatedOptions> = {\n [K in keyof T]-?: string | undefined\n}\n\nconst removedOptions: OptionsInfo<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}\n\nconst deprecatedOptions: OptionsInfo<DeprecatedOptions> = {\n ignoreKeywordsWithRef: \"\",\n jsPropertySyntax: \"\",\n unicode: '\"minLength\"/\"maxLength\" account for unicode characters by default.',\n}\n\ntype RequiredInstanceOptions = {\n [K in\n | \"strictSchema\"\n | \"strictNumbers\"\n | \"strictTypes\"\n | \"strictTuples\"\n | \"strictRequired\"\n | \"inlineRefs\"\n | \"loopRequired\"\n | \"loopEnum\"\n | \"meta\"\n | \"messages\"\n | \"schemaId\"\n | \"addUsedSchema\"\n | \"validateSchema\"\n | \"validateFormats\"\n | \"int32range\"\n | \"unicodeRegExp\"\n | \"uriResolver\"]: NonNullable<Options[K]>\n} & {code: InstanceCodeOptions}\n\nexport type InstanceOptions = Options & RequiredInstanceOptions\n\nconst MAX_EXPRESSION = 200\n\n// eslint-disable-next-line complexity\nfunction requiredOptions(o: Options): RequiredInstanceOptions {\n const s = o.strict\n const _optz = o.code?.optimize\n const optimize = _optz === true || _optz === undefined ? 1 : _optz || 0\n const regExp = o.code?.regExp ?? defaultRegExp\n const uriResolver = o.uriResolver ?? DefaultUriResolver\n return {\n strictSchema: o.strictSchema ?? s ?? true,\n strictNumbers: o.strictNumbers ?? s ?? true,\n strictTypes: o.strictTypes ?? s ?? \"log\",\n strictTuples: o.strictTuples ?? s ?? \"log\",\n strictRequired: o.strictRequired ?? s ?? false,\n code: o.code ? {...o.code, optimize, regExp} : {optimize, regExp},\n loopRequired: o.loopRequired ?? MAX_EXPRESSION,\n loopEnum: o.loopEnum ?? MAX_EXPRESSION,\n meta: o.meta ?? true,\n messages: o.messages ?? true,\n inlineRefs: o.inlineRefs ?? true,\n schemaId: o.schemaId ?? \"$id\",\n addUsedSchema: o.addUsedSchema ?? true,\n validateSchema: o.validateSchema ?? true,\n validateFormats: o.validateFormats ?? true,\n unicodeRegExp: o.unicodeRegExp ?? true,\n int32range: o.int32range ?? true,\n uriResolver: uriResolver,\n }\n}\n\nexport interface Logger {\n log(...args: unknown[]): unknown\n warn(...args: unknown[]): unknown\n error(...args: unknown[]): unknown\n}\n\nexport default class Ajv {\n opts: InstanceOptions\n errors?: ErrorObject[] | null // errors from the last validation\n logger: Logger\n // shared external scope values for compiled functions\n readonly scope: ValueScope\n readonly schemas: {[Key in string]?: SchemaEnv} = {}\n readonly refs: {[Ref in string]?: SchemaEnv | string} = {}\n readonly formats: {[Name in string]?: AddedFormat} = {}\n readonly RULES: ValidationRules\n readonly _compilations: Set<SchemaEnv> = new Set()\n private readonly _loading: {[Ref in string]?: Promise<AnySchemaObject>} = {}\n private readonly _cache: Map<AnySchema, SchemaEnv> = new Map()\n private readonly _metaOpts: InstanceOptions\n\n static ValidationError = ValidationError\n static MissingRefError = MissingRefError\n\n constructor(opts: Options = {}) {\n opts = this.opts = {...opts, ...requiredOptions(opts)}\n const {es5, lines} = this.opts.code\n\n this.scope = new ValueScope({scope: {}, prefixes: EXT_SCOPE_NAMES, es5, lines})\n this.logger = getLogger(opts.logger)\n const formatOpt = opts.validateFormats\n opts.validateFormats = false\n\n this.RULES = getRules()\n checkOptions.call(this, removedOptions, opts, \"NOT SUPPORTED\")\n checkOptions.call(this, deprecatedOptions, opts, \"DEPRECATED\", \"warn\")\n this._metaOpts = getMetaSchemaOptions.call(this)\n\n if (opts.formats) addInitialFormats.call(this)\n this._addVocabularies()\n this._addDefaultMetaSchema()\n if (opts.keywords) addInitialKeywords.call(this, opts.keywords)\n if (typeof opts.meta == \"object\") this.addMetaSchema(opts.meta)\n addInitialSchemas.call(this)\n opts.validateFormats = formatOpt\n }\n\n _addVocabularies(): void {\n this.addKeyword(\"$async\")\n }\n\n _addDefaultMetaSchema(): void {\n const {$data, meta, schemaId} = this.opts\n let _dataRefSchema: SchemaObject = $dataRefSchema\n if (schemaId === \"id\") {\n _dataRefSchema = {...$dataRefSchema}\n _dataRefSchema.id = _dataRefSchema.$id\n delete _dataRefSchema.$id\n }\n if (meta && $data) this.addMetaSchema(_dataRefSchema, _dataRefSchema[schemaId], false)\n }\n\n defaultMeta(): string | AnySchemaObject | undefined {\n const {meta, schemaId} = this.opts\n return (this.opts.defaultMeta = typeof meta == \"object\" ? meta[schemaId] || meta : undefined)\n }\n\n // Validate data using schema\n // AnySchema will be compiled and cached using schema itself as a key for Map\n validate(schema: Schema | string, data: unknown): boolean\n validate(schemaKeyRef: AnySchema | string, data: unknown): boolean | Promise<unknown>\n validate<T>(schema: Schema | JSONSchemaType<T> | string, data: unknown): data is T\n // Separated for type inference to work\n // eslint-disable-next-line @typescript-eslint/unified-signatures\n validate<T>(schema: JTDSchemaType<T>, data: unknown): data is T\n // This overload is only intended for typescript inference, the first\n // argument prevents manual type annotation from matching this overload\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n validate<N extends never, T extends SomeJTDSchemaType>(\n schema: T,\n data: unknown\n ): data is JTDDataType<T>\n // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\n validate<T>(schema: AsyncSchema, data: unknown | T): Promise<T>\n validate<T>(schemaKeyRef: AnySchema | string, data: unknown): data is T | Promise<T>\n validate<T>(\n schemaKeyRef: AnySchema | string, // key, ref or schema object\n // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\n data: unknown | T // to be validated\n ): boolean | Promise<T> {\n let v: AnyValidateFunction | undefined\n if (typeof schemaKeyRef == \"string\") {\n v = this.getSchema<T>(schemaKeyRef)\n if (!v) throw new Error(`no schema with key or ref \"${schemaKeyRef}\"`)\n } else {\n v = this.compile<T>(schemaKeyRef)\n }\n\n const valid = v(data)\n if (!(\"$async\" in v)) this.errors = v.errors\n return valid\n }\n\n // Create validation function for passed schema\n // _meta: true if schema is a meta-schema. Used internally to compile meta schemas of user-defined keywords.\n compile<T = unknown>(schema: Schema | JSONSchemaType<T>, _meta?: boolean): ValidateFunction<T>\n // Separated for type inference to work\n // eslint-disable-next-line @typescript-eslint/unified-signatures\n compile<T = unknown>(schema: JTDSchemaType<T>, _meta?: boolean): ValidateFunction<T>\n // This overload is only intended for typescript inference, the first\n // argument prevents manual type annotation from matching this overload\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n compile<N extends never, T extends SomeJTDSchemaType>(\n schema: T,\n _meta?: boolean\n ): ValidateFunction<JTDDataType<T>>\n compile<T = unknown>(schema: AsyncSchema, _meta?: boolean): AsyncValidateFunction<T>\n compile<T = unknown>(schema: AnySchema, _meta?: boolean): AnyValidateFunction<T>\n compile<T = unknown>(schema: AnySchema, _meta?: boolean): AnyValidateFunction<T> {\n const sch = this._addSchema(schema, _meta)\n return (sch.validate || this._compileSchemaEnv(sch)) as AnyValidateFunction<T>\n }\n\n // Creates validating function for passed schema with asynchronous loading of missing schemas.\n // `loadSchema` option should be a function that accepts schema uri and returns promise that resolves with the schema.\n // TODO allow passing schema URI\n // meta - optional true to compile meta-schema\n compileAsync<T = unknown>(\n schema: SchemaObject | JSONSchemaType<T>,\n _meta?: boolean\n ): Promise<ValidateFunction<T>>\n // Separated for type inference to work\n // eslint-disable-next-line @typescript-eslint/unified-signatures\n compileAsync<T = unknown>(schema: JTDSchemaType<T>, _meta?: boolean): Promise<ValidateFunction<T>>\n compileAsync<T = unknown>(schema: AsyncSchema, meta?: boolean): Promise<AsyncValidateFunction<T>>\n // eslint-disable-next-line @typescript-eslint/unified-signatures\n compileAsync<T = unknown>(\n schema: AnySchemaObject,\n meta?: boolean\n ): Promise<AnyValidateFunction<T>>\n compileAsync<T = unknown>(\n schema: AnySchemaObject,\n meta?: boolean\n ): Promise<AnyValidateFunction<T>> {\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\n async function runCompileAsync(\n this: Ajv,\n _schema: AnySchemaObject,\n _meta?: boolean\n ): Promise<AnyValidateFunction> {\n await loadMetaSchema.call(this, _schema.$schema)\n const sch = this._addSchema(_schema, _meta)\n return sch.validate || _compileAsync.call(this, sch)\n }\n\n async function loadMetaSchema(this: Ajv, $ref?: string): Promise<void> {\n if ($ref && !this.getSchema($ref)) {\n await runCompileAsync.call(this, {$ref}, true)\n }\n }\n\n async function _compileAsync(this: Ajv, sch: SchemaEnv): Promise<AnyValidateFunction> {\n try {\n return this._compileSchemaEnv(sch)\n } catch (e) {\n if (!(e instanceof MissingRefError)) throw e\n checkLoaded.call(this, e)\n await loadMissingSchema.call(this, e.missingSchema)\n return _compileAsync.call(this, sch)\n }\n }\n\n function checkLoaded(this: Ajv, {missingSchema: ref, missingRef}: MissingRefError): void {\n if (this.refs[ref]) {\n throw new Error(`AnySchema ${ref} is loaded but ${missingRef} cannot be resolved`)\n }\n }\n\n async function loadMissingSchema(this: Ajv, ref: string): Promise<void> {\n const _schema = await _loadSchema.call(this, ref)\n if (!this.refs[ref]) await loadMetaSchema.call(this, _schema.$schema)\n if (!this.refs[ref]) this.addSchema(_schema, ref, meta)\n }\n\n async function _loadSchema(this: Ajv, ref: string): Promise<AnySchemaObject> {\n const p = this._loading[ref]\n if (p) return p\n try {\n return await (this._loading[ref] = loadSchema(ref))\n } finally {\n delete this._loading[ref]\n }\n }\n }\n\n // Adds schema to the instance\n addSchema(\n schema: AnySchema | AnySchema[], // If array is passed, `key` will be ignored\n key?: string, // 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?: boolean, // 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 ): Ajv {\n if (Array.isArray(schema)) {\n for (const sch of schema) this.addSchema(sch, undefined, _meta, _validateSchema)\n return this\n }\n let id: string | undefined\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 = normalizeId(key || id)\n this._checkUnique(key)\n this.schemas[key] = this._addSchema(schema, _meta, key, _validateSchema, true)\n return this\n }\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(\n schema: AnySchemaObject,\n key?: string, // schema key\n _validateSchema = this.opts.validateSchema // false to skip schema validation, can be used to override validateSchema option for meta-schema\n ): Ajv {\n this.addSchema(schema, key, true, _validateSchema)\n return this\n }\n\n // Validate schema against its meta-schema\n validateSchema(schema: AnySchema, throwOrLogError?: boolean): boolean | Promise<unknown> {\n if (typeof schema == \"boolean\") return true\n let $schema: string | AnySchemaObject | undefined\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\") this.logger.error(message)\n else throw new Error(message)\n }\n return valid\n }\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<T = unknown>(keyRef: string): AnyValidateFunction<T> | undefined {\n let sch\n while (typeof (sch = getSchEnv.call(this, keyRef)) == \"string\") keyRef = sch\n if (sch === undefined) {\n const {schemaId} = this.opts\n const root = new SchemaEnv({schema: {}, schemaId})\n sch = resolveSchema.call(this, root, keyRef)\n if (!sch) return\n this.refs[keyRef] = sch\n }\n return (sch.validate || this._compileSchemaEnv(sch)) as AnyValidateFunction<T> | undefined\n }\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?: AnySchema | string | RegExp): Ajv {\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\") 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 = 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\n // add \"vocabulary\" - a collection of keywords\n addVocabulary(definitions: Vocabulary): Ajv {\n for (const def of definitions) this.addKeyword(def)\n return this\n }\n\n addKeyword(\n kwdOrDef: string | KeywordDefinition,\n def?: KeywordDefinition // deprecated\n ): Ajv {\n let keyword: string | string[]\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 } 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 } else {\n throw new Error(\"invalid addKeywords parameters\")\n }\n\n checkKeyword.call(this, keyword, def)\n if (!def) {\n eachItem(keyword, (kwd) => addRule.call(this, kwd))\n return this\n }\n keywordMetaschema.call(this, def)\n const definition: AddedKeywordDefinition = {\n ...def,\n type: getJSONTypes(def.type),\n schemaType: getJSONTypes(def.schemaType),\n }\n eachItem(\n keyword,\n definition.type.length === 0\n ? (k) => addRule.call(this, k, definition)\n : (k) => definition.type.forEach((t) => addRule.call(this, k, definition, t))\n )\n return this\n }\n\n getKeyword(keyword: string): AddedKeywordDefinition | boolean {\n const rule = this.RULES.all[keyword]\n return typeof rule == \"object\" ? rule.definition : !!rule\n }\n\n // Remove keyword\n removeKeyword(keyword: string): Ajv {\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) group.rules.splice(i, 1)\n }\n return this\n }\n\n // Add format\n addFormat(name: string, format: Format): Ajv {\n if (typeof format == \"string\") format = new RegExp(format)\n this.formats[name] = format\n return this\n }\n\n errorsText(\n errors: ErrorObject[] | null | undefined = this.errors, // optional array of validation errors\n {separator = \", \", dataVar = \"data\"}: ErrorsTextOptions = {} // optional options with properties `separator` and `dataVar`\n ): string {\n if (!errors || errors.length === 0) return \"No errors\"\n return errors\n .map((e) => `${dataVar}${e.instancePath} ${e.message}`)\n .reduce((text, msg) => text + separator + msg)\n }\n\n $dataMetaSchema(metaSchema: AnySchemaObject, keywordsJsonPointers: string[]): AnySchemaObject {\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) keywords = keywords[seg] as AnySchemaObject\n\n for (const key in rules) {\n const rule = rules[key]\n if (typeof rule != \"object\") continue\n const {$data} = rule.definition\n const schema = keywords[key] as AnySchemaObject | undefined\n if ($data && schema) keywords[key] = schemaOrData(schema)\n }\n }\n\n return metaSchema\n }\n\n private _removeAllSchemas(schemas: {[Ref in string]?: SchemaEnv | string}, regex?: RegExp): void {\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 } else if (sch && !sch.meta) {\n this._cache.delete(sch.schema)\n delete schemas[keyRef]\n }\n }\n }\n }\n\n _addSchema(\n schema: AnySchema,\n meta?: boolean,\n baseId?: string,\n validateSchema = this.opts.validateSchema,\n addSchema = this.opts.addUsedSchema\n ): SchemaEnv {\n let id: string | undefined\n const {schemaId} = this.opts\n if (typeof schema == \"object\") {\n id = schema[schemaId]\n } else {\n if (this.opts.jtd) throw new Error(\"schema must be object\")\n else if (typeof schema != \"boolean\") throw new Error(\"schema must be object or boolean\")\n }\n let sch = this._cache.get(schema)\n if (sch !== undefined) return sch\n\n baseId = normalizeId(id || baseId)\n const localRefs = getSchemaRefs.call(this, schema, baseId)\n sch = new 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) this._checkUnique(baseId)\n this.refs[baseId] = sch\n }\n if (validateSchema) this.validateSchema(schema, true)\n return sch\n }\n\n private _checkUnique(id: string): void {\n if (this.schemas[id] || this.refs[id]) {\n throw new Error(`schema with key or id \"${id}\" already exists`)\n }\n }\n\n private _compileSchemaEnv(sch: SchemaEnv): AnyValidateFunction {\n if (sch.meta) this._compileMetaSchema(sch)\n else compileSchema.call(this, sch)\n\n /* istanbul ignore if */\n if (!sch.validate) throw new Error(\"ajv implementation error\")\n return sch.validate\n }\n\n private _compileMetaSchema(sch: SchemaEnv): void {\n const currentOpts = this.opts\n this.opts = this._metaOpts\n try {\n compileSchema.call(this, sch)\n } finally {\n this.opts = currentOpts\n }\n }\n}\n\nexport interface ErrorsTextOptions {\n separator?: string\n dataVar?: string\n}\n\nfunction checkOptions(\n this: Ajv,\n checkOpts: OptionsInfo<RemovedOptions | DeprecatedOptions>,\n options: Options & RemovedOptions,\n msg: string,\n log: \"warn\" | \"error\" = \"error\"\n): void {\n for (const key in checkOpts) {\n const opt = key as keyof typeof checkOpts\n if (opt in options) this.logger[log](`${msg}: option ${key}. ${checkOpts[opt]}`)\n }\n}\n\nfunction getSchEnv(this: Ajv, keyRef: string): SchemaEnv | string | undefined {\n keyRef = normalizeId(keyRef) // TODO tests fail without this line\n return this.schemas[keyRef] || this.refs[keyRef]\n}\n\nfunction addInitialSchemas(this: Ajv): void {\n const optsSchemas = this.opts.schemas\n if (!optsSchemas) return\n if (Array.isArray(optsSchemas)) this.addSchema(optsSchemas)\n else for (const key in optsSchemas) this.addSchema(optsSchemas[key] as AnySchema, key)\n}\n\nfunction addInitialFormats(this: Ajv): void {\n for (const name in this.opts.formats) {\n const format = this.opts.formats[name]\n if (format) this.addFormat(name, format)\n }\n}\n\nfunction addInitialKeywords(\n this: Ajv,\n defs: Vocabulary | {[K in string]?: KeywordDefinition}\n): void {\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] as KeywordDefinition\n if (!def.keyword) def.keyword = keyword\n this.addKeyword(def)\n }\n}\n\nfunction getMetaSchemaOptions(this: Ajv): InstanceOptions {\n const metaOpts = {...this.opts}\n for (const opt of META_IGNORE_OPTIONS) delete metaOpts[opt]\n return metaOpts\n}\n\nconst noLogs = {log() {}, warn() {}, error() {}}\n\nfunction getLogger(logger?: Partial<Logger> | false): Logger {\n if (logger === false) return noLogs\n if (logger === undefined) return console\n if (logger.log && logger.warn && logger.error) return logger as Logger\n throw new Error(\"logger must implement log, warn and error methods\")\n}\n\nconst KEYWORD_NAME = /^[a-z_$][a-z0-9_$:-]*$/i\n\nfunction checkKeyword(this: Ajv, keyword: string | string[], def?: KeywordDefinition): void {\n const {RULES} = this\n eachItem(keyword, (kwd) => {\n if (RULES.keywords[kwd]) throw new Error(`Keyword ${kwd} is already defined`)\n if (!KEYWORD_NAME.test(kwd)) throw new Error(`Keyword ${kwd} has invalid name`)\n })\n if (!def) 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}\n\nfunction addRule(\n this: Ajv,\n keyword: string,\n definition?: AddedKeywordDefinition,\n dataType?: JSONType\n): void {\n const post = definition?.post\n if (dataType && post) 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) return\n\n const rule: Rule = {\n keyword,\n definition: {\n ...definition,\n type: getJSONTypes(definition.type),\n schemaType: getJSONTypes(definition.schemaType),\n },\n }\n if (definition.before) addBeforeRule.call(this, ruleGroup, rule, definition.before)\n else ruleGroup.rules.push(rule)\n RULES.all[keyword] = rule\n definition.implements?.forEach((kwd) => this.addKeyword(kwd))\n}\n\nfunction addBeforeRule(this: Ajv, ruleGroup: RuleGroup, rule: Rule, before: string): void {\n const i = ruleGroup.rules.findIndex((_rule) => _rule.keyword === before)\n if (i >= 0) {\n ruleGroup.rules.splice(i, 0, rule)\n } else {\n ruleGroup.rules.push(rule)\n this.logger.warn(`rule ${before} is not defined`)\n }\n}\n\nfunction keywordMetaschema(this: Ajv, def: KeywordDefinition): void {\n let {metaSchema} = def\n if (metaSchema === undefined) return\n if (def.$data && this.opts.$data) metaSchema = schemaOrData(metaSchema)\n def.validateSchema = this.compile(metaSchema, true)\n}\n\nconst $dataRef = {\n $ref: \"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#\",\n}\n\nfunction schemaOrData(schema: AnySchema): AnySchemaObject {\n return {anyOf: [schema, $dataRef]}\n}\n","import type {CodeKeywordDefinition} from \"../../types\"\n\nconst def: CodeKeywordDefinition = {\n keyword: \"id\",\n code() {\n throw new Error('NOT SUPPORTED: keyword \"id\", use \"$id\" for schema ID')\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, AnySchema} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport MissingRefError from \"../../compile/ref_error\"\nimport {callValidateCode} from \"../code\"\nimport {_, nil, stringify, Code, Name} from \"../../compile/codegen\"\nimport N from \"../../compile/names\"\nimport {SchemaEnv, resolveRef} from \"../../compile\"\nimport {mergeEvaluated} from \"../../compile/util\"\n\nconst def: CodeKeywordDefinition = {\n keyword: \"$ref\",\n schemaType: \"string\",\n code(cxt: KeywordCxt): void {\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) return callRootRef()\n const schOrEnv = resolveRef.call(self, root, baseId, $ref)\n if (schOrEnv === undefined) throw new MissingRefError(it.opts.uriResolver, baseId, $ref)\n if (schOrEnv instanceof SchemaEnv) return callValidate(schOrEnv)\n return inlineRefSchema(schOrEnv)\n\n function callRootRef(): void {\n if (env === root) return callRef(cxt, validateName, env, env.$async)\n const rootName = gen.scopeValue(\"root\", {ref: root})\n return callRef(cxt, _`${rootName}.validate`, root, root.$async)\n }\n\n function callValidate(sch: SchemaEnv): void {\n const v = getValidate(cxt, sch)\n callRef(cxt, v, sch, sch.$async)\n }\n\n function inlineRefSchema(sch: AnySchema): void {\n const schName = gen.scopeValue(\n \"schema\",\n opts.code.source === true ? {ref: sch, code: stringify(sch)} : {ref: sch}\n )\n const valid = gen.name(\"valid\")\n const schCxt = cxt.subschema(\n {\n schema: sch,\n dataTypes: [],\n schemaPath: nil,\n topSchemaRef: schName,\n errSchemaPath: $ref,\n },\n valid\n )\n cxt.mergeEvaluated(schCxt)\n cxt.ok(valid)\n }\n },\n}\n\nexport function getValidate(cxt: KeywordCxt, sch: SchemaEnv): Code {\n const {gen} = cxt\n return sch.validate\n ? gen.scopeValue(\"validate\", {ref: sch.validate})\n : _`${gen.scopeValue(\"wrapper\", {ref: sch})}.validate`\n}\n\nexport function callRef(cxt: KeywordCxt, v: Code, sch?: SchemaEnv, $async?: boolean): void {\n const {gen, it} = cxt\n const {allErrors, schemaEnv: env, opts} = it\n const passCxt = opts.passContext ? N.this : nil\n if ($async) callAsyncRef()\n else callSyncRef()\n\n function callAsyncRef(): void {\n if (!env.$async) throw new Error(\"async schema referenced by sync schema\")\n const valid = gen.let(\"valid\")\n gen.try(\n () => {\n gen.code(_`await ${callValidateCode(cxt, v, passCxt)}`)\n addEvaluatedFrom(v) // TODO will not work with async, it has to be returned with the result\n if (!allErrors) gen.assign(valid, true)\n },\n (e) => {\n gen.if(_`!(${e} instanceof ${it.ValidationError as Name})`, () => gen.throw(e))\n addErrorsFrom(e)\n if (!allErrors) gen.assign(valid, false)\n }\n )\n cxt.ok(valid)\n }\n\n function callSyncRef(): void {\n cxt.result(\n callValidateCode(cxt, v, passCxt),\n () => addEvaluatedFrom(v),\n () => addErrorsFrom(v)\n )\n }\n\n function addErrorsFrom(source: Code): void {\n const errs = _`${source}.errors`\n gen.assign(N.vErrors, _`${N.vErrors} === null ? ${errs} : ${N.vErrors}.concat(${errs})`) // TODO tagged\n gen.assign(N.errors, _`${N.vErrors}.length`)\n }\n\n function addEvaluatedFrom(source: Code): void {\n if (!it.opts.unevaluated) return\n const schEvaluated = sch?.validate?.evaluated\n // TODO refactor\n if (it.props !== true) {\n if (schEvaluated && !schEvaluated.dynamicProps) {\n if (schEvaluated.props !== undefined) {\n it.props = mergeEvaluated.props(gen, schEvaluated.props, it.props)\n }\n } else {\n const props = gen.var(\"props\", _`${source}.evaluated.props`)\n it.props = mergeEvaluated.props(gen, props, it.props, Name)\n }\n }\n if (it.items !== true) {\n if (schEvaluated && !schEvaluated.dynamicItems) {\n if (schEvaluated.items !== undefined) {\n it.items = mergeEvaluated.items(gen, schEvaluated.items, it.items)\n }\n } else {\n const items = gen.var(\"items\", _`${source}.evaluated.items`)\n it.items = mergeEvaluated.items(gen, items, it.items, Name)\n }\n }\n }\n}\n\nexport default def\n","import type {Vocabulary} from \"../../types\"\nimport idKeyword from \"./id\"\nimport refKeyword from \"./ref\"\n\nconst core: Vocabulary = [\n \"$schema\",\n \"$id\",\n \"$defs\",\n \"$vocabulary\",\n {keyword: \"$comment\"},\n \"definitions\",\n idKeyword,\n refKeyword,\n]\n\nexport default core\n","import type {CodeKeywordDefinition, ErrorObject, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, operators, Code} from \"../../compile/codegen\"\n\nconst ops = operators\n\ntype Kwd = \"maximum\" | \"minimum\" | \"exclusiveMaximum\" | \"exclusiveMinimum\"\n\ntype Comparison = \"<=\" | \">=\" | \"<\" | \">\"\n\nconst KWDs: {[K in Kwd]: {okStr: Comparison; ok: Code; fail: Code}} = {\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}\n\nexport type LimitNumberError = ErrorObject<\n Kwd,\n {limit: number; comparison: Comparison},\n number | {$data: string}\n>\n\nconst error: KeywordErrorDefinition = {\n message: ({keyword, schemaCode}) => str`must be ${KWDs[keyword as Kwd].okStr} ${schemaCode}`,\n params: ({keyword, schemaCode}) =>\n _`{comparison: ${KWDs[keyword as Kwd].okStr}, limit: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: Object.keys(KWDs),\n type: \"number\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {keyword, data, schemaCode} = cxt\n cxt.fail$data(_`${data} ${KWDs[keyword as Kwd].fail} ${schemaCode} || isNaN(${data})`)\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, ErrorObject, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str} from \"../../compile/codegen\"\n\nexport type MultipleOfError = ErrorObject<\n \"multipleOf\",\n {multipleOf: number},\n number | {$data: string}\n>\n\nconst error: KeywordErrorDefinition = {\n message: ({schemaCode}) => str`must be multiple of ${schemaCode}`,\n params: ({schemaCode}) => _`{multipleOf: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"multipleOf\",\n type: \"number\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\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 ? _`Math.abs(Math.round(${res}) - ${res}) > 1e-${prec}`\n : _`${res} !== parseInt(${res})`\n cxt.fail$data(_`(${schemaCode} === 0 || (${res} = ${data}/${schemaCode}, ${invalid}))`)\n },\n}\n\nexport default def\n","// https://mathiasbynens.be/notes/javascript-encoding\n// https://github.com/bestiejs/punycode.js - punycode.ucs2.decode\nexport default function ucs2length(str: string): number {\n const len = str.length\n let length = 0\n let pos = 0\n let value: number\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) pos++ // low surrogate\n }\n }\n return length\n}\n\nucs2length.code = 'require(\"ajv/dist/runtime/ucs2length\").default'\n","import type {CodeKeywordDefinition, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, operators} from \"../../compile/codegen\"\nimport {useFunc} from \"../../compile/util\"\nimport ucs2length from \"../../runtime/ucs2length\"\n\nconst error: KeywordErrorDefinition = {\n message({keyword, schemaCode}) {\n const comp = keyword === \"maxLength\" ? \"more\" : \"fewer\"\n return str`must NOT have ${comp} than ${schemaCode} characters`\n },\n params: ({schemaCode}) => _`{limit: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: [\"maxLength\", \"minLength\"],\n type: \"string\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {keyword, data, schemaCode, it} = cxt\n const op = keyword === \"maxLength\" ? operators.GT : operators.LT\n const len =\n it.opts.unicode === false ? _`${data}.length` : _`${useFunc(cxt.gen, ucs2length)}(${data})`\n cxt.fail$data(_`${len} ${op} ${schemaCode}`)\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, ErrorObject, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {usePattern} from \"../code\"\nimport {_, str} from \"../../compile/codegen\"\n\nexport type PatternError = ErrorObject<\"pattern\", {pattern: string}, string | {$data: string}>\n\nconst error: KeywordErrorDefinition = {\n message: ({schemaCode}) => str`must match pattern \"${schemaCode}\"`,\n params: ({schemaCode}) => _`{pattern: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"pattern\",\n type: \"string\",\n schemaType: \"string\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {data, $data, schema, schemaCode, it} = cxt\n // TODO regexp should be wrapped in try/catchs\n const u = it.opts.unicodeRegExp ? \"u\" : \"\"\n const regExp = $data ? _`(new RegExp(${schemaCode}, ${u}))` : usePattern(cxt, schema)\n cxt.fail$data(_`!${regExp}.test(${data})`)\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, operators} from \"../../compile/codegen\"\n\nconst error: KeywordErrorDefinition = {\n message({keyword, schemaCode}) {\n const comp = keyword === \"maxProperties\" ? \"more\" : \"fewer\"\n return str`must NOT have ${comp} than ${schemaCode} properties`\n },\n params: ({schemaCode}) => _`{limit: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: [\"maxProperties\", \"minProperties\"],\n type: \"object\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {keyword, data, schemaCode} = cxt\n const op = keyword === \"maxProperties\" ? operators.GT : operators.LT\n cxt.fail$data(_`Object.keys(${data}).length ${op} ${schemaCode}`)\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, ErrorObject, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {\n checkReportMissingProp,\n checkMissingProp,\n reportMissingProp,\n propertyInData,\n noPropertyInData,\n} from \"../code\"\nimport {_, str, nil, not, Name, Code} from \"../../compile/codegen\"\nimport {checkStrictMode} from \"../../compile/util\"\n\nexport type RequiredError = ErrorObject<\n \"required\",\n {missingProperty: string},\n string[] | {$data: string}\n>\n\nconst error: KeywordErrorDefinition = {\n message: ({params: {missingProperty}}) => str`must have required property '${missingProperty}'`,\n params: ({params: {missingProperty}}) => _`{missingProperty: ${missingProperty}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"required\",\n type: \"object\",\n schemaType: \"array\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {gen, schema, schemaCode, data, $data, it} = cxt\n const {opts} = it\n if (!$data && schema.length === 0) return\n const useLoop = schema.length >= opts.loopRequired\n if (it.allErrors) allErrorsMode()\n else exitOnErrorMode()\n\n if (opts.strictRequired) {\n const props = cxt.parentSchema.properties\n const {definedProperties} = cxt.it\n for (const requiredKey of schema) {\n if (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 checkStrictMode(it, msg, it.opts.strictRequired)\n }\n }\n }\n\n function allErrorsMode(): void {\n if (useLoop || $data) {\n cxt.block$data(nil, loopAllRequired)\n } else {\n for (const prop of schema) {\n checkReportMissingProp(cxt, prop)\n }\n }\n }\n\n function exitOnErrorMode(): void {\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 } else {\n gen.if(checkMissingProp(cxt, schema, missing))\n reportMissingProp(cxt, missing)\n gen.else()\n }\n }\n\n function loopAllRequired(): void {\n gen.forOf(\"prop\", schemaCode as Code, (prop) => {\n cxt.setParams({missingProperty: prop})\n gen.if(noPropertyInData(gen, data, prop, opts.ownProperties), () => cxt.error())\n })\n }\n\n function loopUntilMissing(missing: Name, valid: Name): void {\n cxt.setParams({missingProperty: missing})\n gen.forOf(\n missing,\n schemaCode as Code,\n () => {\n gen.assign(valid, propertyInData(gen, data, missing, opts.ownProperties))\n gen.if(not(valid), () => {\n cxt.error()\n gen.break()\n })\n },\n nil\n )\n }\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, operators} from \"../../compile/codegen\"\n\nconst error: KeywordErrorDefinition = {\n message({keyword, schemaCode}) {\n const comp = keyword === \"maxItems\" ? \"more\" : \"fewer\"\n return str`must NOT have ${comp} than ${schemaCode} items`\n },\n params: ({schemaCode}) => _`{limit: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: [\"maxItems\", \"minItems\"],\n type: \"array\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {keyword, data, schemaCode} = cxt\n const op = keyword === \"maxItems\" ? operators.GT : operators.LT\n cxt.fail$data(_`${data}.length ${op} ${schemaCode}`)\n },\n}\n\nexport default def\n","// https://github.com/ajv-validator/ajv/issues/889\nimport * as equal from \"fast-deep-equal\"\n\ntype Equal = typeof equal & {code: string}\n;(equal as Equal).code = 'require(\"ajv/dist/runtime/equal\").default'\n\nexport default equal as Equal\n","import type {CodeKeywordDefinition, ErrorObject, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {checkDataTypes, getSchemaTypes, DataType} from \"../../compile/validate/dataType\"\nimport {_, str, Name} from \"../../compile/codegen\"\nimport {useFunc} from \"../../compile/util\"\nimport equal from \"../../runtime/equal\"\n\nexport type UniqueItemsError = ErrorObject<\n \"uniqueItems\",\n {i: number; j: number},\n boolean | {$data: string}\n>\n\nconst error: KeywordErrorDefinition = {\n message: ({params: {i, j}}) =>\n str`must NOT have duplicate items (items ## ${j} and ${i} are identical)`,\n params: ({params: {i, j}}) => _`{i: ${i}, j: ${j}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"uniqueItems\",\n type: \"array\",\n schemaType: \"boolean\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {gen, data, $data, schema, parentSchema, schemaCode, it} = cxt\n if (!$data && !schema) return\n const valid = gen.let(\"valid\")\n const itemTypes = parentSchema.items ? getSchemaTypes(parentSchema.items) : []\n cxt.block$data(valid, validateUniqueItems, _`${schemaCode} === false`)\n cxt.ok(valid)\n\n function validateUniqueItems(): void {\n const i = gen.let(\"i\", _`${data}.length`)\n const j = gen.let(\"j\")\n cxt.setParams({i, j})\n gen.assign(valid, true)\n gen.if(_`${i} > 1`, () => (canOptimize() ? loopN : loopN2)(i, j))\n }\n\n function canOptimize(): boolean {\n return itemTypes.length > 0 && !itemTypes.some((t) => t === \"object\" || t === \"array\")\n }\n\n function loopN(i: Name, j: Name): void {\n const item = gen.name(\"item\")\n const wrongType = checkDataTypes(itemTypes, item, it.opts.strictNumbers, DataType.Wrong)\n const indices = gen.const(\"indices\", _`{}`)\n gen.for(_`;${i}--;`, () => {\n gen.let(item, _`${data}[${i}]`)\n gen.if(wrongType, _`continue`)\n if (itemTypes.length > 1) gen.if(_`typeof ${item} == \"string\"`, _`${item} += \"_\"`)\n gen\n .if(_`typeof ${indices}[${item}] == \"number\"`, () => {\n gen.assign(j, _`${indices}[${item}]`)\n cxt.error()\n gen.assign(valid, false).break()\n })\n .code(_`${indices}[${item}] = ${i}`)\n })\n }\n\n function loopN2(i: Name, j: Name): void {\n const eql = useFunc(gen, equal)\n const outer = gen.name(\"outer\")\n gen.label(outer).for(_`;${i}--;`, () =>\n gen.for(_`${j} = ${i}; ${j}--;`, () =>\n gen.if(_`${eql}(${data}[${i}], ${data}[${j}])`, () => {\n cxt.error()\n gen.assign(valid, false).break(outer)\n })\n )\n )\n }\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, ErrorObject, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_} from \"../../compile/codegen\"\nimport {useFunc} from \"../../compile/util\"\nimport equal from \"../../runtime/equal\"\n\nexport type ConstError = ErrorObject<\"const\", {allowedValue: any}>\n\nconst error: KeywordErrorDefinition = {\n message: \"must be equal to constant\",\n params: ({schemaCode}) => _`{allowedValue: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"const\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {gen, data, $data, schemaCode, schema} = cxt\n if ($data || (schema && typeof schema == \"object\")) {\n cxt.fail$data(_`!${useFunc(gen, equal)}(${data}, ${schemaCode})`)\n } else {\n cxt.fail(_`${schema} !== ${data}`)\n }\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, ErrorObject, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, or, Name, Code} from \"../../compile/codegen\"\nimport {useFunc} from \"../../compile/util\"\nimport equal from \"../../runtime/equal\"\n\nexport type EnumError = ErrorObject<\"enum\", {allowedValues: any[]}, any[] | {$data: string}>\n\nconst error: KeywordErrorDefinition = {\n message: \"must be equal to one of the allowed values\",\n params: ({schemaCode}) => _`{allowedValues: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"enum\",\n schemaType: \"array\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {gen, data, $data, schema, schemaCode, it} = cxt\n if (!$data && schema.length === 0) throw new Error(\"enum must have non-empty array\")\n const useLoop = schema.length >= it.opts.loopEnum\n let eql: Name | undefined\n const getEql = (): Name => (eql ??= useFunc(gen, equal))\n\n let valid: Code\n if (useLoop || $data) {\n valid = gen.let(\"valid\")\n cxt.block$data(valid, loopEnum)\n } else {\n /* istanbul ignore if */\n if (!Array.isArray(schema)) throw new Error(\"ajv implementation error\")\n const vSchema = gen.const(\"vSchema\", schemaCode)\n valid = or(...schema.map((_x: unknown, i: number) => equalCode(vSchema, i)))\n }\n cxt.pass(valid)\n\n function loopEnum(): void {\n gen.assign(valid, false)\n gen.forOf(\"v\", schemaCode as Code, (v) =>\n gen.if(_`${getEql()}(${data}, ${v})`, () => gen.assign(valid, true).break())\n )\n }\n\n function equalCode(vSchema: Name, i: number): Code {\n const sch = schema[i]\n return typeof sch === \"object\" && sch !== null\n ? _`${getEql()}(${data}, ${vSchema}[${i}])`\n : _`${data} === ${sch}`\n }\n },\n}\n\nexport default def\n","import type {ErrorObject, Vocabulary} from \"../../types\"\nimport limitNumber, {LimitNumberError} from \"./limitNumber\"\nimport multipleOf, {MultipleOfError} from \"./multipleOf\"\nimport limitLength from \"./limitLength\"\nimport pattern, {PatternError} from \"./pattern\"\nimport limitProperties from \"./limitProperties\"\nimport required, {RequiredError} from \"./required\"\nimport limitItems from \"./limitItems\"\nimport uniqueItems, {UniqueItemsError} from \"./uniqueItems\"\nimport constKeyword, {ConstError} from \"./const\"\nimport enumKeyword, {EnumError} from \"./enum\"\n\nconst validation: Vocabulary = [\n // number\n limitNumber,\n multipleOf,\n // string\n limitLength,\n pattern,\n // object\n limitProperties,\n required,\n // array\n limitItems,\n uniqueItems,\n // any\n {keyword: \"type\", schemaType: [\"string\", \"array\"]},\n {keyword: \"nullable\", schemaType: \"boolean\"},\n constKeyword,\n enumKeyword,\n]\n\nexport default validation\n\ntype LimitError = ErrorObject<\n \"maxItems\" | \"minItems\" | \"minProperties\" | \"maxProperties\" | \"minLength\" | \"maxLength\",\n {limit: number},\n number | {$data: string}\n>\n\nexport type ValidationKeywordError =\n | LimitError\n | LimitNumberError\n | MultipleOfError\n | PatternError\n | RequiredError\n | UniqueItemsError\n | ConstError\n | EnumError\n","import type {\n CodeKeywordDefinition,\n ErrorObject,\n KeywordErrorDefinition,\n AnySchema,\n} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, not, Name} from \"../../compile/codegen\"\nimport {alwaysValidSchema, checkStrictMode, Type} from \"../../compile/util\"\n\nexport type AdditionalItemsError = ErrorObject<\"additionalItems\", {limit: number}, AnySchema>\n\nconst error: KeywordErrorDefinition = {\n message: ({params: {len}}) => str`must NOT have more than ${len} items`,\n params: ({params: {len}}) => _`{limit: ${len}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"additionalItems\" as const,\n type: \"array\",\n schemaType: [\"boolean\", \"object\"],\n before: \"uniqueItems\",\n error,\n code(cxt: KeywordCxt) {\n const {parentSchema, it} = cxt\n const {items} = parentSchema\n if (!Array.isArray(items)) {\n checkStrictMode(it, '\"additionalItems\" is ignored when \"items\" is not an array of schemas')\n return\n }\n validateAdditionalItems(cxt, items)\n },\n}\n\nexport function validateAdditionalItems(cxt: KeywordCxt, items: AnySchema[]): void {\n const {gen, schema, data, keyword, it} = cxt\n it.items = true\n const len = gen.const(\"len\", _`${data}.length`)\n if (schema === false) {\n cxt.setParams({len: items.length})\n cxt.pass(_`${len} <= ${items.length}`)\n } else if (typeof schema == \"object\" && !alwaysValidSchema(it, schema)) {\n const valid = gen.var(\"valid\", _`${len} <= ${items.length}`) // TODO var\n gen.if(not(valid), () => validateItems(valid))\n cxt.ok(valid)\n }\n\n function validateItems(valid: Name): void {\n gen.forRange(\"i\", items.length, len, (i) => {\n cxt.subschema({keyword, dataProp: i, dataPropType: Type.Num}, valid)\n if (!it.allErrors) gen.if(not(valid), () => gen.break())\n })\n }\n}\n\nexport default def\n","import type {CodeKeywordDefinition, AnySchema, AnySchemaObject} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_} from \"../../compile/codegen\"\nimport {alwaysValidSchema, mergeEvaluated, checkStrictMode} from \"../../compile/util\"\nimport {validateArray} from \"../code\"\n\nconst def: CodeKeywordDefinition = {\n keyword: \"items\",\n type: \"array\",\n schemaType: [\"object\", \"array\", \"boolean\"],\n before: \"uniqueItems\",\n code(cxt: KeywordCxt) {\n const {schema, it} = cxt\n if (Array.isArray(schema)) return validateTuple(cxt, \"additionalItems\", schema)\n it.items = true\n if (alwaysValidSchema(it, schema)) return\n cxt.ok(validateArray(cxt))\n },\n}\n\nexport function validateTuple(\n cxt: KeywordCxt,\n extraItems: string,\n schArr: AnySchema[] = cxt.schema\n): void {\n const {gen, parentSchema, data, keyword, it} = cxt\n checkStrictTuple(parentSchema)\n if (it.opts.unevaluated && schArr.length && it.items !== true) {\n it.items = mergeEvaluated.items(gen, schArr.length, it.items)\n }\n const valid = gen.name(\"valid\")\n const len = gen.const(\"len\", _`${data}.length`)\n schArr.forEach((sch: AnySchema, i: number) => {\n if (alwaysValidSchema(it, sch)) return\n gen.if(_`${len} > ${i}`, () =>\n cxt.subschema(\n {\n keyword,\n schemaProp: i,\n dataProp: i,\n },\n valid\n )\n )\n cxt.ok(valid)\n })\n\n function checkStrictTuple(sch: AnySchemaObject): void {\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 checkStrictMode(it, msg, opts.strictTuples)\n }\n }\n}\n\nexport default def\n","import type {CodeKeywordDefinition} from \"../../types\"\nimport {validateTuple} from \"./items\"\n\nconst def: CodeKeywordDefinition = {\n keyword: \"prefixItems\",\n type: \"array\",\n schemaType: [\"array\"],\n before: \"uniqueItems\",\n code: (cxt) => validateTuple(cxt, \"items\"),\n}\n\nexport default def\n","import type {\n CodeKeywordDefinition,\n KeywordErrorDefinition,\n ErrorObject,\n AnySchema,\n} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str} from \"../../compile/codegen\"\nimport {alwaysValidSchema} from \"../../compile/util\"\nimport {validateArray} from \"../code\"\nimport {validateAdditionalItems} from \"./additionalItems\"\n\nexport type ItemsError = ErrorObject<\"items\", {limit: number}, AnySchema>\n\nconst error: KeywordErrorDefinition = {\n message: ({params: {len}}) => str`must NOT have more than ${len} items`,\n params: ({params: {len}}) => _`{limit: ${len}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"items\",\n type: \"array\",\n schemaType: [\"object\", \"boolean\"],\n before: \"uniqueItems\",\n error,\n code(cxt: KeywordCxt) {\n const {schema, parentSchema, it} = cxt\n const {prefixItems} = parentSchema\n it.items = true\n if (alwaysValidSchema(it, schema)) return\n if (prefixItems) validateAdditionalItems(cxt, prefixItems)\n else cxt.ok(validateArray(cxt))\n },\n}\n\nexport default def\n","import type {\n CodeKeywordDefinition,\n KeywordErrorDefinition,\n ErrorObject,\n AnySchema,\n} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, Name} from \"../../compile/codegen\"\nimport {alwaysValidSchema, checkStrictMode, Type} from \"../../compile/util\"\n\nexport type ContainsError = ErrorObject<\n \"contains\",\n {minContains: number; maxContains?: number},\n AnySchema\n>\n\nconst error: KeywordErrorDefinition = {\n message: ({params: {min, max}}) =>\n max === undefined\n ? str`must contain at least ${min} valid item(s)`\n : str`must contain at least ${min} and no more than ${max} valid item(s)`,\n params: ({params: {min, max}}) =>\n max === undefined ? _`{minContains: ${min}}` : _`{minContains: ${min}, maxContains: ${max}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"contains\",\n type: \"array\",\n schemaType: [\"object\", \"boolean\"],\n before: \"uniqueItems\",\n trackErrors: true,\n error,\n code(cxt: KeywordCxt) {\n const {gen, schema, parentSchema, data, it} = cxt\n let min: number\n let max: number | undefined\n const {minContains, maxContains} = parentSchema\n if (it.opts.next) {\n min = minContains === undefined ? 1 : minContains\n max = maxContains\n } else {\n min = 1\n }\n const len = gen.const(\"len\", _`${data}.length`)\n cxt.setParams({min, max})\n if (max === undefined && min === 0) {\n checkStrictMode(it, `\"minContains\" == 0 without \"maxContains\": \"contains\" keyword ignored`)\n return\n }\n if (max !== undefined && min > max) {\n checkStrictMode(it, `\"minContains\" > \"maxContains\" is always invalid`)\n cxt.fail()\n return\n }\n if (alwaysValidSchema(it, schema)) {\n let cond = _`${len} >= ${min}`\n if (max !== undefined) cond = _`${cond} && ${len} <= ${max}`\n cxt.pass(cond)\n return\n }\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 } else if (min === 0) {\n gen.let(valid, true)\n if (max !== undefined) gen.if(_`${data}.length > 0`, validateItemsWithCount)\n } else {\n gen.let(valid, false)\n validateItemsWithCount()\n }\n cxt.result(valid, () => cxt.reset())\n\n function validateItemsWithCount(): void {\n const schValid = gen.name(\"_valid\")\n const count = gen.let(\"count\", 0)\n validateItems(schValid, () => gen.if(schValid, () => checkLimits(count)))\n }\n\n function validateItems(_valid: Name, block: () => void): void {\n gen.forRange(\"i\", 0, len, (i) => {\n cxt.subschema(\n {\n keyword: \"contains\",\n dataProp: i,\n dataPropType: Type.Num,\n compositeRule: true,\n },\n _valid\n )\n block()\n })\n }\n\n function checkLimits(count: Name): void {\n gen.code(_`${count}++`)\n if (max === undefined) {\n gen.if(_`${count} >= ${min}`, () => gen.assign(valid, true).break())\n } else {\n gen.if(_`${count} > ${max}`, () => gen.assign(valid, false).break())\n if (min === 1) gen.assign(valid, true)\n else gen.if(_`${count} >= ${min}`, () => gen.assign(valid, true))\n }\n }\n },\n}\n\nexport default def\n","import type {\n CodeKeywordDefinition,\n ErrorObject,\n KeywordErrorDefinition,\n SchemaMap,\n AnySchema,\n} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str} from \"../../compile/codegen\"\nimport {alwaysValidSchema} from \"../../compile/util\"\nimport {checkReportMissingProp, checkMissingProp, reportMissingProp, propertyInData} from \"../code\"\n\nexport type PropertyDependencies = {[K in string]?: string[]}\n\nexport interface DependenciesErrorParams {\n property: string\n missingProperty: string\n depsCount: number\n deps: string // TODO change to string[]\n}\n\ntype SchemaDependencies = SchemaMap\n\nexport type DependenciesError = ErrorObject<\n \"dependencies\",\n DependenciesErrorParams,\n {[K in string]?: string[] | AnySchema}\n>\n\nexport const error: KeywordErrorDefinition = {\n message: ({params: {property, depsCount, deps}}) => {\n const property_ies = depsCount === 1 ? \"property\" : \"properties\"\n return str`must have ${property_ies} ${deps} when property ${property} is present`\n },\n params: ({params: {property, depsCount, deps, missingProperty}}) =>\n _`{property: ${property},\n missingProperty: ${missingProperty},\n depsCount: ${depsCount},\n deps: ${deps}}`, // TODO change to reference\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"dependencies\",\n type: \"object\",\n schemaType: \"object\",\n error,\n code(cxt: KeywordCxt) {\n const [propDeps, schDeps] = splitDependencies(cxt)\n validatePropertyDeps(cxt, propDeps)\n validateSchemaDeps(cxt, schDeps)\n },\n}\n\nfunction splitDependencies({schema}: KeywordCxt): [PropertyDependencies, SchemaDependencies] {\n const propertyDeps: PropertyDependencies = {}\n const schemaDeps: SchemaDependencies = {}\n for (const key in schema) {\n if (key === \"__proto__\") continue\n const deps = Array.isArray(schema[key]) ? propertyDeps : schemaDeps\n deps[key] = schema[key]\n }\n return [propertyDeps, schemaDeps]\n}\n\nexport function validatePropertyDeps(\n cxt: KeywordCxt,\n propertyDeps: {[K in string]?: string[]} = cxt.schema\n): void {\n const {gen, data, it} = cxt\n if (Object.keys(propertyDeps).length === 0) return\n const missing = gen.let(\"missing\")\n for (const prop in propertyDeps) {\n const deps = propertyDeps[prop] as string[]\n if (deps.length === 0) continue\n const hasProperty = 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 checkReportMissingProp(cxt, depProp)\n }\n })\n } else {\n gen.if(_`${hasProperty} && (${checkMissingProp(cxt, deps, missing)})`)\n reportMissingProp(cxt, missing)\n gen.else()\n }\n }\n}\n\nexport function validateSchemaDeps(cxt: KeywordCxt, schemaDeps: SchemaMap = cxt.schema): void {\n const {gen, data, keyword, it} = cxt\n const valid = gen.name(\"valid\")\n for (const prop in schemaDeps) {\n if (alwaysValidSchema(it, schemaDeps[prop] as AnySchema)) continue\n gen.if(\n propertyInData(gen, data, prop, it.opts.ownProperties),\n () => {\n const schCxt = cxt.subschema({keyword, schemaProp: prop}, valid)\n cxt.mergeValidEvaluated(schCxt, valid)\n },\n () => gen.var(valid, true) // TODO var\n )\n cxt.ok(valid)\n }\n}\n\nexport default def\n","import type {\n CodeKeywordDefinition,\n ErrorObject,\n KeywordErrorDefinition,\n AnySchema,\n} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, not} from \"../../compile/codegen\"\nimport {alwaysValidSchema} from \"../../compile/util\"\n\nexport type PropertyNamesError = ErrorObject<\"propertyNames\", {propertyName: string}, AnySchema>\n\nconst error: KeywordErrorDefinition = {\n message: \"property name must be valid\",\n params: ({params}) => _`{propertyName: ${params.propertyName}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"propertyNames\",\n type: \"object\",\n schemaType: [\"object\", \"boolean\"],\n error,\n code(cxt: KeywordCxt) {\n const {gen, schema, data, it} = cxt\n if (alwaysValidSchema(it, schema)) return\n const valid = gen.name(\"valid\")\n\n gen.forIn(\"key\", data, (key) => {\n cxt.setParams({propertyName: key})\n cxt.subschema(\n {\n keyword: \"propertyNames\",\n data: key,\n dataTypes: [\"string\"],\n propertyName: key,\n compositeRule: true,\n },\n valid\n )\n gen.if(not(valid), () => {\n cxt.error(true)\n if (!it.allErrors) gen.break()\n })\n })\n\n cxt.ok(valid)\n },\n}\n\nexport default def\n","import type {\n CodeKeywordDefinition,\n AddedKeywordDefinition,\n ErrorObject,\n KeywordErrorDefinition,\n AnySchema,\n} from \"../../types\"\nimport {allSchemaProperties, usePattern, isOwnProperty} from \"../code\"\nimport {_, nil, or, not, Code, Name} from \"../../compile/codegen\"\nimport N from \"../../compile/names\"\nimport type {SubschemaArgs} from \"../../compile/validate/subschema\"\nimport {alwaysValidSchema, schemaRefOrVal, Type} from \"../../compile/util\"\n\nexport type AdditionalPropertiesError = ErrorObject<\n \"additionalProperties\",\n {additionalProperty: string},\n AnySchema\n>\n\nconst error: KeywordErrorDefinition = {\n message: \"must NOT have additional properties\",\n params: ({params}) => _`{additionalProperty: ${params.additionalProperty}}`,\n}\n\nconst def: CodeKeywordDefinition & AddedKeywordDefinition = {\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) throw new Error(\"ajv implementation error\")\n const {allErrors, opts} = it\n it.props = true\n if (opts.removeAdditional !== \"all\" && alwaysValidSchema(it, schema)) return\n const props = allSchemaProperties(parentSchema.properties)\n const patProps = allSchemaProperties(parentSchema.patternProperties)\n checkAdditionalProperties()\n cxt.ok(_`${errsCount} === ${N.errors}`)\n\n function checkAdditionalProperties(): void {\n gen.forIn(\"key\", data, (key: Name) => {\n if (!props.length && !patProps.length) additionalPropertyCode(key)\n else gen.if(isAdditional(key), () => additionalPropertyCode(key))\n })\n }\n\n function isAdditional(key: Name): Code {\n let definedProp: Code\n if (props.length > 8) {\n // TODO maybe an option instead of hard-coded 8?\n const propsSchema = schemaRefOrVal(it, parentSchema.properties, \"properties\")\n definedProp = isOwnProperty(gen, propsSchema as Code, key)\n } else if (props.length) {\n definedProp = or(...props.map((p) => _`${key} === ${p}`))\n } else {\n definedProp = nil\n }\n if (patProps.length) {\n definedProp = or(definedProp, ...patProps.map((p) => _`${usePattern(cxt, p)}.test(${key})`))\n }\n return not(definedProp)\n }\n\n function deleteAdditional(key: Name): void {\n gen.code(_`delete ${data}[${key}]`)\n }\n\n function additionalPropertyCode(key: Name): void {\n if (opts.removeAdditional === \"all\" || (opts.removeAdditional && schema === false)) {\n deleteAdditional(key)\n return\n }\n\n if (schema === false) {\n cxt.setParams({additionalProperty: key})\n cxt.error()\n if (!allErrors) gen.break()\n return\n }\n\n if (typeof schema == \"object\" && !alwaysValidSchema(it, schema)) {\n const valid = gen.name(\"valid\")\n if (opts.removeAdditional === \"failing\") {\n applyAdditionalSchema(key, valid, false)\n gen.if(not(valid), () => {\n cxt.reset()\n deleteAdditional(key)\n })\n } else {\n applyAdditionalSchema(key, valid)\n if (!allErrors) gen.if(not(valid), () => gen.break())\n }\n }\n }\n\n function applyAdditionalSchema(key: Name, valid: Name, errors?: false): void {\n const subschema: SubschemaArgs = {\n keyword: \"additionalProperties\",\n dataProp: key,\n dataPropType: 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}\n\nexport default def\n","import type {CodeKeywordDefinition} from \"../../types\"\nimport {KeywordCxt} from \"../../compile/validate\"\nimport {propertyInData, allSchemaProperties} from \"../code\"\nimport {alwaysValidSchema, toHash, mergeEvaluated} from \"../../compile/util\"\nimport apDef from \"./additionalProperties\"\n\nconst def: CodeKeywordDefinition = {\n keyword: \"properties\",\n type: \"object\",\n schemaType: \"object\",\n code(cxt: KeywordCxt) {\n const {gen, schema, parentSchema, data, it} = cxt\n if (it.opts.removeAdditional === \"all\" && parentSchema.additionalProperties === undefined) {\n apDef.code(new KeywordCxt(it, apDef, \"additionalProperties\"))\n }\n const allProps = 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 = mergeEvaluated.props(gen, toHash(allProps), it.props)\n }\n const properties = allProps.filter((p) => !alwaysValidSchema(it, schema[p]))\n if (properties.length === 0) return\n const valid = gen.name(\"valid\")\n\n for (const prop of properties) {\n if (hasDefault(prop)) {\n applyPropertySchema(prop)\n } else {\n gen.if(propertyInData(gen, data, prop, it.opts.ownProperties))\n applyPropertySchema(prop)\n if (!it.allErrors) gen.else().var(valid, true)\n gen.endIf()\n }\n cxt.it.definedProperties.add(prop)\n cxt.ok(valid)\n }\n\n function hasDefault(prop: string): boolean | undefined {\n return it.opts.useDefaults && !it.compositeRule && schema[prop].default !== undefined\n }\n\n function applyPropertySchema(prop: string): void {\n cxt.subschema(\n {\n keyword: \"properties\",\n schemaProp: prop,\n dataProp: prop,\n },\n valid\n )\n }\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {allSchemaProperties, usePattern} from \"../code\"\nimport {_, not, Name} from \"../../compile/codegen\"\nimport {alwaysValidSchema, checkStrictMode} from \"../../compile/util\"\nimport {evaluatedPropsToName, Type} from \"../../compile/util\"\nimport {AnySchema} from \"../../types\"\n\nconst def: CodeKeywordDefinition = {\n keyword: \"patternProperties\",\n type: \"object\",\n schemaType: \"object\",\n code(cxt: KeywordCxt) {\n const {gen, schema, data, parentSchema, it} = cxt\n const {opts} = it\n const patterns = allSchemaProperties(schema)\n const alwaysValidPatterns = patterns.filter((p) =>\n alwaysValidSchema(it, schema[p] as AnySchema)\n )\n\n if (\n patterns.length === 0 ||\n (alwaysValidPatterns.length === patterns.length &&\n (!it.opts.unevaluated || it.props === true))\n ) {\n return\n }\n\n const checkProperties =\n opts.strictSchema && !opts.allowMatchingProperties && parentSchema.properties\n const valid = gen.name(\"valid\")\n if (it.props !== true && !(it.props instanceof Name)) {\n it.props = evaluatedPropsToName(gen, it.props)\n }\n const {props} = it\n validatePatternProperties()\n\n function validatePatternProperties(): void {\n for (const pat of patterns) {\n if (checkProperties) checkMatchingProperties(pat)\n if (it.allErrors) {\n validateProperties(pat)\n } else {\n gen.var(valid, true) // TODO var\n validateProperties(pat)\n gen.if(valid)\n }\n }\n }\n\n function checkMatchingProperties(pat: string): void {\n for (const prop in checkProperties) {\n if (new RegExp(pat).test(prop)) {\n checkStrictMode(\n it,\n `property ${prop} matches pattern ${pat} (use allowMatchingProperties)`\n )\n }\n }\n }\n\n function validateProperties(pat: string): void {\n gen.forIn(\"key\", data, (key) => {\n gen.if(_`${usePattern(cxt, pat)}.test(${key})`, () => {\n const alwaysValid = alwaysValidPatterns.includes(pat)\n if (!alwaysValid) {\n cxt.subschema(\n {\n keyword: \"patternProperties\",\n schemaProp: pat,\n dataProp: key,\n dataPropType: Type.Str,\n },\n valid\n )\n }\n\n if (it.opts.unevaluated && props !== true) {\n gen.assign(_`${props}[${key}]`, true)\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(not(valid), () => gen.break())\n }\n })\n })\n }\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, ErrorNoParams, AnySchema} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {alwaysValidSchema} from \"../../compile/util\"\n\nexport type NotKeywordError = ErrorNoParams<\"not\", AnySchema>\n\nconst def: CodeKeywordDefinition = {\n keyword: \"not\",\n schemaType: [\"object\", \"boolean\"],\n trackErrors: true,\n code(cxt: KeywordCxt) {\n const {gen, schema, it} = cxt\n if (alwaysValidSchema(it, schema)) {\n cxt.fail()\n return\n }\n\n const valid = gen.name(\"valid\")\n cxt.subschema(\n {\n keyword: \"not\",\n compositeRule: true,\n createErrors: false,\n allErrors: false,\n },\n valid\n )\n\n cxt.failResult(\n valid,\n () => cxt.reset(),\n () => cxt.error()\n )\n },\n error: {message: \"must NOT be valid\"},\n}\n\nexport default def\n","import type {CodeKeywordDefinition, ErrorNoParams, AnySchema} from \"../../types\"\nimport {validateUnion} from \"../code\"\n\nexport type AnyOfError = ErrorNoParams<\"anyOf\", AnySchema[]>\n\nconst def: CodeKeywordDefinition = {\n keyword: \"anyOf\",\n schemaType: \"array\",\n trackErrors: true,\n code: validateUnion,\n error: {message: \"must match a schema in anyOf\"},\n}\n\nexport default def\n","import type {\n CodeKeywordDefinition,\n ErrorObject,\n KeywordErrorDefinition,\n AnySchema,\n} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, Name} from \"../../compile/codegen\"\nimport {alwaysValidSchema} from \"../../compile/util\"\nimport {SchemaCxt} from \"../../compile\"\n\nexport type OneOfError = ErrorObject<\n \"oneOf\",\n {passingSchemas: [number, number] | null},\n AnySchema[]\n>\n\nconst error: KeywordErrorDefinition = {\n message: \"must match exactly one schema in oneOf\",\n params: ({params}) => _`{passingSchemas: ${params.passing}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"oneOf\",\n schemaType: \"array\",\n trackErrors: true,\n error,\n code(cxt: KeywordCxt) {\n const {gen, schema, parentSchema, it} = cxt\n /* istanbul ignore if */\n if (!Array.isArray(schema)) throw new Error(\"ajv implementation error\")\n if (it.opts.discriminator && parentSchema.discriminator) return\n const schArr: AnySchema[] = 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\n gen.block(validateOneOf)\n\n cxt.result(\n valid,\n () => cxt.reset(),\n () => cxt.error(true)\n )\n\n function validateOneOf(): void {\n schArr.forEach((sch: AnySchema, i: number) => {\n let schCxt: SchemaCxt | undefined\n if (alwaysValidSchema(it, sch)) {\n gen.var(schValid, true)\n } else {\n schCxt = cxt.subschema(\n {\n keyword: \"oneOf\",\n schemaProp: i,\n compositeRule: true,\n },\n schValid\n )\n }\n\n if (i > 0) {\n gen\n .if(_`${schValid} && ${valid}`)\n .assign(valid, false)\n .assign(passing, _`[${passing}, ${i}]`)\n .else()\n }\n\n gen.if(schValid, () => {\n gen.assign(valid, true)\n gen.assign(passing, i)\n if (schCxt) cxt.mergeEvaluated(schCxt, Name)\n })\n })\n }\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, AnySchema} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {alwaysValidSchema} from \"../../compile/util\"\n\nconst def: CodeKeywordDefinition = {\n keyword: \"allOf\",\n schemaType: \"array\",\n code(cxt: KeywordCxt) {\n const {gen, schema, it} = cxt\n /* istanbul ignore if */\n if (!Array.isArray(schema)) throw new Error(\"ajv implementation error\")\n const valid = gen.name(\"valid\")\n schema.forEach((sch: AnySchema, i: number) => {\n if (alwaysValidSchema(it, sch)) return\n const schCxt = cxt.subschema({keyword: \"allOf\", schemaProp: i}, valid)\n cxt.ok(valid)\n cxt.mergeEvaluated(schCxt)\n })\n },\n}\n\nexport default def\n","import type {\n CodeKeywordDefinition,\n ErrorObject,\n KeywordErrorDefinition,\n AnySchema,\n} from \"../../types\"\nimport type {SchemaObjCxt} from \"../../compile\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, not, Name} from \"../../compile/codegen\"\nimport {alwaysValidSchema, checkStrictMode} from \"../../compile/util\"\n\nexport type IfKeywordError = ErrorObject<\"if\", {failingKeyword: string}, AnySchema>\n\nconst error: KeywordErrorDefinition = {\n message: ({params}) => str`must match \"${params.ifClause}\" schema`,\n params: ({params}) => _`{failingKeyword: ${params.ifClause}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"if\",\n schemaType: [\"object\", \"boolean\"],\n trackErrors: true,\n error,\n code(cxt: KeywordCxt) {\n const {gen, parentSchema, it} = cxt\n if (parentSchema.then === undefined && parentSchema.else === undefined) {\n 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) return\n\n const valid = gen.let(\"valid\", true)\n const schValid = gen.name(\"_valid\")\n validateIf()\n cxt.reset()\n\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 } else if (hasThen) {\n gen.if(schValid, validateClause(\"then\"))\n } else {\n gen.if(not(schValid), validateClause(\"else\"))\n }\n\n cxt.pass(valid, () => cxt.error(true))\n\n function validateIf(): void {\n const schCxt = cxt.subschema(\n {\n keyword: \"if\",\n compositeRule: true,\n createErrors: false,\n allErrors: false,\n },\n schValid\n )\n cxt.mergeEvaluated(schCxt)\n }\n\n function validateClause(keyword: string, ifClause?: Name): () => void {\n return () => {\n const schCxt = cxt.subschema({keyword}, schValid)\n gen.assign(valid, schValid)\n cxt.mergeValidEvaluated(schCxt, valid)\n if (ifClause) gen.assign(ifClause, _`${keyword}`)\n else cxt.setParams({ifClause: keyword})\n }\n }\n },\n}\n\nfunction hasSchema(it: SchemaObjCxt, keyword: string): boolean {\n const schema = it.schema[keyword]\n return schema !== undefined && !alwaysValidSchema(it, schema)\n}\n\nexport default def\n","import type {CodeKeywordDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {checkStrictMode} from \"../../compile/util\"\n\nconst def: CodeKeywordDefinition = {\n keyword: [\"then\", \"else\"],\n schemaType: [\"object\", \"boolean\"],\n code({keyword, parentSchema, it}: KeywordCxt) {\n if (parentSchema.if === undefined) checkStrictMode(it, `\"${keyword}\" without \"if\" is ignored`)\n },\n}\n\nexport default def\n","import type {ErrorNoParams, Vocabulary} from \"../../types\"\nimport additionalItems, {AdditionalItemsError} from \"./additionalItems\"\nimport prefixItems from \"./prefixItems\"\nimport items from \"./items\"\nimport items2020, {ItemsError} from \"./items2020\"\nimport contains, {ContainsError} from \"./contains\"\nimport dependencies, {DependenciesError} from \"./dependencies\"\nimport propertyNames, {PropertyNamesError} from \"./propertyNames\"\nimport additionalProperties, {AdditionalPropertiesError} from \"./additionalProperties\"\nimport properties from \"./properties\"\nimport patternProperties from \"./patternProperties\"\nimport notKeyword, {NotKeywordError} from \"./not\"\nimport anyOf, {AnyOfError} from \"./anyOf\"\nimport oneOf, {OneOfError} from \"./oneOf\"\nimport allOf from \"./allOf\"\nimport ifKeyword, {IfKeywordError} from \"./if\"\nimport thenElse from \"./thenElse\"\n\nexport default function getApplicator(draft2020 = false): Vocabulary {\n const applicator = [\n // any\n notKeyword,\n anyOf,\n oneOf,\n allOf,\n ifKeyword,\n thenElse,\n // object\n propertyNames,\n additionalProperties,\n dependencies,\n properties,\n patternProperties,\n ]\n // array\n if (draft2020) applicator.push(prefixItems, items2020)\n else applicator.push(additionalItems, items)\n applicator.push(contains)\n return applicator\n}\n\nexport type ApplicatorKeywordError =\n | ErrorNoParams<\"false schema\">\n | AdditionalItemsError\n | ItemsError\n | ContainsError\n | AdditionalPropertiesError\n | DependenciesError\n | IfKeywordError\n | AnyOfError\n | OneOfError\n | NotKeywordError\n | PropertyNamesError\n","import type {CodeKeywordDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, getProperty, Code} from \"../../compile/codegen\"\nimport N from \"../../compile/names\"\nimport {SchemaEnv, compileSchema} from \"../../compile\"\nimport {getValidate} from \"../core/ref\"\n\nconst def: CodeKeywordDefinition = {\n keyword: \"$dynamicAnchor\",\n schemaType: \"string\",\n code: (cxt) => dynamicAnchor(cxt, cxt.schema),\n}\n\nexport function dynamicAnchor(cxt: KeywordCxt, anchor: string): void {\n const {gen, it} = cxt\n it.schemaEnv.root.dynamicAnchors[anchor] = true\n const v = _`${N.dynamicAnchors}${getProperty(anchor)}`\n const validate = it.errSchemaPath === \"#\" ? it.validateName : _getValidate(cxt)\n gen.if(_`!${v}`, () => gen.assign(v, validate))\n}\n\nfunction _getValidate(cxt: KeywordCxt): Code {\n const {schemaEnv, schema, self} = cxt.it\n const {root, baseId, localRefs, meta} = schemaEnv.root\n const {schemaId} = self.opts\n const sch = new SchemaEnv({schema, schemaId, root, baseId, localRefs, meta})\n compileSchema.call(self, sch)\n return getValidate(cxt, sch)\n}\n\nexport default def\n","import type {CodeKeywordDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, getProperty, Code, Name} from \"../../compile/codegen\"\nimport N from \"../../compile/names\"\nimport {callRef} from \"../core/ref\"\n\nconst def: CodeKeywordDefinition = {\n keyword: \"$dynamicRef\",\n schemaType: \"string\",\n code: (cxt) => dynamicRef(cxt, cxt.schema),\n}\n\nexport function dynamicRef(cxt: KeywordCxt, ref: string): void {\n const {gen, keyword, it} = cxt\n if (ref[0] !== \"#\") throw new Error(`\"${keyword}\" only supports hash fragment reference`)\n const anchor = ref.slice(1)\n if (it.allErrors) {\n _dynamicRef()\n } else {\n const valid = gen.let(\"valid\", false)\n _dynamicRef(valid)\n cxt.ok(valid)\n }\n\n function _dynamicRef(valid?: Name): void {\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\", _`${N.dynamicAnchors}${getProperty(anchor)}`)\n gen.if(v, _callRef(v, valid), _callRef(it.validateName, valid))\n } else {\n _callRef(it.validateName, valid)()\n }\n }\n\n function _callRef(validate: Code, valid?: Name): () => void {\n return valid\n ? () =>\n gen.block(() => {\n callRef(cxt, validate)\n gen.let(valid, true)\n })\n : () => callRef(cxt, validate)\n }\n}\n\nexport default def\n","import type {CodeKeywordDefinition} from \"../../types\"\nimport {dynamicAnchor} from \"./dynamicAnchor\"\nimport {checkStrictMode} from \"../../compile/util\"\n\nconst def: CodeKeywordDefinition = {\n keyword: \"$recursiveAnchor\",\n schemaType: \"boolean\",\n code(cxt) {\n if (cxt.schema) dynamicAnchor(cxt, \"\")\n else checkStrictMode(cxt.it, \"$recursiveAnchor: false is ignored\")\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition} from \"../../types\"\nimport {dynamicRef} from \"./dynamicRef\"\n\nconst def: CodeKeywordDefinition = {\n keyword: \"$recursiveRef\",\n schemaType: \"string\",\n code: (cxt) => dynamicRef(cxt, cxt.schema),\n}\n\nexport default def\n","import type {Vocabulary} from \"../../types\"\nimport dynamicAnchor from \"./dynamicAnchor\"\nimport dynamicRef from \"./dynamicRef\"\nimport recursiveAnchor from \"./recursiveAnchor\"\nimport recursiveRef from \"./recursiveRef\"\n\nconst dynamic: Vocabulary = [dynamicAnchor, dynamicRef, recursiveAnchor, recursiveRef]\n\nexport default dynamic\n","import type {CodeKeywordDefinition, ErrorObject} from \"../../types\"\nimport {\n validatePropertyDeps,\n error,\n DependenciesErrorParams,\n PropertyDependencies,\n} from \"../applicator/dependencies\"\n\nexport type DependentRequiredError = ErrorObject<\n \"dependentRequired\",\n DependenciesErrorParams,\n PropertyDependencies\n>\n\nconst def: CodeKeywordDefinition = {\n keyword: \"dependentRequired\",\n type: \"object\",\n schemaType: \"object\",\n error,\n code: (cxt) => validatePropertyDeps(cxt),\n}\n\nexport default def\n","import type {CodeKeywordDefinition} from \"../../types\"\nimport {validateSchemaDeps} from \"./dependencies\"\n\nconst def: CodeKeywordDefinition = {\n keyword: \"dependentSchemas\",\n type: \"object\",\n schemaType: \"object\",\n code: (cxt) => validateSchemaDeps(cxt),\n}\n\nexport default def\n","import type {CodeKeywordDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {checkStrictMode} from \"../../compile/util\"\n\nconst def: CodeKeywordDefinition = {\n keyword: [\"maxContains\", \"minContains\"],\n type: \"array\",\n schemaType: \"number\",\n code({keyword, parentSchema, it}: KeywordCxt) {\n if (parentSchema.contains === undefined) {\n checkStrictMode(it, `\"${keyword}\" without \"contains\" is ignored`)\n }\n },\n}\n\nexport default def\n","import type {Vocabulary} from \"../types\"\nimport dependentRequired from \"./validation/dependentRequired\"\nimport dependentSchemas from \"./applicator/dependentSchemas\"\nimport limitContains from \"./validation/limitContains\"\n\nconst next: Vocabulary = [dependentRequired, dependentSchemas, limitContains]\n\nexport default next\n","import type {\n CodeKeywordDefinition,\n KeywordErrorDefinition,\n ErrorObject,\n AnySchema,\n} from \"../../types\"\nimport {_, not, and, Name, Code} from \"../../compile/codegen\"\nimport {alwaysValidSchema, Type} from \"../../compile/util\"\nimport N from \"../../compile/names\"\n\nexport type UnevaluatedPropertiesError = ErrorObject<\n \"unevaluatedProperties\",\n {unevaluatedProperty: string},\n AnySchema\n>\n\nconst error: KeywordErrorDefinition = {\n message: \"must NOT have unevaluated properties\",\n params: ({params}) => _`{unevaluatedProperty: ${params.unevaluatedProperty}}`,\n}\n\nconst def: CodeKeywordDefinition = {\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) throw new Error(\"ajv implementation error\")\n const {allErrors, props} = it\n if (props instanceof Name) {\n gen.if(_`${props} !== true`, () =>\n gen.forIn(\"key\", data, (key: Name) =>\n gen.if(unevaluatedDynamic(props, key), () => unevaluatedPropCode(key))\n )\n )\n } else if (props !== true) {\n gen.forIn(\"key\", data, (key: Name) =>\n props === undefined\n ? unevaluatedPropCode(key)\n : gen.if(unevaluatedStatic(props, key), () => unevaluatedPropCode(key))\n )\n }\n it.props = true\n cxt.ok(_`${errsCount} === ${N.errors}`)\n\n function unevaluatedPropCode(key: Name): void {\n if (schema === false) {\n cxt.setParams({unevaluatedProperty: key})\n cxt.error()\n if (!allErrors) gen.break()\n return\n }\n\n if (!alwaysValidSchema(it, schema)) {\n const valid = gen.name(\"valid\")\n cxt.subschema(\n {\n keyword: \"unevaluatedProperties\",\n dataProp: key,\n dataPropType: Type.Str,\n },\n valid\n )\n if (!allErrors) gen.if(not(valid), () => gen.break())\n }\n }\n\n function unevaluatedDynamic(evaluatedProps: Name, key: Name): Code {\n return _`!${evaluatedProps} || !${evaluatedProps}[${key}]`\n }\n\n function unevaluatedStatic(evaluatedProps: {[K in string]?: true}, key: Name): Code {\n const ps: Code[] = []\n for (const p in evaluatedProps) {\n if (evaluatedProps[p] === true) ps.push(_`${key} !== ${p}`)\n }\n return and(...ps)\n }\n },\n}\n\nexport default def\n","import type {\n CodeKeywordDefinition,\n ErrorObject,\n KeywordErrorDefinition,\n AnySchema,\n} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, not, Name} from \"../../compile/codegen\"\nimport {alwaysValidSchema, Type} from \"../../compile/util\"\n\nexport type UnevaluatedItemsError = ErrorObject<\"unevaluatedItems\", {limit: number}, AnySchema>\n\nconst error: KeywordErrorDefinition = {\n message: ({params: {len}}) => str`must NOT have more than ${len} items`,\n params: ({params: {len}}) => _`{limit: ${len}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"unevaluatedItems\",\n type: \"array\",\n schemaType: [\"boolean\", \"object\"],\n error,\n code(cxt: KeywordCxt) {\n const {gen, schema, data, it} = cxt\n const items = it.items || 0\n if (items === true) return\n const len = gen.const(\"len\", _`${data}.length`)\n if (schema === false) {\n cxt.setParams({len: items})\n cxt.fail(_`${len} > ${items}`)\n } else if (typeof schema == \"object\" && !alwaysValidSchema(it, schema)) {\n const valid = gen.var(\"valid\", _`${len} <= ${items}`)\n gen.if(not(valid), () => validateItems(valid, items))\n cxt.ok(valid)\n }\n it.items = true\n\n function validateItems(valid: Name, from: Name | number): void {\n gen.forRange(\"i\", from, len, (i) => {\n cxt.subschema({keyword: \"unevaluatedItems\", dataProp: i, dataPropType: Type.Num}, valid)\n if (!it.allErrors) gen.if(not(valid), () => gen.break())\n })\n }\n },\n}\n\nexport default def\n","import type {Vocabulary} from \"../../types\"\nimport unevaluatedProperties from \"./unevaluatedProperties\"\nimport unevaluatedItems from \"./unevaluatedItems\"\n\nconst unevaluated: Vocabulary = [unevaluatedProperties, unevaluatedItems]\n\nexport default unevaluated\n","import type {\n AddedFormat,\n FormatValidator,\n AsyncFormatValidator,\n CodeKeywordDefinition,\n KeywordErrorDefinition,\n ErrorObject,\n} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, nil, or, Code, getProperty, regexpCode} from \"../../compile/codegen\"\n\ntype FormatValidate =\n | FormatValidator<string>\n | FormatValidator<number>\n | AsyncFormatValidator<string>\n | AsyncFormatValidator<number>\n | RegExp\n | string\n | true\n\nexport type FormatError = ErrorObject<\"format\", {format: string}, string | {$data: string}>\n\nconst error: KeywordErrorDefinition = {\n message: ({schemaCode}) => str`must match format \"${schemaCode}\"`,\n params: ({schemaCode}) => _`{format: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"format\",\n type: [\"number\", \"string\"],\n schemaType: \"string\",\n $data: true,\n error,\n code(cxt: KeywordCxt, ruleType?: string) {\n const {gen, data, $data, schema, schemaCode, it} = cxt\n const {opts, errSchemaPath, schemaEnv, self} = it\n if (!opts.validateFormats) return\n\n if ($data) validate$DataFormat()\n else validateFormat()\n\n function validate$DataFormat(): void {\n const fmts = gen.scopeValue(\"formats\", {\n ref: self.formats,\n code: opts.code.formats,\n })\n const fDef = gen.const(\"fDef\", _`${fmts}[${schemaCode}]`)\n const fType = gen.let(\"fType\")\n const format = gen.let(\"format\")\n // TODO simplify\n gen.if(\n _`typeof ${fDef} == \"object\" && !(${fDef} instanceof RegExp)`,\n () => gen.assign(fType, _`${fDef}.type || \"string\"`).assign(format, _`${fDef}.validate`),\n () => gen.assign(fType, _`\"string\"`).assign(format, fDef)\n )\n cxt.fail$data(or(unknownFmt(), invalidFmt()))\n\n function unknownFmt(): Code {\n if (opts.strictSchema === false) return nil\n return _`${schemaCode} && !${format}`\n }\n\n function invalidFmt(): Code {\n const callFormat = schemaEnv.$async\n ? _`(${fDef}.async ? await ${format}(${data}) : ${format}(${data}))`\n : _`${format}(${data})`\n const validData = _`(typeof ${format} == \"function\" ? ${callFormat} : ${format}.test(${data}))`\n return _`${format} && ${format} !== true && ${fType} === ${ruleType} && !${validData}`\n }\n }\n\n function validateFormat(): void {\n const formatDef: AddedFormat | undefined = self.formats[schema]\n if (!formatDef) {\n unknownFormat()\n return\n }\n if (formatDef === true) return\n const [fmtType, format, fmtRef] = getFormat(formatDef)\n if (fmtType === ruleType) cxt.pass(validCondition())\n\n function unknownFormat(): void {\n if (opts.strictSchema === false) {\n self.logger.warn(unknownMsg())\n return\n }\n throw new Error(unknownMsg())\n\n function unknownMsg(): string {\n return `unknown format \"${schema as string}\" ignored in schema at path \"${errSchemaPath}\"`\n }\n }\n\n function getFormat(fmtDef: AddedFormat): [string, FormatValidate, Code] {\n const code =\n fmtDef instanceof RegExp\n ? regexpCode(fmtDef)\n : opts.code.formats\n ? _`${opts.code.formats}${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, _`${fmt}.validate`]\n }\n\n return [\"string\", fmtDef, fmt]\n }\n\n function validCondition(): Code {\n if (typeof formatDef == \"object\" && !(formatDef instanceof RegExp) && formatDef.async) {\n if (!schemaEnv.$async) throw new Error(\"async format in sync schema\")\n return _`await ${fmtRef}(${data})`\n }\n return typeof format == \"function\" ? _`${fmtRef}(${data})` : _`${fmtRef}.test(${data})`\n }\n }\n },\n}\n\nexport default def\n","import type {Vocabulary} from \"../../types\"\nimport formatKeyword from \"./format\"\n\nconst format: Vocabulary = [formatKeyword]\n\nexport default format\n","import type {Vocabulary} from \"../types\"\n\nexport const metadataVocabulary: Vocabulary = [\n \"title\",\n \"description\",\n \"default\",\n \"deprecated\",\n \"readOnly\",\n \"writeOnly\",\n \"examples\",\n]\n\nexport const contentVocabulary: Vocabulary = [\n \"contentMediaType\",\n \"contentEncoding\",\n \"contentSchema\",\n]\n","import type {Vocabulary} from \"../types\"\nimport coreVocabulary from \"./core\"\nimport validationVocabulary from \"./validation\"\nimport getApplicatorVocabulary from \"./applicator\"\nimport dynamicVocabulary from \"./dynamic\"\nimport nextVocabulary from \"./next\"\nimport unevaluatedVocabulary from \"./unevaluated\"\nimport formatVocabulary from \"./format\"\nimport {metadataVocabulary, contentVocabulary} from \"./metadata\"\n\nconst draft2020Vocabularies: Vocabulary[] = [\n dynamicVocabulary,\n coreVocabulary,\n validationVocabulary,\n getApplicatorVocabulary(true),\n formatVocabulary,\n metadataVocabulary,\n contentVocabulary,\n nextVocabulary,\n unevaluatedVocabulary,\n]\n\nexport default draft2020Vocabularies\n","import type {ErrorObject} from \"../../types\"\n\nexport enum DiscrError {\n Tag = \"tag\",\n Mapping = \"mapping\",\n}\n\nexport type DiscrErrorObj<E extends DiscrError> = ErrorObject<\n \"discriminator\",\n {error: E; tag: string; tagValue: unknown},\n string\n>\n","import type {CodeKeywordDefinition, AnySchemaObject, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, getProperty, Name} from \"../../compile/codegen\"\nimport {DiscrError, DiscrErrorObj} from \"../discriminator/types\"\nimport {resolveRef, SchemaEnv} from \"../../compile\"\nimport MissingRefError from \"../../compile/ref_error\"\nimport {schemaHasRulesButRef} from \"../../compile/util\"\n\nexport type DiscriminatorError = DiscrErrorObj<DiscrError.Tag> | DiscrErrorObj<DiscrError.Mapping>\n\nconst error: KeywordErrorDefinition = {\n message: ({params: {discrError, tagName}}) =>\n discrError === DiscrError.Tag\n ? `tag \"${tagName}\" must be string`\n : `value of tag \"${tagName}\" must be in oneOf`,\n params: ({params: {discrError, tag, tagName}}) =>\n _`{error: ${discrError}, tag: ${tagName}, tagValue: ${tag}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"discriminator\",\n type: \"object\",\n schemaType: \"object\",\n error,\n code(cxt: KeywordCxt) {\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\") throw new Error(\"discriminator: requires propertyName\")\n if (schema.mapping) throw new Error(\"discriminator: mapping is not supported\")\n if (!oneOf) throw new Error(\"discriminator: requires oneOf keyword\")\n const valid = gen.let(\"valid\", false)\n const tag = gen.const(\"tag\", _`${data}${getProperty(tagName)}`)\n gen.if(\n _`typeof ${tag} == \"string\"`,\n () => validateMapping(),\n () => cxt.error(false, {discrError: DiscrError.Tag, tag, tagName})\n )\n cxt.ok(valid)\n\n function validateMapping(): void {\n const mapping = getMapping()\n gen.if(false)\n for (const tagValue in mapping) {\n gen.elseIf(_`${tag} === ${tagValue}`)\n gen.assign(valid, applyTagSchema(mapping[tagValue]))\n }\n gen.else()\n cxt.error(false, {discrError: DiscrError.Mapping, tag, tagName})\n gen.endIf()\n }\n\n function applyTagSchema(schemaProp?: number): Name {\n const _valid = gen.name(\"valid\")\n const schCxt = cxt.subschema({keyword: \"oneOf\", schemaProp}, _valid)\n cxt.mergeEvaluated(schCxt, Name)\n return _valid\n }\n\n function getMapping(): {[T in string]?: number} {\n const oneOfMapping: {[T in string]?: number} = {}\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?.$ref && !schemaHasRulesButRef(sch, it.self.RULES)) {\n const ref = sch.$ref\n sch = resolveRef.call(it.self, it.schemaEnv.root, it.baseId, ref)\n if (sch instanceof SchemaEnv) sch = sch.schema\n if (sch === undefined) throw new MissingRefError(it.opts.uriResolver, it.baseId, ref)\n }\n const propSch = sch?.properties?.[tagName]\n if (typeof propSch != \"object\") {\n throw new Error(\n `discriminator: oneOf subschemas (or referenced schemas) must have \"properties/${tagName}\"`\n )\n }\n tagRequired = tagRequired && (topRequired || hasRequired(sch))\n addMappings(propSch, i)\n }\n if (!tagRequired) throw new Error(`discriminator: \"${tagName}\" must be required`)\n return oneOfMapping\n\n function hasRequired({required}: AnySchemaObject): boolean {\n return Array.isArray(required) && required.includes(tagName)\n }\n\n function addMappings(sch: AnySchemaObject, i: number): void {\n if (sch.const) {\n addMapping(sch.const, i)\n } else if (sch.enum) {\n for (const tagValue of sch.enum) {\n addMapping(tagValue, i)\n }\n } else {\n throw new Error(`discriminator: \"properties/${tagName}\" must have \"const\" or \"enum\"`)\n }\n }\n\n function addMapping(tagValue: unknown, i: number): void {\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}\n\nexport default def\n","import type Ajv from \"../../core\"\nimport type {AnySchemaObject} from \"../../types\"\nimport * as metaSchema from \"./schema.json\"\nimport * as applicator from \"./meta/applicator.json\"\nimport * as unevaluated from \"./meta/unevaluated.json\"\nimport * as content from \"./meta/content.json\"\nimport * as core from \"./meta/core.json\"\nimport * as format from \"./meta/format-annotation.json\"\nimport * as metadata from \"./meta/meta-data.json\"\nimport * as validation from \"./meta/validation.json\"\n\nconst META_SUPPORT_DATA = [\"/properties\"]\n\nexport default function addMetaSchema2020(this: Ajv, $data?: boolean): Ajv {\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\n function with$data(ajv: Ajv, sch: AnySchemaObject): AnySchemaObject {\n return $data ? ajv.$dataMetaSchema(sch, META_SUPPORT_DATA) : sch\n }\n}\n","import type {AnySchemaObject} from \"./types\"\nimport AjvCore, {Options} from \"./core\"\n\nimport draft2020Vocabularies from \"./vocabularies/draft2020\"\nimport discriminator from \"./vocabularies/discriminator\"\nimport addMetaSchema2020 from \"./refs/json-schema-2020-12\"\n\nconst META_SCHEMA_ID = \"https://json-schema.org/draft/2020-12/schema\"\n\nexport class Ajv2020 extends AjvCore {\n constructor(opts: Options = {}) {\n super({\n ...opts,\n dynamicRef: true,\n next: true,\n unevaluated: true,\n })\n }\n\n _addVocabularies(): void {\n super._addVocabularies()\n draft2020Vocabularies.forEach((v) => this.addVocabulary(v))\n if (this.opts.discriminator) this.addKeyword(discriminator)\n }\n\n _addDefaultMetaSchema(): void {\n super._addDefaultMetaSchema()\n const {$data, meta} = this.opts\n if (!meta) return\n addMetaSchema2020.call(this, $data)\n this.refs[\"http://json-schema.org/schema\"] = META_SCHEMA_ID\n }\n\n defaultMeta(): string | AnySchemaObject | undefined {\n return (this.opts.defaultMeta =\n super.defaultMeta() || (this.getSchema(META_SCHEMA_ID) ? META_SCHEMA_ID : undefined))\n }\n}\n\nmodule.exports = exports = Ajv2020\nmodule.exports.Ajv2020 = Ajv2020\nObject.defineProperty(exports, \"__esModule\", {value: true})\n\nexport default Ajv2020\n\nexport {\n Format,\n FormatDefinition,\n AsyncFormatDefinition,\n KeywordDefinition,\n KeywordErrorDefinition,\n CodeKeywordDefinition,\n MacroKeywordDefinition,\n FuncKeywordDefinition,\n Vocabulary,\n Schema,\n SchemaObject,\n AnySchemaObject,\n AsyncSchema,\n AnySchema,\n ValidateFunction,\n AsyncValidateFunction,\n ErrorObject,\n ErrorNoParams,\n} from \"./types\"\n\nexport {Plugin, Options, CodeOptions, InstanceOptions, Logger, ErrorsTextOptions} from \"./core\"\nexport {SchemaCxt, SchemaObjCxt} from \"./compile\"\nexport {KeywordCxt} from \"./compile/validate\"\nexport {DefinedError} from \"./vocabularies/errors\"\nexport {JSONType} from \"./compile/rules\"\nexport {JSONSchemaType} from \"./types/json-schema\"\nexport {_, str, stringify, nil, Name, Code, CodeGen, CodeGenOptions} from \"./compile/codegen\"\nexport {default as ValidationError} from \"./runtime/validation_error\"\nexport {default as MissingRefError} from \"./compile/ref_error\"\n","import type {Format, FormatDefinition} from \"ajv\"\nimport type {FormatValidator, FormatCompare} from \"ajv/dist/types\"\n\nexport type FormatMode = \"fast\" | \"full\"\n\nexport type FormatName =\n | \"date\"\n | \"time\"\n | \"date-time\"\n | \"iso-time\"\n | \"iso-date-time\"\n | \"duration\"\n | \"uri\"\n | \"uri-reference\"\n | \"uri-template\"\n | \"url\"\n | \"email\"\n | \"hostname\"\n | \"ipv4\"\n | \"ipv6\"\n | \"regex\"\n | \"uuid\"\n | \"json-pointer\"\n | \"json-pointer-uri-fragment\"\n | \"relative-json-pointer\"\n | \"byte\"\n | \"int32\"\n | \"int64\"\n | \"float\"\n | \"double\"\n | \"password\"\n | \"binary\"\n\nexport type DefinedFormats = {\n [key in FormatName]: Format\n}\n\nfunction fmtDef(\n validate: RegExp | FormatValidator<string>,\n compare: FormatCompare<string>\n): FormatDefinition<string> {\n return {validate, compare}\n}\n\nexport const fullFormats: DefinedFormats = {\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\":\n /^(?:[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\":\n /^(?:(?:[^\\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:\n /^[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:\n /^(?=.{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}\n\nexport const fastFormats: DefinedFormats = {\n ...fullFormats,\n date: fmtDef(/^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d$/, compareDate),\n time: fmtDef(\n /^(?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)$/i,\n compareTime\n ),\n \"date-time\": fmtDef(\n /^\\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,\n compareDateTime\n ),\n \"iso-time\": fmtDef(\n /^(?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)?$/i,\n compareIsoTime\n ),\n \"iso-date-time\": fmtDef(\n /^\\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,\n compareIsoDateTime\n ),\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:\n /^[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}\n\nexport const formatNames = Object.keys(fullFormats) as FormatName[]\n\nfunction isLeapYear(year: number): boolean {\n // https://tools.ietf.org/html/rfc3339#appendix-C\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0)\n}\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]\n\nfunction date(str: string): boolean {\n // full-date from http://tools.ietf.org/html/rfc3339#section-5.6\n const matches: string[] | null = DATE.exec(str)\n if (!matches) return false\n const year: number = +matches[1]\n const month: number = +matches[2]\n const day: number = +matches[3]\n return (\n month >= 1 &&\n month <= 12 &&\n day >= 1 &&\n day <= (month === 2 && isLeapYear(year) ? 29 : DAYS[month])\n )\n}\n\nfunction compareDate(d1: string, d2: string): number | undefined {\n if (!(d1 && d2)) return undefined\n if (d1 > d2) return 1\n if (d1 < d2) return -1\n return 0\n}\n\nconst TIME = /^(\\d\\d):(\\d\\d):(\\d\\d(?:\\.\\d+)?)(z|([+-])(\\d\\d)(?::?(\\d\\d))?)?$/i\n\nfunction getTime(strictTimeZone?: boolean): (str: string) => boolean {\n return function time(str: string): boolean {\n const matches: string[] | null = TIME.exec(str)\n if (!matches) return false\n const hr: number = +matches[1]\n const min: number = +matches[2]\n const sec: number = +matches[3]\n const tz: string | undefined = matches[4]\n const tzSign: number = matches[5] === \"-\" ? -1 : 1\n const tzH: number = +(matches[6] || 0)\n const tzM: number = +(matches[7] || 0)\n if (tzH > 23 || tzM > 59 || (strictTimeZone && !tz)) return false\n if (hr <= 23 && min <= 59 && sec < 60) 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}\n\nfunction compareTime(s1: string, s2: string): number | undefined {\n if (!(s1 && s2)) 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)) return undefined\n return t1 - t2\n}\n\nfunction compareIsoTime(t1: string, t2: string): number | undefined {\n if (!(t1 && t2)) return undefined\n const a1 = TIME.exec(t1)\n const a2 = TIME.exec(t2)\n if (!(a1 && a2)) return undefined\n t1 = a1[1] + a1[2] + a1[3]\n t2 = a2[1] + a2[2] + a2[3]\n if (t1 > t2) return 1\n if (t1 < t2) return -1\n return 0\n}\n\nconst DATE_TIME_SEPARATOR = /t|\\s/i\nfunction getDateTime(strictTimeZone?: boolean): (str: string) => boolean {\n const time = getTime(strictTimeZone)\n\n return function date_time(str: string): boolean {\n // http://tools.ietf.org/html/rfc3339#section-5.6\n const dateTime: string[] = str.split(DATE_TIME_SEPARATOR)\n return dateTime.length === 2 && date(dateTime[0]) && time(dateTime[1])\n }\n}\n\nfunction compareDateTime(dt1: string, dt2: string): number | undefined {\n if (!(dt1 && dt2)) return undefined\n const d1 = new Date(dt1).valueOf()\n const d2 = new Date(dt2).valueOf()\n if (!(d1 && d2)) return undefined\n return d1 - d2\n}\n\nfunction compareIsoDateTime(dt1: string, dt2: string): number | undefined {\n if (!(dt1 && dt2)) 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) return undefined\n return res || compareTime(t1, t2)\n}\n\nconst NOT_URI_FRAGMENT = /\\/|:/\nconst URI =\n /^(?:[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\nfunction uri(str: string): boolean {\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}\n\nconst BYTE = /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm\n\nfunction byte(str: string): boolean {\n BYTE.lastIndex = 0\n return BYTE.test(str)\n}\n\nconst MIN_INT32 = -(2 ** 31)\nconst MAX_INT32 = 2 ** 31 - 1\n\nfunction validateInt32(value: number): boolean {\n return Number.isInteger(value) && value <= MAX_INT32 && value >= MIN_INT32\n}\n\nfunction validateInt64(value: number): boolean {\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}\n\nfunction validateNumber(): boolean {\n return true\n}\n\nconst Z_ANCHOR = /[^\\\\]\\\\Z/\nfunction regex(str: string): boolean {\n if (Z_ANCHOR.test(str)) return false\n try {\n new RegExp(str)\n return true\n } catch (e) {\n return false\n }\n}\n","import type {Vocabulary} from \"../types\"\nimport coreVocabulary from \"./core\"\nimport validationVocabulary from \"./validation\"\nimport getApplicatorVocabulary from \"./applicator\"\nimport formatVocabulary from \"./format\"\nimport {metadataVocabulary, contentVocabulary} from \"./metadata\"\n\nconst draft7Vocabularies: Vocabulary[] = [\n coreVocabulary,\n validationVocabulary,\n getApplicatorVocabulary(),\n formatVocabulary,\n metadataVocabulary,\n contentVocabulary,\n]\n\nexport default draft7Vocabularies\n","import type {AnySchemaObject} from \"./types\"\nimport AjvCore from \"./core\"\nimport draft7Vocabularies from \"./vocabularies/draft7\"\nimport discriminator from \"./vocabularies/discriminator\"\nimport * as draft7MetaSchema from \"./refs/json-schema-draft-07.json\"\n\nconst META_SUPPORT_DATA = [\"/properties\"]\n\nconst META_SCHEMA_ID = \"http://json-schema.org/draft-07/schema\"\n\nexport class Ajv extends AjvCore {\n _addVocabularies(): void {\n super._addVocabularies()\n draft7Vocabularies.forEach((v) => this.addVocabulary(v))\n if (this.opts.discriminator) this.addKeyword(discriminator)\n }\n\n _addDefaultMetaSchema(): void {\n super._addDefaultMetaSchema()\n if (!this.opts.meta) 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\n defaultMeta(): string | AnySchemaObject | undefined {\n return (this.opts.defaultMeta =\n super.defaultMeta() || (this.getSchema(META_SCHEMA_ID) ? META_SCHEMA_ID : undefined))\n }\n}\n\nmodule.exports = exports = Ajv\nmodule.exports.Ajv = Ajv\nObject.defineProperty(exports, \"__esModule\", {value: true})\n\nexport default Ajv\n\nexport {\n Format,\n FormatDefinition,\n AsyncFormatDefinition,\n KeywordDefinition,\n KeywordErrorDefinition,\n CodeKeywordDefinition,\n MacroKeywordDefinition,\n FuncKeywordDefinition,\n Vocabulary,\n Schema,\n SchemaObject,\n AnySchemaObject,\n AsyncSchema,\n AnySchema,\n ValidateFunction,\n AsyncValidateFunction,\n SchemaValidateFunction,\n ErrorObject,\n ErrorNoParams,\n} from \"./types\"\n\nexport {Plugin, Options, CodeOptions, InstanceOptions, Logger, ErrorsTextOptions} from \"./core\"\nexport {SchemaCxt, SchemaObjCxt} from \"./compile\"\nexport {KeywordCxt} from \"./compile/validate\"\nexport {DefinedError} from \"./vocabularies/errors\"\nexport {JSONType} from \"./compile/rules\"\nexport {JSONSchemaType} from \"./types/json-schema\"\nexport {_, str, stringify, nil, Name, Code, CodeGen, CodeGenOptions} from \"./compile/codegen\"\nexport {default as ValidationError} from \"./runtime/validation_error\"\nexport {default as MissingRefError} from \"./compile/ref_error\"\n","import type Ajv from \"ajv\"\nimport type {\n Plugin,\n CodeKeywordDefinition,\n KeywordErrorDefinition,\n Code,\n Name,\n ErrorObject,\n} from \"ajv\"\nimport type {AddedFormat} from \"ajv/dist/types\"\nimport type {Rule} from \"ajv/dist/compile/rules\"\nimport {KeywordCxt} from \"ajv\"\nimport {_, str, or, getProperty, operators} from \"ajv/dist/compile/codegen\"\n\ntype Kwd = \"formatMaximum\" | \"formatMinimum\" | \"formatExclusiveMaximum\" | \"formatExclusiveMinimum\"\n\ntype Comparison = \"<=\" | \">=\" | \"<\" | \">\"\n\nconst ops = operators\n\nconst KWDs: {[K in Kwd]: {okStr: Comparison; ok: Code; fail: Code}} = {\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}\n\nexport type LimitFormatError = ErrorObject<Kwd, {limit: string; comparison: Comparison}>\n\nconst error: KeywordErrorDefinition = {\n message: ({keyword, schemaCode}) => str`should be ${KWDs[keyword as Kwd].okStr} ${schemaCode}`,\n params: ({keyword, schemaCode}) =>\n _`{comparison: ${KWDs[keyword as Kwd].okStr}, limit: ${schemaCode}}`,\n}\n\nexport const formatLimitDefinition: CodeKeywordDefinition = {\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) return\n\n const fCxt = new KeywordCxt(it, (self.RULES.all.format as Rule).definition, \"format\")\n if (fCxt.$data) validate$DataFormat()\n else validateFormat()\n\n function validate$DataFormat(): void {\n const fmts = gen.scopeValue(\"formats\", {\n ref: self.formats,\n code: opts.code.formats,\n })\n const fmt = gen.const(\"fmt\", _`${fmts}[${fCxt.schemaCode}]`)\n cxt.fail$data(\n or(\n _`typeof ${fmt} != \"object\"`,\n _`${fmt} instanceof RegExp`,\n _`typeof ${fmt}.compare != \"function\"`,\n compareCode(fmt)\n )\n )\n }\n\n function validateFormat(): void {\n const format = fCxt.schema as string\n const fmtDef: AddedFormat | undefined = self.formats[format]\n if (!fmtDef || fmtDef === true) return\n if (\n typeof fmtDef != \"object\" ||\n fmtDef instanceof RegExp ||\n typeof fmtDef.compare != \"function\"\n ) {\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 ? _`${opts.code.formats}${getProperty(format)}` : undefined,\n })\n\n cxt.fail$data(compareCode(fmt))\n }\n\n function compareCode(fmt: Name): Code {\n return _`${fmt}.compare(${data}, ${schemaCode}) ${KWDs[keyword as Kwd].fail} 0`\n }\n },\n dependencies: [\"format\"],\n}\n\nconst formatLimitPlugin: Plugin<undefined> = (ajv: Ajv): Ajv => {\n ajv.addKeyword(formatLimitDefinition)\n return ajv\n}\n\nexport default formatLimitPlugin\n","import {\n DefinedFormats,\n FormatMode,\n FormatName,\n formatNames,\n fastFormats,\n fullFormats,\n} from \"./formats\"\nimport formatLimit from \"./limit\"\nimport type Ajv from \"ajv\"\nimport type {Plugin, Format} from \"ajv\"\nimport {_, Name} from \"ajv/dist/compile/codegen\"\n\nexport {FormatMode, FormatName} from \"./formats\"\nexport {LimitFormatError} from \"./limit\"\nexport interface FormatOptions {\n mode?: FormatMode\n formats?: FormatName[]\n keywords?: boolean\n}\n\nexport type FormatsPluginOptions = FormatName[] | FormatOptions\n\nexport interface FormatsPlugin extends Plugin<FormatsPluginOptions> {\n get: (format: FormatName, mode?: FormatMode) => Format\n}\n\nconst fullName = new Name(\"fullFormats\")\nconst fastName = new Name(\"fastFormats\")\n\nconst formatsPlugin: FormatsPlugin = (\n ajv: Ajv,\n opts: FormatsPluginOptions = {keywords: true}\n): Ajv => {\n if (Array.isArray(opts)) {\n addFormats(ajv, opts, fullFormats, fullName)\n return ajv\n }\n const [formats, exportName] =\n opts.mode === \"fast\" ? [fastFormats, fastName] : [fullFormats, fullName]\n const list = opts.formats || formatNames\n addFormats(ajv, list, formats, exportName)\n if (opts.keywords) formatLimit(ajv)\n return ajv\n}\n\nformatsPlugin.get = (name: FormatName, mode: FormatMode = \"full\"): Format => {\n const formats = mode === \"fast\" ? fastFormats : fullFormats\n const f = formats[name]\n if (!f) throw new Error(`Unknown format \"${name}\"`)\n return f\n}\n\nfunction addFormats(ajv: Ajv, list: FormatName[], fs: DefinedFormats, exportName: Name): void {\n ajv.opts.code.formats ??= _`require(\"ajv-formats/dist/formats\").${exportName}`\n for (const f of list) ajv.addFormat(f, fs[f])\n}\n\nmodule.exports = exports = formatsPlugin\nObject.defineProperty(exports, \"__esModule\", {value: true})\n\nexport default formatsPlugin\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * 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';\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 `No JSON pointer provided for type '${typeName}'`;\n const validate = ajv.getSchema(jsonPointer);\n if (!validate) throw `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 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\n/**\n * A map of type names and their corresponding schema\n */\nexport const validationPointers = {\n Workflow: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#',\n AllEventConsumptionStrategy:\n 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/eventConsumptionStrategy/oneOf/0',\n AllEventConsumptionStrategyConfiguration:\n 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/eventConsumptionStrategy/oneOf/0/properties/all',\n AnyEventConsumptionStrategy:\n 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/eventConsumptionStrategy/oneOf/1',\n AnyEventConsumptionStrategyConfiguration:\n 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/eventConsumptionStrategy/oneOf/1/properties/any',\n AnyEventConsumptionStrategyUntil:\n 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/eventConsumptionStrategy/oneOf/1/properties/until',\n AnyEventUntilConsumed:\n 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/eventConsumptionStrategy/oneOf/1/properties/until/oneOf/1',\n AsyncApiArguments:\n 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/callTask/oneOf/0/properties/with',\n AuthenticationPolicy: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/authenticationPolicy',\n AuthenticationPolicyReference:\n 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/referenceableAuthenticationPolicy/oneOf/0',\n BasicAuthenticationPolicy:\n 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/authenticationPolicy/oneOf/0',\n BasicAuthenticationPolicyConfiguration:\n 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/authenticationPolicy/oneOf/0/properties/basic',\n BasicAuthenticationProperties:\n 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/authenticationPolicy/oneOf/0/properties/basic/oneOf/0',\n BearerAuthenticationPolicy:\n 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/authenticationPolicy/oneOf/1',\n BearerAuthenticationPolicyConfiguration:\n 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/authenticationPolicy/oneOf/1/properties/bearer',\n BearerAuthenticationProperties:\n 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/authenticationPolicy/oneOf/1/properties/bearer/oneOf/0',\n CallAsyncAPI: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/callTask/oneOf/0',\n CallFunction: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/callTask/oneOf/4',\n CallGRPC: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/callTask/oneOf/1',\n CallHTTP: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/callTask/oneOf/2',\n CallOpenAPI: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/callTask/oneOf/3',\n CallTask: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/callTask',\n Catalog: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/catalog',\n CatchErrors:\n 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/tryTask/properties/catch/properties/errors',\n ConstantBackoff:\n 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/retryPolicy/properties/backoff/oneOf/0',\n Container:\n 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/runTask/properties/run/oneOf/0/properties/container',\n ContainerEnvironment:\n 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/runTask/properties/run/oneOf/0/properties/container/properties/environment',\n ContainerLifetime:\n 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/runTask/properties/run/oneOf/0/properties/container/properties/lifetime',\n ContainerPorts:\n 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/runTask/properties/run/oneOf/0/properties/container/properties/ports',\n ContainerVolumes:\n 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/runTask/properties/run/oneOf/0/properties/container/properties/volumes',\n DigestAuthenticationPolicy:\n 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/authenticationPolicy/oneOf/2',\n DigestAuthenticationPolicyConfiguration:\n 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/authenticationPolicy/oneOf/2/properties/digest',\n DigestAuthenticationProperties:\n 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/authenticationPolicy/oneOf/2/properties/digest/oneOf/0',\n Document: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/properties/document',\n DoTask: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/doTask',\n Duration: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/duration',\n DurationInline: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/duration/oneOf/0',\n EmitEventDefinition:\n 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/emitTask/properties/emit/properties/event',\n EmitEventWith:\n 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/emitTask/properties/emit/properties/event/properties/with',\n EmitTask: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/emitTask',\n EmitTaskConfiguration: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/emitTask/properties/emit',\n Endpoint: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/endpoint',\n EndpointConfiguration: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/endpoint/oneOf/2',\n EndpointUri: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/endpoint/oneOf/2/properties/uri',\n Error: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/error',\n ErrorFilter: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/errorFilter',\n ErrorInstance: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/error/properties/instance',\n ErrorType: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/error/properties/type',\n EventConsumptionStrategy: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/eventConsumptionStrategy',\n EventData: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/eventProperties/properties/data',\n EventDataschema:\n 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/eventProperties/properties/dataschema',\n EventFilter: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/eventFilter',\n EventFilterCorrelate:\n 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/eventFilter/properties/correlate',\n EventSource: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/eventProperties/properties/source',\n EventTime: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/eventProperties/properties/time',\n ExponentialBackOff:\n 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/retryPolicy/properties/backoff/oneOf/1',\n Export: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/export',\n ExportAs: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/export/properties/as',\n Extension: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/extension',\n ExtensionItem:\n 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/properties/use/properties/extensions/items',\n ExternalResource: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/externalResource',\n ExternalScript:\n 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/runTask/properties/run/oneOf/1/properties/script/oneOf/1',\n FlowDirective: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/flowDirective',\n ForkTask: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/forkTask',\n ForkTaskConfiguration: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/forkTask/properties/fork',\n ForTask: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/forTask',\n ForTaskConfiguration: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/forTask/properties/for',\n FunctionArguments:\n 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/callTask/oneOf/4/properties/with',\n GRPCArguments: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/callTask/oneOf/1/properties/with',\n HTTPArguments: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/callTask/oneOf/2/properties/with',\n HTTPBody:\n 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/callTask/oneOf/2/properties/with/properties/body',\n HTTPHeaders:\n 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/callTask/oneOf/2/properties/with/properties/headers',\n HTTPQuery:\n 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/callTask/oneOf/2/properties/with/properties/query',\n InlineScript:\n 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/runTask/properties/run/oneOf/1/properties/script/oneOf/0',\n Input: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/properties/input',\n InputFrom: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/input/properties/from',\n LinearBackoff:\n 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/retryPolicy/properties/backoff/oneOf/2',\n ListenTask: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/listenTask',\n ListenTaskConfiguration:\n 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/listenTask/properties/listen',\n OAuth2AutenthicationData:\n 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/oauth2AuthenticationProperties',\n OAuth2AutenthicationDataAudiences:\n 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/oauth2AuthenticationProperties/properties/audiences',\n OAuth2AutenthicationDataClient:\n 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/oauth2AuthenticationProperties/properties/client',\n OAuth2AutenthicationDataScopes:\n 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/oauth2AuthenticationProperties/properties/scopes',\n OAuth2AuthenticationPolicy:\n 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/authenticationPolicy/oneOf/3',\n OAuth2AuthenticationPolicyConfiguration:\n 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/authenticationPolicy/oneOf/3/properties/oauth2',\n OAuth2AuthenticationPropertiesEndpoints:\n 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/authenticationPolicy/oneOf/3/properties/oauth2/oneOf/0/allOf/1/properties/endpoints',\n OAuth2ConnectAuthenticationProperties:\n 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/authenticationPolicy/oneOf/3/properties/oauth2/oneOf/0',\n OAuth2Issuers:\n 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/oauth2AuthenticationProperties/properties/issuers',\n OAuth2TokenDefinition: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/oauth2Token',\n OAuth2TokenRequest:\n 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/oauth2AuthenticationProperties/properties/request',\n OneEventConsumptionStrategy:\n 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/eventConsumptionStrategy/oneOf/2',\n OpenAPIArguments: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/callTask/oneOf/3/properties/with',\n OpenIdConnectAuthenticationPolicy:\n 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/authenticationPolicy/oneOf/4',\n OpenIdConnectAuthenticationPolicyConfiguration:\n 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/authenticationPolicy/oneOf/4/properties/oidc',\n OpenIdConnectAuthenticationProperties:\n 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/authenticationPolicy/oneOf/4/properties/oidc/oneOf/0',\n Output: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/properties/output',\n OutputAs: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/output/properties/as',\n RaiseTask: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/raiseTask',\n RaiseTaskConfiguration: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/raiseTask/properties/raise',\n RaiseTaskError:\n 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/raiseTask/properties/raise/properties/error',\n ReferenceableAuthenticationPolicy:\n 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/referenceableAuthenticationPolicy',\n RetryBackoff: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/retryPolicy/properties/backoff',\n RetryLimit: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/retryPolicy/properties/limit',\n RetryLimitAttempt:\n 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/retryPolicy/properties/limit/properties/attempt',\n RetryPolicy: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/retryPolicy',\n RetryPolicyJitter: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/retryPolicy/properties/jitter',\n RunContainer: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/runTask/properties/run/oneOf/0',\n RunScript: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/runTask/properties/run/oneOf/1',\n RunShell: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/runTask/properties/run/oneOf/2',\n RunTask: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/runTask',\n RunTaskConfiguration: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/runTask/properties/run',\n RuntimeExpression: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/runtimeExpression',\n RunWorkflow: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/runTask/properties/run/oneOf/3',\n Schedule: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/properties/schedule',\n Schema: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/schema',\n SchemaExternal: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/schema/oneOf/1',\n SchemaInline: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/schema/oneOf/0',\n Script:\n 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/runTask/properties/run/oneOf/1/properties/script',\n SecretBasedAuthenticationPolicy:\n 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/secretBasedAuthenticationPolicy',\n SetTask: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/setTask',\n SetTaskConfiguration: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/setTask/properties/set',\n Shell:\n 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/runTask/properties/run/oneOf/2/properties/shell',\n ShellArguments:\n 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/runTask/properties/run/oneOf/2/properties/shell/properties/arguments',\n ShellEnvironment:\n 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/runTask/properties/run/oneOf/2/properties/shell/properties/environment',\n SubflowConfiguration:\n 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/runTask/properties/run/oneOf/3/properties/workflow',\n SubflowInput:\n 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/runTask/properties/run/oneOf/3/properties/workflow/properties/input',\n SubscriptionIterator: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/subscriptionIterator',\n SwitchCase:\n 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/switchTask/properties/switch/items/additionalProperties',\n SwitchItem: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/switchTask/properties/switch/items',\n SwitchTask: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/switchTask',\n SwitchTaskConfiguration:\n 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/switchTask/properties/switch',\n Task: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/task',\n TaskBase: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/taskBase',\n TaskBaseIf: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/taskBase/properties/if',\n TaskItem: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/taskList/items',\n TaskList: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/taskList',\n TaskMetadata: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/taskBase/properties/metadata',\n TaskTimeout: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/taskBase/properties/timeout',\n Timeout: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/timeout',\n TryTask: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/tryTask',\n TryTaskCatch: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/tryTask/properties/catch',\n TryTaskCatchRetry:\n 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/tryTask/properties/catch/properties/retry',\n UriTemplate: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/uriTemplate',\n Use: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/properties/use',\n UseAuthentications:\n 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/properties/use/properties/authentications',\n UseCatalogs: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/properties/use/properties/catalogs',\n UseErrors: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/properties/use/properties/errors',\n UseExtensions: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/properties/use/properties/extensions',\n UseFunctions: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/properties/use/properties/functions',\n UseRetries: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/properties/use/properties/retries',\n UseSecrets: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/properties/use/properties/secrets',\n UseTimeouts: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/properties/use/properties/timeouts',\n WaitTask: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/waitTask',\n WithEvent: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/eventFilter/properties/with',\n WithGRPCArguments:\n 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/callTask/oneOf/1/properties/with/properties/arguments',\n WithGRPCService:\n 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/callTask/oneOf/1/properties/with/properties/service',\n WithOpenAPIParameters:\n 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/$defs/callTask/oneOf/3/properties/with/properties/parameters',\n WorkflowMetadata:\n 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/properties/document/properties/metadata',\n WorkflowTags: 'https://serverlessworkflow.io/schemas/1.0.0/workflow.json#/properties/document/properties/tags',\n WorkflowTimeout: 'https://serverlessworkflow.io/schemas/1.0.0/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 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under 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 { 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 OAuth2AutenthicationDataClient class and type\n */\nexport type OAuth2AutenthicationDataClientIntersection = OAuth2AutenthicationDataClient &\n Specification.OAuth2AutenthicationDataClient;\n\n/**\n * Represents a constructor for the intersection of the OAuth2AutenthicationDataClient class and type\n */\nexport interface OAuth2AutenthicationDataClientConstructor {\n new (model?: Partial<Specification.OAuth2AutenthicationDataClient>): OAuth2AutenthicationDataClientIntersection;\n}\n\n/**\n * Represents a OAuth2AutenthicationDataClient with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class OAuth2AutenthicationDataClient extends ObjectHydrator<Specification.OAuth2AutenthicationDataClient> {\n /**\n * Instanciates a new instance of the OAuth2AutenthicationDataClient 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 OAuth2AutenthicationDataClient.\n */\n constructor(model?: Partial<Specification.OAuth2AutenthicationDataClient>) {\n super(model);\n\n getLifecycleHooks('OAuth2AutenthicationDataClient')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the OAuth2AutenthicationDataClient.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new OAuth2AutenthicationDataClient(this as any) as OAuth2AutenthicationDataClientIntersection;\n validate('OAuth2AutenthicationDataClient', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the OAuth2AutenthicationDataClient.\n * Creates a copy of the OAuth2AutenthicationDataClient, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the OAuth2AutenthicationDataClient instance.\n */\n normalize(): OAuth2AutenthicationDataClient & Specification.OAuth2AutenthicationDataClient {\n const copy = new OAuth2AutenthicationDataClient(this as any) as OAuth2AutenthicationDataClientIntersection;\n return getLifecycleHooks('OAuth2AutenthicationDataClient')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _OAuth2AutenthicationDataClient =\n OAuth2AutenthicationDataClient as OAuth2AutenthicationDataClientConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under 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 { _OAuth2AutenthicationDataClient } from './oauth2-autenthication-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.OAuth2AutenthicationData).client === 'object')\n (self as Specification.OAuth2AutenthicationData).client = new _OAuth2AutenthicationDataClient(\n (model as Specification.OAuth2AutenthicationData).client as Specification.OAuth2AutenthicationDataClient,\n );\n if (typeof (model as Specification.OAuth2AutenthicationData).request === 'object')\n (self as Specification.OAuth2AutenthicationData).request = new _OAuth2TokenRequest(\n (model as Specification.OAuth2AutenthicationData).request as Specification.OAuth2TokenRequest,\n );\n if (typeof (model as Specification.OAuth2AutenthicationData).subject === 'object')\n (self as Specification.OAuth2AutenthicationData).subject = new _OAuth2TokenDefinition(\n (model as Specification.OAuth2AutenthicationData).subject as Specification.OAuth2TokenDefinition,\n );\n if (typeof (model as Specification.OAuth2AutenthicationData).actor === 'object')\n (self as Specification.OAuth2AutenthicationData).actor = new _OAuth2TokenDefinition(\n (model as Specification.OAuth2AutenthicationData).actor as Specification.OAuth2TokenDefinition,\n );\n if (\n typeof (model as { [k: string]: unknown; endpoints?: Specification.OAuth2AuthenticationPropertiesEndpoints })\n .endpoints === 'object'\n )\n (\n self as { [k: string]: unknown; endpoints?: Specification.OAuth2AuthenticationPropertiesEndpoints }\n ).endpoints = new _OAuth2AuthenticationPropertiesEndpoints(\n (model as { [k: string]: unknown; endpoints?: Specification.OAuth2AuthenticationPropertiesEndpoints })\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 { _OAuth2AutenthicationDataClient } from './oauth2-autenthication-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 _OAuth2AutenthicationDataClient(\n (model as Specification.OpenIdConnectAuthenticationProperties)\n .client as Specification.OAuth2AutenthicationDataClient,\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 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 { _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 { 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 { _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 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 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 { 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 { _Endpoint } from './endpoint';\nimport { _HTTPHeaders } from './http-headers';\nimport { _HTTPBody } from './http-body';\nimport { _HTTPQuery } from './http-query';\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.headers === 'object') self.headers = new _HTTPHeaders(model.headers);\n if (typeof model.body === 'object') self.body = new _HTTPBody(model.body);\n if (typeof model.query === 'object') self.query = new _HTTPQuery(model.query);\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 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 { _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 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?: Partial<Specification.ShellArguments>): ShellArgumentsIntersection;\n}\n\n/**\n * Represents a ShellArguments with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class ShellArguments extends ObjectHydrator<Specification.ShellArguments> {\n /**\n * Instanciates a new instance of the ShellArguments 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 ShellArguments.\n */\n constructor(model?: Partial<Specification.ShellArguments>) {\n super(model);\n\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 as any) as ShellArgumentsIntersection;\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 & Specification.ShellArguments {\n const copy = new ShellArguments(this as any) as ShellArgumentsIntersection;\n return getLifecycleHooks('ShellArguments')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _ShellArguments = ShellArguments as ShellArgumentsConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under 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 { _ShellArguments } from './shell-arguments';\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.arguments === 'object') self.arguments = new _ShellArguments(model.arguments);\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 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 { 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 { _SetTaskConfiguration } from './set-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 (typeof (model as { [k: string]: unknown; fork?: Specification.ForkTaskConfiguration }).fork === 'object')\n (self as { [k: string]: unknown; fork?: Specification.ForkTaskConfiguration }).fork =\n new _ForkTaskConfiguration(\n (model as { [k: string]: unknown; fork?: Specification.ForkTaskConfiguration })\n .fork as Specification.ForkTaskConfiguration,\n );\n if (typeof (model as { [k: string]: unknown; emit?: Specification.EmitTaskConfiguration }).emit === 'object')\n (self as { [k: string]: unknown; emit?: Specification.EmitTaskConfiguration }).emit =\n new _EmitTaskConfiguration(\n (model as { [k: string]: unknown; emit?: Specification.EmitTaskConfiguration })\n .emit as Specification.EmitTaskConfiguration,\n );\n if (\n typeof (\n model as {\n [k: string]: unknown;\n for?: Specification.ForTaskConfiguration;\n while?: string;\n do?: Specification.TaskList;\n }\n ).for === 'object'\n )\n (\n self as {\n [k: string]: unknown;\n for?: Specification.ForTaskConfiguration;\n while?: string;\n do?: Specification.TaskList;\n }\n ).for = new _ForTaskConfiguration(\n (\n model as {\n [k: string]: unknown;\n for?: Specification.ForTaskConfiguration;\n while?: string;\n do?: Specification.TaskList;\n }\n ).for as Specification.ForTaskConfiguration,\n );\n if (\n typeof (\n model as {\n [k: string]: unknown;\n listen?: Specification.ListenTaskConfiguration;\n foreach?: Specification.SubscriptionIterator;\n }\n ).listen === 'object'\n )\n (\n self as {\n [k: string]: unknown;\n listen?: Specification.ListenTaskConfiguration;\n foreach?: Specification.SubscriptionIterator;\n }\n ).listen = new _ListenTaskConfiguration(\n (\n model as {\n [k: string]: unknown;\n listen?: Specification.ListenTaskConfiguration;\n foreach?: Specification.SubscriptionIterator;\n }\n ).listen as Specification.ListenTaskConfiguration,\n );\n if (\n typeof (\n model as {\n [k: string]: unknown;\n listen?: Specification.ListenTaskConfiguration;\n foreach?: Specification.SubscriptionIterator;\n }\n ).foreach === 'object'\n )\n (\n self as {\n [k: string]: unknown;\n listen?: Specification.ListenTaskConfiguration;\n foreach?: Specification.SubscriptionIterator;\n }\n ).foreach = new _SubscriptionIterator(\n (\n model as {\n [k: string]: unknown;\n listen?: Specification.ListenTaskConfiguration;\n foreach?: Specification.SubscriptionIterator;\n }\n ).foreach as Specification.SubscriptionIterator,\n );\n if (typeof (model as { [k: string]: unknown; raise?: Specification.RaiseTaskConfiguration }).raise === 'object')\n (self as { [k: string]: unknown; raise?: Specification.RaiseTaskConfiguration }).raise =\n new _RaiseTaskConfiguration(\n (model as { [k: string]: unknown; raise?: Specification.RaiseTaskConfiguration })\n .raise as Specification.RaiseTaskConfiguration,\n );\n if (typeof (model as { [k: string]: unknown; run?: Specification.RunTaskConfiguration }).run === 'object')\n (self as { [k: string]: unknown; run?: Specification.RunTaskConfiguration }).run = new _RunTaskConfiguration(\n (model as { [k: string]: unknown; run?: Specification.RunTaskConfiguration })\n .run as Specification.RunTaskConfiguration,\n );\n if (typeof (model as { [k: string]: unknown; set?: Specification.SetTaskConfiguration }).set === 'object')\n (self as { [k: string]: unknown; set?: Specification.SetTaskConfiguration }).set = new _SetTaskConfiguration(\n (model as { [k: string]: unknown; set?: Specification.SetTaskConfiguration })\n .set as Specification.SetTaskConfiguration,\n );\n if (\n typeof (model as { [k: string]: unknown; switch?: Specification.SwitchTaskConfiguration }).switch === 'object'\n )\n (self as { [k: string]: unknown; switch?: Specification.SwitchTaskConfiguration }).switch =\n new _SwitchTaskConfiguration(\n (model as { [k: string]: unknown; switch?: Specification.SwitchTaskConfiguration })\n .switch as Specification.SwitchTaskConfiguration,\n ) as unknown as Specification.SwitchTaskConfiguration;\n if (\n typeof (model as { [k: string]: unknown; try?: Specification.TaskList; catch?: Specification.TryTaskCatch })\n .try === 'object'\n )\n (self as { [k: string]: unknown; try?: Specification.TaskList; catch?: Specification.TryTaskCatch }).try =\n new _TaskList(\n (model as { [k: string]: unknown; try?: Specification.TaskList; catch?: Specification.TryTaskCatch })\n .try as Specification.TaskList,\n );\n if (\n typeof (model as { [k: string]: unknown; try?: Specification.TaskList; catch?: Specification.TryTaskCatch })\n .catch === 'object'\n )\n (self as { [k: string]: unknown; try?: Specification.TaskList; catch?: Specification.TryTaskCatch }).catch =\n new _TryTaskCatch(\n (model as { [k: string]: unknown; try?: Specification.TaskList; catch?: Specification.TryTaskCatch })\n .catch as Specification.TryTaskCatch,\n );\n if (typeof (model as { [k: string]: unknown; wait?: Specification.Duration }).wait === 'object')\n (self as { [k: string]: unknown; wait?: Specification.Duration }).wait = new _Duration(\n (model as { [k: string]: unknown; wait?: Specification.Duration }).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 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 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 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 { _OAuth2AutenthicationDataClient } from './oauth2-autenthication-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 OAuth2AutenthicationData class and type\n */\nexport type OAuth2AutenthicationDataIntersection = OAuth2AutenthicationData & Specification.OAuth2AutenthicationData;\n\n/**\n * Represents a constructor for the intersection of the OAuth2AutenthicationData class and type\n */\nexport interface OAuth2AutenthicationDataConstructor {\n new (model?: Partial<Specification.OAuth2AutenthicationData>): OAuth2AutenthicationDataIntersection;\n}\n\n/**\n * Represents a OAuth2AutenthicationData with methods for validation and normalization.\n * Inherits from ObjectHydrator which provides functionality for hydrating the state based on a model.\n */\nexport class OAuth2AutenthicationData extends ObjectHydrator<Specification.OAuth2AutenthicationData> {\n /**\n * Instanciates a new instance of the OAuth2AutenthicationData 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 OAuth2AutenthicationData.\n */\n constructor(model?: Partial<Specification.OAuth2AutenthicationData>) {\n super(model);\n const self = this as unknown as Specification.OAuth2AutenthicationData & object;\n if (isObject(model)) {\n if (typeof model.client === 'object') self.client = new _OAuth2AutenthicationDataClient(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('OAuth2AutenthicationData')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the OAuth2AutenthicationData.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new OAuth2AutenthicationData(this as any) as OAuth2AutenthicationDataIntersection;\n validate('OAuth2AutenthicationData', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the OAuth2AutenthicationData.\n * Creates a copy of the OAuth2AutenthicationData, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the OAuth2AutenthicationData instance.\n */\n normalize(): OAuth2AutenthicationData & Specification.OAuth2AutenthicationData {\n const copy = new OAuth2AutenthicationData(this as any) as OAuth2AutenthicationDataIntersection;\n return getLifecycleHooks('OAuth2AutenthicationData')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _OAuth2AutenthicationData = OAuth2AutenthicationData as OAuth2AutenthicationDataConstructor;\n","/*\n * Copyright 2021-Present The Serverless Workflow Specification Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under 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 OAuth2AutenthicationDataAudiences class and type\n */\nexport type OAuth2AutenthicationDataAudiencesIntersection = OAuth2AutenthicationDataAudiences &\n Specification.OAuth2AutenthicationDataAudiences;\n\n/**\n * Represents a constructor for the intersection of the OAuth2AutenthicationDataAudiences class and type\n */\nexport interface OAuth2AutenthicationDataAudiencesConstructor {\n new (model?: Array<string> | number): OAuth2AutenthicationDataAudiencesIntersection;\n}\n\n/**\n * Represents a collection of string.\n * Inherits from ArrayHydrator to handle array-specific hydration.\n */\nexport class OAuth2AutenthicationDataAudiences extends ArrayHydrator<string> {\n /**\n * Constructs a new instance of the OAuth2AutenthicationDataAudiences 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(OAuth2AutenthicationDataAudiences.prototype));\n getLifecycleHooks('OAuth2AutenthicationDataAudiences')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the OAuth2AutenthicationDataAudiences.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new OAuth2AutenthicationDataAudiences(this);\n validate('OAuth2AutenthicationDataAudiences', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the OAuth2AutenthicationDataAudiences.\n * Creates a copy of the OAuth2AutenthicationDataAudiences, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the OAuth2AutenthicationDataAudiences instance.\n */\n normalize(): OAuth2AutenthicationDataAudiences {\n const copy = new OAuth2AutenthicationDataAudiences(this);\n return getLifecycleHooks('OAuth2AutenthicationDataAudiences')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _OAuth2AutenthicationDataAudiences =\n OAuth2AutenthicationDataAudiences as unknown as OAuth2AutenthicationDataAudiencesConstructor;\n//export const _OAuth2AutenthicationDataAudiences = OAuth2AutenthicationDataAudiences; // 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 OAuth2AutenthicationDataScopes class and type\n */\nexport type OAuth2AutenthicationDataScopesIntersection = OAuth2AutenthicationDataScopes &\n Specification.OAuth2AutenthicationDataScopes;\n\n/**\n * Represents a constructor for the intersection of the OAuth2AutenthicationDataScopes class and type\n */\nexport interface OAuth2AutenthicationDataScopesConstructor {\n new (model?: Array<string> | number): OAuth2AutenthicationDataScopesIntersection;\n}\n\n/**\n * Represents a collection of string.\n * Inherits from ArrayHydrator to handle array-specific hydration.\n */\nexport class OAuth2AutenthicationDataScopes extends ArrayHydrator<string> {\n /**\n * Constructs a new instance of the OAuth2AutenthicationDataScopes 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(OAuth2AutenthicationDataScopes.prototype));\n getLifecycleHooks('OAuth2AutenthicationDataScopes')?.constructor?.(this);\n }\n\n /**\n * Validates the current instance of the OAuth2AutenthicationDataScopes.\n * Throws if invalid.\n */\n validate(workflow?: Partial<Specification.Workflow>) {\n const copy = new OAuth2AutenthicationDataScopes(this);\n validate('OAuth2AutenthicationDataScopes', copy, workflow);\n }\n\n /**\n * Normalizes the current instance of the OAuth2AutenthicationDataScopes.\n * Creates a copy of the OAuth2AutenthicationDataScopes, invokes normalization hooks if available, and returns the normalized copy.\n *\n * @returns A normalized version of the OAuth2AutenthicationDataScopes instance.\n */\n normalize(): OAuth2AutenthicationDataScopes {\n const copy = new OAuth2AutenthicationDataScopes(this);\n return getLifecycleHooks('OAuth2AutenthicationDataScopes')?.normalize?.(copy) || copy;\n }\n}\n\nexport const _OAuth2AutenthicationDataScopes =\n OAuth2AutenthicationDataScopes as unknown as OAuth2AutenthicationDataScopesConstructor;\n//export const _OAuth2AutenthicationDataScopes = OAuth2AutenthicationDataScopes; // 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 { _OAuth2AutenthicationDataClient } from './oauth2-autenthication-data-client';\nimport { _OAuth2TokenRequest } from './oauth2-token-request';\nimport { _OAuth2TokenDefinition } from './oauth2-token-definition';\nimport { _OAuth2AuthenticationPropertiesEndpoints } from './oauth2-authentication-properties-endpoints';\nimport { _OAuth2AutenthicationData } from './oauth2-autenthication-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 _OAuth2AutenthicationData {\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 _OAuth2AutenthicationDataClient(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 { _OAuth2AutenthicationDataClient } from './oauth2-autenthication-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 _OAuth2AutenthicationDataClient(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 { _SetTaskConfiguration } from './set-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 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 if (typeof model.set === 'object') self.set = new _SetTaskConfiguration(model.set);\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 { _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 { _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.0 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\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 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 // used for this specific key only because Object.defineProperty is slow\n if (keyNode === '__proto__') {\n Object.defineProperty(_result, keyNode, {\n configurable: true,\n enumerable: true,\n writable: true,\n value: valueNode\n });\n } else {\n _result[keyNode] = valueNode;\n }\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 default jsYaml;\nexport { CORE_SCHEMA, DEFAULT_SCHEMA, FAILSAFE_SCHEMA, JSON_SCHEMA, Schema, Type, YAMLException, 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 rooId = 'root';\n\nconst doReference = '/do';\nconst forReference = '/for';\nconst catchReference = '/catch';\nconst branchReference = '/fork/branches';\nconst tryReference = '/try';\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 | null;\n};\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 node within the graph.\n */\nexport type GraphNode = GraphElement & {\n /** The type of the node. */\n type: GraphNodeType;\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 destinationId: string;\n};\n\n/**\n * Represents a graph or a subgraph\n */\nexport type Graph = GraphNode & {\n /** The parent graph if this is a subgraph, otherwise null. */\n parent?: Graph | null;\n /** A collection of nodes that belong to this graph. */\n nodes: GraphNode[];\n /** A collection of edges that define relationships between nodes. */\n edges: GraphEdge[];\n /** The entry node of the graph. */\n entryNode: GraphNode;\n /** The exit node of the graph. */\n exitNode: GraphNode;\n};\n\n/**\n * Context information used when processing tasks in a workflow graph.\n */\ntype TaskContext = {\n graph: Graph;\n reference: string;\n taskList: Map<string, Task>;\n taskName?: string | null;\n taskReference: string;\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[] | null | 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 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 = rooId,\n label: string | null | undefined = undefined,\n parent: Graph | null | undefined = undefined,\n): Graph {\n const entryNode: GraphNode = {\n type: id === rooId ? GraphNodeType.Start : GraphNodeType.Entry,\n id: `${id}${entrySuffix}`,\n };\n const exitNode: GraphNode = {\n type: id === rooId ? GraphNodeType.End : GraphNodeType.Exit,\n id: `${id}${exitSuffix}`,\n };\n const graph = {\n id,\n label,\n type,\n parent,\n entryNode,\n exitNode,\n nodes: [entryNode, exitNode],\n edges: [],\n };\n if (parent) parent.nodes.push(graph);\n return graph;\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 buildTransitions(graph.entryNode, {\n graph,\n reference: doReference,\n taskList: mapTasks(workflow.do),\n taskReference: doReference,\n });\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 | null | undefined = undefined,\n transition: string | null | undefined = undefined,\n): TransitionInfo {\n if (!tasksList?.size) throw new Error('The task list cannot be empty. No tasks list to get the next task from.');\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 } else if (currentTask) {\n index = Array.from(tasksList.values()).indexOf(currentTask) + 1;\n if (index >= tasksList.size) {\n return {\n name: FlowDirective.End,\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 * 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 destinationNode = buildTaskNode({\n ...context,\n taskReference: `${context.reference}/${transition.index}/${transition.name}`,\n taskName: transition.name,\n });\n buildEdge(context.graph, exitAnchor, (destinationNode as Graph).entryNode || destinationNode, transition.label);\n } else if (transition.name === FlowDirective.Exit) {\n buildEdge(context.graph, exitAnchor, context.graph.exitNode, transition.label);\n } else if (transition.name === FlowDirective.End) {\n buildEdge(context.graph, exitAnchor, context.graph.exitNode, 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 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(type: GraphNodeType, context: TaskContext): GraphNode {\n const node: GraphNode = {\n type,\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(GraphNodeType.Call, context);\n // TODO: add some details about the task?\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, context.taskName, context.graph);\n const doContext: TaskContext = {\n ...context,\n graph: subgraph,\n reference: context.taskReference + doReference,\n taskList: mapTasks(task.do),\n taskName: null,\n };\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(GraphNodeType.Emit, context);\n // TODO: add some details about the task?\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, context.taskName, context.graph);\n const forContext: TaskContext = {\n ...context,\n graph: subgraph,\n reference: subgraph.id + forReference + doReference,\n taskList: mapTasks(task.do),\n taskName: null,\n };\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, 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 reference: `${context.taskReference}${branchReference}`,\n taskList: mapTasks([branchItem]),\n taskReference: `${context.taskReference}${branchReference}/${i}/${branchName}`,\n taskName: branchName,\n };\n const branchNode = buildTaskNode(branchContext);\n buildEdge(subgraph, subgraph.entryNode, (branchNode as Graph).entryNode || branchNode);\n buildEdge(subgraph, (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(GraphNodeType.Listen, context);\n // TODO: add some details about the task?\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(GraphNodeType.Raise, context);\n // TODO: add some details about the task?\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(GraphNodeType.Run, context);\n // TODO: add some details about the task?\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(GraphNodeType.Set, context);\n // TODO: add some details about the task?\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(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 context.taskName,\n context.graph,\n );\n const trySubgraph: Graph = initGraph(\n GraphNodeType.Try,\n context.taskReference + tryReference,\n context.taskName + ' (try)',\n containerSubgraph,\n );\n buildEdge(containerSubgraph, containerSubgraph.entryNode, trySubgraph.entryNode);\n const tryContext: TaskContext = {\n ...context,\n graph: trySubgraph,\n reference: trySubgraph.id,\n taskList: mapTasks(task.try),\n taskName: null,\n };\n buildTransitions(trySubgraph.entryNode, tryContext);\n if (!task.catch?.do?.length) {\n const catchNode: GraphNode = {\n type: GraphNodeType.Catch,\n id: context.taskReference + catchReference,\n label: context.taskName + ' (catch)',\n };\n containerSubgraph.nodes.push(catchNode);\n buildEdge(containerSubgraph, trySubgraph.exitNode, catchNode);\n buildEdge(containerSubgraph, catchNode, containerSubgraph.exitNode);\n } else {\n const catchSubgraph: Graph = initGraph(\n GraphNodeType.Catch,\n context.taskReference + catchReference + doReference,\n context.taskName + ' (catch)',\n containerSubgraph,\n );\n buildEdge(containerSubgraph, trySubgraph.exitNode, catchSubgraph.entryNode);\n const catchContext: TaskContext = {\n ...context,\n graph: catchSubgraph,\n reference: catchSubgraph.id,\n taskList: mapTasks(task.catch.do),\n taskName: null,\n };\n buildTransitions(catchSubgraph.entryNode, catchContext);\n buildEdge(containerSubgraph, 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(GraphNodeType.Wait, context);\n // TODO: add some details about the task?\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 destination The destination node\n * @param label The edge label, if any\n */\nfunction buildEdge(graph: Graph, source: GraphNode, destination: GraphNode, label: string = '') {\n let edge = graph.edges.find((e) => e.sourceId === source.id && e.destinationId === destination.id);\n if (edge) {\n if (label) {\n edge.label = edge.label + (edge.label ? ' / ' : '') + label;\n }\n return edge;\n }\n edge = {\n label,\n id: `${source.id}-${destination.id}${label ? `-${label}` : ''}`,\n sourceId: source.id,\n destinationId: destination.id,\n };\n graph.edges.push(edge);\n}\n","import { Workflow } from './generated/definitions/specification';\nimport { buildGraph, Graph, GraphEdge, GraphNode, 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 graph The graph to convert\n * @returns The converted graph\n */\nfunction convertGraphToCode(graph: Graph): string {\n const isRoot: boolean = graph.id === 'root';\n const code = `${isRoot ? 'flowchart TD' : `subgraph ${graph.id} [\"${graph.label || graph.id}\"]`}\n${indent(graph.nodes.map((node) => convertNodeToCode(node)).join('\\n'))}\n${indent(graph.edges.map((edge) => convertEdgeToCode(edge)).join('\\n'))}\n${isRoot ? '' : 'end'}`;\n return code;\n}\n\n/**\n * Converts a node to Mermaid code\n * @param node The node to convert\n * @returns The converted node\n */\nfunction convertNodeToCode(node: GraphNode | Graph): string {\n let code = '';\n if ((node as Graph).nodes?.length) {\n code = convertGraphToCode(node as Graph);\n } else {\n code = node.id;\n switch (node.type) {\n case GraphNodeType.Entry:\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.destinationId.startsWith('root') &&\n (edge.destinationId.endsWith('-entry-node') || edge.destinationId.endsWith('-exit-node'));\n const code = `${edge.sourceId} ${edge.label ? `--\"${edge.label}\"` : ''}--${ignoreEndArrow ? '-' : '>'} ${edge.destinationId}`;\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 = buildGraph(workflow);\n return (\n convertGraphToCode(graph) +\n `\n\nclassDef hidden display: none;`\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 { _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 { _CallAsyncAPI } from './call-async-api';\nimport { _CallFunction } from './call-function';\nimport { _CallGRPC } from './call-grpc';\nimport { _CallHTTP } from './call-http';\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 { _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 { _ErrorFilter } from './error-filter';\nimport { _ErrorInstance } from './error-instance';\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 { _OAuth2AutenthicationData } from './oauth2-autenthication-data';\nimport { _OAuth2AutenthicationDataAudiences } from './oauth2-autenthication-data-audiences';\nimport { _OAuth2AutenthicationDataClient } from './oauth2-autenthication-data-client';\nimport { _OAuth2AutenthicationDataScopes } from './oauth2-autenthication-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 { _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 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 CallAsyncAPI: _CallAsyncAPI,\n CallFunction: _CallFunction,\n CallGRPC: _CallGRPC,\n CallHTTP: _CallHTTP,\n CallOpenAPI: _CallOpenAPI,\n CallTask: _CallTask,\n Catalog: _Catalog,\n CatchErrors: _CatchErrors,\n ConstantBackoff: _ConstantBackoff,\n Container: _Container,\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 ErrorFilter: _ErrorFilter,\n ErrorInstance: _ErrorInstance,\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 OAuth2AutenthicationData: _OAuth2AutenthicationData,\n OAuth2AutenthicationDataAudiences: _OAuth2AutenthicationDataAudiences,\n OAuth2AutenthicationDataClient: _OAuth2AutenthicationDataClient,\n OAuth2AutenthicationDataScopes: _OAuth2AutenthicationDataScopes,\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 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 { 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 { 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 { 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 { 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 { 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 { 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 { OAuth2AutenthicationDataIntersection } from '../classes/oauth2-autenthication-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.OAuth2AutenthicationData} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {OAuth2AutenthicationDataIntersection} The built object\n */\nfunction buildingFn(\n model: Specification.OAuth2AutenthicationData,\n options: BuildOptions,\n): OAuth2AutenthicationDataIntersection {\n const instance = new Classes.OAuth2AutenthicationData(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as OAuth2AutenthicationDataIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `OAuth2AutenthicationDataIntersection`\n * @returns {Builder<OAuth2AutenthicationDataIntersection, OAuth2AutenthicationDataIntersection>} A builder for `OAuth2AutenthicationDataIntersection`\n */\nexport const oAuth2AutenthicationDataBuilder = (\n model?: Partial<Specification.OAuth2AutenthicationData>,\n): Builder<Partial<Specification.OAuth2AutenthicationData>, OAuth2AutenthicationDataIntersection> =>\n builder<Specification.OAuth2AutenthicationData, OAuth2AutenthicationDataIntersection>(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 { OAuth2AutenthicationDataAudiencesIntersection } from '../classes/oauth2-autenthication-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.OAuth2AutenthicationDataAudiences} model The proxied array\n * @param {BuildOptions} options The build options to use\n * @returns {OAuth2AutenthicationDataAudiencesIntersection} The built array\n */\nfunction buildingFn(\n model: Specification.OAuth2AutenthicationDataAudiences,\n options: BuildOptions,\n): OAuth2AutenthicationDataAudiencesIntersection {\n const instance = new Classes.OAuth2AutenthicationDataAudiences(model);\n if (options.validate) instance.validate();\n return (options.normalize\n ? instance.normalize()\n : instance) as unknown as OAuth2AutenthicationDataAudiencesIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `OAuth2AutenthicationDataAudiencesIntersection`\n * @returns {ArrayBuilder<string, OAuth2AutenthicationDataAudiencesIntersection>} A builder for `OAuth2AutenthicationDataAudiencesIntersection`\n */\nexport const oAuth2AutenthicationDataAudiencesBuilder = (\n model?: Specification.OAuth2AutenthicationDataAudiences,\n): ArrayBuilder<string, OAuth2AutenthicationDataAudiencesIntersection> =>\n arrayBuilder<string, OAuth2AutenthicationDataAudiencesIntersection>(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 { OAuth2AutenthicationDataClientIntersection } from '../classes/oauth2-autenthication-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.OAuth2AutenthicationDataClient} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {OAuth2AutenthicationDataClientIntersection} The built object\n */\nfunction buildingFn(\n model: Specification.OAuth2AutenthicationDataClient,\n options: BuildOptions,\n): OAuth2AutenthicationDataClientIntersection {\n const instance = new Classes.OAuth2AutenthicationDataClient(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as OAuth2AutenthicationDataClientIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `OAuth2AutenthicationDataClientIntersection`\n * @returns {Builder<OAuth2AutenthicationDataClientIntersection, OAuth2AutenthicationDataClientIntersection>} A builder for `OAuth2AutenthicationDataClientIntersection`\n */\nexport const oAuth2AutenthicationDataClientBuilder = (\n model?: Partial<Specification.OAuth2AutenthicationDataClient>,\n): Builder<Partial<Specification.OAuth2AutenthicationDataClient>, OAuth2AutenthicationDataClientIntersection> =>\n builder<Specification.OAuth2AutenthicationDataClient, OAuth2AutenthicationDataClientIntersection>(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 { OAuth2AutenthicationDataScopesIntersection } from '../classes/oauth2-autenthication-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.OAuth2AutenthicationDataScopes} model The proxied array\n * @param {BuildOptions} options The build options to use\n * @returns {OAuth2AutenthicationDataScopesIntersection} The built array\n */\nfunction buildingFn(\n model: Specification.OAuth2AutenthicationDataScopes,\n options: BuildOptions,\n): OAuth2AutenthicationDataScopesIntersection {\n const instance = new Classes.OAuth2AutenthicationDataScopes(model);\n if (options.validate) instance.validate();\n return (options.normalize ? instance.normalize() : instance) as unknown as OAuth2AutenthicationDataScopesIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `OAuth2AutenthicationDataScopesIntersection`\n * @returns {ArrayBuilder<string, OAuth2AutenthicationDataScopesIntersection>} A builder for `OAuth2AutenthicationDataScopesIntersection`\n */\nexport const oAuth2AutenthicationDataScopesBuilder = (\n model?: Specification.OAuth2AutenthicationDataScopes,\n): ArrayBuilder<string, OAuth2AutenthicationDataScopesIntersection> =>\n arrayBuilder<string, OAuth2AutenthicationDataScopesIntersection>(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 { builder, Builder, 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 object\n * @param {Specification.ShellArguments} model The proxied object\n * @param {BuildOptions} options The build options to use\n * @returns {ShellArgumentsIntersection} The built object\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 ShellArgumentsIntersection;\n}\n\n/**\n * A factory to create a builder proxy for the type `ShellArgumentsIntersection`\n * @returns {Builder<ShellArgumentsIntersection, ShellArgumentsIntersection>} A builder for `ShellArgumentsIntersection`\n */\nexport const shellArgumentsBuilder = (\n model?: Partial<Specification.ShellArguments>,\n): Builder<Partial<Specification.ShellArguments>, ShellArgumentsIntersection> =>\n builder<Specification.ShellArguments, 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 { 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"],"names":["defaultBuildingFn","model","options","validate","normalize","builder","buildingFn","proxy","Proxy","get","_","prop","value","toString","set","arrayBuilder","Array","isArray","Error","push","typeName","hooks","isObject","deepCopy","obj","JSON","parse","stringify","ObjectHydrator","Object","assign","this","ArrayHydrator","_super","_this","isNaN","apply","call","__extends","WorkflowHooks","preValidation","instance","_a","document","dsl","schemaVersion","_b","registeredHooks","Map","getLifecycleHooks","_CodeOrName","exports","IDENTIFIER","Name","constructor","s","super","test","str","emptyStr","names","_Code","code","_items","length","item","_str","reduce","c","_names","strs","args","i","addCodeArg","nil","plus","expr","safeStringify","res","mergeExprItems","undefined","splice","optimize","arg","x","join","a","b","slice","replace","strConcat","c1","c2","getProperty","key","getEsmExportName","regexpCode","rx","code_1","require$$0","ValueError","name","UsedValueState","varKinds","const","let","var","Scope","prefixes","parent","_prefixes","_parent","toName","nameOrPrefix","prefix","_newName","_nameGroup","index","has","ValueScopeName","nameStr","setValue","property","itemIndex","scopePath","line","ValueScope","opts","_values","_scope","scope","_n","lines","ref","valueKey","vs","_name","getValue","keyOrRef","scopeRefs","scopeName","values","_reduceValues","scopeCode","usedValues","getCode","valueCode","nameSet","forEach","Started","def","es5","Completed","scope_1","require$$1","code_2","defineProperty","enumerable","scope_2","operators","GT","GTE","LT","LTE","EQ","NEQ","NOT","OR","AND","ADD","Node","optimizeNodes","optimizeNames","_constants","Def","varKind","rhs","render","constants","optimizeExpr","Assign","lhs","sideEffects","addExprNames","AssignOp","op","Label","label","Break","Throw","error","AnyCode","ParentNode","nodes","n","subtractNames","addNames","BlockNode","Root","Else","kind","If","condition","else","cond","e","ns","not","For","ForLoop","iteration","ForRange","from","to","ForIter","loop","iterable","Func","async","Return","Try","catch","finally","Catch","Finally","replaceName","some","items","par","CodeGen","extScope","_blockStarts","_extScope","_nodes","_root","scopeValue","prefixOrName","Set","add","getScopeValue","_def","constant","_leafNode","_constant","object","keyValues","thenBody","elseBody","_blockNode","endIf","elseIf","_elseNode","_endBlockNode","_for","node","forBody","endFor","forRange","forOf","arr","forIn","ownProperties","tryBody","catchCode","finallyCode","_currNode","block","body","nodeCount","endBlock","len","pop","toClose","func","funcBody","endFunc","N1","N2","andCode","mappend","and","orCode","y","or","codegen_1","checkUnknownRules","it","schema","self","strictSchema","rules","RULES","keywords","checkStrictMode","schemaHasRules","escapeJsonPointer","unescapeJsonPointer","makeMergeEvaluated","mergeNames","mergeToName","mergeValues","resultToName","gen","evaluatedPropsToName","ps","props","setEvaluated","keys","p","util","toHash","hash","alwaysValidSchema","all","schemaHasRulesButRef","schemaRefOrVal","topSchemaRef","schemaPath","keyword","$data","unescapeFragment","decodeURIComponent","escapeFragment","encodeURIComponent","eachItem","xs","f","mergeEvaluated","if","Math","max","snippets","Type","msg","mode","logger","warn","useFunc","getErrorPath","dataProp","dataPropType","jsPropertySyntax","isNumber","Num","data","valCxt","instancePath","parentData","parentDataProperty","rootData","dynamicAnchors","vErrors","errors","json","jsonPos","jsonLen","jsonPart","names_1","default","util_1","require$$2","addError","errObj","err","returnErrors","errs","validateName","schemaEnv","$async","throw","ValidationError","return","keywordError","message","keyword$DataError","schemaType","reportError","cxt","errorPaths","overrideAllErrors","compositeRule","allErrors","errorObjectCode","reportExtraError","resetErrorsCount","errsCount","extendErrors","schemaValue","errorPath","errSchemaPath","verbose","E","params","propertyName","parentSchema","createErrors","errorInstancePath","errorSchemaPath","messages","extraErrorProps","errorObject","instPath","Str","schPath","jsonTypes","isJSONType","getRules","groups","number","type","string","array","types","integer","boolean","null","post","shouldUseGroup","group","rule","shouldUseRule","definition","implements","kwd","applicability","schemaHasRulesForType","rules_1","applicability_1","errors_1","require$$3","require$$4","DataType","getJSONTypes","ts","every","dataType","getSchemaTypes","includes","nullable","coerceAndCheckDataType","coerceTo","coerceTypes","filter","t","COERCIBLE","coerceToTypes","checkTypes","wrongType","checkDataTypes","strictNumbers","Wrong","coerced","coerceSpecificType","reportTypeError","assignParentData","coerceData","checkDataType","strictNums","correct","Correct","numCond","_cond","dataTypes","notObj","typeError","schemaCode","getTypeErrorContext","util_2","hasPropFunc","prototype","hasOwnProperty","isOwnProperty","noPropertyInData","allSchemaProperties","schemaMap","checkReportMissingProp","setParams","missingProperty","checkMissingProp","properties","missing","map","reportMissingProp","propertyInData","schemaProperties","callValidateCode","context","passSchema","dataAndSchema","dynamicRef","newRegExp","usePattern","pattern","u","unicodeRegExp","regExp","validateArray","valid","validArr","validateItems","break","notValid","subschema","validateUnion","sch","unevaluated","schValid","_sch","schCxt","schemaProp","mergeValidEvaluated","result","reset","modifyData","useKeyword","macroKeywordCode","macroSchema","macro","schemaRef","validateSchema","pass","funcKeywordCode","checkAsyncKeyword","compile","validateRef","assignValid","_await","passCxt","passContext","modifying","reportErrs","block$data","ruleErrs","try","validateAsync","validateErrs","validateSync","addErrs","ok","validSchemaType","allowUndefined","st","validateKeywordUsage","deps","dependencies","errorsText","fastDeepEqual","equal","RegExp","source","flags","valueOf","traverse","jsonSchemaTraverseModule","cb","_traverse","pre","jsonPtr","rootSchema","parentJsonPtr","parentKeyword","keyIndex","arrayKeywords","propsKeywords","escapeJsonPtr","allKeys","skipKeywords","additionalItems","contains","additionalProperties","propertyNames","then","allOf","anyOf","oneOf","$defs","definitions","patternProperties","enum","required","maximum","minimum","exclusiveMaximum","exclusiveMinimum","multipleOf","maxLength","minLength","format","maxItems","minItems","uniqueItems","maxProperties","minProperties","SIMPLE_INLINED","resolve","inlineRef","limit","hasRef","countKeys","REF_KEYWORDS","count","Infinity","getFullPath","resolver","id","normalizeId","_getFullPath","serialize","split","TRAILING_SLASH_HASH","resolveUrl","baseId","ANCHOR","boolSchema_1","boolError","falseSchemaError","boolSchema","topBoolOrEmptySchema","boolOrEmptySchema","dataType_1","dataType_2","defaults_1","assignDefault","defaultValue","childData","useDefaults","defaults","assignDefaults","ty","keyword_1","subschema_1","getSubschema","extendSubschemaData","dpType","dataPathArr","dataContextProps","_nextData","dataLevel","definedProperties","dataNames","extendSubschemaMode","jtdDiscriminator","jtdMetadata","require$$5","require$$6","require$$7","resolve_1","require$$8","require$$9","require$$10","validateFunction","funcSourceUrl","destructureValCxtES5","destructureValCxt","schId","schemaId","process","subschemaCode","isSchemaObj","checkKeywords","schemaCxtHasRules","$comment","commentKeyword","uriResolver","updateContext","checkAsyncSchema","typeAndKeywords","subSchemaObjCode","$ref","ignoreKeywordsWithRef","checkRefsAndKeywords","jtd","schemaKeywords","rootName","root","typeErrors","groupKeywords","iterateKeywords","meta","strictTypes","includesType","strictTypesError","withTypes","narrowSchemaTypes","checkContextTypes","allowUnionTypes","checkMultipleTypes","hasApplicableType","checkKeywordTypes","checkStrictTypes","keywordCode","schTs","kwdT","validateFunctionCode","checkNoDefault","evaluated","resetEvaluated","assignEvaluated","returnResults","topSchemaObjCode","KeywordCxt","getData","trackErrors","successAction","failAction","failResult","fail","fail$data","invalid$data","append","errorParams","_error","$dataError","codeBlock","$dataValid","check$data","wrong$DataType","validateSchemaRef","invalid$DataSchema","appl","nextContext","schemaCxt","ruleType","JSON_POINTER","RELATIVE_JSON_POINTER","jsonPointer","matches","exec","up","errorMsg","segments","segment","pointerType","getSchemaRefs","baseIds","pathPrefix","localRefs","schemaRefs","fullPath","innerBaseId","addRef","_resolve","ambiguos","schOrRef","refs","checkAmbiguosRef","addAnchor","anchor","$anchor","$dynamicAnchor","sch1","sch2","ajv","validation","validation_error","MissingRefError","missingRef","missingSchema","ref_error","validation_error_1","validate_1","SchemaEnv","env","compileSchema","getCompilingSchema","rootId","_ValidationError","sourceCode","_compilations","validateCode","Function","makeValidate","scopeValues","dynamicProps","dynamicItems","delete","inlineOrCompile","inlineRefs","schEnv","s2","s1","schemas","resolveSchema","refPath","getJsonPointer","resolveRef","schOrFunc","PREVENT_SCOPE_CHANGE","parsedRef","fragment","part","partSchema","scopedChars","HEX","A","B","C","d","D","F","normalizeIPv4","host","findToken","isIPV4","match","address","stripLeadingZeros","stringArrayToHexStripped","input","keepZero","acc","strip","normalizeIPv6","isIPV6","ipv6","tokenCount","output","zone","buffer","isZone","endipv6Encountered","endIpv6","consume","hex","cursor","getIPV6","newHost","escapedHost","token","out","skip","l","ind","RDS1","RDS2","RDS3","RDS5","utils","recomposeAuthority","components","uriTokens","userinfo","unescape","ipV4res","ipV6res","port","String","normalizeComponentEncoding","esc","escape","scheme","path","query","removeDotSegments","im","UUID_REG","URN_REG","isSecure","wsComponents","secure","toLowerCase","httpParse","httpSerialize","http","domainHost","ws","resourceName","SCHEMES","https","wss","urn","urnComponents","nid","nss","urnScheme","schemeHandler","uriComponents","skipEscape","skipNormalize","uuidComponents","uuid","tolerant","schemes","resolveComponents","base","relative","skipNormalization","target","charAt","lastIndexOf","cmpts","reference","authority","absolutePath","hexLookUp","v","k","fromCharCode","URI_PARSE","uri","parsed","gotEncoding","indexOf","isIP","parseInt","ipv4result","ipv6result","unicodeSupport","charCodeAt","nonSimpleDomain","URL","domainToASCII","encodeURI","fastUri","baseURI","relativeURI","schemelessOptions","uriA","uriB","fastUriModule","uri_1","ref_error_1","compile_1","codegen_2","$dataRefSchema","defaultRegExp","META_IGNORE_OPTIONS","EXT_SCOPE_NAMES","removedOptions","errorDataPath","jsonPointers","extendRefs","missingRefs","processCode","strictDefaults","strictKeywords","unknownFormats","cache","ajvErrors","deprecatedOptions","unicode","requiredOptions","o","strict","_optz","_c","_d","_e","_f","_g","_h","_j","_k","strictTuples","_l","_m","strictRequired","_o","_p","loopRequired","_q","loopEnum","_r","_s","_t","_u","_v","addUsedSchema","_w","_x","validateFormats","_y","_z","int32range","_0","Ajv","formats","_loading","_cache","noLogs","console","log","getLogger","formatOpt","checkOptions","_metaOpts","getMetaSchemaOptions","addInitialFormats","_addVocabularies","_addDefaultMetaSchema","addInitialKeywords","addMetaSchema","addInitialSchemas","addKeyword","_dataRefSchema","$id","defaultMeta","schemaKeyRef","getSchema","_meta","_addSchema","_compileSchemaEnv","compileAsync","loadSchema","runCompileAsync","_schema","loadMetaSchema","$schema","_compileAsync","checkLoaded","loadMissingSchema","_loadSchema","addSchema","_validateSchema","_checkUnique","throwOrLogError","keyRef","getSchEnv","removeSchema","_removeAllSchemas","clear","cacheKey","addVocabulary","kwdOrDef","checkKeyword","addRule","keywordMetaschema","getKeyword","removeKeyword","findIndex","addFormat","separator","dataVar","text","$dataMetaSchema","metaSchema","keywordsJsonPointers","seg","schemaOrData","regex","startsWith","_compileMetaSchema","currentOpts","checkOpts","opt","optsSchemas","defs","metaOpts","KEYWORD_NAME","ruleGroup","find","before","addBeforeRule","_rule","$dataRef","callRef","callRootRef","schOrEnv","getValidate","callValidate","schName","inlineRefSchema","addErrorsFrom","addEvaluatedFrom","schEvaluated","callAsyncRef","ref_1","core","core_1","ops","KWDs","okStr","limitNumber","prec","multipleOfPrecision","invalid","ucs2length","pos","ucs2length_1","comp","limitLength","limitProperties","useLoop","loopAllRequired","allErrorsMode","loopUntilMissing","exitOnErrorMode","requiredKey","limitItems","equal_1","j","itemTypes","loopN","indices","for","loopN2","eql","outer","_const","getEql","vSchema","equalCode","_enum","multipleOf_1","limitLength_1","pattern_1","limitProperties_1","required_1","limitItems_1","uniqueItems_1","const_1","enum_1","validation_1","validateAdditionalItems","validateTuple","extraItems","schArr","fullTuple","checkStrictTuple","items_1","prefixItems","additionalItems_1","items2020","min","minContains","maxContains","next","validateItemsWithCount","checkLimits","_valid","depsCount","property_ies","propDeps","schDeps","propertyDeps","schemaDeps","splitDependencies","validatePropertyDeps","validateSchemaDeps","hasProperty","depProp","additionalProperty","removeAdditional","patProps","deleteAdditional","additionalPropertyCode","applyAdditionalSchema","definedProp","propsSchema","isAdditional","additionalProperties_1","allProps","hasDefault","applyPropertySchema","patterns","alwaysValidPatterns","checkProperties","allowMatchingProperties","checkMatchingProperties","pat","validateProperties","alwaysValid","validatePatternProperties","passing","discriminator","ifClause","hasThen","hasSchema","hasElse","validateIf","validateClause","_if","thenElse","prefixItems_1","items2020_1","contains_1","dependencies_1","propertyNames_1","properties_1","patternProperties_1","not_1","anyOf_1","require$$11","oneOf_1","require$$12","allOf_1","require$$13","if_1","require$$14","thenElse_1","require$$15","applicator","draft2020","dynamicAnchor","_getValidate","dynamicAnchor_1","_dynamicRef","_callRef","dynamicRef_1","recursiveAnchor","recursiveRef","recursiveAnchor_1","recursiveRef_1","dynamic","dynamic_1","dependentRequired","dependentSchemas","limitContains","dependentSchemas_1","limitContains_1","next_1","unevaluatedProperty","unevaluatedPropCode","evaluatedProps","unevaluatedDynamic","unevaluatedStatic","unevaluatedProperties","unevaluatedItems","unevaluatedItems_1","unevaluated_1","fmts","fDef","fType","callFormat","validData","invalidFmt","validate$DataFormat","formatDef","unknownMsg","unknownFormat","fmtType","fmtRef","fmtDef","fmt","getFormat","validCondition","validateFormat","format_2","metadata","metadataVocabulary","contentVocabulary","applicator_1","format_1","metadata_1","draft2020Vocabularies","DiscrError","types_1","discrError","tagName","Tag","tag","mapping","applyTagSchema","oneOfMapping","topRequired","hasRequired","tagRequired","propSch","addMappings","addMapping","tagValue","getMapping","Mapping","validateMapping","content","META_SUPPORT_DATA","jsonSchema202012","with$data","draft2020_1","discriminator_1","json_schema_2020_12_1","META_SCHEMA_ID","Ajv2020","module","compare","fullFormats","date","compareDate","time","getTime","compareTime","getDateTime","compareDateTime","compareIsoTime","compareIsoDateTime","duration","NOT_URI_FRAGMENT","URI","url","email","hostname","ipv4","Z_ANCHOR","byte","BYTE","lastIndex","int32","Number","isInteger","MAX_INT32","MIN_INT32","int64","float","validateNumber","double","password","binary","fastFormats","formatNames","DATE","DAYS","year","month","day","isLeapYear","d1","d2","TIME","strictTimeZone","hr","sec","tz","tzSign","tzH","tzM","utcMin","utcHr","t1","Date","t2","a1","a2","DATE_TIME_SEPARATOR","dateTime","dt1","dt2","draft7Vocabularies","draft7","draft7_1","draft7MetaSchema","ajv_1","formatMaximum","formatMinimum","formatExclusiveMaximum","formatExclusiveMinimum","formatLimitDefinition","fCxt","compareCode","formats_1","limit_1","fullName","fastName","formatsPlugin","addFormats","exportName","list","fs","validators","entries","Workflow","AllEventConsumptionStrategy","AllEventConsumptionStrategyConfiguration","AnyEventConsumptionStrategy","AnyEventConsumptionStrategyConfiguration","AnyEventConsumptionStrategyUntil","AnyEventUntilConsumed","AsyncApiArguments","AuthenticationPolicy","AuthenticationPolicyReference","BasicAuthenticationPolicy","BasicAuthenticationPolicyConfiguration","BasicAuthenticationProperties","BearerAuthenticationPolicy","BearerAuthenticationPolicyConfiguration","BearerAuthenticationProperties","CallAsyncAPI","CallFunction","CallGRPC","CallHTTP","CallOpenAPI","CallTask","Catalog","CatchErrors","ConstantBackoff","Container","ContainerEnvironment","ContainerLifetime","ContainerPorts","ContainerVolumes","DigestAuthenticationPolicy","DigestAuthenticationPolicyConfiguration","DigestAuthenticationProperties","Document","DoTask","Duration","DurationInline","EmitEventDefinition","EmitEventWith","EmitTask","EmitTaskConfiguration","Endpoint","EndpointConfiguration","EndpointUri","ErrorFilter","ErrorInstance","ErrorType","EventConsumptionStrategy","EventData","EventDataschema","EventFilter","EventFilterCorrelate","EventSource","EventTime","ExponentialBackOff","Export","ExportAs","Extension","ExtensionItem","ExternalResource","ExternalScript","FlowDirective","ForkTask","ForkTaskConfiguration","ForTask","ForTaskConfiguration","FunctionArguments","GRPCArguments","HTTPArguments","HTTPBody","HTTPHeaders","HTTPQuery","InlineScript","Input","InputFrom","LinearBackoff","ListenTask","ListenTaskConfiguration","OAuth2AutenthicationData","OAuth2AutenthicationDataAudiences","OAuth2AutenthicationDataClient","OAuth2AutenthicationDataScopes","OAuth2AuthenticationPolicy","OAuth2AuthenticationPolicyConfiguration","OAuth2AuthenticationPropertiesEndpoints","OAuth2ConnectAuthenticationProperties","OAuth2Issuers","OAuth2TokenDefinition","OAuth2TokenRequest","OneEventConsumptionStrategy","OpenAPIArguments","OpenIdConnectAuthenticationPolicy","OpenIdConnectAuthenticationPolicyConfiguration","OpenIdConnectAuthenticationProperties","Output","OutputAs","RaiseTask","RaiseTaskConfiguration","RaiseTaskError","ReferenceableAuthenticationPolicy","RetryBackoff","RetryLimit","RetryLimitAttempt","RetryPolicy","RetryPolicyJitter","RunContainer","RunScript","RunShell","RunTask","RunTaskConfiguration","RuntimeExpression","RunWorkflow","Schedule","Schema","SchemaExternal","SchemaInline","Script","SecretBasedAuthenticationPolicy","SetTask","SetTaskConfiguration","Shell","ShellArguments","ShellEnvironment","SubflowConfiguration","SubflowInput","SubscriptionIterator","SwitchCase","SwitchItem","SwitchTask","SwitchTaskConfiguration","Task","TaskBase","TaskBaseIf","TaskItem","TaskList","TaskMetadata","TaskTimeout","Timeout","TryTask","TryTaskCatch","TryTaskCatchRetry","UriTemplate","Use","UseAuthentications","UseCatalogs","UseErrors","UseExtensions","UseFunctions","UseRetries","UseSecrets","UseTimeouts","WaitTask","WithEvent","WithGRPCArguments","WithGRPCService","WithOpenAPIParameters","WorkflowMetadata","WorkflowTags","WorkflowTimeout","concat","workflow","validateFn","postValidation","copy","_WithEvent","_EventFilterCorrelate","with","correlate","_EventFilter","setPrototypeOf","create","_AllEventConsumptionStrategyConfiguration","_AllEventConsumptionStrategy","_AnyEventConsumptionStrategyConfiguration","any","one","_AnyEventConsumptionStrategyUntil","until","_AnyEventConsumptionStrategy","_AnyEventUntilConsumed","_AsyncApiArguments","_BasicAuthenticationPolicyConfiguration","_BearerAuthenticationPolicyConfiguration","_DigestAuthenticationPolicyConfiguration","_OAuth2AutenthicationDataClient","_OAuth2TokenRequest","_OAuth2TokenDefinition","_OAuth2AuthenticationPropertiesEndpoints","client","request","subject","actor","endpoints","_OAuth2AuthenticationPolicyConfiguration","_OpenIdConnectAuthenticationPolicyConfiguration","basic","bearer","digest","oauth2","oidc","_AuthenticationPolicy","_AuthenticationPolicyReference","_BasicAuthenticationPolicy","_BasicAuthenticationProperties","_BearerAuthenticationPolicy","_BearerAuthenticationProperties","_ReferenceableAuthenticationPolicy","authentication","_Endpoint","endpoint","_ExternalResource","resource","_Schema","_Input","_Output","_Export","_Duration","after","_TaskTimeout","_TaskMetadata","export","timeout","_TaskBase","_CallAsyncAPI","_FunctionArguments","_CallFunction","_WithGRPCService","_WithGRPCArguments","proto","service","arguments","_GRPCArguments","_CallGRPC","_HTTPHeaders","_HTTPBody","_HTTPQuery","headers","_HTTPArguments","_CallHTTP","_WithOpenAPIParameters","parameters","_OpenAPIArguments","_CallOpenAPI","_CallTask","_Catalog","_ErrorFilter","_CatchErrors","_ConstantBackoff","_ContainerPorts","_ContainerVolumes","_ContainerEnvironment","_ContainerLifetime","_Container","ports","volumes","environment","lifetime","_DigestAuthenticationPolicy","_DigestAuthenticationProperties","_WorkflowTags","_WorkflowMetadata","_Document","tags","_ForkTaskConfiguration","branches","_TaskList","_EmitEventWith","_EmitEventDefinition","_EmitTaskConfiguration","event","_ForTaskConfiguration","_EventConsumptionStrategy","_ListenTaskConfiguration","_SubscriptionIterator","do","_RaiseTaskError","_RaiseTaskConfiguration","_Script","_ShellArguments","_ShellEnvironment","_Shell","_SubflowInput","_SubflowConfiguration","_RunTaskConfiguration","container","script","shell","_SetTaskConfiguration","_SwitchCase","_SwitchItem","knownProperties_1","_SwitchTaskConfiguration","_RetryBackoff","_RetryLimitAttempt","_RetryLimit","attempt","_RetryPolicyJitter","_TryTaskCatchRetry","delay","backoff","jitter","_TryTaskCatch","retry","_Task","fork","emit","listen","foreach","raise","run","switch","wait","_TaskItem","_DoTask","_DurationInline","_EmitTask","_EndpointConfiguration","_EndpointUri","_Error","_ErrorInstance","_ErrorType","_EventData","_EventDataschema","_EventSource","_EventTime","_ExponentialBackOff","_ExportAs","_Extension","_ExtensionItem","_ExternalScript","_FlowDirective","_ForkTask","_ForTask","_InlineScript","_InputFrom","_LinearBackoff","_ListenTask","_OAuth2AutenthicationData","_OAuth2AutenthicationDataAudiences","_OAuth2AutenthicationDataScopes","_OAuth2AuthenticationPolicy","_OAuth2ConnectAuthenticationProperties","_OAuth2Issuers","_OneEventConsumptionStrategy","_OpenIdConnectAuthenticationPolicy","_OpenIdConnectAuthenticationProperties","_OutputAs","_RaiseTask","_RetryPolicy","_RunContainer","_RunScript","_RunShell","_RunTask","_RuntimeExpression","_RunWorkflow","_Schedule","on","_SchemaExternal","_SchemaInline","_SecretBasedAuthenticationPolicy","_SetTask","_SwitchTask","_TaskBaseIf","_Timeout","_TryTask","_UriTemplate","_UseAuthentications","_UseErrors","_UseExtensions","_UseFunctions","_UseRetries","_UseTimeouts","_UseCatalogs","_Use","authentications","extensions","functions","retries","timeouts","catalogs","_UseSecrets","_WaitTask","_WorkflowTimeout","isNothing","common","toArray","sequence","repeat","cycle","isNegativeZero","NEGATIVE_INFINITY","extend","sourceKeys","formatError","exception","compact","where","reason","mark","column","snippet","YAMLException$1","captureStackTrace","stack","getLine","lineStart","lineEnd","position","maxLineLength","head","tail","maxHalfLength","floor","padStart","indent","linesBefore","linesAfter","re","lineStarts","lineEnds","foundLineNo","lineNoLength","TYPE_CONSTRUCTOR_OPTIONS","YAML_NODE_KINDS","construct","instanceOf","predicate","represent","representName","defaultStyle","multi","styleAliases","style","alias","compileStyleAliases","compileList","currentType","newIndex","previousType","previousIndex","Schema$1","implicit","explicit","type$1","loadKind","compiledImplicit","compiledExplicit","compiledTypeMap","scalar","fallback","collectType","compileMap","failsafe","_null","canonical","lowercase","uppercase","camelcase","empty","bool","isOctCode","isDecCode","int","ch","hasDigits","sign","octal","decimal","hexadecimal","toUpperCase","YAML_FLOAT_PATTERN","SCIENTIFIC_WITHOUT_DOT","POSITIVE_INFINITY","NaN","parseFloat","YAML_DATE_REGEXP","YAML_TIMESTAMP_REGEXP","timestamp","hour","minute","second","fraction","delta","UTC","setTime","toISOString","merge","BASE64_MAP","idx","bitlen","tailbits","bits","Uint8Array","_hasOwnProperty$3","_toString$2","omap","pair","pairKey","pairHasKey","objectKeys","_toString$1","pairs","_hasOwnProperty$2","_default","_hasOwnProperty$1","CONTEXT_FLOW_IN","CONTEXT_FLOW_OUT","CONTEXT_BLOCK_IN","CONTEXT_BLOCK_OUT","CHOMPING_CLIP","CHOMPING_STRIP","CHOMPING_KEEP","PATTERN_NON_PRINTABLE","PATTERN_NON_ASCII_LINE_BREAKS","PATTERN_FLOW_INDICATORS","PATTERN_TAG_HANDLE","PATTERN_TAG_URI","_class","is_EOL","is_WHITE_SPACE","is_WS_OR_EOL","is_FLOW_INDICATOR","fromHexCode","lc","simpleEscapeSequence","charFromCodepoint","simpleEscapeCheck","simpleEscapeMap","State$1","filename","onWarning","legacy","listener","implicitTypes","typeMap","lineIndent","firstTabInLine","documents","generateError","state","throwError","throwWarning","directiveHandlers","YAML","major","minor","version","checkLineBreaks","TAG","handle","tagMap","captureSegment","start","end","checkJson","_position","_length","_character","_result","mergeMappings","destination","overridableKeys","quantity","storeMappingPair","keyTag","keyNode","valueNode","startLine","startLineStart","startPos","configurable","writable","readLineBreak","skipSeparationSpace","allowComments","checkIndent","lineBreaks","testDocumentSeparator","writeFoldedLines","readBlockSequence","nodeIndent","_line","_tag","_anchor","detected","anchorMap","composeNode","readTagProperty","tagHandle","isVerbatim","isNamed","readAnchorProperty","parentIndent","nodeContext","allowToSeek","allowCompact","allowBlockStyles","allowBlockScalars","allowBlockCollections","typeIndex","typeQuantity","typeList","flowIndent","blockIndent","indentStatus","atNewLine","hasContent","following","_keyLine","_keyLineStart","_keyPos","atExplicitKey","readBlockMapping","_lineStart","_pos","terminator","isPair","isExplicitPair","isMapping","readNext","readFlowCollection","captureStart","folding","tmp","chomping","didReadContent","detectedIndent","textIndent","emptyLines","atMoreIndented","readBlockScalar","captureEnd","readSingleQuotedScalar","hexLength","hexResult","readDoubleQuotedScalar","readAlias","withinFlowCollection","hasPendingContent","_lineIndent","_kind","readPlainScalar","readDocument","directiveName","directiveArgs","documentStart","hasDirectives","loadDocuments","nullpos","loader","loadAll","iterator","load","_toString","_hasOwnProperty","CHAR_BOM","CHAR_TAB","CHAR_LINE_FEED","CHAR_CARRIAGE_RETURN","CHAR_SPACE","CHAR_EXCLAMATION","CHAR_DOUBLE_QUOTE","CHAR_SHARP","CHAR_PERCENT","CHAR_AMPERSAND","CHAR_SINGLE_QUOTE","CHAR_ASTERISK","CHAR_COMMA","CHAR_MINUS","CHAR_COLON","CHAR_EQUALS","CHAR_GREATER_THAN","CHAR_QUESTION","CHAR_COMMERCIAL_AT","CHAR_LEFT_SQUARE_BRACKET","CHAR_RIGHT_SQUARE_BRACKET","CHAR_GRAVE_ACCENT","CHAR_LEFT_CURLY_BRACKET","CHAR_VERTICAL_LINE","CHAR_RIGHT_CURLY_BRACKET","ESCAPE_SEQUENCES","DEPRECATED_BOOLEANS_SYNTAX","DEPRECATED_BASE60_SYNTAX","encodeHex","character","QUOTING_TYPE_SINGLE","QUOTING_TYPE_DOUBLE","State","noArrayIndent","skipInvalid","flowLevel","styleMap","compileStyleMap","sortKeys","lineWidth","noRefs","noCompatMode","condenseFlow","quotingType","forceQuotes","replacer","explicitTypes","duplicates","usedDuplicates","indentString","spaces","generateNextLine","level","isWhitespace","isPrintable","isNsCharOrWhitespace","isPlainSafe","prev","inblock","cIsNsCharOrWhitespace","cIsNsChar","codePointAt","first","needIndentIndicator","STYLE_PLAIN","STYLE_SINGLE","STYLE_LITERAL","STYLE_FOLDED","STYLE_DOUBLE","chooseScalarStyle","singleLineOnly","indentPerLevel","testAmbiguousType","char","prevChar","hasLineBreak","hasFoldableLine","shouldTrackWidth","previousLineBreak","plain","isPlainSafeLast","writeScalar","iskey","dump","testImplicitResolving","blockHeader","dropEndingNewline","width","moreIndented","lineRe","nextLF","foldLine","prevMoreIndented","foldString","escapeSeq","escapeString","indentIndicator","clip","breakRe","curr","writeBlockSequence","writeNode","detectType","isblockseq","tagStr","duplicateIndex","duplicate","objectOrArray","objectKey","objectValue","explicitPair","pairBuffer","objectKeyList","sort","writeBlockMapping","writeFlowMapping","writeFlowSequence","getDuplicateReferences","objects","duplicatesIndexes","inspectNode","GraphNodeType","entrySuffix","exitSuffix","rooId","doReference","forReference","catchReference","branchReference","tryReference","mapTasks","tasksList","task","initGraph","entryNode","Start","Entry","exitNode","End","Exit","graph","edges","buildGraph","buildTransitions","taskList","taskReference","getNextTask","taskName","transition","size","currentTask","Continue","taskEntry","buildTransition","sourceNode","exitAnchor","destinationNode","buildTaskNode","__assign","buildEdge","transitions","nextTransition","buildGenericTaskNode","Call","buildCallTaskNode","containerSubgraph","TryCatch","trySubgraph","tryContext","catchSubgraph","catchContext","catchNode","buildTryCatchTaskNode","Emit","buildEmitTaskNode","subgraph","forContext","buildForTaskNode","Fork","branchItem","branchName","branchNode","buildForkTaskNode","Listen","buildListenTaskNode","Raise","buildRaiseTaskNode","Run","buildRunTaskNode","buildSetTaskNode","Switch","hasDefaultCase","switchItem","caseName","switchCase","when","buildSwitchTaskNode","Wait","buildWaitTaskNode","Do","doContext","buildDoTaskNode","edge","sourceId","destinationId","convertGraphToCode","isRoot","convertNodeToCode","ignoreEndArrow","endsWith","convertEdgeToCode","convertToMermaidCode","MermaidDiagram","use","schedule","deserialize","yaml.load","normalized","yaml.dump","toGraph","toMermaidCode","Classes","allEventConsumptionStrategyBuilder","allEventConsumptionStrategyConfigurationBuilder","anyEventConsumptionStrategyBuilder","anyEventConsumptionStrategyConfigurationBuilder","anyEventConsumptionStrategyUntilBuilder","anyEventUntilConsumedBuilder","asyncApiArgumentsBuilder","authenticationPolicyBuilder","authenticationPolicyReferenceBuilder","basicAuthenticationPolicyBuilder","basicAuthenticationPolicyConfigurationBuilder","basicAuthenticationPropertiesBuilder","bearerAuthenticationPolicyBuilder","bearerAuthenticationPolicyConfigurationBuilder","bearerAuthenticationPropertiesBuilder","callAsyncAPIBuilder","callFunctionBuilder","callGRPCBuilder","callHTTPBuilder","callOpenAPIBuilder","callTaskBuilder","catalogBuilder","catchErrorsBuilder","constantBackoffBuilder","containerBuilder","containerEnvironmentBuilder","containerLifetimeBuilder","containerPortsBuilder","containerVolumesBuilder","digestAuthenticationPolicyBuilder","digestAuthenticationPolicyConfigurationBuilder","digestAuthenticationPropertiesBuilder","documentBuilder","doTaskBuilder","durationBuilder","durationInlineBuilder","emitEventDefinitionBuilder","emitEventWithBuilder","emitTaskBuilder","emitTaskConfigurationBuilder","endpointBuilder","endpointConfigurationBuilder","endpointUriBuilder","errorBuilder","errorFilterBuilder","errorInstanceBuilder","errorTypeBuilder","eventConsumptionStrategyBuilder","eventDataBuilder","eventDataschemaBuilder","eventFilterBuilder","eventFilterCorrelateBuilder","eventSourceBuilder","eventTimeBuilder","exponentialBackOffBuilder","exportBuilder","exportAsBuilder","extensionBuilder","extensionItemBuilder","externalResourceBuilder","externalScriptBuilder","flowDirectiveBuilder","forkTaskBuilder","forkTaskConfigurationBuilder","forTaskBuilder","forTaskConfigurationBuilder","functionArgumentsBuilder","gRPCArgumentsBuilder","hTTPArgumentsBuilder","hTTPBodyBuilder","hTTPHeadersBuilder","hTTPQueryBuilder","inlineScriptBuilder","inputBuilder","inputFromBuilder","linearBackoffBuilder","listenTaskBuilder","listenTaskConfigurationBuilder","oAuth2AutenthicationDataBuilder","oAuth2AutenthicationDataAudiencesBuilder","oAuth2AutenthicationDataClientBuilder","oAuth2AutenthicationDataScopesBuilder","oAuth2AuthenticationPolicyBuilder","oAuth2AuthenticationPolicyConfigurationBuilder","oAuth2AuthenticationPropertiesEndpointsBuilder","oAuth2ConnectAuthenticationPropertiesBuilder","oAuth2IssuersBuilder","oAuth2TokenDefinitionBuilder","oAuth2TokenRequestBuilder","oneEventConsumptionStrategyBuilder","openAPIArgumentsBuilder","openIdConnectAuthenticationPolicyBuilder","openIdConnectAuthenticationPolicyConfigurationBuilder","openIdConnectAuthenticationPropertiesBuilder","outputBuilder","outputAsBuilder","raiseTaskBuilder","raiseTaskConfigurationBuilder","raiseTaskErrorBuilder","referenceableAuthenticationPolicyBuilder","retryBackoffBuilder","retryLimitBuilder","retryLimitAttemptBuilder","retryPolicyBuilder","retryPolicyJitterBuilder","runContainerBuilder","runScriptBuilder","runShellBuilder","runTaskBuilder","runTaskConfigurationBuilder","runtimeExpressionBuilder","runWorkflowBuilder","scheduleBuilder","schemaBuilder","schemaExternalBuilder","schemaInlineBuilder","scriptBuilder","secretBasedAuthenticationPolicyBuilder","setTaskBuilder","setTaskConfigurationBuilder","shellBuilder","shellArgumentsBuilder","shellEnvironmentBuilder","subflowConfigurationBuilder","subflowInputBuilder","subscriptionIteratorBuilder","switchCaseBuilder","switchItemBuilder","switchTaskBuilder","switchTaskConfigurationBuilder","taskBuilder","taskBaseBuilder","taskBaseIfBuilder","taskItemBuilder","taskListBuilder","taskMetadataBuilder","taskTimeoutBuilder","timeoutBuilder","tryTaskBuilder","tryTaskCatchBuilder","tryTaskCatchRetryBuilder","uriTemplateBuilder","useBuilder","useAuthenticationsBuilder","useCatalogsBuilder","useErrorsBuilder","useExtensionsBuilder","useFunctionsBuilder","useRetriesBuilder","useSecretsBuilder","useTimeoutsBuilder","waitTaskBuilder","withEventBuilder","withGRPCArgumentsBuilder","withGRPCServiceBuilder","withOpenAPIParametersBuilder","workflowBuilder","workflowMetadataBuilder","workflowTagsBuilder","workflowTimeoutBuilder"],"mappings":"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oHACFC,YACE,uHACFC,UACE,qHACFC,aACE,4HACFC,MAAO,8EACPC,UAAW,yFACXC,cACE,0GACFC,WAAY,8EACZC,wBACE,gGACFC,yBACE,kGACFC,kCACE,uHACFC,+BACE,oHACFC,+BACE,oHACFC,2BACE,gGACFC,wCACE,kHACFC,wCACE,uJACFC,sCACE,0HACFC,cACE,qHACFC,sBAAuB,+EACvBC,mBACE,qHACFC,4BACE,oGACFC,iBAAkB,oGAClBC,kCACE,gGACFC,+CACE,gHACFC,sCACE,wHACFC,OAAQ,+EACRC,SAAU,wFACVC,UAAW,6EACXC,uBAAwB,8FACxBC,eACE,+GACFC,kCACE,qGACFC,aAAc,kGACdC,WAAY,gGACZC,kBACE,mHACFC,YAAa,+EACbC,kBAAmB,iGACnBC,aAAc,kGACdC,UAAW,kGACXC,SAAU,kGACVC,QAAS,2EACTC,qBAAsB,0FACtBC,kBAAmB,qFACnBC,YAAa,kGACbC,SAAU,iFACVC,OAAQ,0EACRC,eAAgB,kFAChBC,aAAc,kFACdC,OACE,oHACFC,gCACE,mGACFC,QAAS,2EACTC,qBAAsB,0FACtBC,MACE,mHACFC,eACE,wIACFC,iBACE,0IACFC,qBACE,sHACFC,aACE,uIACFC,qBAAsB,wFACtBC,WACE,2HACFC,WAAY,sGACZC,WAAY,8EACZC,wBACE,gGACFC,KAAM,wEACNC,SAAU,4EACVC,WAAY,0FACZC,SAAU,kFACVC,SAAU,4EACVC,aAAc,gGACdC,YAAa,+FACbC,QAAS,2EACTC,QAAS,2EACTC,aAAc,4FACdC,kBACE,6GACFC,YAAa,+EACbC,IAAK,4EACLC,mBACE,uGACFC,YAAa,gGACbC,UAAW,8FACXC,cAAe,kGACfC,aAAc,iGACdC,WAAY,+FACZC,WAAY,+FACZC,YAAa,gGACbC,SAAU,4EACVC,UAAW,+FACXC,kBACE,yHACFC,gBACE,uHACFC,sBACE,0HACFC,iBACE,qGACFC,aAAc,iGACdC,gBAAiB,kFD5NkB5gC,KAAI,SAACvb,OAACtB,EAAQsB,EAAA,GAAE2qB,EAAW3qB,EAAA,GAC5D,IAAK2qB,E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"}