@nocobase/plugin-flow-engine 2.1.0-alpha.10 → 2.1.0-alpha.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (563) hide show
  1. package/dist/ai/ai-employees/nathan/index.d.ts +10 -0
  2. package/dist/ai/ai-employees/nathan/index.js +152 -0
  3. package/dist/ai/ai-employees/nathan/skills/frontend-developer/SKILLS.md +69 -0
  4. package/dist/client/index.js +1 -1
  5. package/dist/externalVersion.js +12 -10
  6. package/dist/node_modules/ajv/.runkit_example.js +23 -0
  7. package/dist/node_modules/ajv/LICENSE +22 -0
  8. package/dist/node_modules/ajv/dist/2019.d.ts +19 -0
  9. package/dist/node_modules/ajv/dist/2019.js +61 -0
  10. package/dist/node_modules/ajv/dist/2020.d.ts +19 -0
  11. package/dist/node_modules/ajv/dist/2020.js +55 -0
  12. package/dist/node_modules/ajv/dist/ajv.d.ts +18 -0
  13. package/dist/node_modules/ajv/dist/ajv.js +7 -0
  14. package/dist/node_modules/ajv/dist/compile/codegen/code.d.ts +40 -0
  15. package/dist/node_modules/ajv/dist/compile/codegen/code.js +156 -0
  16. package/dist/node_modules/ajv/dist/compile/codegen/index.d.ts +79 -0
  17. package/dist/node_modules/ajv/dist/compile/codegen/index.js +697 -0
  18. package/dist/node_modules/ajv/dist/compile/codegen/scope.d.ts +79 -0
  19. package/dist/node_modules/ajv/dist/compile/codegen/scope.js +143 -0
  20. package/dist/node_modules/ajv/dist/compile/errors.d.ts +13 -0
  21. package/dist/node_modules/ajv/dist/compile/errors.js +123 -0
  22. package/dist/node_modules/ajv/dist/compile/index.d.ts +80 -0
  23. package/dist/node_modules/ajv/dist/compile/index.js +242 -0
  24. package/dist/node_modules/ajv/dist/compile/jtd/parse.d.ts +4 -0
  25. package/dist/node_modules/ajv/dist/compile/jtd/parse.js +350 -0
  26. package/dist/node_modules/ajv/dist/compile/jtd/serialize.d.ts +4 -0
  27. package/dist/node_modules/ajv/dist/compile/jtd/serialize.js +236 -0
  28. package/dist/node_modules/ajv/dist/compile/jtd/types.d.ts +6 -0
  29. package/dist/node_modules/ajv/dist/compile/jtd/types.js +14 -0
  30. package/dist/node_modules/ajv/dist/compile/names.d.ts +20 -0
  31. package/dist/node_modules/ajv/dist/compile/names.js +28 -0
  32. package/dist/node_modules/ajv/dist/compile/ref_error.d.ts +6 -0
  33. package/dist/node_modules/ajv/dist/compile/ref_error.js +12 -0
  34. package/dist/node_modules/ajv/dist/compile/resolve.d.ts +12 -0
  35. package/dist/node_modules/ajv/dist/compile/resolve.js +155 -0
  36. package/dist/node_modules/ajv/dist/compile/rules.d.ts +28 -0
  37. package/dist/node_modules/ajv/dist/compile/rules.js +26 -0
  38. package/dist/node_modules/ajv/dist/compile/util.d.ts +40 -0
  39. package/dist/node_modules/ajv/dist/compile/util.js +178 -0
  40. package/dist/node_modules/ajv/dist/compile/validate/applicability.d.ts +6 -0
  41. package/dist/node_modules/ajv/dist/compile/validate/applicability.js +19 -0
  42. package/dist/node_modules/ajv/dist/compile/validate/boolSchema.d.ts +4 -0
  43. package/dist/node_modules/ajv/dist/compile/validate/boolSchema.js +50 -0
  44. package/dist/node_modules/ajv/dist/compile/validate/dataType.d.ts +17 -0
  45. package/dist/node_modules/ajv/dist/compile/validate/dataType.js +203 -0
  46. package/dist/node_modules/ajv/dist/compile/validate/defaults.d.ts +2 -0
  47. package/dist/node_modules/ajv/dist/compile/validate/defaults.js +35 -0
  48. package/dist/node_modules/ajv/dist/compile/validate/index.d.ts +42 -0
  49. package/dist/node_modules/ajv/dist/compile/validate/index.js +520 -0
  50. package/dist/node_modules/ajv/dist/compile/validate/keyword.d.ts +8 -0
  51. package/dist/node_modules/ajv/dist/compile/validate/keyword.js +124 -0
  52. package/dist/node_modules/ajv/dist/compile/validate/subschema.d.ts +47 -0
  53. package/dist/node_modules/ajv/dist/compile/validate/subschema.js +81 -0
  54. package/dist/node_modules/ajv/dist/core.d.ts +174 -0
  55. package/dist/node_modules/ajv/dist/core.js +618 -0
  56. package/dist/node_modules/ajv/dist/jtd.d.ts +47 -0
  57. package/dist/node_modules/ajv/dist/jtd.js +72 -0
  58. package/dist/node_modules/ajv/dist/refs/data.json +13 -0
  59. package/dist/node_modules/ajv/dist/refs/json-schema-2019-09/index.d.ts +2 -0
  60. package/dist/node_modules/ajv/dist/refs/json-schema-2019-09/index.js +28 -0
  61. package/dist/node_modules/ajv/dist/refs/json-schema-2019-09/meta/applicator.json +53 -0
  62. package/dist/node_modules/ajv/dist/refs/json-schema-2019-09/meta/content.json +17 -0
  63. package/dist/node_modules/ajv/dist/refs/json-schema-2019-09/meta/core.json +57 -0
  64. package/dist/node_modules/ajv/dist/refs/json-schema-2019-09/meta/format.json +14 -0
  65. package/dist/node_modules/ajv/dist/refs/json-schema-2019-09/meta/meta-data.json +37 -0
  66. package/dist/node_modules/ajv/dist/refs/json-schema-2019-09/meta/validation.json +90 -0
  67. package/dist/node_modules/ajv/dist/refs/json-schema-2019-09/schema.json +39 -0
  68. package/dist/node_modules/ajv/dist/refs/json-schema-2020-12/index.d.ts +2 -0
  69. package/dist/node_modules/ajv/dist/refs/json-schema-2020-12/index.js +30 -0
  70. package/dist/node_modules/ajv/dist/refs/json-schema-2020-12/meta/applicator.json +48 -0
  71. package/dist/node_modules/ajv/dist/refs/json-schema-2020-12/meta/content.json +17 -0
  72. package/dist/node_modules/ajv/dist/refs/json-schema-2020-12/meta/core.json +51 -0
  73. package/dist/node_modules/ajv/dist/refs/json-schema-2020-12/meta/format-annotation.json +14 -0
  74. package/dist/node_modules/ajv/dist/refs/json-schema-2020-12/meta/meta-data.json +37 -0
  75. package/dist/node_modules/ajv/dist/refs/json-schema-2020-12/meta/unevaluated.json +15 -0
  76. package/dist/node_modules/ajv/dist/refs/json-schema-2020-12/meta/validation.json +90 -0
  77. package/dist/node_modules/ajv/dist/refs/json-schema-2020-12/schema.json +55 -0
  78. package/dist/node_modules/ajv/dist/refs/json-schema-draft-06.json +137 -0
  79. package/dist/node_modules/ajv/dist/refs/json-schema-draft-07.json +151 -0
  80. package/dist/node_modules/ajv/dist/refs/json-schema-secure.json +88 -0
  81. package/dist/node_modules/ajv/dist/refs/jtd-schema.d.ts +3 -0
  82. package/dist/node_modules/ajv/dist/refs/jtd-schema.js +118 -0
  83. package/dist/node_modules/ajv/dist/runtime/equal.d.ts +6 -0
  84. package/dist/node_modules/ajv/dist/runtime/equal.js +7 -0
  85. package/dist/node_modules/ajv/dist/runtime/parseJson.d.ts +18 -0
  86. package/dist/node_modules/ajv/dist/runtime/parseJson.js +185 -0
  87. package/dist/node_modules/ajv/dist/runtime/quote.d.ts +5 -0
  88. package/dist/node_modules/ajv/dist/runtime/quote.js +30 -0
  89. package/dist/node_modules/ajv/dist/runtime/re2.d.ts +6 -0
  90. package/dist/node_modules/ajv/dist/runtime/re2.js +6 -0
  91. package/dist/node_modules/ajv/dist/runtime/timestamp.d.ts +5 -0
  92. package/dist/node_modules/ajv/dist/runtime/timestamp.js +42 -0
  93. package/dist/node_modules/ajv/dist/runtime/ucs2length.d.ts +5 -0
  94. package/dist/node_modules/ajv/dist/runtime/ucs2length.js +24 -0
  95. package/dist/node_modules/ajv/dist/runtime/uri.d.ts +6 -0
  96. package/dist/node_modules/ajv/dist/runtime/uri.js +6 -0
  97. package/dist/node_modules/ajv/dist/runtime/validation_error.d.ts +7 -0
  98. package/dist/node_modules/ajv/dist/runtime/validation_error.js +11 -0
  99. package/dist/node_modules/ajv/dist/standalone/index.d.ts +6 -0
  100. package/dist/node_modules/ajv/dist/standalone/index.js +90 -0
  101. package/dist/node_modules/ajv/dist/standalone/instance.d.ts +12 -0
  102. package/dist/node_modules/ajv/dist/standalone/instance.js +35 -0
  103. package/dist/node_modules/ajv/dist/types/index.d.ts +183 -0
  104. package/dist/node_modules/ajv/dist/types/index.js +3 -0
  105. package/dist/node_modules/ajv/dist/types/json-schema.d.ts +125 -0
  106. package/dist/node_modules/ajv/dist/types/json-schema.js +3 -0
  107. package/dist/node_modules/ajv/dist/types/jtd-schema.d.ts +174 -0
  108. package/dist/node_modules/ajv/dist/types/jtd-schema.js +3 -0
  109. package/dist/node_modules/ajv/dist/vocabularies/applicator/additionalItems.d.ts +8 -0
  110. package/dist/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js +49 -0
  111. package/dist/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.d.ts +6 -0
  112. package/dist/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js +106 -0
  113. package/dist/node_modules/ajv/dist/vocabularies/applicator/allOf.d.ts +3 -0
  114. package/dist/node_modules/ajv/dist/vocabularies/applicator/allOf.js +23 -0
  115. package/dist/node_modules/ajv/dist/vocabularies/applicator/anyOf.d.ts +4 -0
  116. package/dist/node_modules/ajv/dist/vocabularies/applicator/anyOf.js +12 -0
  117. package/dist/node_modules/ajv/dist/vocabularies/applicator/contains.d.ts +7 -0
  118. package/dist/node_modules/ajv/dist/vocabularies/applicator/contains.js +95 -0
  119. package/dist/node_modules/ajv/dist/vocabularies/applicator/dependencies.d.ts +21 -0
  120. package/dist/node_modules/ajv/dist/vocabularies/applicator/dependencies.js +85 -0
  121. package/dist/node_modules/ajv/dist/vocabularies/applicator/dependentSchemas.d.ts +3 -0
  122. package/dist/node_modules/ajv/dist/vocabularies/applicator/dependentSchemas.js +11 -0
  123. package/dist/node_modules/ajv/dist/vocabularies/applicator/if.d.ts +6 -0
  124. package/dist/node_modules/ajv/dist/vocabularies/applicator/if.js +66 -0
  125. package/dist/node_modules/ajv/dist/vocabularies/applicator/index.d.ts +13 -0
  126. package/dist/node_modules/ajv/dist/vocabularies/applicator/index.js +44 -0
  127. package/dist/node_modules/ajv/dist/vocabularies/applicator/items.d.ts +5 -0
  128. package/dist/node_modules/ajv/dist/vocabularies/applicator/items.js +52 -0
  129. package/dist/node_modules/ajv/dist/vocabularies/applicator/items2020.d.ts +6 -0
  130. package/dist/node_modules/ajv/dist/vocabularies/applicator/items2020.js +30 -0
  131. package/dist/node_modules/ajv/dist/vocabularies/applicator/not.d.ts +4 -0
  132. package/dist/node_modules/ajv/dist/vocabularies/applicator/not.js +26 -0
  133. package/dist/node_modules/ajv/dist/vocabularies/applicator/oneOf.d.ts +6 -0
  134. package/dist/node_modules/ajv/dist/vocabularies/applicator/oneOf.js +60 -0
  135. package/dist/node_modules/ajv/dist/vocabularies/applicator/patternProperties.d.ts +3 -0
  136. package/dist/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js +75 -0
  137. package/dist/node_modules/ajv/dist/vocabularies/applicator/prefixItems.d.ts +3 -0
  138. package/dist/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js +12 -0
  139. package/dist/node_modules/ajv/dist/vocabularies/applicator/properties.d.ts +3 -0
  140. package/dist/node_modules/ajv/dist/vocabularies/applicator/properties.js +54 -0
  141. package/dist/node_modules/ajv/dist/vocabularies/applicator/propertyNames.d.ts +6 -0
  142. package/dist/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js +38 -0
  143. package/dist/node_modules/ajv/dist/vocabularies/applicator/thenElse.d.ts +3 -0
  144. package/dist/node_modules/ajv/dist/vocabularies/applicator/thenElse.js +13 -0
  145. package/dist/node_modules/ajv/dist/vocabularies/code.d.ts +17 -0
  146. package/dist/node_modules/ajv/dist/vocabularies/code.js +131 -0
  147. package/dist/node_modules/ajv/dist/vocabularies/core/id.d.ts +3 -0
  148. package/dist/node_modules/ajv/dist/vocabularies/core/id.js +10 -0
  149. package/dist/node_modules/ajv/dist/vocabularies/core/index.d.ts +3 -0
  150. package/dist/node_modules/ajv/dist/vocabularies/core/index.js +16 -0
  151. package/dist/node_modules/ajv/dist/vocabularies/core/ref.d.ts +8 -0
  152. package/dist/node_modules/ajv/dist/vocabularies/core/ref.js +122 -0
  153. package/dist/node_modules/ajv/dist/vocabularies/discriminator/index.d.ts +5 -0
  154. package/dist/node_modules/ajv/dist/vocabularies/discriminator/index.js +104 -0
  155. package/dist/node_modules/ajv/dist/vocabularies/discriminator/types.d.ts +10 -0
  156. package/dist/node_modules/ajv/dist/vocabularies/discriminator/types.js +9 -0
  157. package/dist/node_modules/ajv/dist/vocabularies/draft2020.d.ts +3 -0
  158. package/dist/node_modules/ajv/dist/vocabularies/draft2020.js +23 -0
  159. package/dist/node_modules/ajv/dist/vocabularies/draft7.d.ts +3 -0
  160. package/dist/node_modules/ajv/dist/vocabularies/draft7.js +17 -0
  161. package/dist/node_modules/ajv/dist/vocabularies/dynamic/dynamicAnchor.d.ts +5 -0
  162. package/dist/node_modules/ajv/dist/vocabularies/dynamic/dynamicAnchor.js +30 -0
  163. package/dist/node_modules/ajv/dist/vocabularies/dynamic/dynamicRef.d.ts +5 -0
  164. package/dist/node_modules/ajv/dist/vocabularies/dynamic/dynamicRef.js +51 -0
  165. package/dist/node_modules/ajv/dist/vocabularies/dynamic/index.d.ts +3 -0
  166. package/dist/node_modules/ajv/dist/vocabularies/dynamic/index.js +9 -0
  167. package/dist/node_modules/ajv/dist/vocabularies/dynamic/recursiveAnchor.d.ts +3 -0
  168. package/dist/node_modules/ajv/dist/vocabularies/dynamic/recursiveAnchor.js +16 -0
  169. package/dist/node_modules/ajv/dist/vocabularies/dynamic/recursiveRef.d.ts +3 -0
  170. package/dist/node_modules/ajv/dist/vocabularies/dynamic/recursiveRef.js +10 -0
  171. package/dist/node_modules/ajv/dist/vocabularies/errors.d.ts +9 -0
  172. package/dist/node_modules/ajv/dist/vocabularies/errors.js +3 -0
  173. package/dist/node_modules/ajv/dist/vocabularies/format/format.d.ts +8 -0
  174. package/dist/node_modules/ajv/dist/vocabularies/format/format.js +92 -0
  175. package/dist/node_modules/ajv/dist/vocabularies/format/index.d.ts +3 -0
  176. package/dist/node_modules/ajv/dist/vocabularies/format/index.js +6 -0
  177. package/dist/node_modules/ajv/dist/vocabularies/jtd/discriminator.d.ts +6 -0
  178. package/dist/node_modules/ajv/dist/vocabularies/jtd/discriminator.js +71 -0
  179. package/dist/node_modules/ajv/dist/vocabularies/jtd/elements.d.ts +5 -0
  180. package/dist/node_modules/ajv/dist/vocabularies/jtd/elements.js +24 -0
  181. package/dist/node_modules/ajv/dist/vocabularies/jtd/enum.d.ts +6 -0
  182. package/dist/node_modules/ajv/dist/vocabularies/jtd/enum.js +43 -0
  183. package/dist/node_modules/ajv/dist/vocabularies/jtd/error.d.ts +9 -0
  184. package/dist/node_modules/ajv/dist/vocabularies/jtd/error.js +20 -0
  185. package/dist/node_modules/ajv/dist/vocabularies/jtd/index.d.ts +10 -0
  186. package/dist/node_modules/ajv/dist/vocabularies/jtd/index.js +29 -0
  187. package/dist/node_modules/ajv/dist/vocabularies/jtd/metadata.d.ts +5 -0
  188. package/dist/node_modules/ajv/dist/vocabularies/jtd/metadata.js +25 -0
  189. package/dist/node_modules/ajv/dist/vocabularies/jtd/nullable.d.ts +4 -0
  190. package/dist/node_modules/ajv/dist/vocabularies/jtd/nullable.js +22 -0
  191. package/dist/node_modules/ajv/dist/vocabularies/jtd/optionalProperties.d.ts +3 -0
  192. package/dist/node_modules/ajv/dist/vocabularies/jtd/optionalProperties.js +15 -0
  193. package/dist/node_modules/ajv/dist/vocabularies/jtd/properties.d.ts +22 -0
  194. package/dist/node_modules/ajv/dist/vocabularies/jtd/properties.js +149 -0
  195. package/dist/node_modules/ajv/dist/vocabularies/jtd/ref.d.ts +4 -0
  196. package/dist/node_modules/ajv/dist/vocabularies/jtd/ref.js +67 -0
  197. package/dist/node_modules/ajv/dist/vocabularies/jtd/type.d.ts +10 -0
  198. package/dist/node_modules/ajv/dist/vocabularies/jtd/type.js +69 -0
  199. package/dist/node_modules/ajv/dist/vocabularies/jtd/union.d.ts +3 -0
  200. package/dist/node_modules/ajv/dist/vocabularies/jtd/union.js +12 -0
  201. package/dist/node_modules/ajv/dist/vocabularies/jtd/values.d.ts +5 -0
  202. package/dist/node_modules/ajv/dist/vocabularies/jtd/values.js +51 -0
  203. package/dist/node_modules/ajv/dist/vocabularies/metadata.d.ts +3 -0
  204. package/dist/node_modules/ajv/dist/vocabularies/metadata.js +18 -0
  205. package/dist/node_modules/ajv/dist/vocabularies/next.d.ts +3 -0
  206. package/dist/node_modules/ajv/dist/vocabularies/next.js +8 -0
  207. package/dist/node_modules/ajv/dist/vocabularies/unevaluated/index.d.ts +3 -0
  208. package/dist/node_modules/ajv/dist/vocabularies/unevaluated/index.js +7 -0
  209. package/dist/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedItems.d.ts +6 -0
  210. package/dist/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedItems.js +40 -0
  211. package/dist/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedProperties.d.ts +6 -0
  212. package/dist/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedProperties.js +65 -0
  213. package/dist/node_modules/ajv/dist/vocabularies/validation/const.d.ts +6 -0
  214. package/dist/node_modules/ajv/dist/vocabularies/validation/const.js +25 -0
  215. package/dist/node_modules/ajv/dist/vocabularies/validation/dependentRequired.d.ts +5 -0
  216. package/dist/node_modules/ajv/dist/vocabularies/validation/dependentRequired.js +12 -0
  217. package/dist/node_modules/ajv/dist/vocabularies/validation/enum.d.ts +8 -0
  218. package/dist/node_modules/ajv/dist/vocabularies/validation/enum.js +48 -0
  219. package/dist/node_modules/ajv/dist/vocabularies/validation/index.d.ts +16 -0
  220. package/dist/node_modules/ajv/dist/vocabularies/validation/index.js +33 -0
  221. package/dist/node_modules/ajv/dist/vocabularies/validation/limitContains.d.ts +3 -0
  222. package/dist/node_modules/ajv/dist/vocabularies/validation/limitContains.js +15 -0
  223. package/dist/node_modules/ajv/dist/vocabularies/validation/limitItems.d.ts +3 -0
  224. package/dist/node_modules/ajv/dist/vocabularies/validation/limitItems.js +24 -0
  225. package/dist/node_modules/ajv/dist/vocabularies/validation/limitLength.d.ts +3 -0
  226. package/dist/node_modules/ajv/dist/vocabularies/validation/limitLength.js +27 -0
  227. package/dist/node_modules/ajv/dist/vocabularies/validation/limitNumber.d.ts +11 -0
  228. package/dist/node_modules/ajv/dist/vocabularies/validation/limitNumber.js +27 -0
  229. package/dist/node_modules/ajv/dist/vocabularies/validation/limitProperties.d.ts +3 -0
  230. package/dist/node_modules/ajv/dist/vocabularies/validation/limitProperties.js +24 -0
  231. package/dist/node_modules/ajv/dist/vocabularies/validation/multipleOf.d.ts +8 -0
  232. package/dist/node_modules/ajv/dist/vocabularies/validation/multipleOf.js +26 -0
  233. package/dist/node_modules/ajv/dist/vocabularies/validation/pattern.d.ts +8 -0
  234. package/dist/node_modules/ajv/dist/vocabularies/validation/pattern.js +33 -0
  235. package/dist/node_modules/ajv/dist/vocabularies/validation/required.d.ts +8 -0
  236. package/dist/node_modules/ajv/dist/vocabularies/validation/required.js +79 -0
  237. package/dist/node_modules/ajv/dist/vocabularies/validation/uniqueItems.d.ts +9 -0
  238. package/dist/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js +64 -0
  239. package/dist/node_modules/ajv/lib/2019.ts +81 -0
  240. package/dist/node_modules/ajv/lib/2020.ts +75 -0
  241. package/dist/node_modules/ajv/lib/ajv.ts +70 -0
  242. package/dist/node_modules/ajv/lib/compile/codegen/code.ts +169 -0
  243. package/dist/node_modules/ajv/lib/compile/codegen/index.ts +852 -0
  244. package/dist/node_modules/ajv/lib/compile/codegen/scope.ts +215 -0
  245. package/dist/node_modules/ajv/lib/compile/errors.ts +184 -0
  246. package/dist/node_modules/ajv/lib/compile/index.ts +324 -0
  247. package/dist/node_modules/ajv/lib/compile/jtd/parse.ts +411 -0
  248. package/dist/node_modules/ajv/lib/compile/jtd/serialize.ts +277 -0
  249. package/dist/node_modules/ajv/lib/compile/jtd/types.ts +16 -0
  250. package/dist/node_modules/ajv/lib/compile/names.ts +27 -0
  251. package/dist/node_modules/ajv/lib/compile/ref_error.ts +13 -0
  252. package/dist/node_modules/ajv/lib/compile/resolve.ts +149 -0
  253. package/dist/node_modules/ajv/lib/compile/rules.ts +50 -0
  254. package/dist/node_modules/ajv/lib/compile/util.ts +213 -0
  255. package/dist/node_modules/ajv/lib/compile/validate/applicability.ts +22 -0
  256. package/dist/node_modules/ajv/lib/compile/validate/boolSchema.ts +47 -0
  257. package/dist/node_modules/ajv/lib/compile/validate/dataType.ts +230 -0
  258. package/dist/node_modules/ajv/lib/compile/validate/defaults.ts +32 -0
  259. package/dist/node_modules/ajv/lib/compile/validate/index.ts +582 -0
  260. package/dist/node_modules/ajv/lib/compile/validate/keyword.ts +171 -0
  261. package/dist/node_modules/ajv/lib/compile/validate/subschema.ts +135 -0
  262. package/dist/node_modules/ajv/lib/core.ts +892 -0
  263. package/dist/node_modules/ajv/lib/jtd.ts +132 -0
  264. package/dist/node_modules/ajv/lib/refs/data.json +13 -0
  265. package/dist/node_modules/ajv/lib/refs/json-schema-2019-09/index.ts +28 -0
  266. package/dist/node_modules/ajv/lib/refs/json-schema-2019-09/meta/applicator.json +53 -0
  267. package/dist/node_modules/ajv/lib/refs/json-schema-2019-09/meta/content.json +17 -0
  268. package/dist/node_modules/ajv/lib/refs/json-schema-2019-09/meta/core.json +57 -0
  269. package/dist/node_modules/ajv/lib/refs/json-schema-2019-09/meta/format.json +14 -0
  270. package/dist/node_modules/ajv/lib/refs/json-schema-2019-09/meta/meta-data.json +37 -0
  271. package/dist/node_modules/ajv/lib/refs/json-schema-2019-09/meta/validation.json +90 -0
  272. package/dist/node_modules/ajv/lib/refs/json-schema-2019-09/schema.json +39 -0
  273. package/dist/node_modules/ajv/lib/refs/json-schema-2020-12/index.ts +30 -0
  274. package/dist/node_modules/ajv/lib/refs/json-schema-2020-12/meta/applicator.json +48 -0
  275. package/dist/node_modules/ajv/lib/refs/json-schema-2020-12/meta/content.json +17 -0
  276. package/dist/node_modules/ajv/lib/refs/json-schema-2020-12/meta/core.json +51 -0
  277. package/dist/node_modules/ajv/lib/refs/json-schema-2020-12/meta/format-annotation.json +14 -0
  278. package/dist/node_modules/ajv/lib/refs/json-schema-2020-12/meta/meta-data.json +37 -0
  279. package/dist/node_modules/ajv/lib/refs/json-schema-2020-12/meta/unevaluated.json +15 -0
  280. package/dist/node_modules/ajv/lib/refs/json-schema-2020-12/meta/validation.json +90 -0
  281. package/dist/node_modules/ajv/lib/refs/json-schema-2020-12/schema.json +55 -0
  282. package/dist/node_modules/ajv/lib/refs/json-schema-draft-06.json +137 -0
  283. package/dist/node_modules/ajv/lib/refs/json-schema-draft-07.json +151 -0
  284. package/dist/node_modules/ajv/lib/refs/json-schema-secure.json +88 -0
  285. package/dist/node_modules/ajv/lib/refs/jtd-schema.ts +130 -0
  286. package/dist/node_modules/ajv/lib/runtime/equal.ts +7 -0
  287. package/dist/node_modules/ajv/lib/runtime/parseJson.ts +177 -0
  288. package/dist/node_modules/ajv/lib/runtime/quote.ts +31 -0
  289. package/dist/node_modules/ajv/lib/runtime/re2.ts +6 -0
  290. package/dist/node_modules/ajv/lib/runtime/timestamp.ts +46 -0
  291. package/dist/node_modules/ajv/lib/runtime/ucs2length.ts +20 -0
  292. package/dist/node_modules/ajv/lib/runtime/uri.ts +6 -0
  293. package/dist/node_modules/ajv/lib/runtime/validation_error.ts +13 -0
  294. package/dist/node_modules/ajv/lib/standalone/index.ts +100 -0
  295. package/dist/node_modules/ajv/lib/standalone/instance.ts +36 -0
  296. package/dist/node_modules/ajv/lib/types/index.ts +244 -0
  297. package/dist/node_modules/ajv/lib/types/json-schema.ts +187 -0
  298. package/dist/node_modules/ajv/lib/types/jtd-schema.ts +273 -0
  299. package/dist/node_modules/ajv/lib/vocabularies/applicator/additionalItems.ts +56 -0
  300. package/dist/node_modules/ajv/lib/vocabularies/applicator/additionalProperties.ts +118 -0
  301. package/dist/node_modules/ajv/lib/vocabularies/applicator/allOf.ts +22 -0
  302. package/dist/node_modules/ajv/lib/vocabularies/applicator/anyOf.ts +14 -0
  303. package/dist/node_modules/ajv/lib/vocabularies/applicator/contains.ts +109 -0
  304. package/dist/node_modules/ajv/lib/vocabularies/applicator/dependencies.ts +112 -0
  305. package/dist/node_modules/ajv/lib/vocabularies/applicator/dependentSchemas.ts +11 -0
  306. package/dist/node_modules/ajv/lib/vocabularies/applicator/if.ts +80 -0
  307. package/dist/node_modules/ajv/lib/vocabularies/applicator/index.ts +53 -0
  308. package/dist/node_modules/ajv/lib/vocabularies/applicator/items.ts +59 -0
  309. package/dist/node_modules/ajv/lib/vocabularies/applicator/items2020.ts +36 -0
  310. package/dist/node_modules/ajv/lib/vocabularies/applicator/not.ts +38 -0
  311. package/dist/node_modules/ajv/lib/vocabularies/applicator/oneOf.ts +82 -0
  312. package/dist/node_modules/ajv/lib/vocabularies/applicator/patternProperties.ts +91 -0
  313. package/dist/node_modules/ajv/lib/vocabularies/applicator/prefixItems.ts +12 -0
  314. package/dist/node_modules/ajv/lib/vocabularies/applicator/properties.ts +57 -0
  315. package/dist/node_modules/ajv/lib/vocabularies/applicator/propertyNames.ts +50 -0
  316. package/dist/node_modules/ajv/lib/vocabularies/applicator/thenElse.ts +13 -0
  317. package/dist/node_modules/ajv/lib/vocabularies/code.ts +168 -0
  318. package/dist/node_modules/ajv/lib/vocabularies/core/id.ts +10 -0
  319. package/dist/node_modules/ajv/lib/vocabularies/core/index.ts +16 -0
  320. package/dist/node_modules/ajv/lib/vocabularies/core/ref.ts +129 -0
  321. package/dist/node_modules/ajv/lib/vocabularies/discriminator/index.ts +113 -0
  322. package/dist/node_modules/ajv/lib/vocabularies/discriminator/types.ts +12 -0
  323. package/dist/node_modules/ajv/lib/vocabularies/draft2020.ts +23 -0
  324. package/dist/node_modules/ajv/lib/vocabularies/draft7.ts +17 -0
  325. package/dist/node_modules/ajv/lib/vocabularies/dynamic/dynamicAnchor.ts +31 -0
  326. package/dist/node_modules/ajv/lib/vocabularies/dynamic/dynamicRef.ts +51 -0
  327. package/dist/node_modules/ajv/lib/vocabularies/dynamic/index.ts +9 -0
  328. package/dist/node_modules/ajv/lib/vocabularies/dynamic/recursiveAnchor.ts +14 -0
  329. package/dist/node_modules/ajv/lib/vocabularies/dynamic/recursiveRef.ts +10 -0
  330. package/dist/node_modules/ajv/lib/vocabularies/errors.ts +18 -0
  331. package/dist/node_modules/ajv/lib/vocabularies/format/format.ts +120 -0
  332. package/dist/node_modules/ajv/lib/vocabularies/format/index.ts +6 -0
  333. package/dist/node_modules/ajv/lib/vocabularies/jtd/discriminator.ts +89 -0
  334. package/dist/node_modules/ajv/lib/vocabularies/jtd/elements.ts +32 -0
  335. package/dist/node_modules/ajv/lib/vocabularies/jtd/enum.ts +45 -0
  336. package/dist/node_modules/ajv/lib/vocabularies/jtd/error.ts +23 -0
  337. package/dist/node_modules/ajv/lib/vocabularies/jtd/index.ts +37 -0
  338. package/dist/node_modules/ajv/lib/vocabularies/jtd/metadata.ts +24 -0
  339. package/dist/node_modules/ajv/lib/vocabularies/jtd/nullable.ts +21 -0
  340. package/dist/node_modules/ajv/lib/vocabularies/jtd/optionalProperties.ts +15 -0
  341. package/dist/node_modules/ajv/lib/vocabularies/jtd/properties.ts +184 -0
  342. package/dist/node_modules/ajv/lib/vocabularies/jtd/ref.ts +76 -0
  343. package/dist/node_modules/ajv/lib/vocabularies/jtd/type.ts +75 -0
  344. package/dist/node_modules/ajv/lib/vocabularies/jtd/union.ts +12 -0
  345. package/dist/node_modules/ajv/lib/vocabularies/jtd/values.ts +58 -0
  346. package/dist/node_modules/ajv/lib/vocabularies/metadata.ts +17 -0
  347. package/dist/node_modules/ajv/lib/vocabularies/next.ts +8 -0
  348. package/dist/node_modules/ajv/lib/vocabularies/unevaluated/index.ts +7 -0
  349. package/dist/node_modules/ajv/lib/vocabularies/unevaluated/unevaluatedItems.ts +47 -0
  350. package/dist/node_modules/ajv/lib/vocabularies/unevaluated/unevaluatedProperties.ts +85 -0
  351. package/dist/node_modules/ajv/lib/vocabularies/validation/const.ts +28 -0
  352. package/dist/node_modules/ajv/lib/vocabularies/validation/dependentRequired.ts +23 -0
  353. package/dist/node_modules/ajv/lib/vocabularies/validation/enum.ts +54 -0
  354. package/dist/node_modules/ajv/lib/vocabularies/validation/index.ts +49 -0
  355. package/dist/node_modules/ajv/lib/vocabularies/validation/limitContains.ts +16 -0
  356. package/dist/node_modules/ajv/lib/vocabularies/validation/limitItems.ts +26 -0
  357. package/dist/node_modules/ajv/lib/vocabularies/validation/limitLength.ts +30 -0
  358. package/dist/node_modules/ajv/lib/vocabularies/validation/limitNumber.ts +42 -0
  359. package/dist/node_modules/ajv/lib/vocabularies/validation/limitProperties.ts +26 -0
  360. package/dist/node_modules/ajv/lib/vocabularies/validation/multipleOf.ts +34 -0
  361. package/dist/node_modules/ajv/lib/vocabularies/validation/pattern.ts +39 -0
  362. package/dist/node_modules/ajv/lib/vocabularies/validation/required.ts +98 -0
  363. package/dist/node_modules/ajv/lib/vocabularies/validation/uniqueItems.ts +79 -0
  364. package/dist/node_modules/ajv/package.json +1 -0
  365. package/dist/node_modules/ses/package.json +1 -1
  366. package/dist/node_modules/zod/package.json +1 -1
  367. package/dist/server/flow-models/action-handlers.d.ts +26 -0
  368. package/dist/server/flow-models/action-handlers.js +209 -0
  369. package/dist/server/flow-models/http-error-adapter.d.ts +10 -0
  370. package/dist/server/flow-models/http-error-adapter.js +58 -0
  371. package/dist/server/flow-models/mutate-executor.d.ts +17 -0
  372. package/dist/server/flow-models/mutate-executor.js +309 -0
  373. package/dist/server/flow-models/repository-internals/duplicate-helpers.d.ts +12 -0
  374. package/dist/server/flow-models/repository-internals/duplicate-helpers.js +121 -0
  375. package/dist/server/flow-models/repository-internals/ensure-lock.d.ts +15 -0
  376. package/dist/server/flow-models/repository-internals/ensure-lock.js +117 -0
  377. package/dist/server/flow-models/repository-internals/errors.d.ts +21 -0
  378. package/dist/server/flow-models/repository-internals/errors.js +78 -0
  379. package/dist/server/flow-models/schema-contribution-collector.d.ts +27 -0
  380. package/dist/server/flow-models/schema-contribution-collector.js +217 -0
  381. package/dist/server/flow-models/validation-facade.d.ts +29 -0
  382. package/dist/server/flow-models/validation-facade.js +181 -0
  383. package/dist/server/flow-schema-contributions/actions/aclCheck.d.ts +10 -0
  384. package/dist/server/flow-schema-contributions/actions/aclCheck.js +46 -0
  385. package/dist/server/flow-schema-contributions/actions/aclCheckRefresh.d.ts +10 -0
  386. package/dist/server/flow-schema-contributions/actions/aclCheckRefresh.js +46 -0
  387. package/dist/server/flow-schema-contributions/actions/actionLinkageRules.d.ts +10 -0
  388. package/dist/server/flow-schema-contributions/actions/actionLinkageRules.js +48 -0
  389. package/dist/server/flow-schema-contributions/actions/confirm.d.ts +10 -0
  390. package/dist/server/flow-schema-contributions/actions/confirm.js +73 -0
  391. package/dist/server/flow-schema-contributions/actions/customVariable.d.ts +10 -0
  392. package/dist/server/flow-schema-contributions/actions/customVariable.js +76 -0
  393. package/dist/server/flow-schema-contributions/actions/dataScope.d.ts +10 -0
  394. package/dist/server/flow-schema-contributions/actions/dataScope.js +79 -0
  395. package/dist/server/flow-schema-contributions/actions/detailsFieldLinkageRules.d.ts +10 -0
  396. package/dist/server/flow-schema-contributions/actions/detailsFieldLinkageRules.js +62 -0
  397. package/dist/server/flow-schema-contributions/actions/fieldLinkageRules.d.ts +10 -0
  398. package/dist/server/flow-schema-contributions/actions/fieldLinkageRules.js +62 -0
  399. package/dist/server/flow-schema-contributions/actions/filterFormDefaultValues.d.ts +10 -0
  400. package/dist/server/flow-schema-contributions/actions/filterFormDefaultValues.js +80 -0
  401. package/dist/server/flow-schema-contributions/actions/formAssignRules.d.ts +10 -0
  402. package/dist/server/flow-schema-contributions/actions/formAssignRules.js +62 -0
  403. package/dist/server/flow-schema-contributions/actions/index.d.ts +31 -0
  404. package/dist/server/flow-schema-contributions/actions/index.js +117 -0
  405. package/dist/server/flow-schema-contributions/actions/layout.d.ts +10 -0
  406. package/dist/server/flow-schema-contributions/actions/layout.js +68 -0
  407. package/dist/server/flow-schema-contributions/actions/linkageRulesRefresh.d.ts +10 -0
  408. package/dist/server/flow-schema-contributions/actions/linkageRulesRefresh.js +50 -0
  409. package/dist/server/flow-schema-contributions/actions/navigateToURL.d.ts +10 -0
  410. package/dist/server/flow-schema-contributions/actions/navigateToURL.js +82 -0
  411. package/dist/server/flow-schema-contributions/actions/openView.d.ts +10 -0
  412. package/dist/server/flow-schema-contributions/actions/openView.js +68 -0
  413. package/dist/server/flow-schema-contributions/actions/refreshTargetBlocks.d.ts +10 -0
  414. package/dist/server/flow-schema-contributions/actions/refreshTargetBlocks.js +56 -0
  415. package/dist/server/flow-schema-contributions/actions/runjs.d.ts +10 -0
  416. package/dist/server/flow-schema-contributions/actions/runjs.js +55 -0
  417. package/dist/server/flow-schema-contributions/actions/setTargetDataScope.d.ts +10 -0
  418. package/dist/server/flow-schema-contributions/actions/setTargetDataScope.js +59 -0
  419. package/dist/server/flow-schema-contributions/actions/showMessage.d.ts +10 -0
  420. package/dist/server/flow-schema-contributions/actions/showMessage.js +69 -0
  421. package/dist/server/flow-schema-contributions/actions/showNotification.d.ts +10 -0
  422. package/dist/server/flow-schema-contributions/actions/showNotification.js +76 -0
  423. package/dist/server/flow-schema-contributions/actions/sortingRule.d.ts +10 -0
  424. package/dist/server/flow-schema-contributions/actions/sortingRule.js +67 -0
  425. package/dist/server/flow-schema-contributions/field-models.d.ts +12 -0
  426. package/dist/server/flow-schema-contributions/field-models.js +693 -0
  427. package/dist/server/flow-schema-contributions/index.d.ts +13 -0
  428. package/dist/server/flow-schema-contributions/index.js +64 -0
  429. package/dist/server/flow-schema-contributions/models/ActionModel.d.ts +10 -0
  430. package/dist/server/flow-schema-contributions/models/ActionModel.js +202 -0
  431. package/dist/server/flow-schema-contributions/models/AddChildActionModel.d.ts +10 -0
  432. package/dist/server/flow-schema-contributions/models/AddChildActionModel.js +47 -0
  433. package/dist/server/flow-schema-contributions/models/AddNewActionModel.d.ts +10 -0
  434. package/dist/server/flow-schema-contributions/models/AddNewActionModel.js +93 -0
  435. package/dist/server/flow-schema-contributions/models/AssignFormGridModel.d.ts +10 -0
  436. package/dist/server/flow-schema-contributions/models/AssignFormGridModel.js +82 -0
  437. package/dist/server/flow-schema-contributions/models/AssignFormItemModel.d.ts +10 -0
  438. package/dist/server/flow-schema-contributions/models/AssignFormItemModel.js +80 -0
  439. package/dist/server/flow-schema-contributions/models/AssignFormModel.d.ts +10 -0
  440. package/dist/server/flow-schema-contributions/models/AssignFormModel.js +122 -0
  441. package/dist/server/flow-schema-contributions/models/BasePageTabModel.d.ts +10 -0
  442. package/dist/server/flow-schema-contributions/models/BasePageTabModel.js +71 -0
  443. package/dist/server/flow-schema-contributions/models/BlockGridModel.d.ts +10 -0
  444. package/dist/server/flow-schema-contributions/models/BlockGridModel.js +81 -0
  445. package/dist/server/flow-schema-contributions/models/BulkDeleteActionModel.d.ts +10 -0
  446. package/dist/server/flow-schema-contributions/models/BulkDeleteActionModel.js +47 -0
  447. package/dist/server/flow-schema-contributions/models/ChildPageModel.d.ts +10 -0
  448. package/dist/server/flow-schema-contributions/models/ChildPageModel.js +106 -0
  449. package/dist/server/flow-schema-contributions/models/ChildPageTabModel.d.ts +10 -0
  450. package/dist/server/flow-schema-contributions/models/ChildPageTabModel.js +114 -0
  451. package/dist/server/flow-schema-contributions/models/CreateFormModel.d.ts +10 -0
  452. package/dist/server/flow-schema-contributions/models/CreateFormModel.js +54 -0
  453. package/dist/server/flow-schema-contributions/models/DeleteActionModel.d.ts +10 -0
  454. package/dist/server/flow-schema-contributions/models/DeleteActionModel.js +47 -0
  455. package/dist/server/flow-schema-contributions/models/DetailsBlockModel.d.ts +10 -0
  456. package/dist/server/flow-schema-contributions/models/DetailsBlockModel.js +179 -0
  457. package/dist/server/flow-schema-contributions/models/DetailsGridModel.d.ts +10 -0
  458. package/dist/server/flow-schema-contributions/models/DetailsGridModel.js +82 -0
  459. package/dist/server/flow-schema-contributions/models/DetailsItemModel.d.ts +10 -0
  460. package/dist/server/flow-schema-contributions/models/DetailsItemModel.js +77 -0
  461. package/dist/server/flow-schema-contributions/models/EditActionModel.d.ts +10 -0
  462. package/dist/server/flow-schema-contributions/models/EditActionModel.js +93 -0
  463. package/dist/server/flow-schema-contributions/models/EditFormModel.d.ts +10 -0
  464. package/dist/server/flow-schema-contributions/models/EditFormModel.js +103 -0
  465. package/dist/server/flow-schema-contributions/models/ExpandCollapseActionModel.d.ts +10 -0
  466. package/dist/server/flow-schema-contributions/models/ExpandCollapseActionModel.js +47 -0
  467. package/dist/server/flow-schema-contributions/models/FilterActionModel.d.ts +10 -0
  468. package/dist/server/flow-schema-contributions/models/FilterActionModel.js +57 -0
  469. package/dist/server/flow-schema-contributions/models/FilterFormBlockModel.d.ts +10 -0
  470. package/dist/server/flow-schema-contributions/models/FilterFormBlockModel.js +155 -0
  471. package/dist/server/flow-schema-contributions/models/FilterFormCollapseActionModel.d.ts +10 -0
  472. package/dist/server/flow-schema-contributions/models/FilterFormCollapseActionModel.js +85 -0
  473. package/dist/server/flow-schema-contributions/models/FilterFormCustomFieldModel.d.ts +10 -0
  474. package/dist/server/flow-schema-contributions/models/FilterFormCustomFieldModel.js +89 -0
  475. package/dist/server/flow-schema-contributions/models/FilterFormGridModel.d.ts +10 -0
  476. package/dist/server/flow-schema-contributions/models/FilterFormGridModel.js +82 -0
  477. package/dist/server/flow-schema-contributions/models/FilterFormItemModel.d.ts +10 -0
  478. package/dist/server/flow-schema-contributions/models/FilterFormItemModel.js +77 -0
  479. package/dist/server/flow-schema-contributions/models/FilterFormJSActionModel.d.ts +10 -0
  480. package/dist/server/flow-schema-contributions/models/FilterFormJSActionModel.js +108 -0
  481. package/dist/server/flow-schema-contributions/models/FilterFormResetActionModel.d.ts +10 -0
  482. package/dist/server/flow-schema-contributions/models/FilterFormResetActionModel.js +87 -0
  483. package/dist/server/flow-schema-contributions/models/FilterFormSubmitActionModel.d.ts +10 -0
  484. package/dist/server/flow-schema-contributions/models/FilterFormSubmitActionModel.js +87 -0
  485. package/dist/server/flow-schema-contributions/models/FormAssociationItemModel.d.ts +10 -0
  486. package/dist/server/flow-schema-contributions/models/FormAssociationItemModel.js +78 -0
  487. package/dist/server/flow-schema-contributions/models/FormBlockModel.d.ts +10 -0
  488. package/dist/server/flow-schema-contributions/models/FormBlockModel.js +45 -0
  489. package/dist/server/flow-schema-contributions/models/FormGridModel.d.ts +10 -0
  490. package/dist/server/flow-schema-contributions/models/FormGridModel.js +67 -0
  491. package/dist/server/flow-schema-contributions/models/FormItemModel.d.ts +10 -0
  492. package/dist/server/flow-schema-contributions/models/FormItemModel.js +77 -0
  493. package/dist/server/flow-schema-contributions/models/FormSubmitActionModel.d.ts +10 -0
  494. package/dist/server/flow-schema-contributions/models/FormSubmitActionModel.js +87 -0
  495. package/dist/server/flow-schema-contributions/models/JSActionModel.d.ts +10 -0
  496. package/dist/server/flow-schema-contributions/models/JSActionModel.js +65 -0
  497. package/dist/server/flow-schema-contributions/models/JSBlockModel.d.ts +10 -0
  498. package/dist/server/flow-schema-contributions/models/JSBlockModel.js +90 -0
  499. package/dist/server/flow-schema-contributions/models/JSCollectionActionModel.d.ts +10 -0
  500. package/dist/server/flow-schema-contributions/models/JSCollectionActionModel.js +47 -0
  501. package/dist/server/flow-schema-contributions/models/JSColumnModel.d.ts +10 -0
  502. package/dist/server/flow-schema-contributions/models/JSColumnModel.js +100 -0
  503. package/dist/server/flow-schema-contributions/models/JSFormActionModel.d.ts +10 -0
  504. package/dist/server/flow-schema-contributions/models/JSFormActionModel.js +47 -0
  505. package/dist/server/flow-schema-contributions/models/JSItemModel.d.ts +10 -0
  506. package/dist/server/flow-schema-contributions/models/JSItemModel.js +87 -0
  507. package/dist/server/flow-schema-contributions/models/JSRecordActionModel.d.ts +10 -0
  508. package/dist/server/flow-schema-contributions/models/JSRecordActionModel.js +47 -0
  509. package/dist/server/flow-schema-contributions/models/LinkActionModel.d.ts +10 -0
  510. package/dist/server/flow-schema-contributions/models/LinkActionModel.js +47 -0
  511. package/dist/server/flow-schema-contributions/models/PageModel.d.ts +10 -0
  512. package/dist/server/flow-schema-contributions/models/PageModel.js +159 -0
  513. package/dist/server/flow-schema-contributions/models/PageTabModel.d.ts +10 -0
  514. package/dist/server/flow-schema-contributions/models/PageTabModel.js +69 -0
  515. package/dist/server/flow-schema-contributions/models/PopupActionModel.d.ts +10 -0
  516. package/dist/server/flow-schema-contributions/models/PopupActionModel.js +92 -0
  517. package/dist/server/flow-schema-contributions/models/PopupCollectionActionModel.d.ts +10 -0
  518. package/dist/server/flow-schema-contributions/models/PopupCollectionActionModel.js +119 -0
  519. package/dist/server/flow-schema-contributions/models/RefreshActionModel.d.ts +10 -0
  520. package/dist/server/flow-schema-contributions/models/RefreshActionModel.js +47 -0
  521. package/dist/server/flow-schema-contributions/models/RootPageModel.d.ts +10 -0
  522. package/dist/server/flow-schema-contributions/models/RootPageModel.js +124 -0
  523. package/dist/server/flow-schema-contributions/models/RootPageTabModel.d.ts +10 -0
  524. package/dist/server/flow-schema-contributions/models/RootPageTabModel.js +69 -0
  525. package/dist/server/flow-schema-contributions/models/RouteModel.d.ts +10 -0
  526. package/dist/server/flow-schema-contributions/models/RouteModel.js +121 -0
  527. package/dist/server/flow-schema-contributions/models/TableActionsColumnModel.d.ts +10 -0
  528. package/dist/server/flow-schema-contributions/models/TableActionsColumnModel.js +93 -0
  529. package/dist/server/flow-schema-contributions/models/TableBlockModel.d.ts +10 -0
  530. package/dist/server/flow-schema-contributions/models/TableBlockModel.js +254 -0
  531. package/dist/server/flow-schema-contributions/models/TableColumnModel.d.ts +10 -0
  532. package/dist/server/flow-schema-contributions/models/TableColumnModel.js +77 -0
  533. package/dist/server/flow-schema-contributions/models/TableCustomColumnModel.d.ts +10 -0
  534. package/dist/server/flow-schema-contributions/models/TableCustomColumnModel.js +66 -0
  535. package/dist/server/flow-schema-contributions/models/UpdateRecordActionModel.d.ts +10 -0
  536. package/dist/server/flow-schema-contributions/models/UpdateRecordActionModel.js +173 -0
  537. package/dist/server/flow-schema-contributions/models/ViewActionModel.d.ts +10 -0
  538. package/dist/server/flow-schema-contributions/models/ViewActionModel.js +123 -0
  539. package/dist/server/flow-schema-contributions/models/index.d.ts +66 -0
  540. package/dist/server/flow-schema-contributions/models/index.js +257 -0
  541. package/dist/server/flow-schema-contributions/shared.d.ts +501 -0
  542. package/dist/server/flow-schema-contributions/shared.js +1649 -0
  543. package/dist/server/flow-schema-service.d.ts +87 -0
  544. package/dist/server/flow-schema-service.js +963 -0
  545. package/dist/server/index.d.ts +1 -0
  546. package/dist/server/index.js +4 -1
  547. package/dist/server/plugin.d.ts +2 -0
  548. package/dist/server/plugin.js +6 -2
  549. package/dist/server/repository.d.ts +67 -9
  550. package/dist/server/repository.js +417 -106
  551. package/dist/server/server.d.ts +7 -0
  552. package/dist/server/server.js +23 -53
  553. package/dist/swagger/index.d.ts +1164 -0
  554. package/dist/swagger/index.js +732 -0
  555. package/package.json +4 -2
  556. /package/dist/ai/{tools → ai-employees/nathan/skills/frontend-developer/tools}/getContextApis.d.ts +0 -0
  557. /package/dist/ai/{tools → ai-employees/nathan/skills/frontend-developer/tools}/getContextApis.js +0 -0
  558. /package/dist/ai/{tools → ai-employees/nathan/skills/frontend-developer/tools}/getContextEnvs.d.ts +0 -0
  559. /package/dist/ai/{tools → ai-employees/nathan/skills/frontend-developer/tools}/getContextEnvs.js +0 -0
  560. /package/dist/ai/{tools → ai-employees/nathan/skills/frontend-developer/tools}/getContextVars.d.ts +0 -0
  561. /package/dist/ai/{tools → ai-employees/nathan/skills/frontend-developer/tools}/getContextVars.js +0 -0
  562. /package/dist/ai/{tools → ai-employees/nathan/skills/frontend-developer/tools}/lintAndTestJS.d.ts +0 -0
  563. /package/dist/ai/{tools → ai-employees/nathan/skills/frontend-developer/tools}/lintAndTestJS.js +0 -0
