@speclynx/apidom-ls 2.11.7 → 2.12.0

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 (182) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/apidom-ls.browser.min.js +3 -3
  3. package/package.json +35 -30
  4. package/src/config/arazzo/arazzoSpecification1/lint/$self--format-uri.cjs +23 -0
  5. package/src/config/arazzo/arazzoSpecification1/lint/$self--format-uri.mjs +16 -0
  6. package/src/config/arazzo/arazzoSpecification1/lint/$self--no-fragment.cjs +23 -0
  7. package/src/config/arazzo/arazzoSpecification1/lint/$self--no-fragment.mjs +16 -0
  8. package/src/config/arazzo/arazzoSpecification1/lint/$self--type.cjs +23 -0
  9. package/src/config/arazzo/arazzoSpecification1/lint/$self--type.mjs +16 -0
  10. package/src/config/arazzo/arazzoSpecification1/lint/{allowed-fields.cjs → allowed-fields-1-0.cjs} +4 -3
  11. package/src/config/arazzo/arazzoSpecification1/lint/{allowed-fields.mjs → allowed-fields-1-0.mjs} +4 -4
  12. package/src/config/arazzo/arazzoSpecification1/lint/allowed-fields-1-1.cjs +21 -0
  13. package/src/config/arazzo/arazzoSpecification1/lint/allowed-fields-1-1.mjs +14 -0
  14. package/src/config/arazzo/arazzoSpecification1/lint/arazzo--pattern.cjs +2 -2
  15. package/src/config/arazzo/arazzoSpecification1/lint/arazzo--pattern.mjs +2 -2
  16. package/src/config/arazzo/arazzoSpecification1/lint/index.cjs +6 -2
  17. package/src/config/arazzo/arazzoSpecification1/lint/index.mjs +6 -2
  18. package/src/config/arazzo/config.cjs +6 -4
  19. package/src/config/arazzo/config.mjs +4 -2
  20. package/src/config/arazzo/criterion/lint/type--equals.cjs +1 -1
  21. package/src/config/arazzo/criterion/lint/type--equals.mjs +1 -1
  22. package/src/config/arazzo/{criterionExpressionType → expressionType}/lint/index.cjs +7 -3
  23. package/src/config/arazzo/expressionType/lint/index.mjs +12 -0
  24. package/src/config/arazzo/{criterionExpressionType/lint/type--equals.cjs → expressionType/lint/type--equals-1-0.cjs} +5 -4
  25. package/src/config/arazzo/{criterionExpressionType/lint/type--equals.mjs → expressionType/lint/type--equals-1-0.mjs} +5 -5
  26. package/src/config/arazzo/expressionType/lint/type--equals-1-1.cjs +23 -0
  27. package/src/config/arazzo/expressionType/lint/type--equals-1-1.mjs +16 -0
  28. package/src/config/arazzo/{criterionExpressionType → expressionType}/lint/type--required.cjs +1 -1
  29. package/src/config/arazzo/{criterionExpressionType → expressionType}/lint/type--required.mjs +1 -1
  30. package/src/config/arazzo/{criterionExpressionType → expressionType}/lint/type--type.cjs +1 -1
  31. package/src/config/arazzo/{criterionExpressionType → expressionType}/lint/type--type.mjs +1 -1
  32. package/src/config/arazzo/expressionType/lint/version--equals-jsonpath.cjs +30 -0
  33. package/src/config/arazzo/expressionType/lint/version--equals-jsonpath.mjs +23 -0
  34. package/src/config/arazzo/expressionType/lint/version--equals-jsonpointer.cjs +30 -0
  35. package/src/config/arazzo/expressionType/lint/version--equals-jsonpointer.mjs +23 -0
  36. package/src/config/arazzo/expressionType/lint/version--equals-xpath.cjs +30 -0
  37. package/src/config/arazzo/expressionType/lint/version--equals-xpath.mjs +23 -0
  38. package/src/config/arazzo/{criterionExpressionType/lint/version--required.cjs → expressionType/lint/version--required-1-0.cjs} +9 -4
  39. package/src/config/arazzo/expressionType/lint/version--required-1-0.mjs +26 -0
  40. package/src/config/arazzo/{criterionExpressionType → expressionType}/lint/version--type.cjs +1 -1
  41. package/src/config/arazzo/{criterionExpressionType → expressionType}/lint/version--type.mjs +1 -1
  42. package/src/config/arazzo/failureAction/lint/allowed-fields-1-0.cjs +27 -0
  43. package/src/config/arazzo/failureAction/lint/allowed-fields-1-0.mjs +19 -0
  44. package/src/config/arazzo/failureAction/lint/{allowed-fields.cjs → allowed-fields-1-1.cjs} +4 -4
  45. package/src/config/arazzo/failureAction/lint/{allowed-fields.mjs → allowed-fields-1-1.mjs} +5 -5
  46. package/src/config/arazzo/failureAction/lint/index.cjs +8 -2
  47. package/src/config/arazzo/failureAction/lint/index.mjs +8 -2
  48. package/src/config/arazzo/failureAction/lint/parameters--only-workflow-id.cjs +28 -0
  49. package/src/config/arazzo/failureAction/lint/parameters--only-workflow-id.mjs +21 -0
  50. package/src/config/arazzo/failureAction/lint/parameters--type.cjs +23 -0
  51. package/src/config/arazzo/failureAction/lint/parameters--type.mjs +16 -0
  52. package/src/config/arazzo/failureAction/lint/step-id--pattern.cjs +26 -0
  53. package/src/config/arazzo/failureAction/lint/step-id--pattern.mjs +18 -0
  54. package/src/config/arazzo/failureAction/lint/workflow-id--pattern.cjs +35 -0
  55. package/src/config/arazzo/failureAction/lint/workflow-id--pattern.mjs +27 -0
  56. package/src/config/arazzo/failureAction/lint/workflow-id--source-type-consistency.cjs +23 -0
  57. package/src/config/arazzo/failureAction/lint/workflow-id--source-type-consistency.mjs +16 -0
  58. package/src/config/arazzo/payloadReplacement/lint/allowed-fields-1-0.cjs +23 -0
  59. package/src/config/arazzo/payloadReplacement/lint/allowed-fields-1-0.mjs +15 -0
  60. package/src/config/arazzo/payloadReplacement/lint/allowed-fields-1-1.cjs +21 -0
  61. package/src/config/arazzo/payloadReplacement/lint/allowed-fields-1-1.mjs +14 -0
  62. package/src/config/arazzo/payloadReplacement/lint/index.cjs +5 -2
  63. package/src/config/arazzo/payloadReplacement/lint/index.mjs +5 -2
  64. package/src/config/arazzo/payloadReplacement/lint/target-selector-type--equals.cjs +30 -0
  65. package/src/config/arazzo/payloadReplacement/lint/target-selector-type--equals.mjs +23 -0
  66. package/src/config/arazzo/payloadReplacement/lint/target-selector-type--type.cjs +31 -0
  67. package/src/config/arazzo/payloadReplacement/lint/target-selector-type--type.mjs +24 -0
  68. package/src/config/arazzo/{payloadReplacement → selector}/lint/allowed-fields.cjs +2 -2
  69. package/src/config/arazzo/{payloadReplacement → selector}/lint/allowed-fields.mjs +3 -3
  70. package/src/config/arazzo/selector/lint/context--type.cjs +23 -0
  71. package/src/config/arazzo/selector/lint/context--type.mjs +16 -0
  72. package/src/config/arazzo/selector/lint/index.cjs +18 -0
  73. package/src/config/arazzo/selector/lint/index.mjs +10 -0
  74. package/src/config/arazzo/selector/lint/selector--type.cjs +23 -0
  75. package/src/config/arazzo/selector/lint/selector--type.mjs +16 -0
  76. package/src/config/arazzo/selector/lint/type--equals.cjs +30 -0
  77. package/src/config/arazzo/selector/lint/type--equals.mjs +23 -0
  78. package/src/config/arazzo/selector/lint/type--type.cjs +31 -0
  79. package/src/config/arazzo/selector/lint/type--type.mjs +24 -0
  80. package/src/config/arazzo/selector/meta.cjs +12 -0
  81. package/src/config/arazzo/selector/meta.mjs +5 -0
  82. package/src/config/arazzo/sourceDescription/lint/index.cjs +3 -2
  83. package/src/config/arazzo/sourceDescription/lint/index.mjs +3 -2
  84. package/src/config/arazzo/sourceDescription/lint/name--pattern.cjs +2 -2
  85. package/src/config/arazzo/sourceDescription/lint/name--pattern.mjs +2 -2
  86. package/src/config/arazzo/sourceDescription/lint/{type--equals.cjs → type--equals-1-0.cjs} +3 -3
  87. package/src/config/arazzo/sourceDescription/lint/{type--equals.mjs → type--equals-1-0.mjs} +4 -4
  88. package/src/config/arazzo/sourceDescription/lint/type--equals-1-1.cjs +23 -0
  89. package/src/config/arazzo/sourceDescription/lint/type--equals-1-1.mjs +16 -0
  90. package/src/config/arazzo/step/lint/action--equals.cjs +23 -0
  91. package/src/config/arazzo/step/lint/action--equals.mjs +16 -0
  92. package/src/config/arazzo/step/lint/action--type.cjs +23 -0
  93. package/src/config/arazzo/step/lint/action--type.mjs +16 -0
  94. package/src/config/arazzo/step/lint/{allowed-fields.cjs → allowed-fields-1-0.cjs} +5 -3
  95. package/src/config/arazzo/step/lint/{allowed-fields.mjs → allowed-fields-1-0.mjs} +5 -4
  96. package/src/config/arazzo/step/lint/allowed-fields-1-1.cjs +21 -0
  97. package/src/config/arazzo/step/lint/allowed-fields-1-1.mjs +14 -0
  98. package/src/config/arazzo/step/lint/channel-path--mutually-exclusive.cjs +28 -0
  99. package/src/config/arazzo/step/lint/channel-path--mutually-exclusive.mjs +21 -0
  100. package/src/config/arazzo/step/lint/channel-path--type.cjs +23 -0
  101. package/src/config/arazzo/step/lint/channel-path--type.mjs +16 -0
  102. package/src/config/arazzo/step/lint/correlation-id--only-action-receive.cjs +34 -0
  103. package/src/config/arazzo/step/lint/correlation-id--only-action-receive.mjs +26 -0
  104. package/src/config/arazzo/step/lint/correlation-id--requires-action.cjs +30 -0
  105. package/src/config/arazzo/step/lint/correlation-id--requires-action.mjs +22 -0
  106. package/src/config/arazzo/step/lint/depends-on--resolved.cjs +32 -0
  107. package/src/config/arazzo/step/lint/depends-on--resolved.mjs +24 -0
  108. package/src/config/arazzo/step/lint/depends-on--source-type-consistency.cjs +23 -0
  109. package/src/config/arazzo/step/lint/depends-on--source-type-consistency.mjs +16 -0
  110. package/src/config/arazzo/step/lint/depends-on--type.cjs +23 -0
  111. package/src/config/arazzo/step/lint/depends-on--type.mjs +16 -0
  112. package/src/config/arazzo/step/lint/depends-on--unique.cjs +23 -0
  113. package/src/config/arazzo/step/lint/depends-on--unique.mjs +16 -0
  114. package/src/config/arazzo/step/lint/index.cjs +20 -3
  115. package/src/config/arazzo/step/lint/index.mjs +20 -3
  116. package/src/config/arazzo/step/lint/operation-id--mutually-exclusive.cjs +2 -2
  117. package/src/config/arazzo/step/lint/operation-id--mutually-exclusive.mjs +2 -2
  118. package/src/config/arazzo/step/lint/operation-id--source-type-consistency-1-0.cjs +25 -0
  119. package/src/config/arazzo/step/lint/operation-id--source-type-consistency-1-0.mjs +17 -0
  120. package/src/config/arazzo/step/lint/operation-id--source-type-consistency-1-1.cjs +23 -0
  121. package/src/config/arazzo/step/lint/operation-id--source-type-consistency-1-1.mjs +16 -0
  122. package/src/config/arazzo/step/lint/operation-path--mutually-exclusive.cjs +2 -2
  123. package/src/config/arazzo/step/lint/operation-path--mutually-exclusive.mjs +2 -2
  124. package/src/config/arazzo/step/lint/{outputs--values-type.cjs → outputs--values-type-1-0.cjs} +5 -3
  125. package/src/config/arazzo/step/lint/{outputs--values-type.mjs → outputs--values-type-1-0.mjs} +5 -4
  126. package/src/config/arazzo/step/lint/outputs--values-type-1-1.cjs +24 -0
  127. package/src/config/arazzo/step/lint/outputs--values-type-1-1.mjs +16 -0
  128. package/src/config/arazzo/step/lint/step-id--pattern.cjs +2 -2
  129. package/src/config/arazzo/step/lint/step-id--pattern.mjs +2 -2
  130. package/src/config/arazzo/step/lint/timeout--type.cjs +23 -0
  131. package/src/config/arazzo/step/lint/timeout--type.mjs +16 -0
  132. package/src/config/arazzo/step/lint/workflow-id--mutually-exclusive.cjs +2 -2
  133. package/src/config/arazzo/step/lint/workflow-id--mutually-exclusive.mjs +2 -2
  134. package/src/config/arazzo/step/lint/workflow-id--pattern.cjs +34 -0
  135. package/src/config/arazzo/step/lint/workflow-id--pattern.mjs +26 -0
  136. package/src/config/arazzo/step/lint/workflow-id--source-type-consistency.cjs +23 -0
  137. package/src/config/arazzo/step/lint/workflow-id--source-type-consistency.mjs +16 -0
  138. package/src/config/arazzo/successAction/lint/{allowed-fields.cjs → allowed-fields-1-0.cjs} +5 -3
  139. package/src/config/arazzo/successAction/lint/{allowed-fields.mjs → allowed-fields-1-0.mjs} +5 -4
  140. package/src/config/arazzo/successAction/lint/allowed-fields-1-1.cjs +25 -0
  141. package/src/config/arazzo/successAction/lint/allowed-fields-1-1.mjs +18 -0
  142. package/src/config/arazzo/successAction/lint/index.cjs +8 -2
  143. package/src/config/arazzo/successAction/lint/index.mjs +8 -2
  144. package/src/config/arazzo/successAction/lint/parameters--only-workflow-id.cjs +28 -0
  145. package/src/config/arazzo/successAction/lint/parameters--only-workflow-id.mjs +21 -0
  146. package/src/config/arazzo/successAction/lint/parameters--type.cjs +23 -0
  147. package/src/config/arazzo/successAction/lint/parameters--type.mjs +16 -0
  148. package/src/config/arazzo/successAction/lint/step-id--pattern.cjs +26 -0
  149. package/src/config/arazzo/successAction/lint/step-id--pattern.mjs +18 -0
  150. package/src/config/arazzo/successAction/lint/workflow-id--pattern.cjs +35 -0
  151. package/src/config/arazzo/successAction/lint/workflow-id--pattern.mjs +27 -0
  152. package/src/config/arazzo/successAction/lint/workflow-id--source-type-consistency.cjs +23 -0
  153. package/src/config/arazzo/successAction/lint/workflow-id--source-type-consistency.mjs +16 -0
  154. package/src/config/arazzo/target-specs.cjs +33 -5
  155. package/src/config/arazzo/target-specs.mjs +32 -4
  156. package/src/config/arazzo/workflow/lint/depends-on--source-type-consistency.cjs +23 -0
  157. package/src/config/arazzo/workflow/lint/depends-on--source-type-consistency.mjs +16 -0
  158. package/src/config/arazzo/workflow/lint/index.cjs +4 -2
  159. package/src/config/arazzo/workflow/lint/index.mjs +4 -2
  160. package/src/config/arazzo/workflow/lint/{outputs--values-type.cjs → outputs--values-type-1-0.cjs} +5 -3
  161. package/src/config/arazzo/workflow/lint/{outputs--values-type.mjs → outputs--values-type-1-0.mjs} +5 -4
  162. package/src/config/arazzo/workflow/lint/outputs--values-type-1-1.cjs +24 -0
  163. package/src/config/arazzo/workflow/lint/outputs--values-type-1-1.mjs +16 -0
  164. package/src/config/arazzo/workflow/lint/workflow-id--pattern.cjs +2 -2
  165. package/src/config/arazzo/workflow/lint/workflow-id--pattern.mjs +2 -2
  166. package/src/config/codes.cjs +50 -7
  167. package/src/config/codes.mjs +50 -7
  168. package/src/index.cjs +7 -0
  169. package/src/index.mjs +1 -0
  170. package/src/services/validation/linter-functions.cjs +150 -1
  171. package/src/services/validation/linter-functions.mjs +151 -2
  172. package/src/services/validation/providers/arazzo-11-json-schema-validation-provider.cjs +852 -0
  173. package/src/services/validation/providers/arazzo-11-json-schema-validation-provider.mjs +845 -0
  174. package/src/services/validation/validation-service.cjs +7 -1
  175. package/src/services/validation/validation-service.mjs +7 -1
  176. package/types/apidom-ls.d.ts +82 -7
  177. package/src/config/arazzo/criterionExpressionType/lint/index.mjs +0 -8
  178. package/src/config/arazzo/criterionExpressionType/lint/version--required.mjs +0 -22
  179. /package/src/config/arazzo/{criterionExpressionType → expressionType}/lint/allowed-fields.cjs +0 -0
  180. /package/src/config/arazzo/{criterionExpressionType → expressionType}/lint/allowed-fields.mjs +0 -0
  181. /package/src/config/arazzo/{criterionExpressionType → expressionType}/meta.cjs +0 -0
  182. /package/src/config/arazzo/{criterionExpressionType → expressionType}/meta.mjs +0 -0
