@oomol-lab/open-flow 0.1.0-beta.73 → 0.1.0-beta.75

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 (444) hide show
  1. package/LICENSE +36 -0
  2. package/NOTICE +7 -0
  3. package/README.md +41 -0
  4. package/dist/browser/{ContentIcon-CUQHjQIw.js → ContentIcon-FCpKiwjp.js} +2 -1
  5. package/dist/browser/{FlowCanvas-Dtf8_cQp.js → FlowCanvas-dzRBnlUT.js} +1 -1
  6. package/dist/browser/{createResourceDialog-BWJkjiOO.js → createResourceDialog-BeYDdUl-.js} +2 -2
  7. package/dist/browser/{dialog-CUy_fwx9.js → dialog-ZtpsFbl4.js} +337 -31
  8. package/dist/browser/{exportSvg-BOoy7-Db.js → exportSvg-DqXw1yf-.js} +2 -2
  9. package/dist/browser/{flowChanges-CgSnSqqP.js → flowChanges-b_5UobFj.js} +586 -87
  10. package/dist/browser/{flowWorkspace-Bf7H-r0t.js → flowWorkspace-ItojZbO4.js} +21162 -20242
  11. package/dist/browser/preview.css +254 -179
  12. package/dist/browser/preview.js +22201 -20625
  13. package/dist/browser/{typeScriptSession-B0hC-C8y.js → typeScriptSession-CSRwWmZm.js} +1 -1
  14. package/dist/browser/ui.css +72 -2
  15. package/dist/browser/workbench.css +254 -179
  16. package/dist/browser/workbench.js +22 -78
  17. package/dist/browser/{workbenchSelect-C3e4J93X.js → workbenchSelect-M441Lz0d.js} +1 -1
  18. package/dist/command/index.js +42 -42
  19. package/dist/common/authoring.d.ts +5 -5
  20. package/dist/common/authoringExamples.d.ts +3 -2
  21. package/dist/common/authoringFields.d.ts +1 -1
  22. package/dist/common/authoringSchema.d.ts +95 -8
  23. package/dist/common/connector-proxy.d.ts +1 -1
  24. package/dist/common/control-api-conformance.d.ts +1 -1
  25. package/dist/common/control-api-conformance.js +119 -31
  26. package/dist/common/control-api.d.ts +4 -3
  27. package/dist/common/control-api.js +117 -29
  28. package/dist/common/control-requests.d.ts +5 -4
  29. package/dist/common/control-requests.js +437 -103
  30. package/dist/common/cron-trigger.d.ts +1 -1
  31. package/dist/common/decision.d.ts +1 -1
  32. package/dist/common/draftOperations.d.ts +1 -1
  33. package/dist/common/engine-contract.d.ts +4 -2
  34. package/dist/common/event-source-definition.d.ts +1 -1
  35. package/dist/common/flow-agent.d.ts +1 -1
  36. package/dist/{browser → common}/flow-authoring-node.d.ts +3 -3
  37. package/dist/{browser → common}/flow-authoring.js +131 -30
  38. package/dist/{browser → common}/flow-change-schema.d.ts +177 -6
  39. package/dist/{browser → common}/flow-change.d.ts +35 -15
  40. package/dist/{browser → common}/flow-change.js +133 -32
  41. package/dist/common/flow-connectionUsage.d.ts +1 -1
  42. package/dist/common/flow-encoding.d.ts +1 -1
  43. package/dist/common/flow-encoding.js +89 -23
  44. package/dist/common/flow-errorHandling.d.ts +1 -1
  45. package/dist/common/flow-graph.d.ts +3 -2
  46. package/dist/common/flow-modules.d.ts +1 -1
  47. package/dist/common/flow-promptTemplate.d.ts +1 -1
  48. package/dist/common/flow-retry.d.ts +2 -2
  49. package/dist/common/flow-semantics.d.ts +1 -1
  50. package/dist/common/flow-semantics.js +966 -614
  51. package/dist/common/flow-workflowFile.d.ts +1 -1
  52. package/dist/common/flowInspection.d.ts +3 -3
  53. package/dist/common/http-request.d.ts +156 -0
  54. package/dist/common/http-request.js +5254 -0
  55. package/dist/common/integration-trigger.d.ts +1 -1
  56. package/dist/common/licenses.md +118 -1
  57. package/dist/common/liveDetails.d.ts +1 -1
  58. package/dist/common/mcp.d.ts +5 -4
  59. package/dist/common/mcp.js +117 -29
  60. package/dist/common/openapi.d.ts +1 -1
  61. package/dist/common/poll-trigger.d.ts +1 -1
  62. package/dist/common/run-events.js +11 -9
  63. package/dist/common/run-results.d.ts +8 -1
  64. package/dist/common/runtime-contract.d.ts +8 -2
  65. package/dist/common/runtime-contract.js +25 -5
  66. package/dist/common/scheduler-checkpoint.d.ts +1 -1
  67. package/dist/common/scheduler-dependencies.d.ts +1 -1
  68. package/dist/common/scheduler-node-execution.d.ts +1 -1
  69. package/dist/common/scheduler.d.ts +3 -3
  70. package/dist/common/scheduler.js +101 -33
  71. package/dist/common/trigger-catalog.d.ts +1 -1
  72. package/dist/common/trigger-config-options.d.ts +1 -1
  73. package/dist/common/trigger-config.d.ts +1 -1
  74. package/dist/common/trigger-contract.d.ts +2 -2
  75. package/dist/common/trigger-localization.d.ts +1 -1
  76. package/dist/common/webhook-response.d.ts +1 -3
  77. package/dist/common/webhook-trigger.d.ts +1 -1
  78. package/dist/common/webhook-trigger.js +12 -11
  79. package/dist/common/workflow.d.ts +17 -1
  80. package/dist/common/workflow.js +68 -22
  81. package/dist/index.d.ts +6 -3
  82. package/package.json +11 -6
  83. package/skills/open-flow/references/flow-authoring.md +1 -0
  84. package/skills/open-flow/references/flow-n8n-conversion.md +19 -15
  85. package/src/base/common/json.ts +90 -0
  86. package/src/canvas/common/commands.ts +15 -0
  87. package/src/connector/common/actionSchema.ts +168 -0
  88. package/src/connector/common/proxy.ts +44 -0
  89. package/src/control/common/api.ts +1506 -0
  90. package/src/control/common/authoring.ts +923 -0
  91. package/src/control/common/authoringCondition.ts +110 -0
  92. package/src/control/common/authoringDiagnosticFields.ts +136 -0
  93. package/src/control/common/authoringExamples.ts +200 -0
  94. package/src/control/common/authoringFields.ts +53 -0
  95. package/src/control/common/authoringLlm.ts +70 -0
  96. package/src/control/common/authoringOpenApi.ts +129 -0
  97. package/src/control/common/authoringSchema.ts +410 -0
  98. package/src/control/common/authoringTools.ts +123 -0
  99. package/src/control/common/authoringTriggers.ts +26 -0
  100. package/src/control/common/checkDecoders.ts +65 -0
  101. package/src/control/common/conformance.ts +1989 -0
  102. package/src/control/common/connectorDecoders.ts +370 -0
  103. package/src/control/common/connectorQueries.ts +61 -0
  104. package/src/control/common/decoding.ts +60 -0
  105. package/src/control/common/draftOperations.ts +61 -0
  106. package/src/control/common/errors.ts +114 -0
  107. package/src/control/common/eventSourceSchemas.ts +13 -0
  108. package/src/control/common/eventSources.ts +186 -0
  109. package/src/control/common/flowDecoders.ts +153 -0
  110. package/src/control/common/flowInspection.ts +181 -0
  111. package/src/control/common/flowNotifications.ts +37 -0
  112. package/src/control/common/liveDetails.ts +124 -0
  113. package/src/control/common/mcp.ts +241 -0
  114. package/src/control/common/mcpConformance.ts +142 -0
  115. package/src/control/common/providerAccess.ts +28 -0
  116. package/src/control/common/providerIconSprite.ts +42 -0
  117. package/src/control/common/publicationDecoders.ts +98 -0
  118. package/src/control/common/random.ts +16 -0
  119. package/src/control/common/requests.ts +112 -0
  120. package/src/control/common/resultQuery.ts +8 -0
  121. package/src/control/common/results.ts +176 -0
  122. package/src/control/common/revisionDecoders.ts +52 -0
  123. package/src/control/common/runDecoders.ts +240 -0
  124. package/src/control/common/triggerCatalog.ts +89 -0
  125. package/src/control/common/triggerDecoders.ts +175 -0
  126. package/src/decision/common/decision.ts +168 -0
  127. package/src/event-source/common/catalog.generated.json +65 -0
  128. package/src/event-source/common/definition.ts +66 -0
  129. package/src/event-source/common/index.ts +99 -0
  130. package/src/execution/common/checkpoint.ts +311 -0
  131. package/src/execution/common/dependencies.ts +440 -0
  132. package/src/execution/common/engineContract.ts +84 -0
  133. package/src/execution/common/events.ts +331 -0
  134. package/src/execution/common/node-execution.ts +469 -0
  135. package/src/execution/common/runLifecycle.ts +250 -0
  136. package/src/execution/common/runtime.ts +563 -0
  137. package/src/execution/common/scheduler.ts +697 -0
  138. package/src/execution/common/wait.ts +36 -0
  139. package/src/flow/common/agent.ts +305 -0
  140. package/src/flow/common/authoring.ts +30 -0
  141. package/src/flow/common/change.ts +1037 -0
  142. package/src/flow/common/changeSchema.ts +792 -0
  143. package/src/flow/common/codePermissions.ts +2 -0
  144. package/src/flow/common/condition.ts +265 -0
  145. package/src/flow/common/connectionUsage.ts +131 -0
  146. package/src/flow/common/edgeChanges.ts +35 -0
  147. package/src/flow/common/encoding.ts +437 -0
  148. package/src/flow/common/errorHandling.ts +34 -0
  149. package/src/flow/common/graph.ts +898 -0
  150. package/src/flow/common/inputValue.ts +16 -0
  151. package/src/flow/common/json.ts +8 -0
  152. package/src/flow/common/moduleChanges.ts +31 -0
  153. package/src/flow/common/modules.ts +292 -0
  154. package/src/flow/common/nodeChanges.ts +762 -0
  155. package/src/flow/common/portChanges.ts +36 -0
  156. package/src/flow/common/promptTemplate.ts +15 -0
  157. package/src/flow/common/retry.ts +20 -0
  158. package/src/flow/common/schema.ts +162 -0
  159. package/src/flow/common/schemaCompare.ts +176 -0
  160. package/src/flow/common/schemaComparer.ts +178 -0
  161. package/src/flow/common/schemaKeywords.ts +53 -0
  162. package/src/flow/common/semantics.ts +531 -0
  163. package/src/flow/common/sourceField.ts +35 -0
  164. package/src/flow/common/triggerScheduleSchema.ts +8 -0
  165. package/src/flow/common/wait.ts +30 -0
  166. package/src/flow/common/webhookMethod.ts +7 -0
  167. package/src/flow/common/webhookResponse.ts +71 -0
  168. package/src/flow/common/workflowFile.ts +97 -0
  169. package/src/http/common/authBindings.ts +12 -0
  170. package/src/http/common/headers.ts +5 -0
  171. package/src/http/common/httpRequest.ts +251 -0
  172. package/src/json-schema-subset/checker/array.ts +142 -0
  173. package/src/json-schema-subset/checker/cache.ts +57 -0
  174. package/src/json-schema-subset/checker/checker.ts +230 -0
  175. package/src/json-schema-subset/checker/enumAndConst.ts +113 -0
  176. package/src/json-schema-subset/checker/equals.ts +93 -0
  177. package/src/json-schema-subset/checker/numeric/checker.ts +50 -0
  178. package/src/json-schema-subset/checker/numeric/float.ts +121 -0
  179. package/src/json-schema-subset/checker/numeric/index.ts +1 -0
  180. package/src/json-schema-subset/checker/numeric/integer.ts +119 -0
  181. package/src/json-schema-subset/checker/numeric/integerNormalizer.ts +72 -0
  182. package/src/json-schema-subset/checker/object.ts +354 -0
  183. package/src/json-schema-subset/checker/range.ts +91 -0
  184. package/src/json-schema-subset/checker/string.ts +60 -0
  185. package/src/json-schema-subset/checker/tools/index.ts +3 -0
  186. package/src/json-schema-subset/checker/tools/mark.ts +82 -0
  187. package/src/json-schema-subset/checker/tools/quantum.ts +106 -0
  188. package/src/json-schema-subset/checker/tools/range.ts +210 -0
  189. package/src/json-schema-subset/checker/validator.ts +23 -0
  190. package/src/json-schema-subset/compiler/array.ts +163 -0
  191. package/src/json-schema-subset/compiler/combination.ts +109 -0
  192. package/src/json-schema-subset/compiler/common.ts +99 -0
  193. package/src/json-schema-subset/compiler/compiler.ts +188 -0
  194. package/src/json-schema-subset/compiler/enumAndConst.ts +75 -0
  195. package/src/json-schema-subset/compiler/index.ts +11 -0
  196. package/src/json-schema-subset/compiler/object.ts +411 -0
  197. package/src/json-schema-subset/compiler/primitive.ts +144 -0
  198. package/src/json-schema-subset/compiler/utils.ts +24 -0
  199. package/src/json-schema-subset/compiler/wrapper.ts +192 -0
  200. package/src/json-schema-subset/error.ts +55 -0
  201. package/src/json-schema-subset/expression/calculator.ts +442 -0
  202. package/src/json-schema-subset/expression/combination.ts +49 -0
  203. package/src/json-schema-subset/expression/expression.ts +191 -0
  204. package/src/json-schema-subset/expression/index.ts +25 -0
  205. package/src/json-schema-subset/expression/result.ts +88 -0
  206. package/src/json-schema-subset/expression/types.ts +36 -0
  207. package/src/json-schema-subset/extends/extendsContext.ts +89 -0
  208. package/src/json-schema-subset/extends/index.ts +2 -0
  209. package/src/json-schema-subset/extends/types.ts +12 -0
  210. package/src/json-schema-subset/global.ts +60 -0
  211. package/src/json-schema-subset/index.ts +8 -0
  212. package/src/json-schema-subset/preprocessing.ts +74 -0
  213. package/src/json-schema-subset/types.ts +8 -0
  214. package/src/json-schema-subset/utils.ts +95 -0
  215. package/src/localization/common/languages.ts +118 -0
  216. package/src/localization/common/timeZone.ts +25 -0
  217. package/src/openapi/common/openapi.ts +459 -0
  218. package/src/trigger/common/config.ts +56 -0
  219. package/src/trigger/common/configOptions.ts +15 -0
  220. package/src/trigger/common/configSchema.ts +8 -0
  221. package/src/trigger/common/contract.ts +132 -0
  222. package/src/trigger/common/cron.ts +151 -0
  223. package/src/trigger/common/integration.ts +498 -0
  224. package/src/trigger/common/poll.ts +187 -0
  225. package/src/trigger/common/webhook.ts +413 -0
  226. package/src/trigger/providers/airtable/locales/fr.json +18 -0
  227. package/src/trigger/providers/airtable/locales/ja.json +18 -0
  228. package/src/trigger/providers/airtable/locales/ko.json +18 -0
  229. package/src/trigger/providers/airtable/locales/ru.json +18 -0
  230. package/src/trigger/providers/airtable/locales/zh-CN.json +18 -0
  231. package/src/trigger/providers/airtable/locales/zh-TW.json +18 -0
  232. package/src/trigger/providers/asana/locales/fr.json +15 -0
  233. package/src/trigger/providers/asana/locales/ja.json +15 -0
  234. package/src/trigger/providers/asana/locales/ko.json +15 -0
  235. package/src/trigger/providers/asana/locales/ru.json +15 -0
  236. package/src/trigger/providers/asana/locales/zh-CN.json +15 -0
  237. package/src/trigger/providers/asana/locales/zh-TW.json +15 -0
  238. package/src/trigger/providers/calendly/locales/fr.json +16 -0
  239. package/src/trigger/providers/calendly/locales/ja.json +16 -0
  240. package/src/trigger/providers/calendly/locales/ko.json +16 -0
  241. package/src/trigger/providers/calendly/locales/ru.json +16 -0
  242. package/src/trigger/providers/calendly/locales/zh-CN.json +16 -0
  243. package/src/trigger/providers/calendly/locales/zh-TW.json +16 -0
  244. package/src/trigger/providers/catalog.generated.json +4996 -0
  245. package/src/trigger/providers/clickup/locales/fr.json +16 -0
  246. package/src/trigger/providers/clickup/locales/ja.json +16 -0
  247. package/src/trigger/providers/clickup/locales/ko.json +16 -0
  248. package/src/trigger/providers/clickup/locales/ru.json +16 -0
  249. package/src/trigger/providers/clickup/locales/zh-CN.json +16 -0
  250. package/src/trigger/providers/clickup/locales/zh-TW.json +16 -0
  251. package/src/trigger/providers/definitions.ts +19 -0
  252. package/src/trigger/providers/feishu/locales/fr.json +20 -0
  253. package/src/trigger/providers/feishu/locales/ja.json +20 -0
  254. package/src/trigger/providers/feishu/locales/ko.json +20 -0
  255. package/src/trigger/providers/feishu/locales/ru.json +20 -0
  256. package/src/trigger/providers/feishu/locales/zh-CN.json +20 -0
  257. package/src/trigger/providers/feishu/locales/zh-TW.json +20 -0
  258. package/src/trigger/providers/fieldDescriptions.ts +392 -0
  259. package/src/trigger/providers/fieldLabels.ts +256 -0
  260. package/src/trigger/providers/fireflies/locales/fr.json +17 -0
  261. package/src/trigger/providers/fireflies/locales/ja.json +17 -0
  262. package/src/trigger/providers/fireflies/locales/ko.json +17 -0
  263. package/src/trigger/providers/fireflies/locales/ru.json +17 -0
  264. package/src/trigger/providers/fireflies/locales/zh-CN.json +17 -0
  265. package/src/trigger/providers/fireflies/locales/zh-TW.json +17 -0
  266. package/src/trigger/providers/github/locales/fr.json +30 -0
  267. package/src/trigger/providers/github/locales/ja.json +30 -0
  268. package/src/trigger/providers/github/locales/ko.json +30 -0
  269. package/src/trigger/providers/github/locales/ru.json +30 -0
  270. package/src/trigger/providers/github/locales/zh-CN.json +30 -0
  271. package/src/trigger/providers/github/locales/zh-TW.json +30 -0
  272. package/src/trigger/providers/gitlab/locales/fr.json +18 -0
  273. package/src/trigger/providers/gitlab/locales/ja.json +18 -0
  274. package/src/trigger/providers/gitlab/locales/ko.json +18 -0
  275. package/src/trigger/providers/gitlab/locales/ru.json +18 -0
  276. package/src/trigger/providers/gitlab/locales/zh-CN.json +18 -0
  277. package/src/trigger/providers/gitlab/locales/zh-TW.json +18 -0
  278. package/src/trigger/providers/gmail/locales/fr.json +18 -0
  279. package/src/trigger/providers/gmail/locales/ja.json +18 -0
  280. package/src/trigger/providers/gmail/locales/ko.json +18 -0
  281. package/src/trigger/providers/gmail/locales/ru.json +18 -0
  282. package/src/trigger/providers/gmail/locales/zh-CN.json +18 -0
  283. package/src/trigger/providers/gmail/locales/zh-TW.json +18 -0
  284. package/src/trigger/providers/google-calendar/locales/fr.json +15 -0
  285. package/src/trigger/providers/google-calendar/locales/ja.json +15 -0
  286. package/src/trigger/providers/google-calendar/locales/ko.json +15 -0
  287. package/src/trigger/providers/google-calendar/locales/ru.json +15 -0
  288. package/src/trigger/providers/google-calendar/locales/zh-CN.json +15 -0
  289. package/src/trigger/providers/google-calendar/locales/zh-TW.json +15 -0
  290. package/src/trigger/providers/google-drive/locales/fr.json +48 -0
  291. package/src/trigger/providers/google-drive/locales/ja.json +48 -0
  292. package/src/trigger/providers/google-drive/locales/ko.json +48 -0
  293. package/src/trigger/providers/google-drive/locales/ru.json +48 -0
  294. package/src/trigger/providers/google-drive/locales/zh-CN.json +48 -0
  295. package/src/trigger/providers/google-drive/locales/zh-TW.json +48 -0
  296. package/src/trigger/providers/google-sheets/locales/fr.json +19 -0
  297. package/src/trigger/providers/google-sheets/locales/ja.json +19 -0
  298. package/src/trigger/providers/google-sheets/locales/ko.json +19 -0
  299. package/src/trigger/providers/google-sheets/locales/ru.json +19 -0
  300. package/src/trigger/providers/google-sheets/locales/zh-CN.json +19 -0
  301. package/src/trigger/providers/google-sheets/locales/zh-TW.json +19 -0
  302. package/src/trigger/providers/intercom/locales/fr.json +17 -0
  303. package/src/trigger/providers/intercom/locales/ja.json +17 -0
  304. package/src/trigger/providers/intercom/locales/ko.json +17 -0
  305. package/src/trigger/providers/intercom/locales/ru.json +17 -0
  306. package/src/trigger/providers/intercom/locales/zh-CN.json +17 -0
  307. package/src/trigger/providers/intercom/locales/zh-TW.json +17 -0
  308. package/src/trigger/providers/jira/locales/fr.json +17 -0
  309. package/src/trigger/providers/jira/locales/ja.json +17 -0
  310. package/src/trigger/providers/jira/locales/ko.json +17 -0
  311. package/src/trigger/providers/jira/locales/ru.json +17 -0
  312. package/src/trigger/providers/jira/locales/zh-CN.json +17 -0
  313. package/src/trigger/providers/jira/locales/zh-TW.json +17 -0
  314. package/src/trigger/providers/linear/locales/fr.json +13 -0
  315. package/src/trigger/providers/linear/locales/ja.json +13 -0
  316. package/src/trigger/providers/linear/locales/ko.json +13 -0
  317. package/src/trigger/providers/linear/locales/ru.json +13 -0
  318. package/src/trigger/providers/linear/locales/zh-CN.json +13 -0
  319. package/src/trigger/providers/linear/locales/zh-TW.json +13 -0
  320. package/src/trigger/providers/locales/fr.ts +71 -0
  321. package/src/trigger/providers/locales/ja.ts +71 -0
  322. package/src/trigger/providers/locales/ko.ts +71 -0
  323. package/src/trigger/providers/locales/ru.ts +71 -0
  324. package/src/trigger/providers/locales/zh-CN.ts +71 -0
  325. package/src/trigger/providers/locales/zh-TW.ts +71 -0
  326. package/src/trigger/providers/localization.ts +59 -0
  327. package/src/trigger/providers/notion/locales/fr.json +16 -0
  328. package/src/trigger/providers/notion/locales/ja.json +16 -0
  329. package/src/trigger/providers/notion/locales/ko.json +16 -0
  330. package/src/trigger/providers/notion/locales/ru.json +16 -0
  331. package/src/trigger/providers/notion/locales/zh-CN.json +16 -0
  332. package/src/trigger/providers/notion/locales/zh-TW.json +16 -0
  333. package/src/trigger/providers/one-drive/locales/fr.json +16 -0
  334. package/src/trigger/providers/one-drive/locales/ja.json +16 -0
  335. package/src/trigger/providers/one-drive/locales/ko.json +16 -0
  336. package/src/trigger/providers/one-drive/locales/ru.json +16 -0
  337. package/src/trigger/providers/one-drive/locales/zh-CN.json +16 -0
  338. package/src/trigger/providers/one-drive/locales/zh-TW.json +16 -0
  339. package/src/trigger/providers/outlook/locales/fr.json +18 -0
  340. package/src/trigger/providers/outlook/locales/ja.json +18 -0
  341. package/src/trigger/providers/outlook/locales/ko.json +18 -0
  342. package/src/trigger/providers/outlook/locales/ru.json +18 -0
  343. package/src/trigger/providers/outlook/locales/zh-CN.json +18 -0
  344. package/src/trigger/providers/outlook/locales/zh-TW.json +18 -0
  345. package/src/trigger/providers/pandadoc/locales/fr.json +12 -0
  346. package/src/trigger/providers/pandadoc/locales/ja.json +12 -0
  347. package/src/trigger/providers/pandadoc/locales/ko.json +12 -0
  348. package/src/trigger/providers/pandadoc/locales/ru.json +12 -0
  349. package/src/trigger/providers/pandadoc/locales/zh-CN.json +12 -0
  350. package/src/trigger/providers/pandadoc/locales/zh-TW.json +12 -0
  351. package/src/trigger/providers/pipedrive/locales/fr.json +15 -0
  352. package/src/trigger/providers/pipedrive/locales/ja.json +15 -0
  353. package/src/trigger/providers/pipedrive/locales/ko.json +15 -0
  354. package/src/trigger/providers/pipedrive/locales/ru.json +15 -0
  355. package/src/trigger/providers/pipedrive/locales/zh-CN.json +15 -0
  356. package/src/trigger/providers/pipedrive/locales/zh-TW.json +15 -0
  357. package/src/trigger/providers/remote.ts +163 -0
  358. package/src/trigger/providers/resend/locales/fr.json +16 -0
  359. package/src/trigger/providers/resend/locales/ja.json +16 -0
  360. package/src/trigger/providers/resend/locales/ko.json +16 -0
  361. package/src/trigger/providers/resend/locales/ru.json +16 -0
  362. package/src/trigger/providers/resend/locales/zh-CN.json +16 -0
  363. package/src/trigger/providers/resend/locales/zh-TW.json +16 -0
  364. package/src/trigger/providers/sentry/locales/fr.json +19 -0
  365. package/src/trigger/providers/sentry/locales/ja.json +19 -0
  366. package/src/trigger/providers/sentry/locales/ko.json +19 -0
  367. package/src/trigger/providers/sentry/locales/ru.json +19 -0
  368. package/src/trigger/providers/sentry/locales/zh-CN.json +19 -0
  369. package/src/trigger/providers/sentry/locales/zh-TW.json +19 -0
  370. package/src/trigger/providers/shopify/locales/fr.json +18 -0
  371. package/src/trigger/providers/shopify/locales/ja.json +18 -0
  372. package/src/trigger/providers/shopify/locales/ko.json +18 -0
  373. package/src/trigger/providers/shopify/locales/ru.json +18 -0
  374. package/src/trigger/providers/shopify/locales/zh-CN.json +18 -0
  375. package/src/trigger/providers/shopify/locales/zh-TW.json +18 -0
  376. package/src/trigger/providers/slack/locales/fr.json +18 -0
  377. package/src/trigger/providers/slack/locales/ja.json +18 -0
  378. package/src/trigger/providers/slack/locales/ko.json +18 -0
  379. package/src/trigger/providers/slack/locales/ru.json +18 -0
  380. package/src/trigger/providers/slack/locales/zh-CN.json +18 -0
  381. package/src/trigger/providers/slack/locales/zh-TW.json +18 -0
  382. package/src/trigger/providers/slackbot/locales/fr.json +23 -0
  383. package/src/trigger/providers/slackbot/locales/ja.json +23 -0
  384. package/src/trigger/providers/slackbot/locales/ko.json +23 -0
  385. package/src/trigger/providers/slackbot/locales/ru.json +23 -0
  386. package/src/trigger/providers/slackbot/locales/zh-CN.json +23 -0
  387. package/src/trigger/providers/slackbot/locales/zh-TW.json +23 -0
  388. package/src/trigger/providers/source-events.ts +25 -0
  389. package/src/trigger/providers/stripe/locales/fr.json +17 -0
  390. package/src/trigger/providers/stripe/locales/ja.json +17 -0
  391. package/src/trigger/providers/stripe/locales/ko.json +17 -0
  392. package/src/trigger/providers/stripe/locales/ru.json +17 -0
  393. package/src/trigger/providers/stripe/locales/zh-CN.json +17 -0
  394. package/src/trigger/providers/stripe/locales/zh-TW.json +17 -0
  395. package/src/trigger/providers/tally/locales/fr.json +12 -0
  396. package/src/trigger/providers/tally/locales/ja.json +12 -0
  397. package/src/trigger/providers/tally/locales/ko.json +12 -0
  398. package/src/trigger/providers/tally/locales/ru.json +12 -0
  399. package/src/trigger/providers/tally/locales/zh-CN.json +12 -0
  400. package/src/trigger/providers/tally/locales/zh-TW.json +12 -0
  401. package/src/trigger/providers/telegram/locales/fr.json +17 -0
  402. package/src/trigger/providers/telegram/locales/ja.json +17 -0
  403. package/src/trigger/providers/telegram/locales/ko.json +17 -0
  404. package/src/trigger/providers/telegram/locales/ru.json +17 -0
  405. package/src/trigger/providers/telegram/locales/zh-CN.json +17 -0
  406. package/src/trigger/providers/telegram/locales/zh-TW.json +17 -0
  407. package/src/trigger/providers/typeform/locales/fr.json +12 -0
  408. package/src/trigger/providers/typeform/locales/ja.json +12 -0
  409. package/src/trigger/providers/typeform/locales/ko.json +12 -0
  410. package/src/trigger/providers/typeform/locales/ru.json +12 -0
  411. package/src/trigger/providers/typeform/locales/zh-CN.json +12 -0
  412. package/src/trigger/providers/typeform/locales/zh-TW.json +12 -0
  413. package/src/trigger/providers/vercel/locales/fr.json +18 -0
  414. package/src/trigger/providers/vercel/locales/ja.json +18 -0
  415. package/src/trigger/providers/vercel/locales/ko.json +18 -0
  416. package/src/trigger/providers/vercel/locales/ru.json +18 -0
  417. package/src/trigger/providers/vercel/locales/zh-CN.json +18 -0
  418. package/src/trigger/providers/vercel/locales/zh-TW.json +18 -0
  419. package/src/trigger/providers/woocommerce/locales/fr.json +19 -0
  420. package/src/trigger/providers/woocommerce/locales/ja.json +19 -0
  421. package/src/trigger/providers/woocommerce/locales/ko.json +19 -0
  422. package/src/trigger/providers/woocommerce/locales/ru.json +19 -0
  423. package/src/trigger/providers/woocommerce/locales/zh-CN.json +19 -0
  424. package/src/trigger/providers/woocommerce/locales/zh-TW.json +19 -0
  425. package/src/trigger/providers/zendesk/locales/fr.json +15 -0
  426. package/src/trigger/providers/zendesk/locales/ja.json +15 -0
  427. package/src/trigger/providers/zendesk/locales/ko.json +15 -0
  428. package/src/trigger/providers/zendesk/locales/ru.json +15 -0
  429. package/src/trigger/providers/zendesk/locales/zh-CN.json +15 -0
  430. package/src/trigger/providers/zendesk/locales/zh-TW.json +15 -0
  431. package/src/trigger/providers/zoom/locales/fr.json +17 -0
  432. package/src/trigger/providers/zoom/locales/ja.json +17 -0
  433. package/src/trigger/providers/zoom/locales/ko.json +17 -0
  434. package/src/trigger/providers/zoom/locales/ru.json +17 -0
  435. package/src/trigger/providers/zoom/locales/zh-CN.json +17 -0
  436. package/src/trigger/providers/zoom/locales/zh-TW.json +17 -0
  437. package/src/types/index.ts +112 -0
  438. package/src/workflow/common/workflow.ts +273 -0
  439. package/dist/browser/lib-DrKav3HG.js +0 -11403
  440. /package/dist/{browser → common}/flow-authoring-edge.d.ts +0 -0
  441. /package/dist/{browser → common}/flow-authoring-module.d.ts +0 -0
  442. /package/dist/{browser → common}/flow-authoring.d.ts +0 -0
  443. /package/dist/{browser → common}/flow-input-value.d.ts +0 -0
  444. /package/dist/{browser → common}/webhook-method.d.ts +0 -0