@@ -52,6 +52,11 @@ module.exports = __toCommonJS(repository_exports);
52
52
  var import_database = require("@nocobase/database");
53
53
  var import_utils = require("@nocobase/utils");
54
54
  var import_lodash = __toESM(require("lodash"));
55
+ var import_node_crypto = require("node:crypto");
56
+ var import_sequelize = require("sequelize");
57
+ var import_ensure_lock = require("./flow-models/repository-internals/ensure-lock");
58
+ var import_duplicate_helpers = require("./flow-models/repository-internals/duplicate-helpers");
59
+ var import_errors = require("./flow-models/repository-internals/errors");
55
60
  const nodeKeys = ["properties", "definitions", "patternProperties", "additionalProperties", "items"];
56
61
  function transaction(transactionAbleArgPosition) {
57
62
  return (target, propertyKey, descriptor) => {
@@ -77,6 +82,7 @@ function transaction(transactionAbleArgPosition) {
77
82
  return results;
78
83
  } catch (e) {
79
84
  await transaction2.rollback();
85
+ await (0, import_ensure_lock.emitFlowModelTransactionRollback)(this.database, transaction2);
80
86
  throw e;
81
87
  }
82
88
  } else {
@@ -430,121 +436,78 @@ const _FlowModelRepository = class _FlowModelRepository extends import_database.
430
436
  return result;
431
437
  }
432
438
  async duplicate(modelUid, options) {
433
- let nodes = await this.findNodesById(modelUid, { ...options, includeAsyncNode: true });
434
- if (!(nodes == null ? void 0 : nodes.length)) {
439
+ const nodes = await this.prepareNodesForDuplicate(modelUid, { ...options, includeAsyncNode: true });
440
+ if (!nodes.length) {
435
441
  return null;
436
442
  }
437
- nodes = this.dedupeNodesForDuplicate(nodes, modelUid);
438
- const uidMap = {};
439
- for (const n of nodes) {
440
- uidMap[n["uid"]] = (0, import_utils.uid)();
441
- }
442
- const sorted = [...nodes].sort((a, b) => {
443
- if (a.depth !== b.depth) return a.depth - b.depth;
443
+ const duplicatedRootUid = await this.cloneNodesWithUidMap(nodes, {
444
+ sourceUid: modelUid,
445
+ transaction: options == null ? void 0 : options.transaction,
446
+ buildUid: () => (0, import_utils.uid)()
447
+ });
448
+ return this.findModelById(duplicatedRootUid, { ...options });
449
+ }
450
+ dedupeNodesForDuplicate(nodes, rootUid) {
451
+ return (0, import_duplicate_helpers.dedupeNodesForDuplicate)(nodes, rootUid);
452
+ }
453
+ replaceStepParamsModelUids(options, uidMap) {
454
+ return (0, import_duplicate_helpers.replaceStepParamsModelUids)(options, uidMap);
455
+ }
456
+ sortNodesForDuplicate(nodes) {
457
+ return [...nodes].sort((a, b) => {
458
+ if (a.depth !== b.depth) return Number(a.depth ?? 0) - Number(b.depth ?? 0);
444
459
  const ap = a.parent || "";
445
460
  const bp = b.parent || "";
446
461
  if (ap !== bp) return ap < bp ? -1 : 1;
447
462
  const at = a.type || "";
448
463
  const bt = b.type || "";
449
464
  if (at !== bt) return at < bt ? -1 : 1;
450
- const as = a.sort ?? 0;
451
- const bs = b.sort ?? 0;
452
- return as - bs;
465
+ return Number(a.sort ?? 0) - Number(b.sort ?? 0);
453
466
  });
454
- for (const n of sorted) {
455
- const oldUid = n["uid"];
467
+ }
468
+ async prepareNodesForDuplicate(uid2, options) {
469
+ const nodes = await this.findNodesById(uid2, { ...options, includeAsyncNode: true });
470
+ if (!nodes.length) {
471
+ return [];
472
+ }
473
+ return this.sortNodesForDuplicate(this.dedupeNodesForDuplicate(nodes, uid2));
474
+ }
475
+ async cloneNodesWithUidMap(nodes, options) {
476
+ var _a;
477
+ const uidMap = {};
478
+ for (const node of nodes) {
479
+ uidMap[node.uid] = options.buildUid(node.uid);
480
+ }
481
+ for (const node of nodes) {
482
+ const oldUid = node.uid;
456
483
  const newUid = uidMap[oldUid];
457
- const oldParentUid = n["parent"];
458
- const newParentUid = uidMap[oldParentUid] ?? null;
484
+ const newParentUid = node.parent ? uidMap[node.parent] ?? null : null;
459
485
  const optionsObj = this.replaceStepParamsModelUids(
460
- import_lodash.default.isPlainObject(n.options) ? n.options : JSON.parse(n.options),
486
+ import_lodash.default.cloneDeep(_FlowModelRepository.optionsToJson(node.options ?? {})),
461
487
  uidMap
462
488
  );
489
+ if (oldUid === options.sourceUid) {
490
+ (_a = options.patchRootOptions) == null ? void 0 : _a.call(options, optionsObj);
491
+ }
463
492
  if (newParentUid) {
464
493
  optionsObj.parent = newParentUid;
465
494
  optionsObj.parentId = newParentUid;
466
495
  }
467
496
  const schemaNode = {
468
497
  uid: newUid,
469
- ["x-async"]: !!n.async,
498
+ ["x-async"]: !!node.async,
470
499
  ...optionsObj
471
500
  };
472
501
  if (newParentUid) {
473
502
  schemaNode.childOptions = {
474
503
  parentUid: newParentUid,
475
- type: n.type,
504
+ type: node.type,
476
505
  position: "last"
477
506
  };
478
507
  }
479
- await this.insertSingleNode(schemaNode, { transaction: options == null ? void 0 : options.transaction });
508
+ await this.insertSingleNode(schemaNode, { transaction: options.transaction });
480
509
  }
481
- return this.findModelById(uidMap[modelUid], { ...options });
482
- }
483
- dedupeNodesForDuplicate(nodes, rootUid) {
484
- if (!Array.isArray(nodes) || nodes.length <= 1) {
485
- return nodes;
486
- }
487
- const rowsByUid = import_lodash.default.groupBy(nodes, "uid");
488
- const uniqueUids = Object.keys(rowsByUid);
489
- if (uniqueUids.length === nodes.length) {
490
- return nodes;
491
- }
492
- const uidsInSubtree = new Set(uniqueUids);
493
- const rootDepthByUid = /* @__PURE__ */ new Map();
494
- for (const uid2 of uniqueUids) {
495
- const rows = rowsByUid[uid2] || [];
496
- const depths = rows.map((row) => Number((row == null ? void 0 : row.depth) ?? 0));
497
- rootDepthByUid.set(uid2, depths.length ? Math.min(...depths) : 0);
498
- }
499
- const pickRowForUid = (uid2, rows) => {
500
- if (!(rows == null ? void 0 : rows.length)) return null;
501
- if (rows.length === 1) return rows[0];
502
- if (uid2 === rootUid) return rows[0];
503
- let bestRow = rows[0];
504
- let bestParentRootDepth = -1;
505
- for (const row of rows) {
506
- const parentUid = row == null ? void 0 : row.parent;
507
- if (!parentUid || !uidsInSubtree.has(parentUid)) {
508
- continue;
509
- }
510
- const parentRootDepth = rootDepthByUid.get(parentUid) ?? -1;
511
- if (parentRootDepth > bestParentRootDepth) {
512
- bestParentRootDepth = parentRootDepth;
513
- bestRow = row;
514
- }
515
- }
516
- return bestRow;
517
- };
518
- const uidsInQueryOrder = [];
519
- const seenUidsInQueryOrder = /* @__PURE__ */ new Set();
520
- for (const row of nodes) {
521
- const uid2 = row == null ? void 0 : row.uid;
522
- if (!uid2 || seenUidsInQueryOrder.has(uid2)) continue;
523
- seenUidsInQueryOrder.add(uid2);
524
- uidsInQueryOrder.push(uid2);
525
- }
526
- return uidsInQueryOrder.map((uid2) => pickRowForUid(uid2, rowsByUid[uid2])).filter(Boolean);
527
- }
528
- replaceStepParamsModelUids(options, uidMap) {
529
- const opts = options && typeof options === "object" ? options : {};
530
- const replaceUidString = (v) => typeof v === "string" && uidMap[v] ? uidMap[v] : v;
531
- const replaceInPlace = (val) => {
532
- if (Array.isArray(val)) {
533
- for (let i = 0; i < val.length; i++) {
534
- val[i] = replaceInPlace(val[i]);
535
- }
536
- return val;
537
- }
538
- if (val && typeof val === "object") {
539
- for (const k of Object.keys(val)) {
540
- val[k] = replaceInPlace(val[k]);
541
- }
542
- return val;
543
- }
544
- return replaceUidString(val);
545
- };
546
- if (opts.stepParams) opts.stepParams = replaceInPlace(opts.stepParams);
547
- return opts;
510
+ return uidMap[options.sourceUid];
548
511
  }
549
512
  async insert(schema, options) {
550
513
  const nodes = _FlowModelRepository.schemaToSingleNodes(schema);
@@ -1010,12 +973,13 @@ WHERE TreeTable.depth = 1 AND TreeTable.ancestor = :ancestor and TreeTable.sort
1010
973
  replacements: {
1011
974
  ancestor: uid2
1012
975
  },
976
+ type: import_sequelize.QueryTypes.SELECT,
1013
977
  transaction: options == null ? void 0 : options.transaction
1014
978
  });
1015
- if (nodes[0].length == 0) {
979
+ if (nodes.length === 0) {
1016
980
  return [];
1017
981
  }
1018
- return nodes[0];
982
+ return nodes;
1019
983
  }
1020
984
  async doGetJsonSchema(uid2, options) {
1021
985
  const nodes = await this.findNodesById(uid2, options);
@@ -1123,7 +1087,8 @@ WHERE TreeTable.depth = 1 AND TreeTable.ancestor = :ancestor and TreeTable.sort
1123
1087
  const { uid: uid2, name, options } = node;
1124
1088
  const model = {
1125
1089
  uid: uid2,
1126
- ...options
1090
+ ...(0, import_duplicate_helpers.stripDuplicateReplayMarker)(this.optionsToJson(options)),
1091
+ async: !!(node == null ? void 0 : node.async)
1127
1092
  };
1128
1093
  return model;
1129
1094
  }
@@ -1141,7 +1106,8 @@ WHERE TreeTable.depth = 1 AND TreeTable.ancestor = :ancestor and TreeTable.sort
1141
1106
  if (!subKey) continue;
1142
1107
  const model = _FlowModelRepository.nodesToModel(nodes, child["uid"]) || {
1143
1108
  uid: child["uid"],
1144
- ...this.optionsToJson(child.options),
1109
+ ...(0, import_duplicate_helpers.stripDuplicateReplayMarker)(this.optionsToJson(child.options)),
1110
+ async: !!(child == null ? void 0 : child.async),
1145
1111
  sortIndex: child.sort
1146
1112
  };
1147
1113
  model.sortIndex = child.sort;
@@ -1167,7 +1133,8 @@ WHERE TreeTable.depth = 1 AND TreeTable.ancestor = :ancestor and TreeTable.sort
1167
1133
  }
1168
1134
  return {
1169
1135
  uid: rootNode["uid"],
1170
- ...this.optionsToJson(rootNode.options),
1136
+ ...(0, import_duplicate_helpers.stripDuplicateReplayMarker)(this.optionsToJson(rootNode.options)),
1137
+ async: !!(rootNode == null ? void 0 : rootNode.async),
1171
1138
  ...Object.keys(filteredSubModels).length > 0 ? { subModels: filteredSubModels } : {}
1172
1139
  };
1173
1140
  }
@@ -1248,6 +1215,217 @@ WHERE TreeTable.depth = 1 AND TreeTable.ancestor = :ancestor and TreeTable.sort
1248
1215
  }
1249
1216
  return null;
1250
1217
  }