@@ -1045,6 +1045,9 @@ var ApilintCodes = /*#__PURE__*/function (ApilintCodes) {
1045
1045
  ApilintCodes[ApilintCodes["ARAZZO_SPEC_FIELD_WORKFLOWS_NON_EMPTY"] = 9020402] = "ARAZZO_SPEC_FIELD_WORKFLOWS_NON_EMPTY";
1046
1046
  ApilintCodes[ApilintCodes["ARAZZO_SPEC_FIELD_COMPONENTS_TYPE"] = 9020500] = "ARAZZO_SPEC_FIELD_COMPONENTS_TYPE";
1047
1047
  ApilintCodes[ApilintCodes["ARAZZO_SPEC_NO_SCRIPT_TAGS"] = 9020600] = "ARAZZO_SPEC_NO_SCRIPT_TAGS";
1048
+ ApilintCodes[ApilintCodes["ARAZZO_SPEC_FIELD_$SELF_TYPE"] = 9020700] = "ARAZZO_SPEC_FIELD_$SELF_TYPE";
1049
+ ApilintCodes[ApilintCodes["ARAZZO_SPEC_FIELD_$SELF_FORMAT_URI"] = 9020701] = "ARAZZO_SPEC_FIELD_$SELF_FORMAT_URI";
1050
+ ApilintCodes[ApilintCodes["ARAZZO_SPEC_FIELD_$SELF_NO_FRAGMENT"] = 9020702] = "ARAZZO_SPEC_FIELD_$SELF_NO_FRAGMENT";
1048
1051
  // Source Description Object
1049
1052
  ApilintCodes[ApilintCodes["ARAZZO_SOURCE_DESCRIPTION"] = 9030000] = "ARAZZO_SOURCE_DESCRIPTION";
1050
1053
  ApilintCodes[ApilintCodes["ARAZZO_SOURCE_DESCRIPTION_FIELD_NAME_REQUIRED"] = 9030100] = "ARAZZO_SOURCE_DESCRIPTION_FIELD_NAME_REQUIRED";
@@ -1077,6 +1080,7 @@ var ApilintCodes = /*#__PURE__*/function (ApilintCodes) {
1077
1080
  ApilintCodes[ApilintCodes["ARAZZO_WORKFLOW_FIELD_WORKFLOW_ID_UNIQUE"] = 9040103] = "ARAZZO_WORKFLOW_FIELD_WORKFLOW_ID_UNIQUE";
1078
1081
  ApilintCodes[ApilintCodes["ARAZZO_WORKFLOW_FIELD_DEPENDS_ON_UNIQUE"] = 9040501] = "ARAZZO_WORKFLOW_FIELD_DEPENDS_ON_UNIQUE";
1079
1082
  ApilintCodes[ApilintCodes["ARAZZO_WORKFLOW_FIELD_DEPENDS_ON_RESOLVED"] = 9040502] = "ARAZZO_WORKFLOW_FIELD_DEPENDS_ON_RESOLVED";
1083
+ ApilintCodes[ApilintCodes["ARAZZO_WORKFLOW_FIELD_DEPENDS_ON_SOURCE_TYPE"] = 9040503] = "ARAZZO_WORKFLOW_FIELD_DEPENDS_ON_SOURCE_TYPE";
1080
1084
  ApilintCodes[ApilintCodes["ARAZZO_WORKFLOW_FIELD_STEP_ID_UNIQUE"] = 9040403] = "ARAZZO_WORKFLOW_FIELD_STEP_ID_UNIQUE";
1081
1085
  ApilintCodes[ApilintCodes["ARAZZO_WORKFLOW_FIELD_OUTPUTS_NAMES_UNIQUE"] = 9040803] = "ARAZZO_WORKFLOW_FIELD_OUTPUTS_NAMES_UNIQUE";
1082
1086
  ApilintCodes[ApilintCodes["ARAZZO_WORKFLOW_FIELD_OUTPUTS_VALUES_RUNTIME_EXPRESSION"] = 9040804] = "ARAZZO_WORKFLOW_FIELD_OUTPUTS_VALUES_RUNTIME_EXPRESSION";
@@ -1108,6 +1112,20 @@ var ApilintCodes = /*#__PURE__*/function (ApilintCodes) {
1108
1112
  ApilintCodes[ApilintCodes["ARAZZO_STEP_FIELD_SUCCESS_ACTIONS_NAMES_UNIQUE"] = 9050601] = "ARAZZO_STEP_FIELD_SUCCESS_ACTIONS_NAMES_UNIQUE";
1109
1113
  ApilintCodes[ApilintCodes["ARAZZO_STEP_FIELD_FAILURE_ACTIONS_NAMES_UNIQUE"] = 9050701] = "ARAZZO_STEP_FIELD_FAILURE_ACTIONS_NAMES_UNIQUE";
1110
1114
  ApilintCodes[ApilintCodes["ARAZZO_STEP_FIELD_WORKFLOW_ID_RESOLVED"] = 9050304] = "ARAZZO_STEP_FIELD_WORKFLOW_ID_RESOLVED";
1115
+ ApilintCodes[ApilintCodes["ARAZZO_STEP_FIELD_WORKFLOW_ID_PATTERN"] = 9050305] = "ARAZZO_STEP_FIELD_WORKFLOW_ID_PATTERN";
1116
+ ApilintCodes[ApilintCodes["ARAZZO_STEP_FIELD_OPERATION_ID_SOURCE_TYPE"] = 9050306] = "ARAZZO_STEP_FIELD_OPERATION_ID_SOURCE_TYPE";
1117
+ ApilintCodes[ApilintCodes["ARAZZO_STEP_FIELD_WORKFLOW_ID_SOURCE_TYPE"] = 9050307] = "ARAZZO_STEP_FIELD_WORKFLOW_ID_SOURCE_TYPE";
1118
+ ApilintCodes[ApilintCodes["ARAZZO_STEP_FIELD_CHANNEL_PATH_TYPE"] = 9051100] = "ARAZZO_STEP_FIELD_CHANNEL_PATH_TYPE";
1119
+ ApilintCodes[ApilintCodes["ARAZZO_STEP_FIELD_CHANNEL_PATH_MUTUALLY_EXCLUSIVE"] = 9051101] = "ARAZZO_STEP_FIELD_CHANNEL_PATH_MUTUALLY_EXCLUSIVE";
1120
+ ApilintCodes[ApilintCodes["ARAZZO_STEP_FIELD_TIMEOUT_TYPE"] = 9051200] = "ARAZZO_STEP_FIELD_TIMEOUT_TYPE";
1121
+ ApilintCodes[ApilintCodes["ARAZZO_STEP_FIELD_CORRELATION_ID_ONLY_ACTION_RECEIVE"] = 9051300] = "ARAZZO_STEP_FIELD_CORRELATION_ID_ONLY_ACTION_RECEIVE";
1122
+ ApilintCodes[ApilintCodes["ARAZZO_STEP_FIELD_CORRELATION_ID_REQUIRES_ACTION"] = 9051301] = "ARAZZO_STEP_FIELD_CORRELATION_ID_REQUIRES_ACTION";
1123
+ ApilintCodes[ApilintCodes["ARAZZO_STEP_FIELD_ACTION_TYPE"] = 9051400] = "ARAZZO_STEP_FIELD_ACTION_TYPE";
1124
+ ApilintCodes[ApilintCodes["ARAZZO_STEP_FIELD_ACTION_EQUALS"] = 9051401] = "ARAZZO_STEP_FIELD_ACTION_EQUALS";
1125
+ ApilintCodes[ApilintCodes["ARAZZO_STEP_FIELD_DEPENDS_ON_TYPE"] = 9051500] = "ARAZZO_STEP_FIELD_DEPENDS_ON_TYPE";
1126
+ ApilintCodes[ApilintCodes["ARAZZO_STEP_FIELD_DEPENDS_ON_UNIQUE"] = 9051501] = "ARAZZO_STEP_FIELD_DEPENDS_ON_UNIQUE";
1127
+ ApilintCodes[ApilintCodes["ARAZZO_STEP_FIELD_DEPENDS_ON_RESOLVED"] = 9051502] = "ARAZZO_STEP_FIELD_DEPENDS_ON_RESOLVED";
1128
+ ApilintCodes[ApilintCodes["ARAZZO_STEP_FIELD_DEPENDS_ON_SOURCE_TYPE"] = 9051503] = "ARAZZO_STEP_FIELD_DEPENDS_ON_SOURCE_TYPE";
1111
1129
  // Parameter Object
1112
1130
  ApilintCodes[ApilintCodes["ARAZZO_PARAMETER"] = 9060000] = "ARAZZO_PARAMETER";
1113
1131
  ApilintCodes[ApilintCodes["ARAZZO_PARAMETER_FIELD_NAME_REQUIRED"] = 9060100] = "ARAZZO_PARAMETER_FIELD_NAME_REQUIRED";
@@ -1129,7 +1147,12 @@ var ApilintCodes = /*#__PURE__*/function (ApilintCodes) {
1129
1147
  ApilintCodes[ApilintCodes["ARAZZO_SUCCESS_ACTION_FIELD_WORKFLOW_ID_MUTUALLY_EXCLUSIVE"] = 9070600] = "ARAZZO_SUCCESS_ACTION_FIELD_WORKFLOW_ID_MUTUALLY_EXCLUSIVE";
1130
1148
  ApilintCodes[ApilintCodes["ARAZZO_SUCCESS_ACTION_FIELD_STEP_ID_MUTUALLY_EXCLUSIVE"] = 9070601] = "ARAZZO_SUCCESS_ACTION_FIELD_STEP_ID_MUTUALLY_EXCLUSIVE";
1131
1149
  ApilintCodes[ApilintCodes["ARAZZO_SUCCESS_ACTION_FIELD_WORKFLOW_ID_RESOLVED"] = 9070301] = "ARAZZO_SUCCESS_ACTION_FIELD_WORKFLOW_ID_RESOLVED";
1150
+ ApilintCodes[ApilintCodes["ARAZZO_SUCCESS_ACTION_FIELD_WORKFLOW_ID_PATTERN"] = 9070302] = "ARAZZO_SUCCESS_ACTION_FIELD_WORKFLOW_ID_PATTERN";
1151
+ ApilintCodes[ApilintCodes["ARAZZO_SUCCESS_ACTION_FIELD_WORKFLOW_ID_SOURCE_TYPE"] = 9070303] = "ARAZZO_SUCCESS_ACTION_FIELD_WORKFLOW_ID_SOURCE_TYPE";
1132
1152
  ApilintCodes[ApilintCodes["ARAZZO_SUCCESS_ACTION_FIELD_STEP_ID_RESOLVED"] = 9070401] = "ARAZZO_SUCCESS_ACTION_FIELD_STEP_ID_RESOLVED";
1153
+ ApilintCodes[ApilintCodes["ARAZZO_SUCCESS_ACTION_FIELD_STEP_ID_PATTERN"] = 9070402] = "ARAZZO_SUCCESS_ACTION_FIELD_STEP_ID_PATTERN";
1154
+ ApilintCodes[ApilintCodes["ARAZZO_SUCCESS_ACTION_FIELD_PARAMETERS_TYPE"] = 9070700] = "ARAZZO_SUCCESS_ACTION_FIELD_PARAMETERS_TYPE";
1155
+ ApilintCodes[ApilintCodes["ARAZZO_SUCCESS_ACTION_FIELD_PARAMETERS_ONLY_WORKFLOW_ID"] = 9070701] = "ARAZZO_SUCCESS_ACTION_FIELD_PARAMETERS_ONLY_WORKFLOW_ID";
1133
1156
  // Failure Action Object
1134
1157
  ApilintCodes[ApilintCodes["ARAZZO_FAILURE_ACTION"] = 9080000] = "ARAZZO_FAILURE_ACTION";
1135
1158
  ApilintCodes[ApilintCodes["ARAZZO_FAILURE_ACTION_FIELD_NAME_REQUIRED"] = 9080100] = "ARAZZO_FAILURE_ACTION_FIELD_NAME_REQUIRED";
@@ -1149,7 +1172,12 @@ var ApilintCodes = /*#__PURE__*/function (ApilintCodes) {
1149
1172
  ApilintCodes[ApilintCodes["ARAZZO_FAILURE_ACTION_FIELD_RETRY_AFTER_ONLY_RETRY"] = 9080900] = "ARAZZO_FAILURE_ACTION_FIELD_RETRY_AFTER_ONLY_RETRY";
1150
1173
  ApilintCodes[ApilintCodes["ARAZZO_FAILURE_ACTION_FIELD_RETRY_LIMIT_ONLY_RETRY"] = 9080901] = "ARAZZO_FAILURE_ACTION_FIELD_RETRY_LIMIT_ONLY_RETRY";
1151
1174
  ApilintCodes[ApilintCodes["ARAZZO_FAILURE_ACTION_FIELD_WORKFLOW_ID_RESOLVED"] = 9080301] = "ARAZZO_FAILURE_ACTION_FIELD_WORKFLOW_ID_RESOLVED";
1175
+ ApilintCodes[ApilintCodes["ARAZZO_FAILURE_ACTION_FIELD_WORKFLOW_ID_PATTERN"] = 9080302] = "ARAZZO_FAILURE_ACTION_FIELD_WORKFLOW_ID_PATTERN";
1176
+ ApilintCodes[ApilintCodes["ARAZZO_FAILURE_ACTION_FIELD_WORKFLOW_ID_SOURCE_TYPE"] = 9080303] = "ARAZZO_FAILURE_ACTION_FIELD_WORKFLOW_ID_SOURCE_TYPE";
1152
1177
  ApilintCodes[ApilintCodes["ARAZZO_FAILURE_ACTION_FIELD_STEP_ID_RESOLVED"] = 9080401] = "ARAZZO_FAILURE_ACTION_FIELD_STEP_ID_RESOLVED";
1178
+ ApilintCodes[ApilintCodes["ARAZZO_FAILURE_ACTION_FIELD_STEP_ID_PATTERN"] = 9080402] = "ARAZZO_FAILURE_ACTION_FIELD_STEP_ID_PATTERN";
1179
+ ApilintCodes[ApilintCodes["ARAZZO_FAILURE_ACTION_FIELD_PARAMETERS_TYPE"] = 9081000] = "ARAZZO_FAILURE_ACTION_FIELD_PARAMETERS_TYPE";
1180
+ ApilintCodes[ApilintCodes["ARAZZO_FAILURE_ACTION_FIELD_PARAMETERS_ONLY_WORKFLOW_ID"] = 9081001] = "ARAZZO_FAILURE_ACTION_FIELD_PARAMETERS_ONLY_WORKFLOW_ID";
1153
1181
  // Components Object
1154
1182
  ApilintCodes[ApilintCodes["ARAZZO_COMPONENTS"] = 9090000] = "ARAZZO_COMPONENTS";
1155
1183
  ApilintCodes[ApilintCodes["ARAZZO_COMPONENTS_FIELD_INPUTS_TYPE"] = 9090100] = "ARAZZO_COMPONENTS_FIELD_INPUTS_TYPE";
@@ -1174,13 +1202,17 @@ var ApilintCodes = /*#__PURE__*/function (ApilintCodes) {
1174
1202
  ApilintCodes[ApilintCodes["ARAZZO_CRITERION_FIELD_CONTEXT_REQUIRED_WHEN_TYPE"] = 9100400] = "ARAZZO_CRITERION_FIELD_CONTEXT_REQUIRED_WHEN_TYPE";
1175
1203
  ApilintCodes[ApilintCodes["ARAZZO_CRITERION_FIELD_CONTEXT_RUNTIME_EXPRESSION"] = 9100201] = "ARAZZO_CRITERION_FIELD_CONTEXT_RUNTIME_EXPRESSION";
1176
1204
  ApilintCodes[ApilintCodes["ARAZZO_CRITERION_FIELD_CONDITION_REGEX_VALID"] = 9100102] = "ARAZZO_CRITERION_FIELD_CONDITION_REGEX_VALID";
1177
- // Criterion Expression Type Object
1178
- ApilintCodes[ApilintCodes["ARAZZO_CRITERION_EXPRESSION_TYPE"] = 9110000] = "ARAZZO_CRITERION_EXPRESSION_TYPE";
1179
- ApilintCodes[ApilintCodes["ARAZZO_CRITERION_EXPRESSION_TYPE_FIELD_TYPE_REQUIRED"] = 9110100] = "ARAZZO_CRITERION_EXPRESSION_TYPE_FIELD_TYPE_REQUIRED";
1180
- ApilintCodes[ApilintCodes["ARAZZO_CRITERION_EXPRESSION_TYPE_FIELD_TYPE_TYPE"] = 9110101] = "ARAZZO_CRITERION_EXPRESSION_TYPE_FIELD_TYPE_TYPE";
1181
- ApilintCodes[ApilintCodes["ARAZZO_CRITERION_EXPRESSION_TYPE_FIELD_TYPE_EQUALS"] = 9110102] = "ARAZZO_CRITERION_EXPRESSION_TYPE_FIELD_TYPE_EQUALS";
1182
- ApilintCodes[ApilintCodes["ARAZZO_CRITERION_EXPRESSION_TYPE_FIELD_VERSION_REQUIRED"] = 9110200] = "ARAZZO_CRITERION_EXPRESSION_TYPE_FIELD_VERSION_REQUIRED";
1183
- ApilintCodes[ApilintCodes["ARAZZO_CRITERION_EXPRESSION_TYPE_FIELD_VERSION_TYPE"] = 9110201] = "ARAZZO_CRITERION_EXPRESSION_TYPE_FIELD_VERSION_TYPE";
1205
+ // Expression Type Object (renamed from Criterion Expression Type Object in Arazzo 1.1;
1206
+ // shared by Criterion, Selector, and Payload Replacement Objects)
1207
+ ApilintCodes[ApilintCodes["ARAZZO_EXPRESSION_TYPE"] = 9110000] = "ARAZZO_EXPRESSION_TYPE";
1208
+ ApilintCodes[ApilintCodes["ARAZZO_EXPRESSION_TYPE_FIELD_TYPE_REQUIRED"] = 9110100] = "ARAZZO_EXPRESSION_TYPE_FIELD_TYPE_REQUIRED";
1209
+ ApilintCodes[ApilintCodes["ARAZZO_EXPRESSION_TYPE_FIELD_TYPE_TYPE"] = 9110101] = "ARAZZO_EXPRESSION_TYPE_FIELD_TYPE_TYPE";
1210
+ ApilintCodes[ApilintCodes["ARAZZO_EXPRESSION_TYPE_FIELD_TYPE_EQUALS"] = 9110102] = "ARAZZO_EXPRESSION_TYPE_FIELD_TYPE_EQUALS";
1211
+ ApilintCodes[ApilintCodes["ARAZZO_EXPRESSION_TYPE_FIELD_VERSION_REQUIRED"] = 9110200] = "ARAZZO_EXPRESSION_TYPE_FIELD_VERSION_REQUIRED";
1212
+ ApilintCodes[ApilintCodes["ARAZZO_EXPRESSION_TYPE_FIELD_VERSION_TYPE"] = 9110201] = "ARAZZO_EXPRESSION_TYPE_FIELD_VERSION_TYPE";
1213
+ ApilintCodes[ApilintCodes["ARAZZO_EXPRESSION_TYPE_FIELD_VERSION_EQUALS_JSONPATH"] = 9110300] = "ARAZZO_EXPRESSION_TYPE_FIELD_VERSION_EQUALS_JSONPATH";
1214
+ ApilintCodes[ApilintCodes["ARAZZO_EXPRESSION_TYPE_FIELD_VERSION_EQUALS_XPATH"] = 9110301] = "ARAZZO_EXPRESSION_TYPE_FIELD_VERSION_EQUALS_XPATH";
1215
+ ApilintCodes[ApilintCodes["ARAZZO_EXPRESSION_TYPE_FIELD_VERSION_EQUALS_JSONPOINTER"] = 9110302] = "ARAZZO_EXPRESSION_TYPE_FIELD_VERSION_EQUALS_JSONPOINTER";
1184
1216
  // Request Body Object
1185
1217
  ApilintCodes[ApilintCodes["ARAZZO_REQUEST_BODY"] = 9120000] = "ARAZZO_REQUEST_BODY";
1186
1218
  ApilintCodes[ApilintCodes["ARAZZO_REQUEST_BODY_FIELD_CONTENT_TYPE_TYPE"] = 9120100] = "ARAZZO_REQUEST_BODY_FIELD_CONTENT_TYPE_TYPE";
@@ -1191,11 +1223,22 @@ var ApilintCodes = /*#__PURE__*/function (ApilintCodes) {
1191
1223
  ApilintCodes[ApilintCodes["ARAZZO_PAYLOAD_REPLACEMENT_FIELD_TARGET_REQUIRED"] = 9130100] = "ARAZZO_PAYLOAD_REPLACEMENT_FIELD_TARGET_REQUIRED";
1192
1224
  ApilintCodes[ApilintCodes["ARAZZO_PAYLOAD_REPLACEMENT_FIELD_TARGET_TYPE"] = 9130101] = "ARAZZO_PAYLOAD_REPLACEMENT_FIELD_TARGET_TYPE";
1193
1225
  ApilintCodes[ApilintCodes["ARAZZO_PAYLOAD_REPLACEMENT_FIELD_VALUE_REQUIRED"] = 9130200] = "ARAZZO_PAYLOAD_REPLACEMENT_FIELD_VALUE_REQUIRED";
1226
+ ApilintCodes[ApilintCodes["ARAZZO_PAYLOAD_REPLACEMENT_FIELD_TARGET_SELECTOR_TYPE_TYPE"] = 9130300] = "ARAZZO_PAYLOAD_REPLACEMENT_FIELD_TARGET_SELECTOR_TYPE_TYPE";
1227
+ ApilintCodes[ApilintCodes["ARAZZO_PAYLOAD_REPLACEMENT_FIELD_TARGET_SELECTOR_TYPE_EQUALS"] = 9130301] = "ARAZZO_PAYLOAD_REPLACEMENT_FIELD_TARGET_SELECTOR_TYPE_EQUALS";
1194
1228
  // Reusable Object
1195
1229
  ApilintCodes[ApilintCodes["ARAZZO_REUSABLE"] = 9140000] = "ARAZZO_REUSABLE";
1196
1230
  ApilintCodes[ApilintCodes["ARAZZO_REUSABLE_FIELD_REFERENCE_REQUIRED"] = 9140100] = "ARAZZO_REUSABLE_FIELD_REFERENCE_REQUIRED";
1197
1231
  ApilintCodes[ApilintCodes["ARAZZO_REUSABLE_FIELD_REFERENCE_TYPE"] = 9140101] = "ARAZZO_REUSABLE_FIELD_REFERENCE_TYPE";
1198
1232
  ApilintCodes[ApilintCodes["ARAZZO_REUSABLE_FIELD_VALUE_TYPE"] = 9140200] = "ARAZZO_REUSABLE_FIELD_VALUE_TYPE";
1233
+ // Selector Object (introduced in Arazzo 1.1)
1234
+ // `context`, `selector` and `type` have no "required" codes: apidom only disambiguates an
1235
+ // object as a `selector` element once all three are already present (see
1236
+ // OAI/Arazzo-Specification#519), so those checks could never fire.
1237
+ ApilintCodes[ApilintCodes["ARAZZO_SELECTOR"] = 9150000] = "ARAZZO_SELECTOR";
1238
+ ApilintCodes[ApilintCodes["ARAZZO_SELECTOR_FIELD_CONTEXT_TYPE"] = 9150101] = "ARAZZO_SELECTOR_FIELD_CONTEXT_TYPE";
1239
+ ApilintCodes[ApilintCodes["ARAZZO_SELECTOR_FIELD_SELECTOR_TYPE"] = 9150201] = "ARAZZO_SELECTOR_FIELD_SELECTOR_TYPE";
1240
+ ApilintCodes[ApilintCodes["ARAZZO_SELECTOR_FIELD_TYPE_TYPE"] = 9150301] = "ARAZZO_SELECTOR_FIELD_TYPE_TYPE";
1241
+ ApilintCodes[ApilintCodes["ARAZZO_SELECTOR_FIELD_TYPE_EQUALS"] = 9150302] = "ARAZZO_SELECTOR_FIELD_TYPE_EQUALS";
1199
1242
  ApilintCodes[ApilintCodes["OVERLAY"] = 10000000] = "OVERLAY";
1200
1243
  ApilintCodes[ApilintCodes["OVERLAY_NOT_DETECTED"] = 10000001] = "OVERLAY_NOT_DETECTED";
1201
1244
  // Overlay Specification Object (root)
@@ -1039,6 +1039,9 @@ var ApilintCodes = /*#__PURE__*/function (ApilintCodes) {
1039
1039
  ApilintCodes[ApilintCodes["ARAZZO_SPEC_FIELD_WORKFLOWS_NON_EMPTY"] = 9020402] = "ARAZZO_SPEC_FIELD_WORKFLOWS_NON_EMPTY";
1040
1040
  ApilintCodes[ApilintCodes["ARAZZO_SPEC_FIELD_COMPONENTS_TYPE"] = 9020500] = "ARAZZO_SPEC_FIELD_COMPONENTS_TYPE";
1041
1041
  ApilintCodes[ApilintCodes["ARAZZO_SPEC_NO_SCRIPT_TAGS"] = 9020600] = "ARAZZO_SPEC_NO_SCRIPT_TAGS";
1042
+ ApilintCodes[ApilintCodes["ARAZZO_SPEC_FIELD_$SELF_TYPE"] = 9020700] = "ARAZZO_SPEC_FIELD_$SELF_TYPE";
1043
+ ApilintCodes[ApilintCodes["ARAZZO_SPEC_FIELD_$SELF_FORMAT_URI"] = 9020701] = "ARAZZO_SPEC_FIELD_$SELF_FORMAT_URI";
1044
+ ApilintCodes[ApilintCodes["ARAZZO_SPEC_FIELD_$SELF_NO_FRAGMENT"] = 9020702] = "ARAZZO_SPEC_FIELD_$SELF_NO_FRAGMENT";
1042
1045
  // Source Description Object
1043
1046
  ApilintCodes[ApilintCodes["ARAZZO_SOURCE_DESCRIPTION"] = 9030000] = "ARAZZO_SOURCE_DESCRIPTION";
1044
1047
  ApilintCodes[ApilintCodes["ARAZZO_SOURCE_DESCRIPTION_FIELD_NAME_REQUIRED"] = 9030100] = "ARAZZO_SOURCE_DESCRIPTION_FIELD_NAME_REQUIRED";
@@ -1071,6 +1074,7 @@ var ApilintCodes = /*#__PURE__*/function (ApilintCodes) {
1071
1074
  ApilintCodes[ApilintCodes["ARAZZO_WORKFLOW_FIELD_WORKFLOW_ID_UNIQUE"] = 9040103] = "ARAZZO_WORKFLOW_FIELD_WORKFLOW_ID_UNIQUE";
1072
1075
  ApilintCodes[ApilintCodes["ARAZZO_WORKFLOW_FIELD_DEPENDS_ON_UNIQUE"] = 9040501] = "ARAZZO_WORKFLOW_FIELD_DEPENDS_ON_UNIQUE";
1073
1076
  ApilintCodes[ApilintCodes["ARAZZO_WORKFLOW_FIELD_DEPENDS_ON_RESOLVED"] = 9040502] = "ARAZZO_WORKFLOW_FIELD_DEPENDS_ON_RESOLVED";
1077
+ ApilintCodes[ApilintCodes["ARAZZO_WORKFLOW_FIELD_DEPENDS_ON_SOURCE_TYPE"] = 9040503] = "ARAZZO_WORKFLOW_FIELD_DEPENDS_ON_SOURCE_TYPE";
1074
1078
  ApilintCodes[ApilintCodes["ARAZZO_WORKFLOW_FIELD_STEP_ID_UNIQUE"] = 9040403] = "ARAZZO_WORKFLOW_FIELD_STEP_ID_UNIQUE";
1075
1079
  ApilintCodes[ApilintCodes["ARAZZO_WORKFLOW_FIELD_OUTPUTS_NAMES_UNIQUE"] = 9040803] = "ARAZZO_WORKFLOW_FIELD_OUTPUTS_NAMES_UNIQUE";
1076
1080
  ApilintCodes[ApilintCodes["ARAZZO_WORKFLOW_FIELD_OUTPUTS_VALUES_RUNTIME_EXPRESSION"] = 9040804] = "ARAZZO_WORKFLOW_FIELD_OUTPUTS_VALUES_RUNTIME_EXPRESSION";
@@ -1102,6 +1106,20 @@ var ApilintCodes = /*#__PURE__*/function (ApilintCodes) {
1102
1106
  ApilintCodes[ApilintCodes["ARAZZO_STEP_FIELD_SUCCESS_ACTIONS_NAMES_UNIQUE"] = 9050601] = "ARAZZO_STEP_FIELD_SUCCESS_ACTIONS_NAMES_UNIQUE";
1103
1107
  ApilintCodes[ApilintCodes["ARAZZO_STEP_FIELD_FAILURE_ACTIONS_NAMES_UNIQUE"] = 9050701] = "ARAZZO_STEP_FIELD_FAILURE_ACTIONS_NAMES_UNIQUE";
1104
1108
  ApilintCodes[ApilintCodes["ARAZZO_STEP_FIELD_WORKFLOW_ID_RESOLVED"] = 9050304] = "ARAZZO_STEP_FIELD_WORKFLOW_ID_RESOLVED";
1109
+ ApilintCodes[ApilintCodes["ARAZZO_STEP_FIELD_WORKFLOW_ID_PATTERN"] = 9050305] = "ARAZZO_STEP_FIELD_WORKFLOW_ID_PATTERN";
1110
+ ApilintCodes[ApilintCodes["ARAZZO_STEP_FIELD_OPERATION_ID_SOURCE_TYPE"] = 9050306] = "ARAZZO_STEP_FIELD_OPERATION_ID_SOURCE_TYPE";
1111
+ ApilintCodes[ApilintCodes["ARAZZO_STEP_FIELD_WORKFLOW_ID_SOURCE_TYPE"] = 9050307] = "ARAZZO_STEP_FIELD_WORKFLOW_ID_SOURCE_TYPE";
1112
+ ApilintCodes[ApilintCodes["ARAZZO_STEP_FIELD_CHANNEL_PATH_TYPE"] = 9051100] = "ARAZZO_STEP_FIELD_CHANNEL_PATH_TYPE";
1113
+ ApilintCodes[ApilintCodes["ARAZZO_STEP_FIELD_CHANNEL_PATH_MUTUALLY_EXCLUSIVE"] = 9051101] = "ARAZZO_STEP_FIELD_CHANNEL_PATH_MUTUALLY_EXCLUSIVE";
1114
+ ApilintCodes[ApilintCodes["ARAZZO_STEP_FIELD_TIMEOUT_TYPE"] = 9051200] = "ARAZZO_STEP_FIELD_TIMEOUT_TYPE";
1115
+ ApilintCodes[ApilintCodes["ARAZZO_STEP_FIELD_CORRELATION_ID_ONLY_ACTION_RECEIVE"] = 9051300] = "ARAZZO_STEP_FIELD_CORRELATION_ID_ONLY_ACTION_RECEIVE";
1116
+ ApilintCodes[ApilintCodes["ARAZZO_STEP_FIELD_CORRELATION_ID_REQUIRES_ACTION"] = 9051301] = "ARAZZO_STEP_FIELD_CORRELATION_ID_REQUIRES_ACTION";
1117
+ ApilintCodes[ApilintCodes["ARAZZO_STEP_FIELD_ACTION_TYPE"] = 9051400] = "ARAZZO_STEP_FIELD_ACTION_TYPE";
1118
+ ApilintCodes[ApilintCodes["ARAZZO_STEP_FIELD_ACTION_EQUALS"] = 9051401] = "ARAZZO_STEP_FIELD_ACTION_EQUALS";
1119
+ ApilintCodes[ApilintCodes["ARAZZO_STEP_FIELD_DEPENDS_ON_TYPE"] = 9051500] = "ARAZZO_STEP_FIELD_DEPENDS_ON_TYPE";
1120
+ ApilintCodes[ApilintCodes["ARAZZO_STEP_FIELD_DEPENDS_ON_UNIQUE"] = 9051501] = "ARAZZO_STEP_FIELD_DEPENDS_ON_UNIQUE";
1121
+ ApilintCodes[ApilintCodes["ARAZZO_STEP_FIELD_DEPENDS_ON_RESOLVED"] = 9051502] = "ARAZZO_STEP_FIELD_DEPENDS_ON_RESOLVED";
1122
+ ApilintCodes[ApilintCodes["ARAZZO_STEP_FIELD_DEPENDS_ON_SOURCE_TYPE"] = 9051503] = "ARAZZO_STEP_FIELD_DEPENDS_ON_SOURCE_TYPE";
1105
1123
  // Parameter Object
1106
1124
  ApilintCodes[ApilintCodes["ARAZZO_PARAMETER"] = 9060000] = "ARAZZO_PARAMETER";
1107
1125
  ApilintCodes[ApilintCodes["ARAZZO_PARAMETER_FIELD_NAME_REQUIRED"] = 9060100] = "ARAZZO_PARAMETER_FIELD_NAME_REQUIRED";
@@ -1123,7 +1141,12 @@ var ApilintCodes = /*#__PURE__*/function (ApilintCodes) {
1123
1141
  ApilintCodes[ApilintCodes["ARAZZO_SUCCESS_ACTION_FIELD_WORKFLOW_ID_MUTUALLY_EXCLUSIVE"] = 9070600] = "ARAZZO_SUCCESS_ACTION_FIELD_WORKFLOW_ID_MUTUALLY_EXCLUSIVE";
1124
1142
  ApilintCodes[ApilintCodes["ARAZZO_SUCCESS_ACTION_FIELD_STEP_ID_MUTUALLY_EXCLUSIVE"] = 9070601] = "ARAZZO_SUCCESS_ACTION_FIELD_STEP_ID_MUTUALLY_EXCLUSIVE";
1125
1143
  ApilintCodes[ApilintCodes["ARAZZO_SUCCESS_ACTION_FIELD_WORKFLOW_ID_RESOLVED"] = 9070301] = "ARAZZO_SUCCESS_ACTION_FIELD_WORKFLOW_ID_RESOLVED";
1144
+ ApilintCodes[ApilintCodes["ARAZZO_SUCCESS_ACTION_FIELD_WORKFLOW_ID_PATTERN"] = 9070302] = "ARAZZO_SUCCESS_ACTION_FIELD_WORKFLOW_ID_PATTERN";
1145
+ ApilintCodes[ApilintCodes["ARAZZO_SUCCESS_ACTION_FIELD_WORKFLOW_ID_SOURCE_TYPE"] = 9070303] = "ARAZZO_SUCCESS_ACTION_FIELD_WORKFLOW_ID_SOURCE_TYPE";
1126
1146
  ApilintCodes[ApilintCodes["ARAZZO_SUCCESS_ACTION_FIELD_STEP_ID_RESOLVED"] = 9070401] = "ARAZZO_SUCCESS_ACTION_FIELD_STEP_ID_RESOLVED";
1147
+ ApilintCodes[ApilintCodes["ARAZZO_SUCCESS_ACTION_FIELD_STEP_ID_PATTERN"] = 9070402] = "ARAZZO_SUCCESS_ACTION_FIELD_STEP_ID_PATTERN";
1148
+ ApilintCodes[ApilintCodes["ARAZZO_SUCCESS_ACTION_FIELD_PARAMETERS_TYPE"] = 9070700] = "ARAZZO_SUCCESS_ACTION_FIELD_PARAMETERS_TYPE";
1149
+ ApilintCodes[ApilintCodes["ARAZZO_SUCCESS_ACTION_FIELD_PARAMETERS_ONLY_WORKFLOW_ID"] = 9070701] = "ARAZZO_SUCCESS_ACTION_FIELD_PARAMETERS_ONLY_WORKFLOW_ID";
1127
1150
  // Failure Action Object
1128
1151
  ApilintCodes[ApilintCodes["ARAZZO_FAILURE_ACTION"] = 9080000] = "ARAZZO_FAILURE_ACTION";
1129
1152
  ApilintCodes[ApilintCodes["ARAZZO_FAILURE_ACTION_FIELD_NAME_REQUIRED"] = 9080100] = "ARAZZO_FAILURE_ACTION_FIELD_NAME_REQUIRED";
@@ -1143,7 +1166,12 @@ var ApilintCodes = /*#__PURE__*/function (ApilintCodes) {
1143
1166
  ApilintCodes[ApilintCodes["ARAZZO_FAILURE_ACTION_FIELD_RETRY_AFTER_ONLY_RETRY"] = 9080900] = "ARAZZO_FAILURE_ACTION_FIELD_RETRY_AFTER_ONLY_RETRY";
1144
1167
  ApilintCodes[ApilintCodes["ARAZZO_FAILURE_ACTION_FIELD_RETRY_LIMIT_ONLY_RETRY"] = 9080901] = "ARAZZO_FAILURE_ACTION_FIELD_RETRY_LIMIT_ONLY_RETRY";
1145
1168
  ApilintCodes[ApilintCodes["ARAZZO_FAILURE_ACTION_FIELD_WORKFLOW_ID_RESOLVED"] = 9080301] = "ARAZZO_FAILURE_ACTION_FIELD_WORKFLOW_ID_RESOLVED";
1169
+ ApilintCodes[ApilintCodes["ARAZZO_FAILURE_ACTION_FIELD_WORKFLOW_ID_PATTERN"] = 9080302] = "ARAZZO_FAILURE_ACTION_FIELD_WORKFLOW_ID_PATTERN";
1170
+ ApilintCodes[ApilintCodes["ARAZZO_FAILURE_ACTION_FIELD_WORKFLOW_ID_SOURCE_TYPE"] = 9080303] = "ARAZZO_FAILURE_ACTION_FIELD_WORKFLOW_ID_SOURCE_TYPE";
1146
1171
  ApilintCodes[ApilintCodes["ARAZZO_FAILURE_ACTION_FIELD_STEP_ID_RESOLVED"] = 9080401] = "ARAZZO_FAILURE_ACTION_FIELD_STEP_ID_RESOLVED";
1172
+ ApilintCodes[ApilintCodes["ARAZZO_FAILURE_ACTION_FIELD_STEP_ID_PATTERN"] = 9080402] = "ARAZZO_FAILURE_ACTION_FIELD_STEP_ID_PATTERN";
1173
+ ApilintCodes[ApilintCodes["ARAZZO_FAILURE_ACTION_FIELD_PARAMETERS_TYPE"] = 9081000] = "ARAZZO_FAILURE_ACTION_FIELD_PARAMETERS_TYPE";
1174
+ ApilintCodes[ApilintCodes["ARAZZO_FAILURE_ACTION_FIELD_PARAMETERS_ONLY_WORKFLOW_ID"] = 9081001] = "ARAZZO_FAILURE_ACTION_FIELD_PARAMETERS_ONLY_WORKFLOW_ID";
1147
1175
  // Components Object
1148
1176
  ApilintCodes[ApilintCodes["ARAZZO_COMPONENTS"] = 9090000] = "ARAZZO_COMPONENTS";
1149
1177
  ApilintCodes[ApilintCodes["ARAZZO_COMPONENTS_FIELD_INPUTS_TYPE"] = 9090100] = "ARAZZO_COMPONENTS_FIELD_INPUTS_TYPE";
@@ -1168,13 +1196,17 @@ var ApilintCodes = /*#__PURE__*/function (ApilintCodes) {
1168
1196
  ApilintCodes[ApilintCodes["ARAZZO_CRITERION_FIELD_CONTEXT_REQUIRED_WHEN_TYPE"] = 9100400] = "ARAZZO_CRITERION_FIELD_CONTEXT_REQUIRED_WHEN_TYPE";
1169
1197
  ApilintCodes[ApilintCodes["ARAZZO_CRITERION_FIELD_CONTEXT_RUNTIME_EXPRESSION"] = 9100201] = "ARAZZO_CRITERION_FIELD_CONTEXT_RUNTIME_EXPRESSION";
1170
1198
  ApilintCodes[ApilintCodes["ARAZZO_CRITERION_FIELD_CONDITION_REGEX_VALID"] = 9100102] = "ARAZZO_CRITERION_FIELD_CONDITION_REGEX_VALID";
1171
- // Criterion Expression Type Object
1172
- ApilintCodes[ApilintCodes["ARAZZO_CRITERION_EXPRESSION_TYPE"] = 9110000] = "ARAZZO_CRITERION_EXPRESSION_TYPE";
1173
- ApilintCodes[ApilintCodes["ARAZZO_CRITERION_EXPRESSION_TYPE_FIELD_TYPE_REQUIRED"] = 9110100] = "ARAZZO_CRITERION_EXPRESSION_TYPE_FIELD_TYPE_REQUIRED";
1174
- ApilintCodes[ApilintCodes["ARAZZO_CRITERION_EXPRESSION_TYPE_FIELD_TYPE_TYPE"] = 9110101] = "ARAZZO_CRITERION_EXPRESSION_TYPE_FIELD_TYPE_TYPE";
1175
- ApilintCodes[ApilintCodes["ARAZZO_CRITERION_EXPRESSION_TYPE_FIELD_TYPE_EQUALS"] = 9110102] = "ARAZZO_CRITERION_EXPRESSION_TYPE_FIELD_TYPE_EQUALS";
1176
- ApilintCodes[ApilintCodes["ARAZZO_CRITERION_EXPRESSION_TYPE_FIELD_VERSION_REQUIRED"] = 9110200] = "ARAZZO_CRITERION_EXPRESSION_TYPE_FIELD_VERSION_REQUIRED";
1177
- ApilintCodes[ApilintCodes["ARAZZO_CRITERION_EXPRESSION_TYPE_FIELD_VERSION_TYPE"] = 9110201] = "ARAZZO_CRITERION_EXPRESSION_TYPE_FIELD_VERSION_TYPE";
1199
+ // Expression Type Object (renamed from Criterion Expression Type Object in Arazzo 1.1;
1200
+ // shared by Criterion, Selector, and Payload Replacement Objects)
1201
+ ApilintCodes[ApilintCodes["ARAZZO_EXPRESSION_TYPE"] = 9110000] = "ARAZZO_EXPRESSION_TYPE";
1202
+ ApilintCodes[ApilintCodes["ARAZZO_EXPRESSION_TYPE_FIELD_TYPE_REQUIRED"] = 9110100] = "ARAZZO_EXPRESSION_TYPE_FIELD_TYPE_REQUIRED";
1203
+ ApilintCodes[ApilintCodes["ARAZZO_EXPRESSION_TYPE_FIELD_TYPE_TYPE"] = 9110101] = "ARAZZO_EXPRESSION_TYPE_FIELD_TYPE_TYPE";
1204
+ ApilintCodes[ApilintCodes["ARAZZO_EXPRESSION_TYPE_FIELD_TYPE_EQUALS"] = 9110102] = "ARAZZO_EXPRESSION_TYPE_FIELD_TYPE_EQUALS";
1205
+ ApilintCodes[ApilintCodes["ARAZZO_EXPRESSION_TYPE_FIELD_VERSION_REQUIRED"] = 9110200] = "ARAZZO_EXPRESSION_TYPE_FIELD_VERSION_REQUIRED";
1206
+ ApilintCodes[ApilintCodes["ARAZZO_EXPRESSION_TYPE_FIELD_VERSION_TYPE"] = 9110201] = "ARAZZO_EXPRESSION_TYPE_FIELD_VERSION_TYPE";
1207
+ ApilintCodes[ApilintCodes["ARAZZO_EXPRESSION_TYPE_FIELD_VERSION_EQUALS_JSONPATH"] = 9110300] = "ARAZZO_EXPRESSION_TYPE_FIELD_VERSION_EQUALS_JSONPATH";
1208
+ ApilintCodes[ApilintCodes["ARAZZO_EXPRESSION_TYPE_FIELD_VERSION_EQUALS_XPATH"] = 9110301] = "ARAZZO_EXPRESSION_TYPE_FIELD_VERSION_EQUALS_XPATH";
1209
+ ApilintCodes[ApilintCodes["ARAZZO_EXPRESSION_TYPE_FIELD_VERSION_EQUALS_JSONPOINTER"] = 9110302] = "ARAZZO_EXPRESSION_TYPE_FIELD_VERSION_EQUALS_JSONPOINTER";
1178
1210
  // Request Body Object
1179
1211
  ApilintCodes[ApilintCodes["ARAZZO_REQUEST_BODY"] = 9120000] = "ARAZZO_REQUEST_BODY";
1180
1212
  ApilintCodes[ApilintCodes["ARAZZO_REQUEST_BODY_FIELD_CONTENT_TYPE_TYPE"] = 9120100] = "ARAZZO_REQUEST_BODY_FIELD_CONTENT_TYPE_TYPE";
@@ -1185,11 +1217,22 @@ var ApilintCodes = /*#__PURE__*/function (ApilintCodes) {
1185
1217
  ApilintCodes[ApilintCodes["ARAZZO_PAYLOAD_REPLACEMENT_FIELD_TARGET_REQUIRED"] = 9130100] = "ARAZZO_PAYLOAD_REPLACEMENT_FIELD_TARGET_REQUIRED";
1186
1218
  ApilintCodes[ApilintCodes["ARAZZO_PAYLOAD_REPLACEMENT_FIELD_TARGET_TYPE"] = 9130101] = "ARAZZO_PAYLOAD_REPLACEMENT_FIELD_TARGET_TYPE";
1187
1219
  ApilintCodes[ApilintCodes["ARAZZO_PAYLOAD_REPLACEMENT_FIELD_VALUE_REQUIRED"] = 9130200] = "ARAZZO_PAYLOAD_REPLACEMENT_FIELD_VALUE_REQUIRED";
1220
+ ApilintCodes[ApilintCodes["ARAZZO_PAYLOAD_REPLACEMENT_FIELD_TARGET_SELECTOR_TYPE_TYPE"] = 9130300] = "ARAZZO_PAYLOAD_REPLACEMENT_FIELD_TARGET_SELECTOR_TYPE_TYPE";
1221
+ ApilintCodes[ApilintCodes["ARAZZO_PAYLOAD_REPLACEMENT_FIELD_TARGET_SELECTOR_TYPE_EQUALS"] = 9130301] = "ARAZZO_PAYLOAD_REPLACEMENT_FIELD_TARGET_SELECTOR_TYPE_EQUALS";
1188
1222
  // Reusable Object
1189
1223
  ApilintCodes[ApilintCodes["ARAZZO_REUSABLE"] = 9140000] = "ARAZZO_REUSABLE";
1190
1224
  ApilintCodes[ApilintCodes["ARAZZO_REUSABLE_FIELD_REFERENCE_REQUIRED"] = 9140100] = "ARAZZO_REUSABLE_FIELD_REFERENCE_REQUIRED";
1191
1225
  ApilintCodes[ApilintCodes["ARAZZO_REUSABLE_FIELD_REFERENCE_TYPE"] = 9140101] = "ARAZZO_REUSABLE_FIELD_REFERENCE_TYPE";
1192
1226
  ApilintCodes[ApilintCodes["ARAZZO_REUSABLE_FIELD_VALUE_TYPE"] = 9140200] = "ARAZZO_REUSABLE_FIELD_VALUE_TYPE";
1227
+ // Selector Object (introduced in Arazzo 1.1)
1228
+ // `context`, `selector` and `type` have no "required" codes: apidom only disambiguates an
1229
+ // object as a `selector` element once all three are already present (see
1230
+ // OAI/Arazzo-Specification#519), so those checks could never fire.
1231
+ ApilintCodes[ApilintCodes["ARAZZO_SELECTOR"] = 9150000] = "ARAZZO_SELECTOR";
1232
+ ApilintCodes[ApilintCodes["ARAZZO_SELECTOR_FIELD_CONTEXT_TYPE"] = 9150101] = "ARAZZO_SELECTOR_FIELD_CONTEXT_TYPE";
1233
+ ApilintCodes[ApilintCodes["ARAZZO_SELECTOR_FIELD_SELECTOR_TYPE"] = 9150201] = "ARAZZO_SELECTOR_FIELD_SELECTOR_TYPE";
1234
+ ApilintCodes[ApilintCodes["ARAZZO_SELECTOR_FIELD_TYPE_TYPE"] = 9150301] = "ARAZZO_SELECTOR_FIELD_TYPE_TYPE";
1235
+ ApilintCodes[ApilintCodes["ARAZZO_SELECTOR_FIELD_TYPE_EQUALS"] = 9150302] = "ARAZZO_SELECTOR_FIELD_TYPE_EQUALS";
1193
1236
  ApilintCodes[ApilintCodes["OVERLAY"] = 10000000] = "OVERLAY";
1194
1237
  ApilintCodes[ApilintCodes["OVERLAY_NOT_DETECTED"] = 10000001] = "OVERLAY_NOT_DETECTED";
1195
1238
  // Overlay Specification Object (root)
package/src/index.cjs CHANGED
@@ -10,6 +10,12 @@ Object.defineProperty(exports, "ApilintCodes", {
10
10
  return _codes.default;
11
11
  }
12
12
  });
13
+ Object.defineProperty(exports, "Arazzo11JsonSchemaValidationProvider", {
14
+ enumerable: true,
15
+ get: function () {
16
+ return _arazzo11JsonSchemaValidationProvider.Arazzo11JsonSchemaValidationProvider;
17
+ }
18
+ });
13
19
  Object.defineProperty(exports, "Arazzo1JsonSchemaValidationProvider", {
14
20
  enumerable: true,
15
21
  get: function () {
@@ -279,6 +285,7 @@ var _openapi20JsonSchemaValidationProvider = require("./services/validation/prov
279
285
  var _openapi30JsonSchemaValidationProvider = require("./services/validation/providers/openapi-30-json-schema-validation-provider.cjs");
280
286
  var _openapi31JsonSchemaValidationProvider = require("./services/validation/providers/openapi-31-json-schema-validation-provider.cjs");
281
287
  var _arazzo1JsonSchemaValidationProvider = require("./services/validation/providers/arazzo-1-json-schema-validation-provider.cjs");
288
+ var _arazzo11JsonSchemaValidationProvider = require("./services/validation/providers/arazzo-11-json-schema-validation-provider.cjs");
282
289
  var _overlay1JsonSchemaValidationProvider = require("./services/validation/providers/overlay-1-json-schema-validation-provider.cjs");
283
290
  var _codes = _interopRequireDefault(require("./config/codes.cjs"));
284
291
  var _utils = require("./utils/utils.cjs");
package/src/index.mjs CHANGED
@@ -3,6 +3,7 @@ export { OpenAPi20JsonSchemaValidationProvider } from "./services/validation/pro
3
3
  export { OpenAPi30JsonSchemaValidationProvider } from "./services/validation/providers/openapi-30-json-schema-validation-provider.mjs";
4
4
  export { OpenAPi31JsonSchemaValidationProvider } from "./services/validation/providers/openapi-31-json-schema-validation-provider.mjs";
5
5
  export { Arazzo1JsonSchemaValidationProvider } from "./services/validation/providers/arazzo-1-json-schema-validation-provider.mjs";
6
+ export { Arazzo11JsonSchemaValidationProvider } from "./services/validation/providers/arazzo-11-json-schema-validation-provider.mjs";
6
7
  export { Overlay1JsonSchemaValidationProvider } from "./services/validation/providers/overlay-1-json-schema-validation-provider.mjs";
7
8
  export { default as ApilintCodes } from "./config/codes.mjs";
8
9
  export { perfStart, perfEnd, isJsonDoc, isJsonDocSync, isYamlDoc, getText, findNamespace } from "./utils/utils.mjs";
@@ -132,6 +132,47 @@ const casing = (value, casingStyle, noNumbers, separatorChar, separatorAsFirstCh
132
132
  }
133
133
  return getCachedRegex(pattern).test(value);
134
134
  };
135
+
136
+ /**
137
+ * Looks up a Source Description Object by `name` and returns its declared `type`, or `undefined`
138
+ * when the source doesn't exist locally or omits `type` (it's optional per spec).
139
+ */
140
+ const resolveArazzoSourceDescriptionType = (api, sourceName) => {
141
+ const sourceDescriptions = getElementsByTypeOrClass(api, 'sourceDescription');
142
+ const matchingSource = sourceDescriptions.find(sd => (0, _utils.isObject)(sd) && sd.hasKey('name') && (0, _apidomCore.toValue)(sd.get('name')) === sourceName);
143
+ if (!matchingSource || !(0, _utils.isObject)(matchingSource) || !matchingSource.hasKey('type')) {
144
+ return undefined;
145
+ }
146
+ const declaredType = (0, _apidomCore.toValue)(matchingSource.get('type'));
147
+ return typeof declaredType === 'string' ? declaredType : undefined;
148
+ };
149
+
150
+ /**
151
+ * Shared by apilintArazzoSourceDescriptionTypeConsistency and its array variant. Non-string,
152
+ * non-`$sourceDescriptions.`-prefixed, or unparseable values are treated as "not this check's
153
+ * concern" (true) - other rules cover type/shape. Explicitly checks `=== undefined` rather than
154
+ * a falsy check, so a source with `type: ''` (already invalid on its own) doesn't get treated the
155
+ * same as a source that simply omits `type`.
156
+ */
157
+ const isArazzoSourceDescriptionTypeConsistent = (value, expectedTypes, api) => {
158
+ if (typeof value !== 'string' || !value.startsWith('$sourceDescriptions.')) return true;
159
+ const {
160
+ result,
161
+ tree
162
+ } = (0, _arazzoRuntimeExpression.parse)(value);
163
+ if (!result.success || !tree || tree.type !== 'SourceDescriptionsExpression') return true;
164
+ const declaredType = resolveArazzoSourceDescriptionType(api, tree.sourceName);
165
+ if (declaredType === undefined) return true;
166
+ return expectedTypes.includes(declaredType);
167
+ };
168
+
169
+ /**
170
+ * Shared by apilintArazzoWorkflowIdResolved and apilintArazzoStepDependsOnResolved: finds a
171
+ * `workflow` element by its `workflowId` field within an already-collected list of workflows.
172
+ * Takes the list rather than `api` so callers that check multiple ids (e.g. across a `dependsOn`
173
+ * array) can collect it once and reuse it, instead of re-walking the tree per id.
174
+ */
175
+ const findArazzoWorkflowByWorkflowId = (workflows, workflowId) => workflows.find(w => (0, _utils.isObject)(w) && w.hasKey('workflowId') && (0, _apidomCore.toValue)(w.get('workflowId')) === workflowId);
135
176
  const isType = (element, elementType) => {
136
177
  switch (elementType) {
137
178
  case 'object':
@@ -454,6 +495,22 @@ const standardLinterfunctions = exports.standardLinterfunctions = [{
454
495
  }
455
496
  return true;
456
497
  }
498
+ }, {
499
+ functionName: 'apilintChildrenOfTypeOrElementClass',
500
+ function: (element, type, elementsOrClasses, nonEmpty) => {
501
+ if (element && (0, _utils.isObject)(element)) {
502
+ for (const member of element) {
503
+ const value = member.value;
504
+ if (!isType(value, type) && !apilintElementOrClass(value, elementsOrClasses)) {
505
+ return false;
506
+ }
507
+ }
508
+ if (nonEmpty && element.length === 0) {
509
+ return false;
510
+ }
511
+ }
512
+ return true;
513
+ }
457
514
  }, {
458
515
  functionName: 'apilintKeyIsRegex',
459
516
  function: element => {
@@ -589,6 +646,72 @@ const standardLinterfunctions = exports.standardLinterfunctions = [{
589
646
  }
590
647
  return true;
591
648
  }
649
+ }, {
650
+ functionName: 'apilintArazzoStepDependsOnResolved',
651
+ function: element => {
652
+ // `element` is expected to be the step object (no `target` set), so its parent is the
653
+ // `steps` array of the workflow it belongs to. Unlike workflowId, stepId is only unique
654
+ // within a workflow, so a plain entry must resolve against that workflow's own steps
655
+ // rather than a document-wide search.
656
+ //
657
+ // `$workflows.<workflowId>.steps.<stepId>` and the `$sourceDescriptions.<name>.<reference>`
658
+ // form's optional `stepsReference` are both parsed by
659
+ // @swaggerexpert/arazzo-runtime-expression >=3.2.0, which added grammar support for exactly
660
+ // this dependsOn-specific syntax (previously `$workflows.` rejected it outright, and
661
+ // `$sourceDescriptions.` only saw it as an opaque string). Parsing is left entirely to the
662
+ // grammar here rather than re-implemented locally, so this always matches whatever that
663
+ // shared parser considers valid - including its documented limitation that a workflowId
664
+ // containing a literal dot won't be recognized (its `workflow-id` production is
665
+ // `identifier-strict`, which excludes dots). Only document-local existence resolution
666
+ // happens here; a `$sourceDescriptions.` reference stays unresolved beyond its shape, since
667
+ // it points at an external document.
668
+ if (!element || !(0, _utils.isObject)(element) || !element.hasKey('dependsOn')) return true;
669
+ const dependsOn = element.get('dependsOn');
670
+ if (!dependsOn || !(0, _utils.isArray)(dependsOn)) return true;
671
+ const steps = element.parent;
672
+ if (!steps || !(0, _utils.isArray)(steps)) return true;
673
+ // Excludes the current step itself: a step depending on its own stepId is never
674
+ // meaningful, and would otherwise silently "resolve" since it's a member of its own
675
+ // `steps` sibling array.
676
+ const stepIds = new Set(steps.filter(s => s !== element && (0, _utils.isObject)(s) && s.hasKey('stepId')).map(s => (0, _apidomCore.toValue)(s.get('stepId'))));
677
+ let workflows;
678
+ const resolvesToWorkflowStep = (workflowId, stepId) => {
679
+ workflows ??= getElementsByTypeOrClass(root(element), 'workflow');
680
+ const targetWorkflow = findArazzoWorkflowByWorkflowId(workflows, workflowId);
681
+ if (!targetWorkflow || !(0, _utils.isObject)(targetWorkflow) || !targetWorkflow.hasKey('steps')) {
682
+ return false;
683
+ }
684
+ const targetSteps = targetWorkflow.get('steps');
685
+ if (!targetSteps || !(0, _utils.isArray)(targetSteps)) return false;
686
+ const targetStepIds = targetSteps.filter(s => (0, _utils.isObject)(s) && s.hasKey('stepId')).map(s => (0, _apidomCore.toValue)(s.get('stepId')));
687
+ return targetStepIds.includes(stepId);
688
+ };
689
+ for (const item of dependsOn) {
690
+ const val = (0, _apidomCore.toValue)(item);
691
+ if (typeof val !== 'string') continue;
692
+ if (val.startsWith('$workflows.')) {
693
+ const {
694
+ result,
695
+ tree
696
+ } = (0, _arazzoRuntimeExpression.parse)(val);
697
+ if (!result.success || !tree || tree.type !== 'WorkflowsStepsExpression') return false;
698
+ if (!resolvesToWorkflowStep(tree.workflowId, tree.stepId)) return false;
699
+ } else if (val.startsWith('$sourceDescriptions.')) {
700
+ const {
701
+ result,
702
+ tree
703
+ } = (0, _arazzoRuntimeExpression.parse)(val);
704
+ if (!result.success || !tree || tree.type !== 'SourceDescriptionsExpression' || !tree.stepsReference) {
705
+ return false;
706
+ }
707
+ } else if (val.startsWith('$')) {
708
+ return false;
709
+ } else if (!stepIds.has(val)) {
710
+ return false;
711
+ }
712
+ }
713
+ return true;
714
+ }
592
715
  }, {
593
716
  functionName: 'apilintArazzoWorkflowIdResolved',
594
717
  function: element => {
@@ -600,7 +723,33 @@ const standardLinterfunctions = exports.standardLinterfunctions = [{
600
723
  if (value.startsWith('$sourceDescriptions.')) return (0, _arazzoRuntimeExpression.test)(value);
601
724
  const api = root(element);
602
725
  const workflows = getElementsByTypeOrClass(api, 'workflow');
603
- return workflows.some(w => (0, _utils.isObject)(w) && w.hasKey('workflowId') && (0, _apidomCore.toValue)(w.get('workflowId')) === value);
726
+ return findArazzoWorkflowByWorkflowId(workflows, value) !== undefined;
727
+ }
728
+ }, {
729
+ functionName: 'apilintArazzoSourceDescriptionTypeConsistency',
730
+ function: (element, expectedTypes) => {
731
+ // Best-effort cross-check: a $sourceDescriptions.<name>.<reference> value should point at
732
+ // a source whose declared `type` matches how the reference is being used (e.g. a
733
+ // workflowId reference should point at a `type: arazzo` source, not `type: openapi`). Only
734
+ // fires when the named source exists locally AND declares a `type` - that field is
735
+ // optional per spec, so a source without one gives no local signal to check against, and
736
+ // is silently skipped rather than guessed at.
737
+ if (!element || !(0, _utils.isString)(element)) return true;
738
+ return isArazzoSourceDescriptionTypeConsistent((0, _apidomCore.toValue)(element), expectedTypes, root(element));
739
+ }
740
+ }, {
741
+ functionName: 'apilintArazzoArraySourceDescriptionTypeConsistency',
742
+ function: (element, expectedTypes) => {
743
+ // Same check as apilintArazzoSourceDescriptionTypeConsistency, applied to each
744
+ // $sourceDescriptions.-prefixed string in an array (e.g. Workflow/Step `dependsOn`).
745
+ if (!element || !(0, _utils.isArray)(element)) return true;
746
+ const api = root(element);
747
+ for (const item of element) {
748
+ if (!isArazzoSourceDescriptionTypeConsistent((0, _apidomCore.toValue)(item), expectedTypes, api)) {
749
+ return false;
750
+ }
751
+ }
752
+ return true;
604
753
  }
605
754
  }, {
606
755
  functionName: 'apilintArazzoActionStepIdResolved',
@@ -3,7 +3,7 @@ import { isStringElement, isArrayElement, includesClasses } from '@speclynx/apid
3
3
  import { forEach } from '@speclynx/apidom-traverse';
4
4
  import { toValue } from '@speclynx/apidom-core';
5
5
  import { test as testPathTemplate, resolve as resolvePathTemplate, parse as parsePathTemplate } from 'openapi-path-templating';
6
- import { test as testRuntimeExpression } from '@swaggerexpert/arazzo-runtime-expression';
6
+ import { test as testRuntimeExpression, parse as parseRuntimeExpression } from '@swaggerexpert/arazzo-runtime-expression';
7
7
  import { isObject, isString, isArray, isNumber, isBoolean, isMember, processPath, getStringMetaValue, getClassesValue, getReferencedElementValue } from "../../utils/utils.mjs";
8
8
  const regexCache = new Map();
9
9
  const getCachedRegex = (pattern, flags) => {
@@ -122,6 +122,47 @@ const casing = (value, casingStyle, noNumbers, separatorChar, separatorAsFirstCh
122
122
  }
123
123
  return getCachedRegex(pattern).test(value);
124
124
  };
125
+
126
+ /**
127
+ * Looks up a Source Description Object by `name` and returns its declared `type`, or `undefined`
128
+ * when the source doesn't exist locally or omits `type` (it's optional per spec).
129
+ */
130
+ const resolveArazzoSourceDescriptionType = (api, sourceName) => {
131
+ const sourceDescriptions = getElementsByTypeOrClass(api, 'sourceDescription');
132
+ const matchingSource = sourceDescriptions.find(sd => isObject(sd) && sd.hasKey('name') && toValue(sd.get('name')) === sourceName);
133
+ if (!matchingSource || !isObject(matchingSource) || !matchingSource.hasKey('type')) {
134
+ return undefined;
135
+ }
136
+ const declaredType = toValue(matchingSource.get('type'));
137
+ return typeof declaredType === 'string' ? declaredType : undefined;
138
+ };
139
+
140
+ /**
141
+ * Shared by apilintArazzoSourceDescriptionTypeConsistency and its array variant. Non-string,
142
+ * non-`$sourceDescriptions.`-prefixed, or unparseable values are treated as "not this check's
143
+ * concern" (true) - other rules cover type/shape. Explicitly checks `=== undefined` rather than
144
+ * a falsy check, so a source with `type: ''` (already invalid on its own) doesn't get treated the
145
+ * same as a source that simply omits `type`.
146
+ */
147
+ const isArazzoSourceDescriptionTypeConsistent = (value, expectedTypes, api) => {
148
+ if (typeof value !== 'string' || !value.startsWith('$sourceDescriptions.')) return true;
149
+ const {
150
+ result,
151
+ tree
152
+ } = parseRuntimeExpression(value);
153
+ if (!result.success || !tree || tree.type !== 'SourceDescriptionsExpression') return true;
154
+ const declaredType = resolveArazzoSourceDescriptionType(api, tree.sourceName);
155
+ if (declaredType === undefined) return true;
156
+ return expectedTypes.includes(declaredType);
157
+ };
158
+
159
+ /**
160
+ * Shared by apilintArazzoWorkflowIdResolved and apilintArazzoStepDependsOnResolved: finds a
161
+ * `workflow` element by its `workflowId` field within an already-collected list of workflows.
162
+ * Takes the list rather than `api` so callers that check multiple ids (e.g. across a `dependsOn`
163
+ * array) can collect it once and reuse it, instead of re-walking the tree per id.
164
+ */
165
+ const findArazzoWorkflowByWorkflowId = (workflows, workflowId) => workflows.find(w => isObject(w) && w.hasKey('workflowId') && toValue(w.get('workflowId')) === workflowId);
125
166
  const isType = (element, elementType) => {
126
167
  switch (elementType) {
127
168
  case 'object':
@@ -444,6 +485,22 @@ export const standardLinterfunctions = [{
444
485
  }
445
486
  return true;
446
487
  }
488
+ }, {
489
+ functionName: 'apilintChildrenOfTypeOrElementClass',
490
+ function: (element, type, elementsOrClasses, nonEmpty) => {
491
+ if (element && isObject(element)) {
492
+ for (const member of element) {
493
+ const value = member.value;
494
+ if (!isType(value, type) && !apilintElementOrClass(value, elementsOrClasses)) {
495
+ return false;
496
+ }
497
+ }
498
+ if (nonEmpty && element.length === 0) {
499
+ return false;
500
+ }
501
+ }
502
+ return true;
503
+ }
447
504
  }, {
448
505
  functionName: 'apilintKeyIsRegex',
449
506
  function: element => {
@@ -579,6 +636,72 @@ export const standardLinterfunctions = [{
579
636
  }
580
637
  return true;
581
638
  }
639
+ }, {
640
+ functionName: 'apilintArazzoStepDependsOnResolved',
641
+ function: element => {
642
+ // `element` is expected to be the step object (no `target` set), so its parent is the
643
+ // `steps` array of the workflow it belongs to. Unlike workflowId, stepId is only unique
644
+ // within a workflow, so a plain entry must resolve against that workflow's own steps
645
+ // rather than a document-wide search.
646
+ //
647
+ // `$workflows.<workflowId>.steps.<stepId>` and the `$sourceDescriptions.<name>.<reference>`
648
+ // form's optional `stepsReference` are both parsed by
649
+ // @swaggerexpert/arazzo-runtime-expression >=3.2.0, which added grammar support for exactly
650
+ // this dependsOn-specific syntax (previously `$workflows.` rejected it outright, and
651
+ // `$sourceDescriptions.` only saw it as an opaque string). Parsing is left entirely to the
652
+ // grammar here rather than re-implemented locally, so this always matches whatever that
653
+ // shared parser considers valid - including its documented limitation that a workflowId
654
+ // containing a literal dot won't be recognized (its `workflow-id` production is
655
+ // `identifier-strict`, which excludes dots). Only document-local existence resolution
656
+ // happens here; a `$sourceDescriptions.` reference stays unresolved beyond its shape, since
657
+ // it points at an external document.
658
+ if (!element || !isObject(element) || !element.hasKey('dependsOn')) return true;
659
+ const dependsOn = element.get('dependsOn');
660
+ if (!dependsOn || !isArray(dependsOn)) return true;
661
+ const steps = element.parent;
662
+ if (!steps || !isArray(steps)) return true;
663
+ // Excludes the current step itself: a step depending on its own stepId is never
664
+ // meaningful, and would otherwise silently "resolve" since it's a member of its own
665
+ // `steps` sibling array.
666
+ const stepIds = new Set(steps.filter(s => s !== element && isObject(s) && s.hasKey('stepId')).map(s => toValue(s.get('stepId'))));
667
+ let workflows;
668
+ const resolvesToWorkflowStep = (workflowId, stepId) => {
669
+ workflows ??= getElementsByTypeOrClass(root(element), 'workflow');
670
+ const targetWorkflow = findArazzoWorkflowByWorkflowId(workflows, workflowId);
671
+ if (!targetWorkflow || !isObject(targetWorkflow) || !targetWorkflow.hasKey('steps')) {
672
+ return false;
673
+ }
674
+ const targetSteps = targetWorkflow.get('steps');
675
+ if (!targetSteps || !isArray(targetSteps)) return false;
676
+ const targetStepIds = targetSteps.filter(s => isObject(s) && s.hasKey('stepId')).map(s => toValue(s.get('stepId')));
677
+ return targetStepIds.includes(stepId);
678
+ };
679
+ for (const item of dependsOn) {
680
+ const val = toValue(item);
681
+ if (typeof val !== 'string') continue;
682
+ if (val.startsWith('$workflows.')) {
683
+ const {
684
+ result,
685
+ tree
686
+ } = parseRuntimeExpression(val);
687
+ if (!result.success || !tree || tree.type !== 'WorkflowsStepsExpression') return false;
688
+ if (!resolvesToWorkflowStep(tree.workflowId, tree.stepId)) return false;
689
+ } else if (val.startsWith('$sourceDescriptions.')) {
690
+ const {
691
+ result,
692
+ tree
693
+ } = parseRuntimeExpression(val);
694
+ if (!result.success || !tree || tree.type !== 'SourceDescriptionsExpression' || !tree.stepsReference) {
695
+ return false;
696
+ }
697
+ } else if (val.startsWith('$')) {
698
+ return false;
699
+ } else if (!stepIds.has(val)) {
700
+ return false;
701
+ }
702
+ }
703
+ return true;
704
+ }
582
705
  }, {
583
706
  functionName: 'apilintArazzoWorkflowIdResolved',
584
707
  function: element => {
@@ -590,7 +713,33 @@ export const standardLinterfunctions = [{
590
713
  if (value.startsWith('$sourceDescriptions.')) return testRuntimeExpression(value);
591
714
  const api = root(element);
592
715
  const workflows = getElementsByTypeOrClass(api, 'workflow');
593
- return workflows.some(w => isObject(w) && w.hasKey('workflowId') && toValue(w.get('workflowId')) === value);
716
+ return findArazzoWorkflowByWorkflowId(workflows, value) !== undefined;
717
+ }
718
+ }, {
719
+ functionName: 'apilintArazzoSourceDescriptionTypeConsistency',
720
+ function: (element, expectedTypes) => {
721
+ // Best-effort cross-check: a $sourceDescriptions.<name>.<reference> value should point at
722
+ // a source whose declared `type` matches how the reference is being used (e.g. a
723
+ // workflowId reference should point at a `type: arazzo` source, not `type: openapi`). Only
724
+ // fires when the named source exists locally AND declares a `type` - that field is
725
+ // optional per spec, so a source without one gives no local signal to check against, and
726
+ // is silently skipped rather than guessed at.
727
+ if (!element || !isString(element)) return true;
728
+ return isArazzoSourceDescriptionTypeConsistent(toValue(element), expectedTypes, root(element));
729
+ }
730
+ }, {
731
+ functionName: 'apilintArazzoArraySourceDescriptionTypeConsistency',
732
+ function: (element, expectedTypes) => {
733
+ // Same check as apilintArazzoSourceDescriptionTypeConsistency, applied to each
734
+ // $sourceDescriptions.-prefixed string in an array (e.g. Workflow/Step `dependsOn`).
735
+ if (!element || !isArray(element)) return true;
736
+ const api = root(element);
737
+ for (const item of element) {
738
+ if (!isArazzoSourceDescriptionTypeConsistent(toValue(item), expectedTypes, api)) {
739
+ return false;
740
+ }
741
+ }
742
+ return true;
594
743
  }
595
744
  }, {
596
745
  functionName: 'apilintArazzoActionStepIdResolved',