@tachybase/module-workflow 0.23.8

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 (536) hide show
  1. package/.turbo/turbo-build.log +12 -0
  2. package/README.md +9 -0
  3. package/README.zh-CN.md +9 -0
  4. package/client.d.ts +2 -0
  5. package/client.js +1 -0
  6. package/dist/client/Branch.d.ts +9 -0
  7. package/dist/client/CanvasContent.d.ts +4 -0
  8. package/dist/client/CanvasContentWrapper.d.ts +4 -0
  9. package/dist/client/ExecutionCanvas.d.ts +2 -0
  10. package/dist/client/ExecutionContextProvider.d.ts +7 -0
  11. package/dist/client/ExecutionLink.d.ts +2 -0
  12. package/dist/client/ExecutionPage.d.ts +2 -0
  13. package/dist/client/ExecutionResourceProvider.d.ts +6 -0
  14. package/dist/client/FlowContext.d.ts +3 -0
  15. package/dist/client/Plugin.d.ts +39 -0
  16. package/dist/client/WorkflowCanvas.d.ts +2 -0
  17. package/dist/client/WorkflowLink.d.ts +2 -0
  18. package/dist/client/WorkflowPage.d.ts +2 -0
  19. package/dist/client/WorkflowPane.d.ts +2 -0
  20. package/dist/client/components/AddNotifiedPerson.d.ts +3 -0
  21. package/dist/client/components/AutoResizeInput.d.ts +4 -0
  22. package/dist/client/components/CheckboxGroupWithTooltip.d.ts +7 -0
  23. package/dist/client/components/CollectionBlockInitializer.d.ts +2 -0
  24. package/dist/client/components/CollectionFieldset.d.ts +3 -0
  25. package/dist/client/components/ColumnShowCollection.d.ts +2 -0
  26. package/dist/client/components/ColumnShowTitle.d.ts +2 -0
  27. package/dist/client/components/ConfigButtonMessage.d.ts +2 -0
  28. package/dist/client/components/DetailsBlockProvider.d.ts +6 -0
  29. package/dist/client/components/DrawerDescription.d.ts +5 -0
  30. package/dist/client/components/DrawerForm.d.ts +5 -0
  31. package/dist/client/components/ExecutionStatus.d.ts +5 -0
  32. package/dist/client/components/ExecutionTime.d.ts +3 -0
  33. package/dist/client/components/FieldsSelect.d.ts +2 -0
  34. package/dist/client/components/FilterDynamicComponent.d.ts +6 -0
  35. package/dist/client/components/GoBackButton.d.ts +2 -0
  36. package/dist/client/components/OpenDrawer.d.ts +7 -0
  37. package/dist/client/components/RadioWithTooltip.d.ts +7 -0
  38. package/dist/client/components/SelectNotifiedPerson.d.ts +2 -0
  39. package/dist/client/components/ShowNodeTypesInWorkflow.d.ts +2 -0
  40. package/dist/client/components/SimpleDesigner.d.ts +2 -0
  41. package/dist/client/components/StatusButton.d.ts +2 -0
  42. package/dist/client/components/ValueBlock.d.ts +5 -0
  43. package/dist/client/components/WorkflowLink.d.ts +2 -0
  44. package/dist/client/components/index.d.ts +15 -0
  45. package/dist/client/components/renderEngineReference.d.ts +2 -0
  46. package/dist/client/constants.d.ts +37 -0
  47. package/dist/client/features/aggregate/AggregateInstruction.d.ts +217 -0
  48. package/dist/client/features/aggregate/index.d.ts +4 -0
  49. package/dist/client/features/common/constants.d.ts +3 -0
  50. package/dist/client/features/delay/DelayInstruction.d.ts +48 -0
  51. package/dist/client/features/delay/index.d.ts +4 -0
  52. package/dist/client/features/dynamic-calculation/DynamicCalculation.d.ts +76 -0
  53. package/dist/client/features/dynamic-calculation/DynamicExpression.d.ts +6 -0
  54. package/dist/client/features/dynamic-calculation/expression.d.ts +35 -0
  55. package/dist/client/features/dynamic-calculation/index.d.ts +4 -0
  56. package/dist/client/features/interceptor/WorkflowTriggerInterceptor.d.ts +100 -0
  57. package/dist/client/features/interceptor/index.d.ts +4 -0
  58. package/dist/client/features/js-parse/JSParse.instruction.d.ts +123 -0
  59. package/dist/client/features/js-parse/index.d.ts +5 -0
  60. package/dist/client/features/json-parse/JSONParse.instruction.d.ts +119 -0
  61. package/dist/client/features/json-parse/index.d.ts +5 -0
  62. package/dist/client/features/loop/LoopInstruction.d.ts +33 -0
  63. package/dist/client/features/loop/index.d.ts +4 -0
  64. package/dist/client/features/manual/WorkflowTodo.d.ts +5 -0
  65. package/dist/client/features/manual/WorkflowTodoBlockInitializer.d.ts +2 -0
  66. package/dist/client/features/manual/index.d.ts +5 -0
  67. package/dist/client/features/manual/instruction/AssigneesSelect.d.ts +6 -0
  68. package/dist/client/features/manual/instruction/FormBlockInitializer.d.ts +2 -0
  69. package/dist/client/features/manual/instruction/FormBlockProvider.d.ts +2 -0
  70. package/dist/client/features/manual/instruction/ModeConfig.d.ts +5 -0
  71. package/dist/client/features/manual/instruction/SchemaConfig.d.ts +50 -0
  72. package/dist/client/features/manual/instruction/createManualFormBlockUISchema.d.ts +57 -0
  73. package/dist/client/features/manual/instruction/forms/create.d.ts +3 -0
  74. package/dist/client/features/manual/instruction/forms/custom.d.ts +5 -0
  75. package/dist/client/features/manual/instruction/forms/update.d.ts +3 -0
  76. package/dist/client/features/manual/instruction/index.d.ts +91 -0
  77. package/dist/client/features/manual/instruction/utils.d.ts +1 -0
  78. package/dist/client/features/notice/common/flowNodes.collection.d.ts +38 -0
  79. package/dist/client/features/notice/common/notice.collection.d.ts +127 -0
  80. package/dist/client/features/notice/common/workflow.collection.d.ts +30 -0
  81. package/dist/client/features/notice/configuration/Notice.instruction.d.ts +76 -0
  82. package/dist/client/features/notice/configuration/config-items/AddNotifiedPerson.view.d.ts +2 -0
  83. package/dist/client/features/notice/configuration/config-items/ConfigButtonNotice.view.d.ts +2 -0
  84. package/dist/client/features/notice/configuration/config-items/SelectNotifiedPerson.view.d.ts +2 -0
  85. package/dist/client/features/notice/configuration/kit.d.ts +5 -0
  86. package/dist/client/features/notice/configuration/show-interface/NoticeDetail.block.d.ts +2 -0
  87. package/dist/client/features/notice/configuration/show-interface/NoticeDetail.initializer.d.ts +2 -0
  88. package/dist/client/features/notice/configuration/show-interface/NoticeDetail.schema.d.ts +6 -0
  89. package/dist/client/features/notice/configuration/show-interface/NoticeDetailContainer.schema.d.ts +2 -0
  90. package/dist/client/features/notice/configuration/show-interface/style.d.ts +3 -0
  91. package/dist/client/features/notice/configuration/style.d.ts +5 -0
  92. package/dist/client/features/notice/index.d.ts +5 -0
  93. package/dist/client/features/notice/locale.d.ts +7 -0
  94. package/dist/client/features/notice/usage/NoticeBlock.initializer.d.ts +6 -0
  95. package/dist/client/features/notice/usage/NoticeBlock.provider.d.ts +5 -0
  96. package/dist/client/features/notice/usage/NoticeCenter.schema.d.ts +2 -0
  97. package/dist/client/features/notice/usage/column/column.action.d.ts +2 -0
  98. package/dist/client/features/notice/usage/column/column.node.d.ts +1 -0
  99. package/dist/client/features/notice/usage/column/column.status.d.ts +8 -0
  100. package/dist/client/features/notice/usage/column/column.user.d.ts +1 -0
  101. package/dist/client/features/notice/usage/column/column.workflow.d.ts +2 -0
  102. package/dist/client/features/notice/usage/kit.d.ts +5 -0
  103. package/dist/client/features/notice/usage/show-detail/NoticeDetail.provider.d.ts +5 -0
  104. package/dist/client/features/notice/usage/show-detail/NoticeDetail.schema.d.ts +2 -0
  105. package/dist/client/features/notice/usage/show-detail/contexts/MyComponent.context.d.ts +9 -0
  106. package/dist/client/features/notice/usage/show-detail/contexts/WorkflowNotice.context.d.ts +4 -0
  107. package/dist/client/features/notice/usage/show-detail/hooks/usePropsNoticeDetail.d.ts +3 -0
  108. package/dist/client/features/omni-trigger/OmniActionTrigger.d.ts +84 -0
  109. package/dist/client/features/omni-trigger/index.d.ts +5 -0
  110. package/dist/client/features/omni-trigger/usage/APIRegular.schema.d.ts +2 -0
  111. package/dist/client/features/omni-trigger/usage/APIRegular.setting.d.ts +2 -0
  112. package/dist/client/features/omni-trigger/usage/hooks.d.ts +3 -0
  113. package/dist/client/features/omni-trigger/usage/kit.d.ts +4 -0
  114. package/dist/client/features/omni-trigger/useFormWorkflowCustomActionProps.d.ts +3 -0
  115. package/dist/client/features/omni-trigger/useRecordWorkflowCustomTriggerActionProps.d.ts +3 -0
  116. package/dist/client/features/parallel/ParallelInstruction.d.ts +34 -0
  117. package/dist/client/features/parallel/index.d.ts +4 -0
  118. package/dist/client/features/request/RequestInstruction.d.ts +220 -0
  119. package/dist/client/features/request/index.d.ts +4 -0
  120. package/dist/client/features/response/index.d.ts +4 -0
  121. package/dist/client/features/script/Script.instruction.d.ts +198 -0
  122. package/dist/client/features/script/index.d.ts +5 -0
  123. package/dist/client/features/sql/SQLInstruction.d.ts +54 -0
  124. package/dist/client/features/sql/index.d.ts +4 -0
  125. package/dist/client/features/trigger-instruction/TriggerInstruction.d.ts +93 -0
  126. package/dist/client/features/trigger-instruction/index.d.ts +0 -0
  127. package/dist/client/features/trigger-instruction/plugin.d.ts +4 -0
  128. package/dist/client/features/variables/VariableTargetSelect.d.ts +5 -0
  129. package/dist/client/features/variables/VariablesInstruction.d.ts +54 -0
  130. package/dist/client/features/variables/index.d.ts +4 -0
  131. package/dist/client/features/variables/useStyles.d.ts +3 -0
  132. package/dist/client/hooks/index.d.ts +3 -0
  133. package/dist/client/hooks/useGetAriaLabelOfAddButton.d.ts +6 -0
  134. package/dist/client/hooks/useTriggerWorkflowActionProps.d.ts +6 -0
  135. package/dist/client/hooks/useWorkflowExecuted.d.ts +2 -0
  136. package/dist/client/index.d.ts +19 -0
  137. package/dist/client/index.js +876 -0
  138. package/dist/client/locale/index.d.ts +4 -0
  139. package/dist/client/nodes/calculation.d.ts +88 -0
  140. package/dist/client/nodes/condition.d.ts +108 -0
  141. package/dist/client/nodes/create.d.ts +68 -0
  142. package/dist/client/nodes/default-node/Node.context.d.ts +3 -0
  143. package/dist/client/nodes/default-node/Node.d.ts +4 -0
  144. package/dist/client/nodes/default-node/Node.style.d.ts +4 -0
  145. package/dist/client/nodes/default-node/buttons/ArrowDownButton.d.ts +2 -0
  146. package/dist/client/nodes/default-node/buttons/ArrowUpButton.d.ts +2 -0
  147. package/dist/client/nodes/default-node/buttons/DragButton.d.ts +2 -0
  148. package/dist/client/nodes/default-node/buttons/JobButton.d.ts +2 -0
  149. package/dist/client/nodes/default-node/buttons/JobButton.style.d.ts +5 -0
  150. package/dist/client/nodes/default-node/buttons/RemoveButton.d.ts +2 -0
  151. package/dist/client/nodes/default-node/components/AddButton.d.ts +11 -0
  152. package/dist/client/nodes/default-node/components/AddButton.props.d.ts +11 -0
  153. package/dist/client/nodes/default-node/components/AddButton.style.d.ts +6 -0
  154. package/dist/client/nodes/default-node/components/NodeConfig.d.ts +2 -0
  155. package/dist/client/nodes/default-node/components/NodeConfig.provider.d.ts +2 -0
  156. package/dist/client/nodes/default-node/components/NodeConfig.schema.d.ts +15 -0
  157. package/dist/client/nodes/default-node/components/NodeConfig.view.d.ts +2 -0
  158. package/dist/client/nodes/default-node/components/NodeConfigTitle.d.ts +2 -0
  159. package/dist/client/nodes/default-node/components/NodeDefaultView.d.ts +2 -0
  160. package/dist/client/nodes/default-node/components/NodeDefaultView.style.d.ts +5 -0
  161. package/dist/client/nodes/default-node/components/NodePoint.d.ts +2 -0
  162. package/dist/client/nodes/default-node/components/NodePoint.style.d.ts +4 -0
  163. package/dist/client/nodes/default-node/hooks/useAvailableUpstreams.d.ts +1 -0
  164. package/dist/client/nodes/default-node/hooks/useFormProviderProps.d.ts +3 -0
  165. package/dist/client/nodes/default-node/hooks/useUpdateAction.d.ts +3 -0
  166. package/dist/client/nodes/default-node/hooks/useUpstreamScopes.d.ts +1 -0
  167. package/dist/client/nodes/default-node/index.d.ts +4 -0
  168. package/dist/client/nodes/default-node/interface.d.ts +49 -0
  169. package/dist/client/nodes/destroy.d.ts +46 -0
  170. package/dist/client/nodes/end.d.ts +25 -0
  171. package/dist/client/nodes/query.d.ts +221 -0
  172. package/dist/client/nodes/update.d.ts +82 -0
  173. package/dist/client/schemas/collection.d.ts +162 -0
  174. package/dist/client/schemas/executions.d.ts +380 -0
  175. package/dist/client/schemas/workflows.d.ts +47 -0
  176. package/dist/client/settings/customizeSubmitToWorkflowActionSettings.d.ts +2 -0
  177. package/dist/client/style.d.ts +19 -0
  178. package/dist/client/triggers/collection.d.ts +133 -0
  179. package/dist/client/triggers/index.d.ts +25 -0
  180. package/dist/client/triggers/schedule/EndsByField.d.ts +5 -0
  181. package/dist/client/triggers/schedule/OnField.d.ts +5 -0
  182. package/dist/client/triggers/schedule/RepeatField.d.ts +5 -0
  183. package/dist/client/triggers/schedule/ScheduleConfig.d.ts +2 -0
  184. package/dist/client/triggers/schedule/constants.d.ts +4 -0
  185. package/dist/client/triggers/schedule/index.d.ts +22 -0
  186. package/dist/client/triggers/schedule/locale/Cron.zh-CN.d.ts +34 -0
  187. package/dist/client/utils.d.ts +5 -0
  188. package/dist/client/variable.d.ts +97 -0
  189. package/dist/common/constants.d.ts +5 -0
  190. package/dist/common/constants.js +39 -0
  191. package/dist/externalVersion.js +25 -0
  192. package/dist/index.d.ts +2 -0
  193. package/dist/index.js +39 -0
  194. package/dist/locale/en-US.json +319 -0
  195. package/dist/locale/es-ES.json +129 -0
  196. package/dist/locale/fr-FR.json +129 -0
  197. package/dist/locale/ja-JP.json +87 -0
  198. package/dist/locale/ko_KR.json +246 -0
  199. package/dist/locale/pt-BR.json +129 -0
  200. package/dist/locale/ru-RU.json +87 -0
  201. package/dist/locale/tr-TR.json +87 -0
  202. package/dist/locale/zh-CN.json +399 -0
  203. package/dist/node_modules/@babel/core/LICENSE +22 -0
  204. package/dist/node_modules/@babel/core/cjs-proxy.cjs +68 -0
  205. package/dist/node_modules/@babel/core/lib/config/cache-contexts.js +3 -0
  206. package/dist/node_modules/@babel/core/lib/config/caching.js +261 -0
  207. package/dist/node_modules/@babel/core/lib/config/config-chain.js +469 -0
  208. package/dist/node_modules/@babel/core/lib/config/config-descriptors.js +190 -0
  209. package/dist/node_modules/@babel/core/lib/config/files/configuration.js +287 -0
  210. package/dist/node_modules/@babel/core/lib/config/files/import.cjs +6 -0
  211. package/dist/node_modules/@babel/core/lib/config/files/index-browser.js +58 -0
  212. package/dist/node_modules/@babel/core/lib/config/files/index.js +78 -0
  213. package/dist/node_modules/@babel/core/lib/config/files/module-types.js +195 -0
  214. package/dist/node_modules/@babel/core/lib/config/files/package.js +61 -0
  215. package/dist/node_modules/@babel/core/lib/config/files/plugins.js +229 -0
  216. package/dist/node_modules/@babel/core/lib/config/files/types.js +3 -0
  217. package/dist/node_modules/@babel/core/lib/config/files/utils.js +36 -0
  218. package/dist/node_modules/@babel/core/lib/config/full.js +312 -0
  219. package/dist/node_modules/@babel/core/lib/config/helpers/config-api.js +84 -0
  220. package/dist/node_modules/@babel/core/lib/config/helpers/deep-array.js +23 -0
  221. package/dist/node_modules/@babel/core/lib/config/helpers/environment.js +12 -0
  222. package/dist/node_modules/@babel/core/lib/config/index.js +93 -0
  223. package/dist/node_modules/@babel/core/lib/config/item.js +67 -0
  224. package/dist/node_modules/@babel/core/lib/config/partial.js +158 -0
  225. package/dist/node_modules/@babel/core/lib/config/pattern-to-regex.js +38 -0
  226. package/dist/node_modules/@babel/core/lib/config/plugin.js +33 -0
  227. package/dist/node_modules/@babel/core/lib/config/printer.js +113 -0
  228. package/dist/node_modules/@babel/core/lib/config/resolve-targets-browser.js +41 -0
  229. package/dist/node_modules/@babel/core/lib/config/resolve-targets.js +61 -0
  230. package/dist/node_modules/@babel/core/lib/config/util.js +31 -0
  231. package/dist/node_modules/@babel/core/lib/config/validation/option-assertions.js +277 -0
  232. package/dist/node_modules/@babel/core/lib/config/validation/options.js +189 -0
  233. package/dist/node_modules/@babel/core/lib/config/validation/plugins.js +67 -0
  234. package/dist/node_modules/@babel/core/lib/config/validation/removed.js +68 -0
  235. package/dist/node_modules/@babel/core/lib/errors/config-error.js +18 -0
  236. package/dist/node_modules/@babel/core/lib/errors/rewrite-stack-trace.js +98 -0
  237. package/dist/node_modules/@babel/core/lib/gensync-utils/async.js +90 -0
  238. package/dist/node_modules/@babel/core/lib/gensync-utils/fs.js +31 -0
  239. package/dist/node_modules/@babel/core/lib/gensync-utils/functional.js +58 -0
  240. package/dist/node_modules/@babel/core/lib/index.js +227 -0
  241. package/dist/node_modules/@babel/core/lib/parse.js +47 -0
  242. package/dist/node_modules/@babel/core/lib/parser/index.js +79 -0
  243. package/dist/node_modules/@babel/core/lib/parser/util/missing-plugin-helper.js +339 -0
  244. package/dist/node_modules/@babel/core/lib/tools/build-external-helpers.js +144 -0
  245. package/dist/node_modules/@babel/core/lib/transform-ast.js +50 -0
  246. package/dist/node_modules/@babel/core/lib/transform-file-browser.js +23 -0
  247. package/dist/node_modules/@babel/core/lib/transform-file.js +40 -0
  248. package/dist/node_modules/@babel/core/lib/transform.js +49 -0
  249. package/dist/node_modules/@babel/core/lib/transformation/block-hoist-plugin.js +84 -0
  250. package/dist/node_modules/@babel/core/lib/transformation/file/babel-7-helpers.cjs +4 -0
  251. package/dist/node_modules/@babel/core/lib/transformation/file/file.js +214 -0
  252. package/dist/node_modules/@babel/core/lib/transformation/file/generate.js +84 -0
  253. package/dist/node_modules/@babel/core/lib/transformation/file/merge-map.js +37 -0
  254. package/dist/node_modules/@babel/core/lib/transformation/index.js +92 -0
  255. package/dist/node_modules/@babel/core/lib/transformation/normalize-file.js +129 -0
  256. package/dist/node_modules/@babel/core/lib/transformation/normalize-opts.js +59 -0
  257. package/dist/node_modules/@babel/core/lib/transformation/plugin-pass.js +50 -0
  258. package/dist/node_modules/@babel/core/lib/transformation/util/clone-deep.js +36 -0
  259. package/dist/node_modules/@babel/core/lib/vendor/import-meta-resolve.js +1043 -0
  260. package/dist/node_modules/@babel/core/node_modules/.bin/json5 +17 -0
  261. package/dist/node_modules/@babel/core/node_modules/.bin/parser +17 -0
  262. package/dist/node_modules/@babel/core/node_modules/.bin/semver +17 -0
  263. package/dist/node_modules/@babel/core/package.json +1 -0
  264. package/dist/node_modules/@babel/core/src/config/files/index-browser.ts +113 -0
  265. package/dist/node_modules/@babel/core/src/config/files/index.ts +29 -0
  266. package/dist/node_modules/@babel/core/src/config/resolve-targets-browser.ts +40 -0
  267. package/dist/node_modules/@babel/core/src/config/resolve-targets.ts +56 -0
  268. package/dist/node_modules/@babel/core/src/transform-file-browser.ts +31 -0
  269. package/dist/node_modules/@babel/core/src/transform-file.ts +55 -0
  270. package/dist/node_modules/cron-parser/LICENSE +21 -0
  271. package/dist/node_modules/cron-parser/lib/date.js +252 -0
  272. package/dist/node_modules/cron-parser/lib/expression.js +1002 -0
  273. package/dist/node_modules/cron-parser/lib/field_compactor.js +70 -0
  274. package/dist/node_modules/cron-parser/lib/field_stringify.js +58 -0
  275. package/dist/node_modules/cron-parser/lib/parser.js +1 -0
  276. package/dist/node_modules/cron-parser/package.json +1 -0
  277. package/dist/node_modules/cron-parser/types/common.d.ts +131 -0
  278. package/dist/node_modules/cron-parser/types/index.d.ts +45 -0
  279. package/dist/node_modules/cron-parser/types/ts3/index.d.ts +28 -0
  280. package/dist/node_modules/form-data/License +19 -0
  281. package/dist/node_modules/form-data/index.d.ts +62 -0
  282. package/dist/node_modules/form-data/lib/browser.js +2 -0
  283. package/dist/node_modules/form-data/lib/form_data.js +14 -0
  284. package/dist/node_modules/form-data/lib/populate.js +10 -0
  285. package/dist/node_modules/form-data/package.json +1 -0
  286. package/dist/node_modules/jsonata/LICENSE +19 -0
  287. package/dist/node_modules/jsonata/jsonata-es5.js +9875 -0
  288. package/dist/node_modules/jsonata/jsonata-es5.min.js +1 -0
  289. package/dist/node_modules/jsonata/jsonata.d.ts +72 -0
  290. package/dist/node_modules/jsonata/jsonata.js +1 -0
  291. package/dist/node_modules/jsonata/jsonata.min.js +1 -0
  292. package/dist/node_modules/jsonata/package.json +1 -0
  293. package/dist/node_modules/lru-cache/index-cjs.d.ts +7 -0
  294. package/dist/node_modules/lru-cache/index-cjs.js +1 -0
  295. package/dist/node_modules/lru-cache/index.d.ts +807 -0
  296. package/dist/node_modules/lru-cache/index.js +1334 -0
  297. package/dist/node_modules/lru-cache/index.min.js +2 -0
  298. package/dist/node_modules/lru-cache/package.json +1 -0
  299. package/dist/node_modules/mime-types/LICENSE +23 -0
  300. package/dist/node_modules/mime-types/index.js +14 -0
  301. package/dist/node_modules/mime-types/package.json +1 -0
  302. package/dist/node_modules/qrcode/bin/qrcode +159 -0
  303. package/dist/node_modules/qrcode/helper/to-sjis-browser.js +2 -0
  304. package/dist/node_modules/qrcode/helper/to-sjis.js +105 -0
  305. package/dist/node_modules/qrcode/lib/browser.js +76 -0
  306. package/dist/node_modules/qrcode/lib/can-promise.js +7 -0
  307. package/dist/node_modules/qrcode/lib/core/alignment-pattern.js +83 -0
  308. package/dist/node_modules/qrcode/lib/core/alphanumeric-data.js +59 -0
  309. package/dist/node_modules/qrcode/lib/core/bit-buffer.js +37 -0
  310. package/dist/node_modules/qrcode/lib/core/bit-matrix.js +65 -0
  311. package/dist/node_modules/qrcode/lib/core/byte-data.js +30 -0
  312. package/dist/node_modules/qrcode/lib/core/error-correction-code.js +135 -0
  313. package/dist/node_modules/qrcode/lib/core/error-correction-level.js +50 -0
  314. package/dist/node_modules/qrcode/lib/core/finder-pattern.js +22 -0
  315. package/dist/node_modules/qrcode/lib/core/format-info.js +29 -0
  316. package/dist/node_modules/qrcode/lib/core/galois-field.js +69 -0
  317. package/dist/node_modules/qrcode/lib/core/kanji-data.js +54 -0
  318. package/dist/node_modules/qrcode/lib/core/mask-pattern.js +234 -0
  319. package/dist/node_modules/qrcode/lib/core/mode.js +167 -0
  320. package/dist/node_modules/qrcode/lib/core/numeric-data.js +43 -0
  321. package/dist/node_modules/qrcode/lib/core/polynomial.js +62 -0
  322. package/dist/node_modules/qrcode/lib/core/qrcode.js +495 -0
  323. package/dist/node_modules/qrcode/lib/core/reed-solomon-encoder.js +56 -0
  324. package/dist/node_modules/qrcode/lib/core/regex.js +31 -0
  325. package/dist/node_modules/qrcode/lib/core/segments.js +330 -0
  326. package/dist/node_modules/qrcode/lib/core/utils.js +63 -0
  327. package/dist/node_modules/qrcode/lib/core/version-check.js +9 -0
  328. package/dist/node_modules/qrcode/lib/core/version.js +163 -0
  329. package/dist/node_modules/qrcode/lib/index.js +1 -0
  330. package/dist/node_modules/qrcode/lib/renderer/canvas.js +63 -0
  331. package/dist/node_modules/qrcode/lib/renderer/png.js +78 -0
  332. package/dist/node_modules/qrcode/lib/renderer/svg-tag.js +81 -0
  333. package/dist/node_modules/qrcode/lib/renderer/svg.js +19 -0
  334. package/dist/node_modules/qrcode/lib/renderer/terminal/terminal-small.js +85 -0
  335. package/dist/node_modules/qrcode/lib/renderer/terminal/terminal.js +49 -0
  336. package/dist/node_modules/qrcode/lib/renderer/terminal.js +9 -0
  337. package/dist/node_modules/qrcode/lib/renderer/utf8.js +71 -0
  338. package/dist/node_modules/qrcode/lib/renderer/utils.js +99 -0
  339. package/dist/node_modules/qrcode/lib/server.js +138 -0
  340. package/dist/node_modules/qrcode/license +10 -0
  341. package/dist/node_modules/qrcode/package.json +1 -0
  342. package/dist/server/Plugin.d.ts +50 -0
  343. package/dist/server/Plugin.js +498 -0
  344. package/dist/server/Processor.d.ts +59 -0
  345. package/dist/server/Processor.js +306 -0
  346. package/dist/server/actions/executions.d.ts +3 -0
  347. package/dist/server/actions/executions.js +87 -0
  348. package/dist/server/actions/index.d.ts +3 -0
  349. package/dist/server/actions/index.js +59 -0
  350. package/dist/server/actions/nodes.d.ts +6 -0
  351. package/dist/server/actions/nodes.js +322 -0
  352. package/dist/server/actions/workflows.d.ts +10 -0
  353. package/dist/server/actions/workflows.js +347 -0
  354. package/dist/server/collections/1-users_jobs.d.ts +2 -0
  355. package/dist/server/collections/1-users_jobs.js +73 -0
  356. package/dist/server/collections/2-jobs.d.ts +2 -0
  357. package/dist/server/collections/2-jobs.js +40 -0
  358. package/dist/server/collections/3-users.d.ts +2 -0
  359. package/dist/server/collections/3-users.js +38 -0
  360. package/dist/server/collections/executions.d.ts +3 -0
  361. package/dist/server/collections/executions.js +64 -0
  362. package/dist/server/collections/flow_nodes.d.ts +3 -0
  363. package/dist/server/collections/flow_nodes.js +78 -0
  364. package/dist/server/collections/jobs.d.ts +3 -0
  365. package/dist/server/collections/jobs.js +61 -0
  366. package/dist/server/collections/workflows.d.ts +2 -0
  367. package/dist/server/collections/workflows.js +130 -0
  368. package/dist/server/constants.d.ts +22 -0
  369. package/dist/server/constants.js +52 -0
  370. package/dist/server/features/_deprecated-js-parse/JSParse.instruction.d.ts +10 -0
  371. package/dist/server/features/_deprecated-js-parse/JSParse.instruction.js +100 -0
  372. package/dist/server/features/_deprecated-js-parse/index.d.ts +1 -0
  373. package/dist/server/features/_deprecated-js-parse/index.js +33 -0
  374. package/dist/server/features/_deprecated-js-parse/plugin.d.ts +5 -0
  375. package/dist/server/features/_deprecated-js-parse/plugin.js +48 -0
  376. package/dist/server/features/_deprecated-json-parse/JSONParse.instruction.d.ts +11 -0
  377. package/dist/server/features/_deprecated-json-parse/JSONParse.instruction.js +81 -0
  378. package/dist/server/features/_deprecated-json-parse/index.d.ts +1 -0
  379. package/dist/server/features/_deprecated-json-parse/index.js +33 -0
  380. package/dist/server/features/_deprecated-json-parse/plugin.d.ts +5 -0
  381. package/dist/server/features/_deprecated-json-parse/plugin.js +48 -0
  382. package/dist/server/features/aggregate/AggregateInstruction.d.ts +7 -0
  383. package/dist/server/features/aggregate/AggregateInstruction.js +56 -0
  384. package/dist/server/features/aggregate/Plugin.d.ts +4 -0
  385. package/dist/server/features/aggregate/Plugin.js +45 -0
  386. package/dist/server/features/common/constants.d.ts +4 -0
  387. package/dist/server/features/common/constants.js +36 -0
  388. package/dist/server/features/delay/DelayInstruction.d.ts +12 -0
  389. package/dist/server/features/delay/DelayInstruction.js +106 -0
  390. package/dist/server/features/delay/Plugin.d.ts +4 -0
  391. package/dist/server/features/delay/Plugin.js +45 -0
  392. package/dist/server/features/dynamic-calculation/DynamicCalculation.d.ts +10 -0
  393. package/dist/server/features/dynamic-calculation/DynamicCalculation.js +62 -0
  394. package/dist/server/features/dynamic-calculation/Plugin.d.ts +4 -0
  395. package/dist/server/features/dynamic-calculation/Plugin.js +49 -0
  396. package/dist/server/features/dynamic-calculation/expression-field.d.ts +7 -0
  397. package/dist/server/features/dynamic-calculation/expression-field.js +32 -0
  398. package/dist/server/features/interception/RequestInterceptionTrigger.d.ts +11 -0
  399. package/dist/server/features/interception/RequestInterceptionTrigger.js +146 -0
  400. package/dist/server/features/interception/index.d.ts +4 -0
  401. package/dist/server/features/interception/index.js +35 -0
  402. package/dist/server/features/loop/LoopInstruction.d.ts +13 -0
  403. package/dist/server/features/loop/LoopInstruction.js +100 -0
  404. package/dist/server/features/loop/Plugin.d.ts +4 -0
  405. package/dist/server/features/loop/Plugin.js +45 -0
  406. package/dist/server/features/manual/ManualInstruction.d.ts +28 -0
  407. package/dist/server/features/manual/ManualInstruction.js +152 -0
  408. package/dist/server/features/manual/Plugin.d.ts +4 -0
  409. package/dist/server/features/manual/Plugin.js +70 -0
  410. package/dist/server/features/manual/actions.d.ts +2 -0
  411. package/dist/server/features/manual/actions.js +104 -0
  412. package/dist/server/features/manual/forms/create.d.ts +6 -0
  413. package/dist/server/features/manual/forms/create.js +41 -0
  414. package/dist/server/features/manual/forms/index.d.ts +6 -0
  415. package/dist/server/features/manual/forms/index.js +38 -0
  416. package/dist/server/features/manual/forms/update.d.ts +7 -0
  417. package/dist/server/features/manual/forms/update.js +41 -0
  418. package/dist/server/features/notice/NoticeInstruction.d.ts +9 -0
  419. package/dist/server/features/notice/NoticeInstruction.js +172 -0
  420. package/dist/server/features/notice/actions.d.ts +3 -0
  421. package/dist/server/features/notice/actions.js +124 -0
  422. package/dist/server/features/notice/collections/workflowNotice.d.ts +3 -0
  423. package/dist/server/features/notice/collections/workflowNotice.js +90 -0
  424. package/dist/server/features/notice/constants.d.ts +16 -0
  425. package/dist/server/features/notice/constants.js +44 -0
  426. package/dist/server/features/notice/index.d.ts +1 -0
  427. package/dist/server/features/notice/index.js +33 -0
  428. package/dist/server/features/notice/plugin.d.ts +12 -0
  429. package/dist/server/features/notice/plugin.js +83 -0
  430. package/dist/server/features/notice/tools.d.ts +17 -0
  431. package/dist/server/features/notice/tools.js +163 -0
  432. package/dist/server/features/omni-trigger/CustomActionTrigger.d.ts +11 -0
  433. package/dist/server/features/omni-trigger/CustomActionTrigger.js +270 -0
  434. package/dist/server/features/omni-trigger/Plugin.d.ts +4 -0
  435. package/dist/server/features/omni-trigger/Plugin.js +45 -0
  436. package/dist/server/features/omni-trigger/index.d.ts +1 -0
  437. package/dist/server/features/omni-trigger/index.js +21 -0
  438. package/dist/server/features/parallel/ParallelInstruction.d.ts +11 -0
  439. package/dist/server/features/parallel/ParallelInstruction.js +137 -0
  440. package/dist/server/features/parallel/Plugin.d.ts +4 -0
  441. package/dist/server/features/parallel/Plugin.js +45 -0
  442. package/dist/server/features/request/Plugin.d.ts +4 -0
  443. package/dist/server/features/request/Plugin.js +45 -0
  444. package/dist/server/features/request/RequestInstruction.d.ts +14 -0
  445. package/dist/server/features/request/RequestInstruction.js +183 -0
  446. package/dist/server/features/response/Plugin.d.ts +4 -0
  447. package/dist/server/features/response/Plugin.js +45 -0
  448. package/dist/server/features/response/ResponseMessageInstruction.d.ts +7 -0
  449. package/dist/server/features/response/ResponseMessageInstruction.js +57 -0
  450. package/dist/server/features/response/index.d.ts +1 -0
  451. package/dist/server/features/response/index.js +21 -0
  452. package/dist/server/features/script/index.d.ts +1 -0
  453. package/dist/server/features/script/index.js +33 -0
  454. package/dist/server/features/script/plugin.d.ts +5 -0
  455. package/dist/server/features/script/plugin.js +48 -0
  456. package/dist/server/features/script/script.instruction.d.ts +10 -0
  457. package/dist/server/features/script/script.instruction.js +212 -0
  458. package/dist/server/features/sql/Plugin.d.ts +4 -0
  459. package/dist/server/features/sql/Plugin.js +45 -0
  460. package/dist/server/features/sql/SQLInstruction.d.ts +10 -0
  461. package/dist/server/features/sql/SQLInstruction.js +48 -0
  462. package/dist/server/features/trigger-instruction/TriggerInstruction.d.ts +15 -0
  463. package/dist/server/features/trigger-instruction/TriggerInstruction.js +71 -0
  464. package/dist/server/features/trigger-instruction/flownode-check.d.ts +2 -0
  465. package/dist/server/features/trigger-instruction/flownode-check.js +114 -0
  466. package/dist/server/features/trigger-instruction/index.d.ts +0 -0
  467. package/dist/server/features/trigger-instruction/index.js +0 -0
  468. package/dist/server/features/trigger-instruction/plugin.d.ts +4 -0
  469. package/dist/server/features/trigger-instruction/plugin.js +37 -0
  470. package/dist/server/features/variables/Plugin.d.ts +4 -0
  471. package/dist/server/features/variables/Plugin.js +45 -0
  472. package/dist/server/features/variables/VariableInstruction.d.ts +7 -0
  473. package/dist/server/features/variables/VariableInstruction.js +61 -0
  474. package/dist/server/features/variables/index.d.ts +1 -0
  475. package/dist/server/features/variables/index.js +27 -0
  476. package/dist/server/features/webhook/Plugin.d.ts +4 -0
  477. package/dist/server/features/webhook/Plugin.js +109 -0
  478. package/dist/server/features/webhook/index.d.ts +1 -0
  479. package/dist/server/features/webhook/index.js +27 -0
  480. package/dist/server/features/webhook/webhooks.d.ts +9 -0
  481. package/dist/server/features/webhook/webhooks.js +286 -0
  482. package/dist/server/functions/index.d.ts +9 -0
  483. package/dist/server/functions/index.js +31 -0
  484. package/dist/server/index.d.ts +8 -0
  485. package/dist/server/index.js +54 -0
  486. package/dist/server/instructions/CalculationInstruction.d.ts +17 -0
  487. package/dist/server/instructions/CalculationInstruction.js +59 -0
  488. package/dist/server/instructions/ConditionInstruction.d.ts +29 -0
  489. package/dist/server/instructions/ConditionInstruction.js +160 -0
  490. package/dist/server/instructions/CreateInstruction.d.ts +10 -0
  491. package/dist/server/instructions/CreateInstruction.js +175 -0
  492. package/dist/server/instructions/DestroyInstruction.d.ts +10 -0
  493. package/dist/server/instructions/DestroyInstruction.js +50 -0
  494. package/dist/server/instructions/EndInstruction.d.ts +6 -0
  495. package/dist/server/instructions/EndInstruction.js +47 -0
  496. package/dist/server/instructions/QueryInstruction.d.ts +13 -0
  497. package/dist/server/instructions/QueryInstruction.js +78 -0
  498. package/dist/server/instructions/UpdateInstruction.d.ts +10 -0
  499. package/dist/server/instructions/UpdateInstruction.js +159 -0
  500. package/dist/server/instructions/index.d.ts +23 -0
  501. package/dist/server/instructions/index.js +33 -0
  502. package/dist/server/migrations/20241118104303-add-initAt.d.ts +6 -0
  503. package/dist/server/migrations/20241118104303-add-initAt.js +47 -0
  504. package/dist/server/migrations/20241206122842-add-createdBy.d.ts +6 -0
  505. package/dist/server/migrations/20241206122842-add-createdBy.js +46 -0
  506. package/dist/server/migrations/20241220001154-bigInt.d.ts +6 -0
  507. package/dist/server/migrations/20241220001154-bigInt.js +39 -0
  508. package/dist/server/triggers/CollectionTrigger.d.ts +14 -0
  509. package/dist/server/triggers/CollectionTrigger.js +188 -0
  510. package/dist/server/triggers/ScheduleTrigger/DateFieldScheduleTrigger.d.ts +31 -0
  511. package/dist/server/triggers/ScheduleTrigger/DateFieldScheduleTrigger.js +342 -0
  512. package/dist/server/triggers/ScheduleTrigger/StaticScheduleTrigger.d.ts +15 -0
  513. package/dist/server/triggers/ScheduleTrigger/StaticScheduleTrigger.js +143 -0
  514. package/dist/server/triggers/ScheduleTrigger/index.d.ts +13 -0
  515. package/dist/server/triggers/ScheduleTrigger/index.js +74 -0
  516. package/dist/server/triggers/ScheduleTrigger/utils.d.ts +5 -0
  517. package/dist/server/triggers/ScheduleTrigger/utils.js +35 -0
  518. package/dist/server/triggers/index.d.ts +13 -0
  519. package/dist/server/triggers/index.js +37 -0
  520. package/dist/server/types/Execution.d.ts +17 -0
  521. package/dist/server/types/Execution.js +25 -0
  522. package/dist/server/types/FlowNode.d.ts +16 -0
  523. package/dist/server/types/FlowNode.js +25 -0
  524. package/dist/server/types/Job.d.ts +14 -0
  525. package/dist/server/types/Job.js +25 -0
  526. package/dist/server/types/Workflow.d.ts +27 -0
  527. package/dist/server/types/Workflow.js +25 -0
  528. package/dist/server/types/index.d.ts +4 -0
  529. package/dist/server/types/index.js +15 -0
  530. package/dist/server/utils.d.ts +1 -0
  531. package/dist/server/utils.js +42 -0
  532. package/dist/swagger/index.d.ts +754 -0
  533. package/dist/swagger/index.js +798 -0
  534. package/package.json +63 -0
  535. package/server.d.ts +2 -0
  536. package/server.js +1 -0