1218
+ async ensureModel(values, options) {
1219
+ const includeAsyncNode = !!(options == null ? void 0 : options.includeAsyncNode);
1220
+ const { transaction: transaction2 } = options || {};
1221
+ const uidValue = String((values == null ? void 0 : values.uid) || "").trim();
1222
+ const parentIdValue = String((values == null ? void 0 : values.parentId) || "").trim();
1223
+ const subKeyValue = String((values == null ? void 0 : values.subKey) || "").trim();
1224
+ const subTypeValue = values == null ? void 0 : values.subType;
1225
+ const hasUidLocator = !!uidValue;
1226
+ const hasObjectChildLocator = !!parentIdValue || !!subKeyValue || subTypeValue !== void 0;
1227
+ if (hasUidLocator && hasObjectChildLocator) {
1228
+ throw new import_errors.FlowModelOperationError({
1229
+ status: 400,
1230
+ code: "INVALID_PARAMS",
1231
+ message: "flowModels:ensure requires either 'uid' OR ('parentId'+'subKey'+'subType=object'), not both"
1232
+ });
1233
+ }
1234
+ if (!hasUidLocator && !hasObjectChildLocator) {
1235
+ throw new import_errors.FlowModelOperationError({
1236
+ status: 400,
1237
+ code: "INVALID_PARAMS",
1238
+ message: "flowModels:ensure missing locator: provide 'uid' OR ('parentId'+'subKey'+'subType=object')"
1239
+ });
1240
+ }
1241
+ if (uidValue) {
1242
+ const exists = await this.model.findByPk(uidValue, { transaction: transaction2 });
1243
+ if (exists) {
1244
+ return await this.findModelById(uidValue, { transaction: transaction2, includeAsyncNode });
1245
+ }
1246
+ const use = String((values == null ? void 0 : values.use) || "").trim();
1247
+ if (!use) {
1248
+ throw new import_errors.FlowModelOperationError({
1249
+ status: 400,
1250
+ code: "INVALID_PARAMS",
1251
+ message: "flowModels:ensure missing required field 'use' when creating by uid"
1252
+ });
1253
+ }
1254
+ try {
1255
+ const modelToEnsure = {
1256
+ ...import_lodash.default.cloneDeep(values),
1257
+ uid: uidValue,
1258
+ use
1259
+ };
1260
+ await this.database.sequelize.transaction({ transaction: transaction2 }, async (innerTransaction) => {
1261
+ await this.upsertModel(modelToEnsure, { transaction: innerTransaction });
1262
+ });
1263
+ } catch (error) {
1264
+ if ((0, import_errors.isFlowModelUniqueConstraintError)(error)) {
1265
+ const createdByOther = await this.model.findByPk(uidValue, { transaction: transaction2 });
1266
+ if (createdByOther) {
1267
+ return await this.findModelById(uidValue, { transaction: transaction2, includeAsyncNode });
1268
+ }
1269
+ }
1270
+ throw error;
1271
+ }
1272
+ return await this.findModelById(uidValue, { transaction: transaction2, includeAsyncNode });
1273
+ }
1274
+ if (!parentIdValue || !subKeyValue || subTypeValue !== "object") {
1275
+ throw new import_errors.FlowModelOperationError({
1276
+ status: 400,
1277
+ code: "INVALID_PARAMS",
1278
+ message: "flowModels:ensure by parent requires 'parentId'+'subKey' and 'subType' must be 'object'"
1279
+ });
1280
+ }
1281
+ const ensureObjectChild = async () => {
1282
+ const supportsForUpdate = this.database.sequelize.getDialect() === "postgres" || this.database.isMySQLCompatibleDialect();
1283
+ const lockedParent = await this.database.sequelize.query(
1284
+ this.sqlAdapter(
1285
+ `SELECT "uid" FROM ${this.flowModelsTableName} WHERE "uid" = :uid${supportsForUpdate ? " FOR UPDATE" : ""}`
1286
+ ),
1287
+ {
1288
+ type: "SELECT",
1289
+ replacements: { uid: parentIdValue },
1290
+ transaction: transaction2
1291
+ }
1292
+ );
1293
+ if (!(lockedParent == null ? void 0 : lockedParent.length)) {
1294
+ throw new import_errors.FlowModelOperationError({
1295
+ status: 404,
1296
+ code: "NOT_FOUND",
1297
+ message: `flowModels:ensure parentId '${parentIdValue}' not found`
1298
+ });
1299
+ }
1300
+ const treeTable = this.flowModelTreePathTableName;
1301
+ const existingChildren = await this.database.sequelize.query(
1302
+ `SELECT TreeTable.descendant as uid
1303
+ FROM ${treeTable} as TreeTable
1304
+ LEFT JOIN ${treeTable} as NodeInfo
1305
+ ON NodeInfo.descendant = TreeTable.descendant
1306
+ AND NodeInfo.depth = 0
1307
+ WHERE TreeTable.depth = 1
1308
+ AND TreeTable.ancestor = :ancestor
1309
+ AND NodeInfo.type = :type
1310
+ ORDER BY TreeTable.sort ASC`,
1311
+ {
1312
+ type: import_sequelize.QueryTypes.SELECT,
1313
+ replacements: {
1314
+ ancestor: parentIdValue,
1315
+ type: subKeyValue
1316
+ },
1317
+ transaction: transaction2
1318
+ }
1319
+ );
1320
+ if (existingChildren == null ? void 0 : existingChildren.length) {
1321
+ if (existingChildren.length > 1) {
1322
+ this.database.logger.warn("flowModels:ensure found duplicate object children; using first child", {
1323
+ action: "flowModels:ensure",
1324
+ type: "flow-model-duplicate-object-child",
1325
+ parentId: parentIdValue,
1326
+ subKey: subKeyValue,
1327
+ childUids: existingChildren.map((child) => String((child == null ? void 0 : child.uid) || "").trim()).filter(Boolean)
1328
+ });
1329
+ }
1330
+ const existingChild = existingChildren.at(0);
1331
+ const childUid = String((existingChild == null ? void 0 : existingChild.uid) ?? "").trim();
1332
+ if (!childUid) {
1333
+ throw new import_errors.FlowModelOperationError({
1334
+ status: 500,
1335
+ code: "INTERNAL_ERROR",
1336
+ message: "flowModels:ensure failed to resolve existing child uid"
1337
+ });
1338
+ }
1339
+ const childInstance = await this.model.findByPk(childUid, { transaction: transaction2 });
1340
+ if (!childInstance) {
1341
+ throw new import_errors.FlowModelOperationError({
1342
+ status: 500,
1343
+ code: "INTERNAL_ERROR",
1344
+ message: `flowModels:ensure child uid '${childUid}' not found`
1345
+ });
1346
+ }
1347
+ const childOptions = _FlowModelRepository.optionsToJson(childInstance.get("options"));
1348
+ if ((childOptions == null ? void 0 : childOptions.subType) && childOptions.subType !== "object") {
1349
+ throw new import_errors.FlowModelOperationError({
1350
+ status: 409,
1351
+ code: "CONFLICT",
1352
+ message: `flowModels:ensure object subKey '${subKeyValue}' conflicts with existing subType '${childOptions.subType}'`
1353
+ });
1354
+ }
1355
+ return await this.findModelById(childUid, { transaction: transaction2, includeAsyncNode });
1356
+ }
1357
+ const use = String((values == null ? void 0 : values.use) || "").trim();
1358
+ if (!use) {
1359
+ throw new import_errors.FlowModelOperationError({
1360
+ status: 400,
1361
+ code: "INVALID_PARAMS",
1362
+ message: "flowModels:ensure missing required field 'use' when creating object child model"
1363
+ });
1364
+ }
1365
+ const newUid = `ens_${(0, import_node_crypto.createHash)("sha256").update(`${parentIdValue}\0${subKeyValue}\0object`).digest("hex").slice(0, 24)}`;
1366
+ try {
1367
+ const modelToEnsure = {
1368
+ ...import_lodash.default.cloneDeep(values),
1369
+ uid: newUid,
1370
+ parentId: parentIdValue,
1371
+ subKey: subKeyValue,
1372
+ subType: "object",
1373
+ use
1374
+ };
1375
+ await this.database.sequelize.transaction({ transaction: transaction2 }, async (innerTransaction) => {
1376
+ await this.upsertModel(modelToEnsure, { transaction: innerTransaction });
1377
+ });
1378
+ } catch (error) {
1379
+ if ((0, import_errors.isFlowModelUniqueConstraintError)(error)) {
1380
+ const existing = await this.database.sequelize.query(
1381
+ `SELECT TreeTable.descendant as uid
1382
+ FROM ${treeTable} as TreeTable
1383
+ LEFT JOIN ${treeTable} as NodeInfo
1384
+ ON NodeInfo.descendant = TreeTable.descendant
1385
+ AND NodeInfo.depth = 0
1386
+ WHERE TreeTable.depth = 1
1387
+ AND TreeTable.ancestor = :ancestor
1388
+ AND NodeInfo.type = :type
1389
+ ORDER BY TreeTable.sort ASC`,
1390
+ {
1391
+ type: import_sequelize.QueryTypes.SELECT,
1392
+ replacements: {
1393
+ ancestor: parentIdValue,
1394
+ type: subKeyValue
1395
+ },
1396
+ transaction: transaction2
1397
+ }
1398
+ );
1399
+ if (existing == null ? void 0 : existing.length) {
1400
+ const existingChild = existing.at(0);
1401
+ const childUid = String((existingChild == null ? void 0 : existingChild.uid) ?? "").trim();
1402
+ if (childUid) {
1403
+ return await this.findModelById(childUid, { transaction: transaction2, includeAsyncNode });
1404
+ }
1405
+ }
1406
+ }
1407
+ throw error;
1408
+ }
1409
+ return await this.findModelById(newUid, { transaction: transaction2, includeAsyncNode });
1410
+ };
1411
+ const lockKey = (0, import_ensure_lock.getEnsureObjectChildLockKey)(parentIdValue, subKeyValue);
1412
+ if ((0, import_ensure_lock.isEnsureObjectChildLockOwner)(lockKey, transaction2)) {
1413
+ return await ensureObjectChild();
1414
+ }
1415
+ const releaseEnsureObjectChildLock = await (0, import_ensure_lock.acquireEnsureObjectChildLock)(lockKey, (0, import_ensure_lock.getTransactionId)(transaction2));
1416
+ let releaseEnsureObjectChildLockAfterTransaction = false;
1417
+ try {
1418
+ const model = await ensureObjectChild();
1419
+ if ((0, import_ensure_lock.registerEnsureObjectChildLockRelease)(this.database, transaction2, releaseEnsureObjectChildLock)) {
1420
+ releaseEnsureObjectChildLockAfterTransaction = true;
1421
+ }
1422
+ return model;
1423
+ } finally {
1424
+ if (!releaseEnsureObjectChildLockAfterTransaction) {
1425
+ releaseEnsureObjectChildLock();
1426
+ }
1427
+ }
1428
+ }
1251
1429
  async attach(uid2, attachOptions, options) {
1252
1430
  const { transaction: transaction2 } = options || {};
1253
1431
  const modelUid = String(uid2 || "").trim();
@@ -1255,19 +1433,35 @@ WHERE TreeTable.depth = 1 AND TreeTable.ancestor = :ancestor and TreeTable.sort
1255
1433
  const subKey = String((attachOptions == null ? void 0 : attachOptions.subKey) || "").trim();
1256
1434
  const subType = attachOptions == null ? void 0 : attachOptions.subType;
1257
1435
  if (!modelUid || !parentId || !subKey || subType !== "array" && subType !== "object") {
1258
- throw new Error("flowModels:attach missing required params");
1436
+ throw new import_errors.FlowModelOperationError({
1437
+ status: 400,
1438
+ code: "INVALID_PARAMS",
1439
+ message: "flowModels:attach missing required params"
1440
+ });
1259
1441
  }
1260
1442
  if (modelUid === parentId) {
1261
- throw new Error("flowModels:attach cannot attach model to itself");
1443
+ throw new import_errors.FlowModelOperationError({
1444
+ status: 400,
1445
+ code: "INVALID_PARAMS",
1446
+ message: "flowModels:attach cannot attach model to itself"
1447
+ });
1262
1448
  }
1263
1449
  const treeTable = this.flowModelTreePathTableName;
1264
1450
  const modelInstance = await this.model.findByPk(modelUid, { transaction: transaction2 });
1265
1451
  if (!modelInstance) {
1266
- throw new Error(`flowModels:attach uid '${modelUid}' not found`);
1452
+ throw new import_errors.FlowModelOperationError({
1453
+ status: 404,
1454
+ code: "NOT_FOUND",
1455
+ message: `flowModels:attach uid '${modelUid}' not found`
1456
+ });
1267
1457
  }
1268
1458
  const parentInstance = await this.model.findByPk(parentId, { transaction: transaction2 });
1269
1459
  if (!parentInstance) {
1270
- throw new Error(`flowModels:attach parentId '${parentId}' not found`);
1460
+ throw new import_errors.FlowModelOperationError({
1461
+ status: 404,
1462
+ code: "NOT_FOUND",
1463
+ message: `flowModels:attach parentId '${parentId}' not found`
1464
+ });
1271
1465
  }
1272
1466
  const cycle = await this.database.sequelize.query(
1273
1467
  `SELECT 1 as v
@@ -1284,7 +1478,11 @@ WHERE TreeTable.depth = 1 AND TreeTable.ancestor = :ancestor and TreeTable.sort
1284
1478
  }
1285
1479
  );
1286
1480
  if (cycle == null ? void 0 : cycle.length) {
1287
- throw new Error("flowModels:attach cycle detected");
1481
+ throw new import_errors.FlowModelOperationError({
1482
+ status: 409,
1483
+ code: "CYCLE_DETECTED",
1484
+ message: "flowModels:attach cycle detected"
1485
+ });
1288
1486
  }
1289
1487
  if (subType === "object") {
1290
1488
  const conflict = await this.database.sequelize.query(
@@ -1309,7 +1507,11 @@ WHERE TreeTable.depth = 1 AND TreeTable.ancestor = :ancestor and TreeTable.sort
1309
1507
  }
1310
1508
  );
1311
1509
  if (conflict == null ? void 0 : conflict.length) {
1312
- throw new Error(`flowModels:attach subKey '${subKey}' already exists on parent '${parentId}'`);
1510
+ throw new import_errors.FlowModelOperationError({
1511
+ status: 409,
1512
+ code: "CONFLICT",
1513
+ message: `flowModels:attach subKey '${subKey}' already exists on parent '${parentId}'`
1514
+ });
1313
1515
  }
1314
1516
  }
1315
1517
  const normalizePosition = (input) => {
@@ -1323,13 +1525,21 @@ WHERE TreeTable.depth = 1 AND TreeTable.ancestor = :ancestor and TreeTable.sort
1323
1525
  return { type, target };
1324
1526
  }
1325
1527
  }
1326
- throw new Error("flowModels:attach invalid position");
1528
+ throw new import_errors.FlowModelOperationError({
1529
+ status: 400,
1530
+ code: "INVALID_PARAMS",
1531
+ message: "flowModels:attach invalid position"
1532
+ });
1327
1533
  };
1328
1534
  const position = subType === "object" ? "last" : normalizePosition(attachOptions == null ? void 0 : attachOptions.position);
1329
1535
  if (typeof position === "object") {
1330
1536
  const target = String(position.target || "").trim();
1331
1537
  if (target === modelUid) {
1332
- throw new Error("flowModels:attach position target cannot be itself");
1538
+ throw new import_errors.FlowModelOperationError({
1539
+ status: 400,
1540
+ code: "INVALID_PARAMS",
1541
+ message: "flowModels:attach position target cannot be itself"
1542
+ });
1333
1543
  }
1334
1544
  const ok = await this.database.sequelize.query(
1335
1545
  `SELECT 1 as v
@@ -1353,7 +1563,11 @@ WHERE TreeTable.depth = 1 AND TreeTable.ancestor = :ancestor and TreeTable.sort
1353
1563
  }
1354
1564
  );