@@ -0,0 +1,192 @@
1
+ import type { JSONSchema7 } from 'json-schema'
2
+ import type { ExtendsSchema } from '../extends/index.ts'
3
+ import type { Schema } from '../types.ts'
4
+ import type { JSONDelegate } from '../types.ts'
5
+ import type { DeepReadonly } from '../utils.ts'
6
+
7
+ import { createId, deepFreeze } from '../utils.ts'
8
+
9
+ const symbolID = Symbol('compiledId')
10
+ const symbolKind = Symbol('compiledKind')
11
+ const symbolPath = Symbol('compiledPath')
12
+ const symbolValidatorLoader = Symbol('validatorLoader')
13
+
14
+ export type SchemaPath = readonly (string | number)[]
15
+
16
+ export const CompiledKind = Object.freeze({
17
+ Extends: 0,
18
+ Never: 1,
19
+ Any: 2,
20
+ Null: 3,
21
+ String: 4,
22
+ Numeric: 5,
23
+ Boolean: 6,
24
+ Object: 7,
25
+ Array: 8,
26
+ Not: 9,
27
+ Combination: 10,
28
+ EnumOrConst: 11,
29
+ })
30
+
31
+ export type CompiledKind = (typeof CompiledKind)[keyof typeof CompiledKind]
32
+
33
+ export type CompiledValue = null | number | string | boolean | CompiledObject
34
+ export type CompiledObject = (CompiledValue[] | { [key: string]: CompiledValue }) & {
35
+ readonly [symbolID]: number
36
+ }
37
+
38
+ type ValidatorLoader<E> = () => (value: unknown) => boolean | readonly E[]
39
+
40
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
41
+ export const ANY: DeepReadonly<CompiledSchema<any>> = deepFreeze(toCompiledSchema(CompiledKind.Any, createId(), {}, () => () => true))
42
+
43
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
44
+ export const NEVER: DeepReadonly<CompiledSchema<any>> = deepFreeze(
45
+ toCompiledSchema(CompiledKind.Never, createId(), { type: 'string', maxLength: 0, minLength: 1 }, () => () => false),
46
+ )
47
+
48
+ export interface CompiledSchema<E> extends JSONSchema7 {
49
+ readonly [symbolKind]: CompiledKind
50
+ readonly [symbolID]: number
51
+ readonly [symbolPath]: SchemaPath
52
+ readonly [symbolValidatorLoader]?: ValidatorLoader<E>
53
+ readonly isValid?: (value: unknown) => boolean | readonly E[]
54
+ }
55
+
56
+ export function isCompiledObject(value: unknown): value is DeepReadonly<CompiledObject> {
57
+ if (value === null || typeof value !== 'object') {
58
+ return false
59
+ }
60
+ return symbolID in value
61
+ }
62
+
63
+ export function isCompiledSchema<E>(object: unknown): object is DeepReadonly<CompiledSchema<E>> {
64
+ if (object === null || typeof object !== 'object') {
65
+ return false
66
+ }
67
+ return symbolID in object && symbolKind in object
68
+ }
69
+
70
+ export function getKind<E>(schema: Schema<E>): CompiledKind {
71
+ if (isCompiledSchema(schema)) {
72
+ return schema[symbolKind]
73
+ } else {
74
+ return CompiledKind.Extends
75
+ }
76
+ }
77
+
78
+ export function getId<E>(schema: ExtendsSchema | DeepReadonly<CompiledSchema<E>> | DeepReadonly<CompiledObject>): number {
79
+ if (isCompiledSchema(schema) || isCompiledObject(schema)) {
80
+ return schema[symbolID]
81
+ } else {
82
+ return (schema as ExtendsSchema).id
83
+ }
84
+ }
85
+
86
+ export function getPath<E>(schema: Schema<E>): SchemaPath | undefined {
87
+ return isCompiledSchema(schema) ? schema[symbolPath] : undefined
88
+ }
89
+
90
+ export function assertCompiledValue<V>(value: V): asserts value is V & CompiledValue {
91
+ let failure = false
92
+ switch (typeof value) {
93
+ case 'number':
94
+ case 'string':
95
+ case 'boolean': {
96
+ break
97
+ }
98
+ case 'object': {
99
+ failure = !isCompiledObject(value)
100
+ break
101
+ }
102
+ default: {
103
+ failure = true
104
+ break
105
+ }
106
+ }
107
+ if (failure) {
108
+ throw new Error('assert a CompiledValue but fail')
109
+ }
110
+ }
111
+
112
+ export function wrapCompiledValue(value: unknown): CompiledValue {
113
+ if (value === null || typeof value !== 'object') {
114
+ return value as CompiledValue
115
+ }
116
+ Object.defineProperty(value, symbolID, {
117
+ value: createId(),
118
+ configurable: false,
119
+ writable: false,
120
+ enumerable: false,
121
+ })
122
+ return value as CompiledValue
123
+ }
124
+
125
+ export function wrapCompiledSchema<E>(kind: CompiledKind, schema: JSONSchema7, delegate?: JSONDelegate<E>, path: SchemaPath = []): CompiledSchema<E> {
126
+ return toCompiledSchema(
127
+ kind,
128
+ createId(),
129
+ schema,
130
+ delegate &&
131
+ (() => {
132
+ return delegate.compile(schema)
133
+ }),
134
+ path,
135
+ )
136
+ }
137
+
138
+ export function toNever<T extends CompiledSchema<E>, E>(schema: T): T {
139
+ return toCompiledSchema(CompiledKind.Never, createId(), { ...schema }, schema[symbolValidatorLoader], schema[symbolPath]) as T
140
+ }
141
+
142
+ function toCompiledSchema<E>(
143
+ kind: CompiledKind,
144
+ id: number,
145
+ schema: JSONSchema7,
146
+ validatorLoader?: ValidatorLoader<E>,
147
+ path: SchemaPath = [],
148
+ ): CompiledSchema<E> {
149
+ let validator: ReturnType<ValidatorLoader<E>> | null = null
150
+
151
+ Object.defineProperties(schema, {
152
+ [symbolKind]: {
153
+ value: kind,
154
+ configurable: false,
155
+ writable: false,
156
+ enumerable: false,
157
+ },
158
+ [symbolID]: {
159
+ value: id,
160
+ configurable: false,
161
+ writable: false,
162
+ enumerable: false,
163
+ },
164
+ [symbolPath]: {
165
+ value: path,
166
+ configurable: false,
167
+ writable: false,
168
+ enumerable: false,
169
+ },
170
+ [symbolValidatorLoader]: {
171
+ value: validatorLoader,
172
+ configurable: false,
173
+ writable: false,
174
+ enumerable: false,
175
+ },
176
+ isValid: {
177
+ configurable: false,
178
+ enumerable: false,
179
+ get: (): ((value: unknown) => boolean | readonly E[]) | undefined => {
180
+ if (validatorLoader) {
181
+ if (!validator) {
182
+ validator = validatorLoader()
183
+ }
184
+ return validator
185
+ } else {
186
+ return undefined
187
+ }
188
+ },
189
+ },
190
+ })
191
+ return schema as CompiledSchema<E>
192
+ }
@@ -0,0 +1,55 @@
1
+ export class SchemaError<E = unknown> extends Error {
2
+ public readonly items: readonly SchemaErrorItem<E>[]
3
+
4
+ public constructor(items: readonly SchemaErrorItem<E>[] = []) {
5
+ super(createSchemaErrorMessage(items))
6
+ this.name = 'SchemaError'
7
+ this.items = items
8
+ }
9
+ }
10
+
11
+ export type SchemaErrorItem<E = unknown> = CompiledSchemaErrorItem | ExternalSchemaErrorItem<E>
12
+
13
+ export type CompiledSchemaErrorItem = {
14
+ readonly kind: typeof SchemaErrorItemKind.Compiled
15
+ readonly path: (number | string)[]
16
+ readonly message: string
17
+ }
18
+
19
+ export type ExternalSchemaErrorItem<E = unknown> = {
20
+ readonly kind: typeof SchemaErrorItemKind.External
21
+ readonly error: E
22
+ }
23
+
24
+ export const SchemaErrorItemKind = Object.freeze({
25
+ Compiled: 0,
26
+ External: 1,
27
+ })
28
+
29
+ export type SchemaErrorItemKind = (typeof SchemaErrorItemKind)[keyof typeof SchemaErrorItemKind]
30
+
31
+ export function stringifySchemaError<E = unknown>(errorItem: SchemaErrorItem<E>): string {
32
+ switch (errorItem.kind) {
33
+ case SchemaErrorItemKind.Compiled: {
34
+ const { message, path } = errorItem
35
+ return `${message} (at ${path.length > 0 ? path.join('.') : '$root'})`
36
+ }
37
+ case SchemaErrorItemKind.External: {
38
+ return String(errorItem.error)
39
+ }
40
+ }
41
+ }
42
+
43
+ function createSchemaErrorMessage(items: readonly SchemaErrorItem[]): string {
44
+ switch (items.length) {
45
+ case 0: {
46
+ return 'without any items'
47
+ }
48
+ case 1: {
49
+ return stringifySchemaError(items[0])
50
+ }
51
+ default: {
52
+ return `${stringifySchemaError(items[0])} ... omit the rest ${items.length - 1} items`
53
+ }
54
+ }
55
+ }
@@ -0,0 +1,442 @@
1
+ import type { Combination } from './combination.ts'
2
+ import type { ExpressionResult } from './result.ts'
3
+
4
+ import { makeCombination } from './combination.ts'
5
+ import {
6
+ ExpressionNone,
7
+ ExpressionSingleResult,
8
+ ExpressionEquals,
9
+ ExpressionContaining,
10
+ ExpressionContainedBy,
11
+ ExpressionRejection,
12
+ ExpressionIntersection,
13
+ ExpressionMaskList,
14
+ } from './result.ts'
15
+
16
+ export const CalculatorOperator = Object.freeze({
17
+ Save: 0,
18
+ OneOf: 1,
19
+ AllOf: 2,
20
+ AnyOf: 3,
21
+ Not: 4,
22
+ Swap: 5,
23
+ })
24
+
25
+ export type CalculatorOperator = (typeof CalculatorOperator)[keyof typeof CalculatorOperator]
26
+
27
+ export function calculate(operator: CalculatorOperator, expressions: readonly ExpressionResult[]): ExpressionResult {
28
+ switch (operator) {
29
+ case CalculatorOperator.Save: {
30
+ return expressions[0]
31
+ }
32
+ case CalculatorOperator.OneOf: {
33
+ return calculateOneOf(expressions)
34
+ }
35
+ case CalculatorOperator.AllOf:
36
+ case CalculatorOperator.AnyOf: {
37
+ return calculateCombination(operator, expressions)
38
+ }
39
+ case CalculatorOperator.Not:
40
+ case CalculatorOperator.Swap: {
41
+ return calculateUnary(operator, expressions[0])
42
+ }
43
+ }
44
+ }
45
+
46
+ export function swap(expression: ExpressionResult): ExpressionResult {
47
+ return calculateUnary(CalculatorOperator.Swap, expression)
48
+ }
49
+
50
+ /**
51
+ * The oneOf operator is indivisible, so `a + b + c` must be evaluated as one expression.
52
+ * ![](../../doc/images/all_of_expression.png)
53
+ */
54
+ function calculateOneOf(expressions: readonly ExpressionResult[]): ExpressionResult {
55
+ // A single remaining branch makes oneOf equivalent to that branch.
56
+ if (expressions.length === 1) {
57
+ return expressions[0]
58
+ }
59
+ const unionSet = calculateCombination(CalculatorOperator.AnyOf, expressions)
60
+ const intersectionList: ExpressionResult[] = []
61
+
62
+ for (let i = 0; i < expressions.length; ++i) {
63
+ for (let j = i + 1; j < expressions.length; ++j) {
64
+ const left = expressions[i]
65
+ const right = expressions[j]
66
+ const intersection = calculateCombination(CalculatorOperator.AllOf, [left, right])
67
+ intersectionList.push(intersection)
68
+ }
69
+ }
70
+ const banZone = calculateCombination(CalculatorOperator.AnyOf, intersectionList)
71
+ const enableZone = calculateUnary(CalculatorOperator.Not, banZone)
72
+
73
+ return calculateCombination(CalculatorOperator.AllOf, [unionSet, enableZone])
74
+ }
75
+
76
+ function calculateCombination(operator: CalculatorOperator, expressions: readonly ExpressionResult[]): ExpressionResult {
77
+ if (expressions.length < 0) {
78
+ throw new Error('invalid expressions: empty array')
79
+ }
80
+ let combination: Combination
81
+
82
+ switch (operator) {
83
+ case CalculatorOperator.AllOf: {
84
+ combination = makeCombination(calculateAllOf)
85
+ break
86
+ }
87
+ case CalculatorOperator.AnyOf: {
88
+ combination = makeCombination(calculateAnyOf)
89
+ break
90
+ }
91
+ default: {
92
+ throw new Error(`invalid operator ${operator}`)
93
+ }
94
+ }
95
+ for (const expression of expressions) {
96
+ combination.push(expression)
97
+ }
98
+ return combination.result
99
+ }
100
+
101
+ function calculateUnary(operator: CalculatorOperator, expression: ExpressionResult): ExpressionResult {
102
+ let calculator: (expression: ExpressionSingleResult) => ExpressionResult
103
+ let result: ExpressionResult = ExpressionNone
104
+
105
+ switch (operator) {
106
+ case CalculatorOperator.Not: {
107
+ calculator = calculateNot
108
+ break
109
+ }
110
+ case CalculatorOperator.Swap: {
111
+ calculator = calculateSwap
112
+ break
113
+ }
114
+ default: {
115
+ throw new Error(`invalid operator ${operator}`)
116
+ }
117
+ }
118
+ for (const [singleExpression, maskExpression] of ExpressionMaskList) {
119
+ if (maskExpression & expression) {
120
+ result |= calculator(singleExpression)
121
+ }
122
+ }
123
+ return result
124
+ }
125
+
126
+ function calculateAllOf(e1: ExpressionSingleResult, e2: ExpressionSingleResult): ExpressionResult {
127
+ let result: ExpressionResult = ExpressionNone
128
+ switch (e1) {
129
+ case ExpressionSingleResult.Equals: {
130
+ switch (e2) {
131
+ case ExpressionSingleResult.Equals: {
132
+ result = ExpressionEquals
133
+ break
134
+ }
135
+ case ExpressionSingleResult.Containing: {
136
+ result = ExpressionEquals
137
+ break
138
+ }
139
+ case ExpressionSingleResult.ContainedBy: {
140
+ result = ExpressionContainedBy
141
+ break
142
+ }
143
+ case ExpressionSingleResult.Rejection: {
144
+ result = ExpressionNone
145
+ break
146
+ }
147
+ case ExpressionSingleResult.Intersection: {
148
+ result = ExpressionContainedBy
149
+ break
150
+ }
151
+ }
152
+ break
153
+ }
154
+ case ExpressionSingleResult.Containing: {
155
+ switch (e2) {
156
+ case ExpressionSingleResult.Equals: {
157
+ result = ExpressionEquals
158
+ break
159
+ }
160
+ case ExpressionSingleResult.Containing: {
161
+ result = ExpressionEquals | ExpressionContaining
162
+ break
163
+ }
164
+ case ExpressionSingleResult.ContainedBy: {
165
+ result = ExpressionContainedBy
166
+ break
167
+ }
168
+ case ExpressionSingleResult.Rejection: {
169
+ result = ExpressionRejection
170
+ break
171
+ }
172
+ case ExpressionSingleResult.Intersection: {
173
+ result = ExpressionIntersection | ExpressionContainedBy
174
+ break
175
+ }
176
+ }
177
+ break
178
+ }
179
+ case ExpressionSingleResult.ContainedBy: {
180
+ switch (e2) {
181
+ case ExpressionSingleResult.Equals: {
182
+ result = ExpressionContainedBy
183
+ break
184
+ }
185
+ case ExpressionSingleResult.Containing: {
186
+ result = ExpressionContainedBy
187
+ break
188
+ }
189
+ case ExpressionSingleResult.ContainedBy: {
190
+ result = ExpressionContainedBy
191
+ break
192
+ }
193
+ case ExpressionSingleResult.Rejection: {
194
+ result = ExpressionNone
195
+ break
196
+ }
197
+ case ExpressionSingleResult.Intersection: {
198
+ result = ExpressionContainedBy
199
+ break
200
+ }
201
+ }
202
+ break
203
+ }
204
+ case ExpressionSingleResult.Rejection: {
205
+ switch (e2) {
206
+ case ExpressionSingleResult.Equals: {
207
+ result = ExpressionNone
208
+ break
209
+ }
210
+ case ExpressionSingleResult.Containing: {
211
+ result = ExpressionRejection
212
+ break
213
+ }
214
+ case ExpressionSingleResult.ContainedBy: {
215
+ result = ExpressionNone
216
+ break
217
+ }
218
+ case ExpressionSingleResult.Rejection: {
219
+ result = ExpressionRejection
220
+ break
221
+ }
222
+ case ExpressionSingleResult.Intersection: {
223
+ result = ExpressionRejection
224
+ break
225
+ }
226
+ }
227
+ break
228
+ }
229
+ case ExpressionSingleResult.Intersection: {
230
+ switch (e2) {
231
+ case ExpressionSingleResult.Equals: {
232
+ result = ExpressionContainedBy
233
+ break
234
+ }
235
+ case ExpressionSingleResult.Containing: {
236
+ result = ExpressionIntersection | ExpressionContainedBy
237
+ break
238
+ }
239
+ case ExpressionSingleResult.ContainedBy: {
240
+ result = ExpressionContainedBy
241
+ break
242
+ }
243
+ case ExpressionSingleResult.Rejection: {
244
+ result = ExpressionRejection
245
+ break
246
+ }
247
+ case ExpressionSingleResult.Intersection: {
248
+ result = ExpressionContainedBy | ExpressionRejection | ExpressionIntersection
249
+ break
250
+ }
251
+ }
252
+ break
253
+ }
254
+ }
255
+ return result
256
+ }
257
+
258
+ function calculateAnyOf(e1: ExpressionSingleResult, e2: ExpressionSingleResult): ExpressionResult {
259
+ let result: ExpressionResult = ExpressionNone
260
+ switch (e1) {
261
+ case ExpressionSingleResult.Equals: {
262
+ switch (e2) {
263
+ case ExpressionSingleResult.Equals: {
264
+ result = ExpressionEquals
265
+ break
266
+ }
267
+ case ExpressionSingleResult.Containing: {
268
+ result = ExpressionContaining
269
+ break
270
+ }
271
+ case ExpressionSingleResult.ContainedBy: {
272
+ result = ExpressionEquals
273
+ break
274
+ }
275
+ case ExpressionSingleResult.Rejection: {
276
+ result = ExpressionContaining
277
+ break
278
+ }
279
+ case ExpressionSingleResult.Intersection: {
280
+ result = ExpressionContaining
281
+ break
282
+ }
283
+ }
284
+ break
285
+ }
286
+ case ExpressionSingleResult.Containing: {
287
+ switch (e2) {
288
+ case ExpressionSingleResult.Equals: {
289
+ result = ExpressionContaining
290
+ break
291
+ }
292
+ case ExpressionSingleResult.Containing: {
293
+ result = ExpressionContaining
294
+ break
295
+ }
296
+ case ExpressionSingleResult.ContainedBy: {
297
+ result = ExpressionContaining
298
+ break
299
+ }
300
+ case ExpressionSingleResult.Rejection: {
301
+ result = ExpressionContaining
302
+ break
303
+ }
304
+ case ExpressionSingleResult.Intersection: {
305
+ result = ExpressionContaining
306
+ break
307
+ }
308
+ }
309
+ break
310
+ }
311
+ case ExpressionSingleResult.ContainedBy: {
312
+ switch (e2) {
313
+ case ExpressionSingleResult.Equals: {
314
+ result = ExpressionEquals
315
+ break
316
+ }
317
+ case ExpressionSingleResult.Containing: {
318
+ result = ExpressionContaining
319
+ break
320
+ }
321
+ case ExpressionSingleResult.ContainedBy: {
322
+ result = ExpressionEquals | ExpressionContainedBy
323
+ break
324
+ }
325
+ case ExpressionSingleResult.Rejection: {
326
+ result = ExpressionIntersection
327
+ break
328
+ }
329
+ case ExpressionSingleResult.Intersection: {
330
+ result = ExpressionContaining | ExpressionIntersection
331
+ break
332
+ }
333
+ }
334
+ break
335
+ }
336
+ case ExpressionSingleResult.Rejection: {
337
+ switch (e2) {
338
+ case ExpressionSingleResult.Equals: {
339
+ result = ExpressionContaining
340
+ break
341
+ }
342
+ case ExpressionSingleResult.Containing: {
343
+ result = ExpressionContaining
344
+ break
345
+ }
346
+ case ExpressionSingleResult.ContainedBy: {
347
+ result = ExpressionIntersection
348
+ break
349
+ }
350
+ case ExpressionSingleResult.Rejection: {
351
+ result = ExpressionRejection
352
+ break
353
+ }
354
+ case ExpressionSingleResult.Intersection: {
355
+ result = ExpressionIntersection
356
+ break
357
+ }
358
+ }
359
+ break
360
+ }
361
+ case ExpressionSingleResult.Intersection: {
362
+ switch (e2) {
363
+ case ExpressionSingleResult.Equals: {
364
+ result = ExpressionContaining
365
+ break
366
+ }
367
+ case ExpressionSingleResult.Containing: {
368
+ result = ExpressionContaining
369
+ break
370
+ }
371
+ case ExpressionSingleResult.ContainedBy: {
372
+ result = ExpressionContaining | ExpressionIntersection
373
+ break
374
+ }
375
+ case ExpressionSingleResult.Rejection: {
376
+ result = ExpressionIntersection
377
+ break
378
+ }
379
+ case ExpressionSingleResult.Intersection: {
380
+ result = ExpressionContaining | ExpressionIntersection
381
+ break
382
+ }
383
+ }
384
+ break
385
+ }
386
+ }
387
+ return result
388
+ }
389
+
390
+ function calculateNot(expression: ExpressionSingleResult): ExpressionResult {
391
+ let result: ExpressionResult = ExpressionNone
392
+ switch (expression) {
393
+ case ExpressionSingleResult.Equals: {
394
+ result = ExpressionRejection
395
+ break
396
+ }
397
+ case ExpressionSingleResult.Containing: {
398
+ result = ExpressionRejection
399
+ break
400
+ }
401
+ case ExpressionSingleResult.ContainedBy: {
402
+ result = ExpressionIntersection
403
+ break
404
+ }
405
+ case ExpressionSingleResult.Rejection: {
406
+ result = ExpressionEquals | ExpressionContaining
407
+ break
408
+ }
409
+ case ExpressionSingleResult.Intersection: {
410
+ result = ExpressionContainedBy | ExpressionIntersection
411
+ break
412
+ }
413
+ }
414
+ return result
415
+ }
416
+
417
+ function calculateSwap(expression: ExpressionResult): ExpressionResult {
418
+ let result: ExpressionResult = ExpressionNone
419
+ switch (expression) {
420
+ case ExpressionSingleResult.Equals: {
421
+ result = ExpressionEquals
422
+ break
423
+ }
424
+ case ExpressionSingleResult.Containing: {
425
+ result = ExpressionContainedBy
426
+ break
427
+ }
428
+ case ExpressionSingleResult.ContainedBy: {
429
+ result = ExpressionContaining
430
+ break
431
+ }
432
+ case ExpressionSingleResult.Rejection: {
433
+ result = ExpressionRejection
434
+ break
435
+ }
436
+ case ExpressionSingleResult.Intersection: {
437
+ result = ExpressionIntersection
438
+ break
439
+ }
440
+ }
441
+ return result
442
+ }