@@ -0,0 +1,330 @@
1
+ const Mode = require('./mode')
2
+ const NumericData = require('./numeric-data')
3
+ const AlphanumericData = require('./alphanumeric-data')
4
+ const ByteData = require('./byte-data')
5
+ const KanjiData = require('./kanji-data')
6
+ const Regex = require('./regex')
7
+ const Utils = require('./utils')
8
+ const dijkstra = require('dijkstrajs')
9
+
10
+ /**
11
+ * Returns UTF8 byte length
12
+ *
13
+ * @param {String} str Input string
14
+ * @return {Number} Number of byte
15
+ */
16
+ function getStringByteLength (str) {
17
+ return unescape(encodeURIComponent(str)).length
18
+ }
19
+
20
+ /**
21
+ * Get a list of segments of the specified mode
22
+ * from a string
23
+ *
24
+ * @param {Mode} mode Segment mode
25
+ * @param {String} str String to process
26
+ * @return {Array} Array of object with segments data
27
+ */
28
+ function getSegments (regex, mode, str) {
29
+ const segments = []
30
+ let result
31
+
32
+ while ((result = regex.exec(str)) !== null) {
33
+ segments.push({
34
+ data: result[0],
35
+ index: result.index,
36
+ mode: mode,
37
+ length: result[0].length
38
+ })
39
+ }
40
+
41
+ return segments
42
+ }
43
+
44
+ /**
45
+ * Extracts a series of segments with the appropriate
46
+ * modes from a string
47
+ *
48
+ * @param {String} dataStr Input string
49
+ * @return {Array} Array of object with segments data
50
+ */
51
+ function getSegmentsFromString (dataStr) {
52
+ const numSegs = getSegments(Regex.NUMERIC, Mode.NUMERIC, dataStr)
53
+ const alphaNumSegs = getSegments(Regex.ALPHANUMERIC, Mode.ALPHANUMERIC, dataStr)
54
+ let byteSegs
55
+ let kanjiSegs
56
+
57
+ if (Utils.isKanjiModeEnabled()) {
58
+ byteSegs = getSegments(Regex.BYTE, Mode.BYTE, dataStr)
59
+ kanjiSegs = getSegments(Regex.KANJI, Mode.KANJI, dataStr)
60
+ } else {
61
+ byteSegs = getSegments(Regex.BYTE_KANJI, Mode.BYTE, dataStr)
62
+ kanjiSegs = []
63
+ }
64
+
65
+ const segs = numSegs.concat(alphaNumSegs, byteSegs, kanjiSegs)
66
+
67
+ return segs
68
+ .sort(function (s1, s2) {
69
+ return s1.index - s2.index
70
+ })
71
+ .map(function (obj) {
72
+ return {
73
+ data: obj.data,
74
+ mode: obj.mode,
75
+ length: obj.length
76
+ }
77
+ })
78
+ }
79
+
80
+ /**
81
+ * Returns how many bits are needed to encode a string of
82
+ * specified length with the specified mode
83
+ *
84
+ * @param {Number} length String length
85
+ * @param {Mode} mode Segment mode
86
+ * @return {Number} Bit length
87
+ */
88
+ function getSegmentBitsLength (length, mode) {
89
+ switch (mode) {
90
+ case Mode.NUMERIC:
91
+ return NumericData.getBitsLength(length)
92
+ case Mode.ALPHANUMERIC:
93
+ return AlphanumericData.getBitsLength(length)
94
+ case Mode.KANJI:
95
+ return KanjiData.getBitsLength(length)
96
+ case Mode.BYTE:
97
+ return ByteData.getBitsLength(length)
98
+ }
99
+ }
100
+
101
+ /**
102
+ * Merges adjacent segments which have the same mode
103
+ *
104
+ * @param {Array} segs Array of object with segments data
105
+ * @return {Array} Array of object with segments data
106
+ */
107
+ function mergeSegments (segs) {
108
+ return segs.reduce(function (acc, curr) {
109
+ const prevSeg = acc.length - 1 >= 0 ? acc[acc.length - 1] : null
110
+ if (prevSeg && prevSeg.mode === curr.mode) {
111
+ acc[acc.length - 1].data += curr.data
112
+ return acc
113
+ }
114
+
115
+ acc.push(curr)
116
+ return acc
117
+ }, [])
118
+ }
119
+
120
+ /**
121
+ * Generates a list of all possible nodes combination which
122
+ * will be used to build a segments graph.
123
+ *
124
+ * Nodes are divided by groups. Each group will contain a list of all the modes
125
+ * in which is possible to encode the given text.
126
+ *
127
+ * For example the text '12345' can be encoded as Numeric, Alphanumeric or Byte.
128
+ * The group for '12345' will contain then 3 objects, one for each
129
+ * possible encoding mode.
130
+ *
131
+ * Each node represents a possible segment.
132
+ *
133
+ * @param {Array} segs Array of object with segments data
134
+ * @return {Array} Array of object with segments data
135
+ */
136
+ function buildNodes (segs) {
137
+ const nodes = []
138
+ for (let i = 0; i < segs.length; i++) {
139
+ const seg = segs[i]
140
+
141
+ switch (seg.mode) {
142
+ case Mode.NUMERIC:
143
+ nodes.push([seg,
144
+ { data: seg.data, mode: Mode.ALPHANUMERIC, length: seg.length },
145
+ { data: seg.data, mode: Mode.BYTE, length: seg.length }
146
+ ])
147
+ break
148
+ case Mode.ALPHANUMERIC:
149
+ nodes.push([seg,
150
+ { data: seg.data, mode: Mode.BYTE, length: seg.length }
151
+ ])
152
+ break
153
+ case Mode.KANJI:
154
+ nodes.push([seg,
155
+ { data: seg.data, mode: Mode.BYTE, length: getStringByteLength(seg.data) }
156
+ ])
157
+ break
158
+ case Mode.BYTE:
159
+ nodes.push([
160
+ { data: seg.data, mode: Mode.BYTE, length: getStringByteLength(seg.data) }
161
+ ])
162
+ }
163
+ }
164
+
165
+ return nodes
166
+ }
167
+
168
+ /**
169
+ * Builds a graph from a list of nodes.
170
+ * All segments in each node group will be connected with all the segments of
171
+ * the next group and so on.
172
+ *
173
+ * At each connection will be assigned a weight depending on the
174
+ * segment's byte length.
175
+ *
176
+ * @param {Array} nodes Array of object with segments data
177
+ * @param {Number} version QR Code version
178
+ * @return {Object} Graph of all possible segments
179
+ */
180
+ function buildGraph (nodes, version) {
181
+ const table = {}
182
+ const graph = { start: {} }
183
+ let prevNodeIds = ['start']
184
+
185
+ for (let i = 0; i < nodes.length; i++) {
186
+ const nodeGroup = nodes[i]
187
+ const currentNodeIds = []
188
+
189
+ for (let j = 0; j < nodeGroup.length; j++) {
190
+ const node = nodeGroup[j]
191
+ const key = '' + i + j
192
+
193
+ currentNodeIds.push(key)
194
+ table[key] = { node: node, lastCount: 0 }
195
+ graph[key] = {}
196
+
197
+ for (let n = 0; n < prevNodeIds.length; n++) {
198
+ const prevNodeId = prevNodeIds[n]
199
+
200
+ if (table[prevNodeId] && table[prevNodeId].node.mode === node.mode) {
201
+ graph[prevNodeId][key] =
202
+ getSegmentBitsLength(table[prevNodeId].lastCount + node.length, node.mode) -
203
+ getSegmentBitsLength(table[prevNodeId].lastCount, node.mode)
204
+
205
+ table[prevNodeId].lastCount += node.length
206
+ } else {
207
+ if (table[prevNodeId]) table[prevNodeId].lastCount = node.length
208
+
209
+ graph[prevNodeId][key] = getSegmentBitsLength(node.length, node.mode) +
210
+ 4 + Mode.getCharCountIndicator(node.mode, version) // switch cost
211
+ }
212
+ }
213
+ }
214
+
215
+ prevNodeIds = currentNodeIds
216
+ }
217
+
218
+ for (let n = 0; n < prevNodeIds.length; n++) {
219
+ graph[prevNodeIds[n]].end = 0
220
+ }
221
+
222
+ return { map: graph, table: table }
223
+ }
224
+
225
+ /**
226
+ * Builds a segment from a specified data and mode.
227
+ * If a mode is not specified, the more suitable will be used.
228
+ *
229
+ * @param {String} data Input data
230
+ * @param {Mode | String} modesHint Data mode
231
+ * @return {Segment} Segment
232
+ */
233
+ function buildSingleSegment (data, modesHint) {
234
+ let mode
235
+ const bestMode = Mode.getBestModeForData(data)
236
+
237
+ mode = Mode.from(modesHint, bestMode)
238
+
239
+ // Make sure data can be encoded
240
+ if (mode !== Mode.BYTE && mode.bit < bestMode.bit) {
241
+ throw new Error('"' + data + '"' +
242
+ ' cannot be encoded with mode ' + Mode.toString(mode) +
243
+ '.\n Suggested mode is: ' + Mode.toString(bestMode))
244
+ }
245
+
246
+ // Use Mode.BYTE if Kanji support is disabled
247
+ if (mode === Mode.KANJI && !Utils.isKanjiModeEnabled()) {
248
+ mode = Mode.BYTE
249
+ }
250
+
251
+ switch (mode) {
252
+ case Mode.NUMERIC:
253
+ return new NumericData(data)
254
+
255
+ case Mode.ALPHANUMERIC:
256
+ return new AlphanumericData(data)
257
+
258
+ case Mode.KANJI:
259
+ return new KanjiData(data)
260
+
261
+ case Mode.BYTE:
262
+ return new ByteData(data)
263
+ }
264
+ }
265
+
266
+ /**
267
+ * Builds a list of segments from an array.
268
+ * Array can contain Strings or Objects with segment's info.
269
+ *
270
+ * For each item which is a string, will be generated a segment with the given
271
+ * string and the more appropriate encoding mode.
272
+ *
273
+ * For each item which is an object, will be generated a segment with the given
274
+ * data and mode.
275
+ * Objects must contain at least the property "data".
276
+ * If property "mode" is not present, the more suitable mode will be used.
277
+ *
278
+ * @param {Array} array Array of objects with segments data
279
+ * @return {Array} Array of Segments
280
+ */
281
+ exports.fromArray = function fromArray (array) {
282
+ return array.reduce(function (acc, seg) {
283
+ if (typeof seg === 'string') {
284
+ acc.push(buildSingleSegment(seg, null))
285
+ } else if (seg.data) {
286
+ acc.push(buildSingleSegment(seg.data, seg.mode))
287
+ }
288
+
289
+ return acc
290
+ }, [])
291
+ }
292
+
293
+ /**
294
+ * Builds an optimized sequence of segments from a string,
295
+ * which will produce the shortest possible bitstream.
296
+ *
297
+ * @param {String} data Input string
298
+ * @param {Number} version QR Code version
299
+ * @return {Array} Array of segments
300
+ */
301
+ exports.fromString = function fromString (data, version) {
302
+ const segs = getSegmentsFromString(data, Utils.isKanjiModeEnabled())
303
+
304
+ const nodes = buildNodes(segs)
305
+ const graph = buildGraph(nodes, version)
306
+ const path = dijkstra.find_path(graph.map, 'start', 'end')
307
+
308
+ const optimizedSegs = []
309
+ for (let i = 1; i < path.length - 1; i++) {
310
+ optimizedSegs.push(graph.table[path[i]].node)
311
+ }
312
+
313
+ return exports.fromArray(mergeSegments(optimizedSegs))
314
+ }
315
+
316
+ /**
317
+ * Splits a string in various segments with the modes which
318
+ * best represent their content.
319
+ * The produced segments are far from being optimized.
320
+ * The output of this function is only used to estimate a QR Code version
321
+ * which may contain the data.
322
+ *
323
+ * @param {string} data Input string
324
+ * @return {Array} Array of segments
325
+ */
326
+ exports.rawSplit = function rawSplit (data) {
327
+ return exports.fromArray(
328
+ getSegmentsFromString(data, Utils.isKanjiModeEnabled())
329
+ )
330
+ }
@@ -0,0 +1,63 @@
1
+ let toSJISFunction
2
+ const CODEWORDS_COUNT = [
3
+ 0, // Not used
4
+ 26, 44, 70, 100, 134, 172, 196, 242, 292, 346,
5
+ 404, 466, 532, 581, 655, 733, 815, 901, 991, 1085,
6
+ 1156, 1258, 1364, 1474, 1588, 1706, 1828, 1921, 2051, 2185,
7
+ 2323, 2465, 2611, 2761, 2876, 3034, 3196, 3362, 3532, 3706
8
+ ]
9
+
10
+ /**
11
+ * Returns the QR Code size for the specified version
12
+ *
13
+ * @param {Number} version QR Code version
14
+ * @return {Number} size of QR code
15
+ */
16
+ exports.getSymbolSize = function getSymbolSize (version) {
17
+ if (!version) throw new Error('"version" cannot be null or undefined')
18
+ if (version < 1 || version > 40) throw new Error('"version" should be in range from 1 to 40')
19
+ return version * 4 + 17
20
+ }
21
+
22
+ /**
23
+ * Returns the total number of codewords used to store data and EC information.
24
+ *
25
+ * @param {Number} version QR Code version
26
+ * @return {Number} Data length in bits
27
+ */
28
+ exports.getSymbolTotalCodewords = function getSymbolTotalCodewords (version) {
29
+ return CODEWORDS_COUNT[version]
30
+ }
31
+
32
+ /**
33
+ * Encode data with Bose-Chaudhuri-Hocquenghem
34
+ *
35
+ * @param {Number} data Value to encode
36
+ * @return {Number} Encoded value
37
+ */
38
+ exports.getBCHDigit = function (data) {
39
+ let digit = 0
40
+
41
+ while (data !== 0) {
42
+ digit++
43
+ data >>>= 1
44
+ }
45
+
46
+ return digit
47
+ }
48
+
49
+ exports.setToSJISFunction = function setToSJISFunction (f) {
50
+ if (typeof f !== 'function') {
51
+ throw new Error('"toSJISFunc" is not a valid function.')
52
+ }
53
+
54
+ toSJISFunction = f
55
+ }
56
+
57
+ exports.isKanjiModeEnabled = function () {
58
+ return typeof toSJISFunction !== 'undefined'
59
+ }
60
+
61
+ exports.toSJIS = function toSJIS (kanji) {
62
+ return toSJISFunction(kanji)
63
+ }
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Check if QR Code version is valid
3
+ *
4
+ * @param {Number} version QR Code version
5
+ * @return {Boolean} true if valid version, false otherwise
6
+ */
7
+ exports.isValid = function isValid (version) {
8
+ return !isNaN(version) && version >= 1 && version <= 40
9
+ }
@@ -0,0 +1,163 @@
1
+ const Utils = require('./utils')
2
+ const ECCode = require('./error-correction-code')
3
+ const ECLevel = require('./error-correction-level')
4
+ const Mode = require('./mode')
5
+ const VersionCheck = require('./version-check')
6
+
7
+ // Generator polynomial used to encode version information
8
+ const G18 = (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0)
9
+ const G18_BCH = Utils.getBCHDigit(G18)
10
+
11
+ function getBestVersionForDataLength (mode, length, errorCorrectionLevel) {
12
+ for (let currentVersion = 1; currentVersion <= 40; currentVersion++) {
13
+ if (length <= exports.getCapacity(currentVersion, errorCorrectionLevel, mode)) {
14
+ return currentVersion
15
+ }
16
+ }
17
+
18
+ return undefined
19
+ }
20
+
21
+ function getReservedBitsCount (mode, version) {
22
+ // Character count indicator + mode indicator bits
23
+ return Mode.getCharCountIndicator(mode, version) + 4
24
+ }
25
+
26
+ function getTotalBitsFromDataArray (segments, version) {
27
+ let totalBits = 0
28
+
29
+ segments.forEach(function (data) {
30
+ const reservedBits = getReservedBitsCount(data.mode, version)
31
+ totalBits += reservedBits + data.getBitsLength()
32
+ })
33
+
34
+ return totalBits
35
+ }
36
+
37
+ function getBestVersionForMixedData (segments, errorCorrectionLevel) {
38
+ for (let currentVersion = 1; currentVersion <= 40; currentVersion++) {
39
+ const length = getTotalBitsFromDataArray(segments, currentVersion)
40
+ if (length <= exports.getCapacity(currentVersion, errorCorrectionLevel, Mode.MIXED)) {
41
+ return currentVersion
42
+ }
43
+ }
44
+
45
+ return undefined
46
+ }
47
+
48
+ /**
49
+ * Returns version number from a value.
50
+ * If value is not a valid version, returns defaultValue
51
+ *
52
+ * @param {Number|String} value QR Code version
53
+ * @param {Number} defaultValue Fallback value
54
+ * @return {Number} QR Code version number
55
+ */
56
+ exports.from = function from (value, defaultValue) {
57
+ if (VersionCheck.isValid(value)) {
58
+ return parseInt(value, 10)
59
+ }
60
+
61
+ return defaultValue
62
+ }
63
+
64
+ /**
65
+ * Returns how much data can be stored with the specified QR code version
66
+ * and error correction level
67
+ *
68
+ * @param {Number} version QR Code version (1-40)
69
+ * @param {Number} errorCorrectionLevel Error correction level
70
+ * @param {Mode} mode Data mode
71
+ * @return {Number} Quantity of storable data
72
+ */
73
+ exports.getCapacity = function getCapacity (version, errorCorrectionLevel, mode) {
74
+ if (!VersionCheck.isValid(version)) {
75
+ throw new Error('Invalid QR Code version')
76
+ }
77
+
78
+ // Use Byte mode as default
79
+ if (typeof mode === 'undefined') mode = Mode.BYTE
80
+
81
+ // Total codewords for this QR code version (Data + Error correction)
82
+ const totalCodewords = Utils.getSymbolTotalCodewords(version)
83
+
84
+ // Total number of error correction codewords
85
+ const ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel)
86
+
87
+ // Total number of data codewords
88
+ const dataTotalCodewordsBits = (totalCodewords - ecTotalCodewords) * 8
89
+
90
+ if (mode === Mode.MIXED) return dataTotalCodewordsBits
91
+
92
+ const usableBits = dataTotalCodewordsBits - getReservedBitsCount(mode, version)
93
+
94
+ // Return max number of storable codewords
95
+ switch (mode) {
96
+ case Mode.NUMERIC:
97
+ return Math.floor((usableBits / 10) * 3)
98
+
99
+ case Mode.ALPHANUMERIC:
100
+ return Math.floor((usableBits / 11) * 2)
101
+
102
+ case Mode.KANJI:
103
+ return Math.floor(usableBits / 13)
104
+
105
+ case Mode.BYTE:
106
+ default:
107
+ return Math.floor(usableBits / 8)
108
+ }
109
+ }
110
+
111
+ /**
112
+ * Returns the minimum version needed to contain the amount of data
113
+ *
114
+ * @param {Segment} data Segment of data
115
+ * @param {Number} [errorCorrectionLevel=H] Error correction level
116
+ * @param {Mode} mode Data mode
117
+ * @return {Number} QR Code version
118
+ */
119
+ exports.getBestVersionForData = function getBestVersionForData (data, errorCorrectionLevel) {
120
+ let seg
121
+
122
+ const ecl = ECLevel.from(errorCorrectionLevel, ECLevel.M)
123
+
124
+ if (Array.isArray(data)) {
125
+ if (data.length > 1) {
126
+ return getBestVersionForMixedData(data, ecl)
127
+ }
128
+
129
+ if (data.length === 0) {
130
+ return 1
131
+ }
132
+
133
+ seg = data[0]
134
+ } else {
135
+ seg = data
136
+ }
137
+
138
+ return getBestVersionForDataLength(seg.mode, seg.getLength(), ecl)
139
+ }
140
+
141
+ /**
142
+ * Returns version information with relative error correction bits
143
+ *
144
+ * The version information is included in QR Code symbols of version 7 or larger.
145
+ * It consists of an 18-bit sequence containing 6 data bits,
146
+ * with 12 error correction bits calculated using the (18, 6) Golay code.
147
+ *
148
+ * @param {Number} version QR Code version
149
+ * @return {Number} Encoded version info bits
150
+ */
151
+ exports.getEncodedBits = function getEncodedBits (version) {
152
+ if (!VersionCheck.isValid(version) || version < 7) {
153
+ throw new Error('Invalid QR Code version')
154
+ }
155
+
156
+ let d = version << 12
157
+
158
+ while (Utils.getBCHDigit(d) - G18_BCH >= 0) {
159
+ d ^= (G18 << (Utils.getBCHDigit(d) - G18_BCH))
160
+ }
161
+
162
+ return (version << 12) | d
163
+ }