1355
1565
  if (!(ok == null ? void 0 : ok.length)) {
1356
- throw new Error("flowModels:attach position target is not a sibling under the same parent/subKey");
1566
+ throw new import_errors.FlowModelOperationError({
1567
+ status: 400,
1568
+ code: "INVALID_PARAMS",
1569
+ message: "flowModels:attach position target is not a sibling under the same parent/subKey"
1570
+ });
1357
1571
  }
1358
1572
  }
1359
1573
  await this.clearXUidPathCache(modelUid, transaction2);
@@ -1383,11 +1597,99 @@ WHERE TreeTable.depth = 1 AND TreeTable.ancestor = :ancestor and TreeTable.sort
1383
1597
  );
1384
1598
  return await this.findModelById(modelUid, { transaction: transaction2, includeAsyncNode: true });
1385
1599
  }
1386
- async move(options) {
1387
- const { sourceId, targetId, position } = options;
1388
- return await this.insertAdjacent(position === "after" ? "afterEnd" : "beforeBegin", targetId, {
1389
- ["uid"]: sourceId
1390
- });
1600
+ async duplicateWithTargetUid(modelUid, targetUid, options) {
1601
+ const sourceUid = String(modelUid || "").trim();
1602
+ const desiredUid = String(targetUid || "").trim();
1603
+ const includeAsyncNode = !!(options == null ? void 0 : options.includeAsyncNode);
1604
+ const { transaction: transaction2 } = options || {};
1605
+ if (!sourceUid || !desiredUid) {
1606
+ throw new import_errors.FlowModelOperationError({
1607
+ status: 400,
1608
+ code: "INVALID_PARAMS",
1609
+ message: "flowModels:mutate duplicate requires 'uid' and 'targetUid'"
1610
+ });
1611
+ }
1612
+ const targetInstance = await this.model.findByPk(desiredUid, { transaction: transaction2 });
1613
+ if (targetInstance) {
1614
+ const targetOptions = _FlowModelRepository.optionsToJson(targetInstance.get("options"));
1615
+ const marker = targetOptions == null ? void 0 : targetOptions.__mutateDuplicate;
1616
+ if ((marker == null ? void 0 : marker.sourceUid) === sourceUid) {
1617
+ return await this.findModelById(desiredUid, { transaction: transaction2, includeAsyncNode });
1618
+ }
1619
+ throw new import_errors.FlowModelOperationError({
1620
+ status: 409,
1621
+ code: "CONFLICT",
1622
+ message: `flowModels:mutate duplicate targetUid '${desiredUid}' already exists`
1623
+ });
1624
+ }
1625
+ const nodes = await this.prepareNodesForDuplicate(sourceUid, { ...options, includeAsyncNode: true });
1626
+ if (!nodes.length) {
1627
+ throw new import_errors.FlowModelOperationError({
1628
+ status: 404,
1629
+ code: "NOT_FOUND",
1630
+ message: `flowModels:mutate duplicate uid '${sourceUid}' not found`
1631
+ });
1632
+ }
1633
+ const buildUid = (root, old) => {
1634
+ if (old === sourceUid) return root;
1635
+ const h = (0, import_node_crypto.createHash)("sha256").update(`${root}:${old}`).digest("hex").slice(0, 24);
1636
+ return `d_${h}`;
1637
+ };
1638
+ try {
1639
+ await this.cloneNodesWithUidMap(nodes, {
1640
+ sourceUid,
1641
+ transaction: transaction2,
1642
+ buildUid: (oldUid) => buildUid(desiredUid, oldUid),
1643
+ patchRootOptions: (rootOptions) => {
1644
+ rootOptions.__mutateDuplicate = { sourceUid };
1645
+ }
1646
+ });
1647
+ } catch (error) {
1648
+ if ((0, import_errors.isFlowModelUniqueConstraintError)(error)) {
1649
+ const existingTarget = await this.model.findByPk(desiredUid, { transaction: transaction2 });
1650
+ if (existingTarget) {
1651
+ const targetOptions = _FlowModelRepository.optionsToJson(existingTarget.get("options"));
1652
+ const marker = targetOptions == null ? void 0 : targetOptions.__mutateDuplicate;
1653
+ if ((marker == null ? void 0 : marker.sourceUid) === sourceUid) {
1654
+ return await this.findModelById(desiredUid, { transaction: transaction2, includeAsyncNode });
1655
+ }
1656
+ }
1657
+ throw new import_errors.FlowModelOperationError({
1658
+ status: 409,
1659
+ code: "CONFLICT",
1660
+ message: `flowModels:mutate duplicate targetUid '${desiredUid}' already exists`
1661
+ });
1662
+ }
1663
+ throw error;
1664
+ }
1665
+ return await this.findModelById(desiredUid, { transaction: transaction2, includeAsyncNode });
1666
+ }
1667
+ async move(moveOptions, options) {
1668
+ const { transaction: transaction2 } = options || {};
1669
+ const sourceId = String((moveOptions == null ? void 0 : moveOptions.sourceId) || "").trim();
1670
+ const targetId = String((moveOptions == null ? void 0 : moveOptions.targetId) || "").trim();
1671
+ const position = moveOptions == null ? void 0 : moveOptions.position;
1672
+ if (!sourceId || !targetId || position !== "before" && position !== "after") {
1673
+ throw new import_errors.FlowModelOperationError({
1674
+ status: 400,
1675
+ code: "INVALID_PARAMS",
1676
+ message: "flowModels:move requires 'sourceId'+'targetId'+'position=before|after'"
1677
+ });
1678
+ }
1679
+ if (sourceId === targetId) {
1680
+ const currentModel = await this.findModelById(sourceId, { transaction: transaction2, includeAsyncNode: true });
1681
+ if (currentModel) {
1682
+ return currentModel;
1683
+ }
1684
+ }
1685
+ return await this.insertAdjacent(
1686
+ position === "after" ? "afterEnd" : "beforeBegin",
1687
+ targetId,
1688
+ {
1689
+ ["uid"]: sourceId
1690
+ },
1691
+ { transaction: transaction2 }
1692
+ );
1391
1693
  }
1392
1694
  };
1393
1695
  __decorateClass([
@@ -1447,9 +1749,18 @@ __decorateClass([
1447
1749
  __decorateClass([
1448
1750
  transaction()
1449
1751
  ], _FlowModelRepository.prototype, "upsertModel", 1);
1752
+ __decorateClass([
1753
+ transaction()
1754
+ ], _FlowModelRepository.prototype, "ensureModel", 1);
1450
1755
  __decorateClass([
1451
1756
  transaction()
1452
1757
  ], _FlowModelRepository.prototype, "attach", 1);
1758
+ __decorateClass([
1759
+ transaction()
1760
+ ], _FlowModelRepository.prototype, "duplicateWithTargetUid", 1);
1761
+ __decorateClass([
1762
+ transaction()
1763
+ ], _FlowModelRepository.prototype, "move", 1);
1453
1764
  let FlowModelRepository = _FlowModelRepository;
1454
1765
  var repository_default = FlowModelRepository;
1455
1766
  // Annotate the CommonJS export names for ESM import in node: