octoparse-cli 0.1.14
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.
- package/README.md +271 -0
- package/RUNTIME_SECURITY_NOTICE.txt +41 -0
- package/SECURITY.md +24 -0
- package/dist/cli/args.js +34 -0
- package/dist/cli/help.js +214 -0
- package/dist/cli/output.js +39 -0
- package/dist/commands/auth.js +283 -0
- package/dist/commands/capabilities.js +118 -0
- package/dist/commands/cloud.js +241 -0
- package/dist/commands/data.js +220 -0
- package/dist/commands/doctor.js +73 -0
- package/dist/commands/env.js +63 -0
- package/dist/commands/local.js +251 -0
- package/dist/commands/run.js +622 -0
- package/dist/commands/runs.js +171 -0
- package/dist/commands/task.js +101 -0
- package/dist/index.js +133 -0
- package/dist/runtime/account-capabilities.js +71 -0
- package/dist/runtime/api-client.js +290 -0
- package/dist/runtime/artifacts.js +33 -0
- package/dist/runtime/auth.js +94 -0
- package/dist/runtime/bridge-hub.js +173 -0
- package/dist/runtime/client-headers.js +23 -0
- package/dist/runtime/cloud-data.js +75 -0
- package/dist/runtime/config.js +48 -0
- package/dist/runtime/data-exporter.js +267 -0
- package/dist/runtime/engine-host.js +449 -0
- package/dist/runtime/local-runs.js +92 -0
- package/dist/runtime/naming.js +13 -0
- package/dist/runtime/run-control.js +363 -0
- package/dist/runtime/run-services.js +380 -0
- package/dist/runtime/security-notice.js +78 -0
- package/dist/runtime/task-definition-provider.js +282 -0
- package/dist/types.js +4 -0
- package/examples/minimal-task.json +6 -0
- package/examples/navigate-example-task.json +6 -0
- package/node_modules/@octopus/bpmn/index.js +3 -0
- package/node_modules/@octopus/bpmn/lib/Context.js +245 -0
- package/node_modules/@octopus/bpmn/lib/Definition.js +258 -0
- package/node_modules/@octopus/bpmn/lib/Engine.js +275 -0
- package/node_modules/@octopus/bpmn/lib/PrematureStopError.js +7 -0
- package/node_modules/@octopus/bpmn/lib/activities/Activity.js +202 -0
- package/node_modules/@octopus/bpmn/lib/activities/BaseProcess.js +308 -0
- package/node_modules/@octopus/bpmn/lib/activities/BaseTask.js +145 -0
- package/node_modules/@octopus/bpmn/lib/activities/BoundaryEvent.js +12 -0
- package/node_modules/@octopus/bpmn/lib/activities/Dummy.js +10 -0
- package/node_modules/@octopus/bpmn/lib/activities/EventDefinition.js +99 -0
- package/node_modules/@octopus/bpmn/lib/activities/Flow.js +52 -0
- package/node_modules/@octopus/bpmn/lib/activities/Form.js +67 -0
- package/node_modules/@octopus/bpmn/lib/activities/InputOutput.js +53 -0
- package/node_modules/@octopus/bpmn/lib/activities/IntermediateCatchEvent.js +12 -0
- package/node_modules/@octopus/bpmn/lib/activities/MessageFlow.js +19 -0
- package/node_modules/@octopus/bpmn/lib/activities/MultiInstanceLoopCharacteristics.js +160 -0
- package/node_modules/@octopus/bpmn/lib/activities/Properties.js +27 -0
- package/node_modules/@octopus/bpmn/lib/activities/SequenceFlow.js +56 -0
- package/node_modules/@octopus/bpmn/lib/activities/ServiceConnector.js +71 -0
- package/node_modules/@octopus/bpmn/lib/context-helper.js +198 -0
- package/node_modules/@octopus/bpmn/lib/events/EndEvent.js +22 -0
- package/node_modules/@octopus/bpmn/lib/events/ErrorEvent.js +41 -0
- package/node_modules/@octopus/bpmn/lib/events/MessageEvent.js +19 -0
- package/node_modules/@octopus/bpmn/lib/events/StartEvent.js +55 -0
- package/node_modules/@octopus/bpmn/lib/events/TimerEvent.js +75 -0
- package/node_modules/@octopus/bpmn/lib/expressions.js +41 -0
- package/node_modules/@octopus/bpmn/lib/gateways/ExclusiveGateway.js +86 -0
- package/node_modules/@octopus/bpmn/lib/gateways/InclusiveGateway.js +56 -0
- package/node_modules/@octopus/bpmn/lib/gateways/ParallelGateway.js +195 -0
- package/node_modules/@octopus/bpmn/lib/getPropertyValue.js +83 -0
- package/node_modules/@octopus/bpmn/lib/index.js +6 -0
- package/node_modules/@octopus/bpmn/lib/mapper.js +55 -0
- package/node_modules/@octopus/bpmn/lib/parameter.js +119 -0
- package/node_modules/@octopus/bpmn/lib/script-helper.js +45 -0
- package/node_modules/@octopus/bpmn/lib/tasks/ManualTask.js +31 -0
- package/node_modules/@octopus/bpmn/lib/tasks/ReceiveTask.js +31 -0
- package/node_modules/@octopus/bpmn/lib/tasks/ScriptTask.js +35 -0
- package/node_modules/@octopus/bpmn/lib/tasks/SendTask.js +16 -0
- package/node_modules/@octopus/bpmn/lib/tasks/ServiceTask.js +68 -0
- package/node_modules/@octopus/bpmn/lib/tasks/SubProcess.js +17 -0
- package/node_modules/@octopus/bpmn/lib/tasks/Task.js +16 -0
- package/node_modules/@octopus/bpmn/lib/tasks/UserTask.js +47 -0
- package/node_modules/@octopus/bpmn/lib/transformer.js +13 -0
- package/node_modules/@octopus/bpmn/lib/validation.js +111 -0
- package/node_modules/@octopus/bpmn/package.json +17 -0
- package/node_modules/@octopus/bpmn/types/bpmn.d.ts +85 -0
- package/node_modules/@octopus/engine/README.md +370 -0
- package/node_modules/@octopus/engine/dist/actions/BackPreWebPageAction.d.ts +4 -0
- package/node_modules/@octopus/engine/dist/actions/BackPreWebPageAction.js +1 -0
- package/node_modules/@octopus/engine/dist/actions/BaseAction.d.ts +339 -0
- package/node_modules/@octopus/engine/dist/actions/BaseAction.js +1559 -0
- package/node_modules/@octopus/engine/dist/actions/BranchAction.d.ts +9 -0
- package/node_modules/@octopus/engine/dist/actions/BranchAction.js +1 -0
- package/node_modules/@octopus/engine/dist/actions/ClickAction.d.ts +22 -0
- package/node_modules/@octopus/engine/dist/actions/ClickAction.js +1 -0
- package/node_modules/@octopus/engine/dist/actions/ConditionAction.d.ts +4 -0
- package/node_modules/@octopus/engine/dist/actions/ConditionAction.js +1 -0
- package/node_modules/@octopus/engine/dist/actions/EmptyAction.d.ts +4 -0
- package/node_modules/@octopus/engine/dist/actions/EmptyAction.js +12 -0
- package/node_modules/@octopus/engine/dist/actions/EnterCaptchaAction.d.ts +28 -0
- package/node_modules/@octopus/engine/dist/actions/EnterCaptchaAction.js +1 -0
- package/node_modules/@octopus/engine/dist/actions/EnterTextAction.d.ts +20 -0
- package/node_modules/@octopus/engine/dist/actions/EnterTextAction.js +1 -0
- package/node_modules/@octopus/engine/dist/actions/ExtractDataAction.d.ts +40 -0
- package/node_modules/@octopus/engine/dist/actions/ExtractDataAction.js +1 -0
- package/node_modules/@octopus/engine/dist/actions/LoopAction.d.ts +41 -0
- package/node_modules/@octopus/engine/dist/actions/LoopAction.js +526 -0
- package/node_modules/@octopus/engine/dist/actions/LoopStartAction.d.ts +47 -0
- package/node_modules/@octopus/engine/dist/actions/LoopStartAction.js +607 -0
- package/node_modules/@octopus/engine/dist/actions/MouseOverAction.d.ts +8 -0
- package/node_modules/@octopus/engine/dist/actions/MouseOverAction.js +34 -0
- package/node_modules/@octopus/engine/dist/actions/NavigateAction.d.ts +38 -0
- package/node_modules/@octopus/engine/dist/actions/NavigateAction.js +535 -0
- package/node_modules/@octopus/engine/dist/actions/SwitchComboAction.d.ts +13 -0
- package/node_modules/@octopus/engine/dist/actions/SwitchComboAction.js +69 -0
- package/node_modules/@octopus/engine/dist/browser.d.ts +17 -0
- package/node_modules/@octopus/engine/dist/browser.js +157 -0
- package/node_modules/@octopus/engine/dist/browserProxy.d.ts +90 -0
- package/node_modules/@octopus/engine/dist/browserProxy.js +1 -0
- package/node_modules/@octopus/engine/dist/configs/BaseConfig.d.ts +20 -0
- package/node_modules/@octopus/engine/dist/configs/BaseConfig.js +88 -0
- package/node_modules/@octopus/engine/dist/configs/BranchConfig.d.ts +7 -0
- package/node_modules/@octopus/engine/dist/configs/BranchConfig.js +1 -0
- package/node_modules/@octopus/engine/dist/configs/ClickConfig.d.ts +36 -0
- package/node_modules/@octopus/engine/dist/configs/ClickConfig.js +65 -0
- package/node_modules/@octopus/engine/dist/configs/EnterCaptchaConfig.d.ts +19 -0
- package/node_modules/@octopus/engine/dist/configs/EnterCaptchaConfig.js +25 -0
- package/node_modules/@octopus/engine/dist/configs/EnterTextConfig.d.ts +24 -0
- package/node_modules/@octopus/engine/dist/configs/EnterTextConfig.js +36 -0
- package/node_modules/@octopus/engine/dist/configs/ExtractDataConfig.d.ts +12 -0
- package/node_modules/@octopus/engine/dist/configs/ExtractDataConfig.js +1 -0
- package/node_modules/@octopus/engine/dist/configs/LoopConfig.d.ts +25 -0
- package/node_modules/@octopus/engine/dist/configs/LoopConfig.js +40 -0
- package/node_modules/@octopus/engine/dist/configs/LoopStartConfig.d.ts +4 -0
- package/node_modules/@octopus/engine/dist/configs/LoopStartConfig.js +12 -0
- package/node_modules/@octopus/engine/dist/configs/MouseOverConfig.d.ts +8 -0
- package/node_modules/@octopus/engine/dist/configs/MouseOverConfig.js +15 -0
- package/node_modules/@octopus/engine/dist/configs/NavigateConfig.d.ts +41 -0
- package/node_modules/@octopus/engine/dist/configs/NavigateConfig.js +121 -0
- package/node_modules/@octopus/engine/dist/configs/SwitchComboConfig.d.ts +8 -0
- package/node_modules/@octopus/engine/dist/configs/SwitchComboConfig.js +15 -0
- package/node_modules/@octopus/engine/dist/enums/index.d.ts +419 -0
- package/node_modules/@octopus/engine/dist/enums/index.js +314 -0
- package/node_modules/@octopus/engine/dist/extension/BrowserWebSocketTransport-D_zAGZMQ.js +1 -0
- package/node_modules/@octopus/engine/dist/extension/LaunchOptions-DxvePrV4.js +6 -0
- package/node_modules/@octopus/engine/dist/extension/NodeWebSocketTransport-BTgRVB7Z.js +6 -0
- package/node_modules/@octopus/engine/dist/extension/background.js +396 -0
- package/node_modules/@octopus/engine/dist/extension/bidi-C_GIZ8Uz.js +131 -0
- package/node_modules/@octopus/engine/dist/extension/manifest.json +27 -0
- package/node_modules/@octopus/engine/dist/extension/src/content/anti-detection.js +1 -0
- package/node_modules/@octopus/engine/dist/extension-bridge/BaseExtensionBridge.d.ts +21 -0
- package/node_modules/@octopus/engine/dist/extension-bridge/BaseExtensionBridge.js +117 -0
- package/node_modules/@octopus/engine/dist/extension-bridge/SessionExtensionBridge.d.ts +17 -0
- package/node_modules/@octopus/engine/dist/extension-bridge/SessionExtensionBridge.js +29 -0
- package/node_modules/@octopus/engine/dist/extension-bridge/index.d.ts +2 -0
- package/node_modules/@octopus/engine/dist/extension-bridge/index.js +5 -0
- package/node_modules/@octopus/engine/dist/extension-bridge/types.d.ts +159 -0
- package/node_modules/@octopus/engine/dist/extension-bridge/types.js +5 -0
- package/node_modules/@octopus/engine/dist/extensions/ublock-origin/uBlock0.chromium.tar.xz +0 -0
- package/node_modules/@octopus/engine/dist/extensions/ublock-origin-lite/uBOLite.chromium.tar.xz +0 -0
- package/node_modules/@octopus/engine/dist/index.d.ts +169 -0
- package/node_modules/@octopus/engine/dist/index.js +1 -0
- package/node_modules/@octopus/engine/dist/models/actionItem.d.ts +16 -0
- package/node_modules/@octopus/engine/dist/models/actionItem.js +15 -0
- package/node_modules/@octopus/engine/dist/models/conditionCheckArgs.d.ts +11 -0
- package/node_modules/@octopus/engine/dist/models/conditionCheckArgs.js +11 -0
- package/node_modules/@octopus/engine/dist/models/customizeCookie.d.ts +14 -0
- package/node_modules/@octopus/engine/dist/models/customizeCookie.js +6 -0
- package/node_modules/@octopus/engine/dist/models/downloadFileConfig.d.ts +17 -0
- package/node_modules/@octopus/engine/dist/models/downloadFileConfig.js +26 -0
- package/node_modules/@octopus/engine/dist/models/elementNotFoundArgs.d.ts +8 -0
- package/node_modules/@octopus/engine/dist/models/elementNotFoundArgs.js +12 -0
- package/node_modules/@octopus/engine/dist/models/elementNotFoundError.d.ts +2 -0
- package/node_modules/@octopus/engine/dist/models/elementNotFoundError.js +6 -0
- package/node_modules/@octopus/engine/dist/models/extractItem.d.ts +37 -0
- package/node_modules/@octopus/engine/dist/models/extractItem.js +35 -0
- package/node_modules/@octopus/engine/dist/models/extractTemplate.d.ts +11 -0
- package/node_modules/@octopus/engine/dist/models/extractTemplate.js +48 -0
- package/node_modules/@octopus/engine/dist/models/extractTextItem.d.ts +10 -0
- package/node_modules/@octopus/engine/dist/models/extractTextItem.js +17 -0
- package/node_modules/@octopus/engine/dist/models/globalConfig.d.ts +5 -0
- package/node_modules/@octopus/engine/dist/models/globalConfig.js +1 -0
- package/node_modules/@octopus/engine/dist/models/httpHeader.d.ts +4 -0
- package/node_modules/@octopus/engine/dist/models/httpHeader.js +10 -0
- package/node_modules/@octopus/engine/dist/models/operation.d.ts +27 -0
- package/node_modules/@octopus/engine/dist/models/operation.js +242 -0
- package/node_modules/@octopus/engine/dist/models/retryCondition.d.ts +7 -0
- package/node_modules/@octopus/engine/dist/models/retryCondition.js +10 -0
- package/node_modules/@octopus/engine/dist/models/task.d.ts +89 -0
- package/node_modules/@octopus/engine/dist/models/task.js +120 -0
- package/node_modules/@octopus/engine/dist/models/trigger.d.ts +66 -0
- package/node_modules/@octopus/engine/dist/models/trigger.js +117 -0
- package/node_modules/@octopus/engine/dist/package.json +26 -0
- package/node_modules/@octopus/engine/dist/public-types.d.ts +13 -0
- package/node_modules/@octopus/engine/dist/public-types.js +2 -0
- package/node_modules/@octopus/engine/dist/settings.d.ts +41 -0
- package/node_modules/@octopus/engine/dist/settings.js +20 -0
- package/node_modules/@octopus/engine/dist/solvers/captcha/ClickCaptchaSolver.d.ts +6 -0
- package/node_modules/@octopus/engine/dist/solvers/captcha/ClickCaptchaSolver.js +1 -0
- package/node_modules/@octopus/engine/dist/solvers/captcha/HCaptchaSolver.d.ts +4 -0
- package/node_modules/@octopus/engine/dist/solvers/captcha/HCaptchaSolver.js +73 -0
- package/node_modules/@octopus/engine/dist/solvers/captcha/ImageCaptchaSolver.d.ts +2 -0
- package/node_modules/@octopus/engine/dist/solvers/captcha/ImageCaptchaSolver.js +74 -0
- package/node_modules/@octopus/engine/dist/solvers/captcha/RecaptchaSolver.d.ts +9 -0
- package/node_modules/@octopus/engine/dist/solvers/captcha/RecaptchaSolver.js +371 -0
- package/node_modules/@octopus/engine/dist/solvers/captcha/SliderCaptchaSolver.d.ts +6 -0
- package/node_modules/@octopus/engine/dist/solvers/captcha/SliderCaptchaSolver.js +184 -0
- package/node_modules/@octopus/engine/dist/solvers/captcha/SlidingTrajectory.d.ts +50 -0
- package/node_modules/@octopus/engine/dist/solvers/captcha/SlidingTrajectory.js +125 -0
- package/node_modules/@octopus/engine/dist/solvers/captcha/types.d.ts +68 -0
- package/node_modules/@octopus/engine/dist/solvers/captcha/types.js +34 -0
- package/node_modules/@octopus/engine/dist/solvers/captcha/utils.d.ts +2 -0
- package/node_modules/@octopus/engine/dist/solvers/captcha/utils.js +15 -0
- package/node_modules/@octopus/engine/dist/translator/actionFactory.d.ts +6 -0
- package/node_modules/@octopus/engine/dist/translator/actionFactory.js +1 -0
- package/node_modules/@octopus/engine/dist/translator/activityTypeEnum.d.ts +22 -0
- package/node_modules/@octopus/engine/dist/translator/activityTypeEnum.js +1 -0
- package/node_modules/@octopus/engine/dist/translator/backPreWebPageAction.d.ts +5 -0
- package/node_modules/@octopus/engine/dist/translator/backPreWebPageAction.js +1 -0
- package/node_modules/@octopus/engine/dist/translator/baseAction.d.ts +31 -0
- package/node_modules/@octopus/engine/dist/translator/baseAction.js +1 -0
- package/node_modules/@octopus/engine/dist/translator/breakActivity.d.ts +5 -0
- package/node_modules/@octopus/engine/dist/translator/breakActivity.js +1 -0
- package/node_modules/@octopus/engine/dist/translator/clickAction.d.ts +5 -0
- package/node_modules/@octopus/engine/dist/translator/clickAction.js +1 -0
- package/node_modules/@octopus/engine/dist/translator/completeWF.d.ts +5 -0
- package/node_modules/@octopus/engine/dist/translator/completeWF.js +1 -0
- package/node_modules/@octopus/engine/dist/translator/conditionAction.d.ts +6 -0
- package/node_modules/@octopus/engine/dist/translator/conditionAction.js +1 -0
- package/node_modules/@octopus/engine/dist/translator/emptyAction.d.ts +5 -0
- package/node_modules/@octopus/engine/dist/translator/emptyAction.js +1 -0
- package/node_modules/@octopus/engine/dist/translator/enterCapachaAction.d.ts +5 -0
- package/node_modules/@octopus/engine/dist/translator/enterCapachaAction.js +1 -0
- package/node_modules/@octopus/engine/dist/translator/enterTextAction.d.ts +5 -0
- package/node_modules/@octopus/engine/dist/translator/enterTextAction.js +1 -0
- package/node_modules/@octopus/engine/dist/translator/extractDataAction.d.ts +13 -0
- package/node_modules/@octopus/engine/dist/translator/extractDataAction.js +1 -0
- package/node_modules/@octopus/engine/dist/translator/loopAction.d.ts +5 -0
- package/node_modules/@octopus/engine/dist/translator/loopAction.js +1 -0
- package/node_modules/@octopus/engine/dist/translator/mouseOverAction.d.ts +5 -0
- package/node_modules/@octopus/engine/dist/translator/mouseOverAction.js +19 -0
- package/node_modules/@octopus/engine/dist/translator/navigateAction.d.ts +5 -0
- package/node_modules/@octopus/engine/dist/translator/navigateAction.js +117 -0
- package/node_modules/@octopus/engine/dist/translator/rootAction.d.ts +6 -0
- package/node_modules/@octopus/engine/dist/translator/rootAction.js +80 -0
- package/node_modules/@octopus/engine/dist/translator/switchCombo2Action.d.ts +5 -0
- package/node_modules/@octopus/engine/dist/translator/switchCombo2Action.js +19 -0
- package/node_modules/@octopus/engine/dist/translator/translator.d.ts +1 -0
- package/node_modules/@octopus/engine/dist/translator/translator.js +36 -0
- package/node_modules/@octopus/engine/dist/type.d.ts +25 -0
- package/node_modules/@octopus/engine/dist/type.js +2 -0
- package/node_modules/@octopus/engine/dist/types/browser.d.ts +191 -0
- package/node_modules/@octopus/engine/dist/types/browser.js +1 -0
- package/node_modules/@octopus/engine/dist/types/browserManager.d.ts +41 -0
- package/node_modules/@octopus/engine/dist/types/browserManager.js +1 -0
- package/node_modules/@octopus/engine/dist/types/index.d.ts +40 -0
- package/node_modules/@octopus/engine/dist/types/index.js +2 -0
- package/node_modules/@octopus/engine/dist/types/plugin.d.ts +29 -0
- package/node_modules/@octopus/engine/dist/types/plugin.js +2 -0
- package/node_modules/@octopus/engine/dist/utils/AsyncEmitter.d.ts +15 -0
- package/node_modules/@octopus/engine/dist/utils/AsyncEmitter.js +1 -0
- package/node_modules/@octopus/engine/dist/utils/DataStore.d.ts +58 -0
- package/node_modules/@octopus/engine/dist/utils/DataStore.js +1 -0
- package/node_modules/@octopus/engine/dist/utils/DateTimeFormatHelper.d.ts +22 -0
- package/node_modules/@octopus/engine/dist/utils/DateTimeFormatHelper.js +173 -0
- package/node_modules/@octopus/engine/dist/utils/FileDownloader.d.ts +108 -0
- package/node_modules/@octopus/engine/dist/utils/FileDownloader.js +1 -0
- package/node_modules/@octopus/engine/dist/utils/HttpRequester.d.ts +43 -0
- package/node_modules/@octopus/engine/dist/utils/HttpRequester.js +174 -0
- package/node_modules/@octopus/engine/dist/utils/JsonParser.d.ts +95 -0
- package/node_modules/@octopus/engine/dist/utils/JsonParser.js +439 -0
- package/node_modules/@octopus/engine/dist/utils/Operations.d.ts +27 -0
- package/node_modules/@octopus/engine/dist/utils/Operations.js +115 -0
- package/node_modules/@octopus/engine/dist/utils/index.d.ts +28 -0
- package/node_modules/@octopus/engine/dist/utils/index.js +356 -0
- package/node_modules/@octopus/engine/package.json +58 -0
- package/package.json +79 -0
- package/schemas/capabilities-v1.schema.json +234 -0
- package/schemas/detached-bootstrap-v1.schema.json +42 -0
- package/schemas/json-envelope-v1.schema.json +39 -0
- package/schemas/run-event-v1.schema.json +47 -0
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const contextHelper = require('./context-helper');
|
|
4
|
+
const debug = require('debug')('bpmn-engine:definition');
|
|
5
|
+
const EventEmitter = require('events').EventEmitter;
|
|
6
|
+
const getPropertyValue = require('./getPropertyValue');
|
|
7
|
+
const mapper = require('./mapper');
|
|
8
|
+
const validation = require('./validation');
|
|
9
|
+
|
|
10
|
+
const internals = {};
|
|
11
|
+
|
|
12
|
+
module.exports = internals.Definition = function(moddleContext, options) {
|
|
13
|
+
if (!moddleContext) throw new Error('No moddle context');
|
|
14
|
+
this.moddleContext = moddleContext;
|
|
15
|
+
this.id = getPropertyValue(moddleContext, 'rootHandler.element.id', 'anonymous');
|
|
16
|
+
options = options || {};
|
|
17
|
+
|
|
18
|
+
validation.validateOptions(options);
|
|
19
|
+
this.processes = [];
|
|
20
|
+
|
|
21
|
+
this.options = options;
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
internals.Definition.resume = function(state, optionsOrCallback, callback) {
|
|
25
|
+
let options;
|
|
26
|
+
if (typeof optionsOrCallback === 'function') {
|
|
27
|
+
callback = optionsOrCallback;
|
|
28
|
+
options = {};
|
|
29
|
+
} else if (optionsOrCallback) {
|
|
30
|
+
options = {
|
|
31
|
+
listener: optionsOrCallback.listener
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
const definition = new internals.Definition(state.moddleContext, options);
|
|
36
|
+
|
|
37
|
+
function resumeCallback(err) {
|
|
38
|
+
if (err) {
|
|
39
|
+
teardownProcesses.call(definition);
|
|
40
|
+
if (callback) return callback.apply(null, arguments);
|
|
41
|
+
return definition.emit('error', err);
|
|
42
|
+
}
|
|
43
|
+
if (callback) return callback.apply(null, arguments);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
debug(`<${definition.id}> resume`);
|
|
47
|
+
delete this.stopped;
|
|
48
|
+
|
|
49
|
+
setTimeout(() => {
|
|
50
|
+
definition.getProcesses(options, (err, instance, siblings) => {
|
|
51
|
+
if (err) return resumeCallback.call(definition, err);
|
|
52
|
+
setupProcesses.call(definition);
|
|
53
|
+
siblings.forEach((p) => p.resume(state.processes[p.id]));
|
|
54
|
+
resumeCallback.call(definition, null, instance, siblings);
|
|
55
|
+
});
|
|
56
|
+
}, 0);
|
|
57
|
+
return definition;
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
internals.Definition.prototype = Object.create(EventEmitter.prototype);
|
|
61
|
+
|
|
62
|
+
internals.Definition.prototype.execute = function(optionsOrCallback, callback) {
|
|
63
|
+
let options;
|
|
64
|
+
if (typeof optionsOrCallback === 'function') {
|
|
65
|
+
callback = optionsOrCallback;
|
|
66
|
+
options = this.options;
|
|
67
|
+
} else {
|
|
68
|
+
options = optionsOrCallback;
|
|
69
|
+
validation.validateOptions(options);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
debug(`<${this.id}>`, 'start');
|
|
73
|
+
|
|
74
|
+
this.getProcesses(options, (getErr, firstExecutableProcess, allProcesses) => {
|
|
75
|
+
if (getErr) {
|
|
76
|
+
if (callback) return callback(getErr);
|
|
77
|
+
return this.emit('error', getErr, this);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
if (!this.entryPointId) {
|
|
81
|
+
const entryErr = new Error(`definition <${this.id}> has no executable process`);
|
|
82
|
+
if (callback) return callback(entryErr);
|
|
83
|
+
return this.emit('error', entryErr, this);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
this.started = true;
|
|
87
|
+
setupProcesses.call(this);
|
|
88
|
+
this.emit('start', this);
|
|
89
|
+
|
|
90
|
+
if (callback) callback(null, firstExecutableProcess, allProcesses);
|
|
91
|
+
firstExecutableProcess.run();
|
|
92
|
+
});
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
internals.Definition.prototype.signal = function(activityId, output) {
|
|
96
|
+
const activity = this.getChildActivityById(activityId);
|
|
97
|
+
if (!activity) {
|
|
98
|
+
debug(`<${this.id}>`, `signal failed! Activity <${activityId}> was not found`);
|
|
99
|
+
return false;
|
|
100
|
+
}
|
|
101
|
+
debug(`<${this.id}>`, `signal ${activity.type} <${activityId}>`);
|
|
102
|
+
activity.signal(output);
|
|
103
|
+
return true;
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
internals.Definition.prototype.stop = function() {
|
|
107
|
+
debug(`<${this.id}>`, 'stop');
|
|
108
|
+
this.stopped = true;
|
|
109
|
+
teardownProcesses.call(this);
|
|
110
|
+
this.processes.forEach((p) => p.deactivate());
|
|
111
|
+
this.emit('end', this);
|
|
112
|
+
};
|
|
113
|
+
|
|
114
|
+
internals.Definition.prototype.getState = function() {
|
|
115
|
+
const state = {
|
|
116
|
+
id: this.id,
|
|
117
|
+
state: getRunningStatus.call(this),
|
|
118
|
+
moddleContext: contextHelper.cloneContext(this.moddleContext)
|
|
119
|
+
};
|
|
120
|
+
if (this.stopped) {
|
|
121
|
+
state.stopped = true;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
state.processes = this.processes.reduce((result, instance) => {
|
|
125
|
+
result[instance.id] = instance.getState();
|
|
126
|
+
return result;
|
|
127
|
+
}, {});
|
|
128
|
+
|
|
129
|
+
return state;
|
|
130
|
+
};
|
|
131
|
+
|
|
132
|
+
internals.Definition.prototype.getPendingActivities = function() {
|
|
133
|
+
const pendingState = {
|
|
134
|
+
id: this.id,
|
|
135
|
+
state: getRunningStatus.call(this)
|
|
136
|
+
};
|
|
137
|
+
|
|
138
|
+
pendingState.children = this.processes.reduce((result, instance) => {
|
|
139
|
+
result = result.concat(instance.getPendingActivities());
|
|
140
|
+
return result;
|
|
141
|
+
}, []);
|
|
142
|
+
|
|
143
|
+
return pendingState;
|
|
144
|
+
};
|
|
145
|
+
|
|
146
|
+
internals.Definition.prototype.getProcesses = function(optionsOrCallback, callback) {
|
|
147
|
+
let options;
|
|
148
|
+
if (typeof optionsOrCallback === 'function') {
|
|
149
|
+
callback = optionsOrCallback;
|
|
150
|
+
} else {
|
|
151
|
+
validation.validateOptions(optionsOrCallback);
|
|
152
|
+
options = optionsOrCallback;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
if (this.started) {
|
|
156
|
+
if (callback) callback(null, this.mainProcess, this.processes);
|
|
157
|
+
return this.processes;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
const warnings = validation.validateModdleContext(this.moddleContext);
|
|
161
|
+
if (warnings.length) {
|
|
162
|
+
if (callback) return callback(warnings[0]);
|
|
163
|
+
return this.emit('error', warnings[0], this);
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
loadProcesses.call(this, this.moddleContext, options || this.options);
|
|
167
|
+
|
|
168
|
+
if (callback) callback(null, this.mainProcess, this.processes);
|
|
169
|
+
return this.processes;
|
|
170
|
+
};
|
|
171
|
+
|
|
172
|
+
internals.Definition.prototype.getProcessById = function(processId) {
|
|
173
|
+
return this.processes.find((p) => p.id === processId);
|
|
174
|
+
};
|
|
175
|
+
|
|
176
|
+
internals.Definition.prototype.getChildActivityById = function(childId) {
|
|
177
|
+
let child;
|
|
178
|
+
if (!this.processes.length) {
|
|
179
|
+
loadProcesses.call(this, this.moddleContext, this.options);
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
for (let i = 0; i < this.processes.length; i++) {
|
|
183
|
+
child = this.processes[i].getChildActivityById(childId);
|
|
184
|
+
if (child) break;
|
|
185
|
+
}
|
|
186
|
+
return child;
|
|
187
|
+
};
|
|
188
|
+
|
|
189
|
+
internals.Definition.prototype.onMessage = function(from, message, via) {
|
|
190
|
+
const targetElement = contextHelper.getTargetProcess(this.moddleContext, via.targetId);
|
|
191
|
+
|
|
192
|
+
debug(`<${this.id}>`, `message sent from <${from.id}> via <${via.id}> to <${targetElement.id}>`);
|
|
193
|
+
|
|
194
|
+
this.getProcessById(targetElement.id).signal(via.targetId, message);
|
|
195
|
+
};
|
|
196
|
+
|
|
197
|
+
internals.Definition.prototype.onEnd = function(process) {
|
|
198
|
+
updateVariables.call(this, process);
|
|
199
|
+
|
|
200
|
+
if (this.processes.every((p) => p.isEnded)) {
|
|
201
|
+
debug(`<${this.id}>`, 'end');
|
|
202
|
+
teardownProcesses.call(this);
|
|
203
|
+
this.started = false;
|
|
204
|
+
this.isEnded = true;
|
|
205
|
+
this.emit('end', this);
|
|
206
|
+
}
|
|
207
|
+
};
|
|
208
|
+
|
|
209
|
+
internals.Definition.prototype.onError = function() {
|
|
210
|
+
const args = Array.prototype.slice.call(arguments);
|
|
211
|
+
teardownProcesses.call(this);
|
|
212
|
+
|
|
213
|
+
args.unshift('error');
|
|
214
|
+
args.push(this);
|
|
215
|
+
this.emit.apply(this, args);
|
|
216
|
+
};
|
|
217
|
+
|
|
218
|
+
function loadProcesses(moddleContext, options) {
|
|
219
|
+
const processElements = contextHelper.getProcesses(moddleContext);
|
|
220
|
+
|
|
221
|
+
this.processes = processElements.map((e) => new mapper.Process(e, moddleContext, options));
|
|
222
|
+
this.entryPointId = contextHelper.getExecutableProcessId(moddleContext);
|
|
223
|
+
|
|
224
|
+
debug(`<${this.id}>`, `found ${this.processes.length} processes. Start with <${this.entryPointId}>`);
|
|
225
|
+
this.mainProcess = this.processes.find((p) => p.id === this.entryPointId);
|
|
226
|
+
return this.processes;
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
function setupProcesses() {
|
|
230
|
+
this._onMessage = this.onMessage.bind(this);
|
|
231
|
+
this._onEnd = this.onEnd.bind(this);
|
|
232
|
+
this._onError = this.onError.bind(this);
|
|
233
|
+
|
|
234
|
+
this.processes.forEach((p) => {
|
|
235
|
+
p.on('message', this._onMessage);
|
|
236
|
+
p.on('leave', this._onEnd);
|
|
237
|
+
p.on('error', this._onError);
|
|
238
|
+
});
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
function teardownProcesses() {
|
|
242
|
+
this.processes.forEach((p) => {
|
|
243
|
+
p.removeListener('message', this._onMessage);
|
|
244
|
+
p.removeListener('leave', this._onEnd);
|
|
245
|
+
p.removeListener('error', this._onError);
|
|
246
|
+
});
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
function updateVariables(process) {
|
|
250
|
+
this.variables = this.variables || {};
|
|
251
|
+
this.variables = Object.assign(this.variables, process.context.variables);
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
function getRunningStatus() {
|
|
255
|
+
if (!this.hasOwnProperty('started')) return 'pending';
|
|
256
|
+
return this.started ? 'running' : 'completed';
|
|
257
|
+
}
|
|
258
|
+
|
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const Async = require('async');
|
|
4
|
+
const contextHelper = require('./context-helper');
|
|
5
|
+
const debug = require('debug')('bpmn-engine:engine');
|
|
6
|
+
const EventEmitter = require('events').EventEmitter;
|
|
7
|
+
const mapper = require('./mapper');
|
|
8
|
+
const transformer = require('./transformer');
|
|
9
|
+
const validation = require('./validation');
|
|
10
|
+
const packageVersion = require('../package.json').version;
|
|
11
|
+
|
|
12
|
+
const internals = {};
|
|
13
|
+
const validOptions = ['name', 'source', 'moddleContext', 'moddleOptions'];
|
|
14
|
+
|
|
15
|
+
module.exports = internals.Engine = function(options) {
|
|
16
|
+
options = options || {};
|
|
17
|
+
|
|
18
|
+
Object.keys(options).forEach((key) => {
|
|
19
|
+
if (validOptions.indexOf(key) === -1) throw new Error(`Option ${key} is unsupported`);
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
this.name = options.name || 'undefined';
|
|
23
|
+
this.definitions = [];
|
|
24
|
+
this.sources = [];
|
|
25
|
+
this.moddleContexts = [];
|
|
26
|
+
this.moddleOptions = options.moddleOptions;
|
|
27
|
+
|
|
28
|
+
if (options.source) {
|
|
29
|
+
addSource.call(this, options.source);
|
|
30
|
+
}
|
|
31
|
+
if (options.moddleContext) {
|
|
32
|
+
addModdleContext.call(this, options.moddleContext);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
this._onEnd = this.onEnd.bind(this);
|
|
36
|
+
this._onError = this.onError.bind(this);
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
internals.Engine.prototype = Object.create(EventEmitter.prototype);
|
|
40
|
+
|
|
41
|
+
internals.Engine.resume = function(engineState, executeOptionsOrCallback, callback) {
|
|
42
|
+
if (!Array.isArray(engineState.definitions)) {
|
|
43
|
+
throw new Error('State definitions must be an array');
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
let options;
|
|
47
|
+
if (typeof executeOptionsOrCallback === 'function') {
|
|
48
|
+
callback = executeOptionsOrCallback;
|
|
49
|
+
options = {};
|
|
50
|
+
} else {
|
|
51
|
+
options = executeOptionsOrCallback;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
function resumeCallback(err) {
|
|
55
|
+
if (err) {
|
|
56
|
+
teardownDefinitions.call(engine);
|
|
57
|
+
if (callback) return callback.apply(null, arguments);
|
|
58
|
+
return this.emit('error', err);
|
|
59
|
+
}
|
|
60
|
+
if (callback) return callback.apply(null, arguments);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
const engine = new internals.Engine({
|
|
64
|
+
name: engineState.name
|
|
65
|
+
});
|
|
66
|
+
debug(`<${engine.name}>`, 'resume');
|
|
67
|
+
|
|
68
|
+
function resume() {
|
|
69
|
+
Async.each(engineState.definitions, (definitionState, next) => {
|
|
70
|
+
const definition = mapper.Definition.resume(definitionState, options, next);
|
|
71
|
+
engine.definitions.push(definition);
|
|
72
|
+
setupDefinition.call(engine, definition);
|
|
73
|
+
}, (err) => {
|
|
74
|
+
if (err) return resumeCallback.call(engine, err);
|
|
75
|
+
resumeCallback.call(engine, null, engine.definitions[0], engine.definitions);
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
process.nextTick(resume);
|
|
80
|
+
|
|
81
|
+
return engine;
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
internals.Engine.prototype.execute = function(executeOptionsOrCallback, callback) {
|
|
85
|
+
let executeOptions = {};
|
|
86
|
+
if (typeof executeOptionsOrCallback === 'function') {
|
|
87
|
+
callback = executeOptionsOrCallback;
|
|
88
|
+
executeOptions = {};
|
|
89
|
+
} else {
|
|
90
|
+
validation.validateOptions(executeOptionsOrCallback);
|
|
91
|
+
executeOptions = executeOptionsOrCallback;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
function executeCallback(err) {
|
|
95
|
+
if (callback) return callback.apply(null, arguments);
|
|
96
|
+
if (err) this.emit('error', err);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
this.getDefinitions((getErr, definitions) => {
|
|
100
|
+
if (getErr) return executeCallback.call(this, getErr);
|
|
101
|
+
if (!definitions.length) return executeCallback.call(this, new Error('Nothing to execute'));
|
|
102
|
+
|
|
103
|
+
debug(`<${this.name}>`, `start all definitions (${definitions.length})`);
|
|
104
|
+
|
|
105
|
+
setupDefinitions.call(this, definitions);
|
|
106
|
+
|
|
107
|
+
this.started = true;
|
|
108
|
+
Async.each(definitions, (d, next) => {
|
|
109
|
+
d.execute(executeOptions, next);
|
|
110
|
+
}, (err) => {
|
|
111
|
+
executeCallback.call(this, err, definitions[0], definitions);
|
|
112
|
+
});
|
|
113
|
+
});
|
|
114
|
+
};
|
|
115
|
+
|
|
116
|
+
internals.Engine.prototype.getDefinitions = function(callback) {
|
|
117
|
+
if (this.definitions.length) return callback(null, this.definitions);
|
|
118
|
+
return loadDefinitions.call(this, callback);
|
|
119
|
+
};
|
|
120
|
+
|
|
121
|
+
internals.Engine.prototype.getDefinition = function(callback) {
|
|
122
|
+
this.getDefinitions((err, definitions) => {
|
|
123
|
+
if (err) return callback(err);
|
|
124
|
+
if (definitions.length === 0) return callback();
|
|
125
|
+
const definition = definitions[0];
|
|
126
|
+
return callback(null, definition);
|
|
127
|
+
});
|
|
128
|
+
};
|
|
129
|
+
|
|
130
|
+
internals.Engine.prototype.addDefinitionBySource = function(source, moddleOptionsOrCallback, callback) {
|
|
131
|
+
let moddleOptions;
|
|
132
|
+
if (typeof moddleOptionsOrCallback === 'function') {
|
|
133
|
+
callback = moddleOptionsOrCallback;
|
|
134
|
+
moddleOptions = this.moddleOptions;
|
|
135
|
+
} else {
|
|
136
|
+
moddleOptions = moddleOptionsOrCallback;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
getModdleContext(source, moddleOptions, (err, moddleContext) => {
|
|
140
|
+
if (err) return callback(err);
|
|
141
|
+
return callback(null, this.addDefinitionByModdleContext(moddleContext));
|
|
142
|
+
});
|
|
143
|
+
};
|
|
144
|
+
|
|
145
|
+
internals.Engine.prototype.addDefinitionByModdleContext = function(moddleContext) {
|
|
146
|
+
const idx = this.definitions.findIndex((d) => d.id === contextHelper.getDefinitionId(moddleContext));
|
|
147
|
+
const definition = new mapper.Definition(moddleContext);
|
|
148
|
+
if (idx === -1) {
|
|
149
|
+
debug(`<${this.name}>`, `add definition <${definition.id}>`);
|
|
150
|
+
this.definitions.push(definition);
|
|
151
|
+
} else {
|
|
152
|
+
debug(`<${this.name}>`, `definition <${definition.id}> is replaced`);
|
|
153
|
+
this.definitions[idx] = definition;
|
|
154
|
+
}
|
|
155
|
+
return definition;
|
|
156
|
+
};
|
|
157
|
+
|
|
158
|
+
internals.Engine.prototype.getDefinitionById = function(definitionId) {
|
|
159
|
+
return this.definitions.find((d) => d.id === definitionId);
|
|
160
|
+
};
|
|
161
|
+
|
|
162
|
+
internals.Engine.prototype.onEnd = function(lastReportingDefinition) {
|
|
163
|
+
if (this.definitions.every((d) => d.isEnded || d.stopped)) {
|
|
164
|
+
debug(`<${this.name}>`, 'end');
|
|
165
|
+
teardownDefinitions.call(this);
|
|
166
|
+
this.started = false;
|
|
167
|
+
this.emit('end', lastReportingDefinition);
|
|
168
|
+
}
|
|
169
|
+
};
|
|
170
|
+
|
|
171
|
+
internals.Engine.prototype.onError = function() {
|
|
172
|
+
const args = Array.prototype.slice.call(arguments);
|
|
173
|
+
|
|
174
|
+
teardownDefinitions.call(this);
|
|
175
|
+
this.started = false;
|
|
176
|
+
|
|
177
|
+
args.unshift('error');
|
|
178
|
+
this.emit.apply(this, args);
|
|
179
|
+
};
|
|
180
|
+
|
|
181
|
+
internals.Engine.prototype.getState = function() {
|
|
182
|
+
const state = {
|
|
183
|
+
name: this.name,
|
|
184
|
+
state: this.started ? 'running' : 'idle',
|
|
185
|
+
engineVersion: packageVersion
|
|
186
|
+
};
|
|
187
|
+
|
|
188
|
+
state.definitions = this.definitions.map((definition) => {
|
|
189
|
+
return definition.getState();
|
|
190
|
+
});
|
|
191
|
+
return state;
|
|
192
|
+
};
|
|
193
|
+
|
|
194
|
+
internals.Engine.prototype.getPendingActivities = function() {
|
|
195
|
+
const pendingState = {
|
|
196
|
+
name: this.name,
|
|
197
|
+
state: this.started ? 'running' : 'idle',
|
|
198
|
+
};
|
|
199
|
+
|
|
200
|
+
pendingState.definitions = this.definitions.map((definition) => {
|
|
201
|
+
return definition.getPendingActivities();
|
|
202
|
+
});
|
|
203
|
+
return pendingState;
|
|
204
|
+
};
|
|
205
|
+
|
|
206
|
+
internals.Engine.prototype.signal = function(activityId, output) {
|
|
207
|
+
if (!this.started) return;
|
|
208
|
+
|
|
209
|
+
for (const defIdx in this.definitions) {
|
|
210
|
+
const definition = this.definitions[defIdx];
|
|
211
|
+
const child = definition.getChildActivityById(activityId);
|
|
212
|
+
if (child && child.waiting) {
|
|
213
|
+
return definition.signal(activityId, output);
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
};
|
|
217
|
+
|
|
218
|
+
internals.Engine.prototype.stop = function() {
|
|
219
|
+
debug(`<${this.name}>`, 'stop');
|
|
220
|
+
this.definitions.forEach((d) => d.stop());
|
|
221
|
+
};
|
|
222
|
+
|
|
223
|
+
function addSource(sourceXml) {
|
|
224
|
+
if (Buffer.isBuffer(sourceXml)) {
|
|
225
|
+
this.sources.push(sourceXml.toString());
|
|
226
|
+
} else if (typeof sourceXml === 'string') {
|
|
227
|
+
this.sources.push(sourceXml);
|
|
228
|
+
} else {
|
|
229
|
+
this.emit('error', new Error('Unparsable Bpmn source'));
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
function addModdleContext(moddleContext) {
|
|
234
|
+
this.moddleContexts.push(moddleContext);
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
function loadDefinitionBySource(source, callback) {
|
|
238
|
+
debug(`<${this.name}>`, 'load definition from source');
|
|
239
|
+
getModdleContext(source, this.moddleOptions, (err, moddleContext) => {
|
|
240
|
+
if (err) return callback(err);
|
|
241
|
+
return callback(null, this.addDefinitionByModdleContext(moddleContext));
|
|
242
|
+
});
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
function loadDefinitions(callback) {
|
|
246
|
+
if (this.sources.length) {
|
|
247
|
+
return Async.map(this.sources, loadDefinitionBySource.bind(this), callback);
|
|
248
|
+
}
|
|
249
|
+
if (this.moddleContexts.length) {
|
|
250
|
+
return callback(null, this.moddleContexts.map(this.addDefinitionByModdleContext.bind(this)));
|
|
251
|
+
}
|
|
252
|
+
return callback(null, []);
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
function setupDefinition(definition) {
|
|
256
|
+
definition.on('end', this._onEnd);
|
|
257
|
+
definition.on('error', this._onError);
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
function setupDefinitions(definitions) {
|
|
261
|
+
definitions.forEach(setupDefinition.bind(this));
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
function teardownDefinitions() {
|
|
265
|
+
this.definitions.forEach((p) => {
|
|
266
|
+
p.removeListener('end', this._onEnd);
|
|
267
|
+
p.removeListener('error', this._onError);
|
|
268
|
+
});
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
function getModdleContext(source, moddleOptions, callback) {
|
|
272
|
+
transformer.transform(source, moddleOptions, (err, def, moddleContext) => {
|
|
273
|
+
return callback(err, moddleContext);
|
|
274
|
+
});
|
|
275
|
+
}
|