@nocobase/plugin-workflow 1.2.12-alpha → 1.3.0-alpha.20240710084543
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/package.json +3 -3
- package/dist/client/AddButton.d.ts +0 -16
- package/dist/client/Branch.d.ts +0 -17
- package/dist/client/CanvasContent.d.ts +0 -12
- package/dist/client/ExecutionCanvas.d.ts +0 -10
- package/dist/client/ExecutionContextProvider.d.ts +0 -15
- package/dist/client/ExecutionLink.d.ts +0 -10
- package/dist/client/ExecutionPage.d.ts +0 -10
- package/dist/client/ExecutionResourceProvider.d.ts +0 -14
- package/dist/client/FlowContext.d.ts +0 -11
- package/dist/client/WorkflowCanvas.d.ts +0 -10
- package/dist/client/WorkflowLink.d.ts +0 -10
- package/dist/client/WorkflowPage.d.ts +0 -10
- package/dist/client/WorkflowPane.d.ts +0 -10
- package/dist/client/components/AssignedFieldsFormSchemaConfig.d.ts +0 -10
- package/dist/client/components/CheckboxGroupWithTooltip.d.ts +0 -15
- package/dist/client/components/CollectionBlockInitializer.d.ts +0 -10
- package/dist/client/components/CollectionFieldset.d.ts +0 -14
- package/dist/client/components/DetailsBlockProvider.d.ts +0 -14
- package/dist/client/components/DrawerDescription.d.ts +0 -10
- package/dist/client/components/DrawerForm.d.ts +0 -13
- package/dist/client/components/ExecutionStatus.d.ts +0 -13
- package/dist/client/components/FieldsSelect.d.ts +0 -10
- package/dist/client/components/FilterDynamicComponent.d.ts +0 -14
- package/dist/client/components/OpenDrawer.d.ts +0 -14
- package/dist/client/components/RadioWithTooltip.d.ts +0 -15
- package/dist/client/components/SimpleDesigner.d.ts +0 -10
- package/dist/client/components/StatusButton.d.ts +0 -10
- package/dist/client/components/TriggerOptionRender.d.ts +0 -12
- package/dist/client/components/ValueBlock.d.ts +0 -14
- package/dist/client/components/index.d.ts +0 -16
- package/dist/client/components/renderEngineReference.d.ts +0 -10
- package/dist/client/constants.d.ts +0 -45
- package/dist/client/hooks/index.d.ts +0 -11
- package/dist/client/hooks/useGetAriaLabelOfAddButton.d.ts +0 -14
- package/dist/client/hooks/useRefreshActionProps.d.ts +0 -11
- package/dist/client/hooks/useTriggerWorkflowActionProps.d.ts +0 -20
- package/dist/client/hooks/useWorkflowExecuted.d.ts +0 -10
- package/dist/client/index.d.ts +0 -43
- package/dist/client/index.js +0 -569
- package/dist/client/locale/index.d.ts +0 -11
- package/dist/client/nodes/calculation.d.ts +0 -80
- package/dist/client/nodes/condition.d.ts +0 -108
- package/dist/client/nodes/create.d.ts +0 -110
- package/dist/client/nodes/destroy.d.ts +0 -54
- package/dist/client/nodes/end.d.ts +0 -30
- package/dist/client/nodes/index.d.ts +0 -76
- package/dist/client/nodes/query.d.ts +0 -236
- package/dist/client/nodes/update.d.ts +0 -114
- package/dist/client/schemas/collection.d.ts +0 -170
- package/dist/client/schemas/executions.d.ts +0 -282
- package/dist/client/schemas/workflows.d.ts +0 -10
- package/dist/client/settings/customizeSubmitToWorkflowActionSettings.d.ts +0 -10
- package/dist/client/style.d.ts +0 -30
- package/dist/client/triggers/collection.d.ts +0 -124
- package/dist/client/triggers/index.d.ts +0 -36
- package/dist/client/triggers/schedule/EndsByField.d.ts +0 -13
- package/dist/client/triggers/schedule/OnField.d.ts +0 -13
- package/dist/client/triggers/schedule/RepeatField.d.ts +0 -13
- package/dist/client/triggers/schedule/ScheduleConfig.d.ts +0 -10
- package/dist/client/triggers/schedule/constants.d.ts +0 -12
- package/dist/client/triggers/schedule/index.d.ts +0 -33
- package/dist/client/triggers/schedule/locale/Cron.zh-CN.d.ts +0 -42
- package/dist/client/utils.d.ts +0 -12
- package/dist/client/variable.d.ts +0 -93
- package/dist/externalVersion.js +0 -34
- package/dist/index.d.ts +0 -10
- package/dist/index.js +0 -48
- package/dist/locale/en-US.json +0 -98
- package/dist/locale/es-ES.json +0 -98
- package/dist/locale/fr-FR.json +0 -98
- package/dist/locale/ja-JP.json +0 -82
- package/dist/locale/ko_KR.json +0 -168
- package/dist/locale/pt-BR.json +0 -98
- package/dist/locale/ru-RU.json +0 -82
- package/dist/locale/tr-TR.json +0 -82
- package/dist/locale/zh-CN.json +0 -205
- package/dist/node_modules/cron-parser/.eslintrc.json +0 -15
- package/dist/node_modules/cron-parser/.travis.yml +0 -7
- package/dist/node_modules/cron-parser/LICENSE +0 -21
- package/dist/node_modules/cron-parser/component.json +0 -11
- package/dist/node_modules/cron-parser/index.d.ts +0 -1
- package/dist/node_modules/cron-parser/lib/date.js +0 -252
- package/dist/node_modules/cron-parser/lib/expression.js +0 -983
- package/dist/node_modules/cron-parser/lib/field_compactor.js +0 -70
- package/dist/node_modules/cron-parser/lib/field_stringify.js +0 -38
- package/dist/node_modules/cron-parser/lib/parser.js +0 -1
- package/dist/node_modules/cron-parser/node_modules/luxon/build/amd/luxon.js +0 -8489
- package/dist/node_modules/cron-parser/node_modules/luxon/build/cjs-browser/luxon.js +0 -8487
- package/dist/node_modules/cron-parser/node_modules/luxon/build/global/luxon.js +0 -8490
- package/dist/node_modules/cron-parser/node_modules/luxon/build/global/luxon.min.js +0 -1
- package/dist/node_modules/cron-parser/node_modules/luxon/build/node/luxon.js +0 -7522
- package/dist/node_modules/cron-parser/node_modules/luxon/package.json +0 -96
- package/dist/node_modules/cron-parser/node_modules/luxon/src/datetime.js +0 -2169
- package/dist/node_modules/cron-parser/node_modules/luxon/src/duration.js +0 -880
- package/dist/node_modules/cron-parser/node_modules/luxon/src/errors.js +0 -61
- package/dist/node_modules/cron-parser/node_modules/luxon/src/impl/conversions.js +0 -157
- package/dist/node_modules/cron-parser/node_modules/luxon/src/impl/diff.js +0 -80
- package/dist/node_modules/cron-parser/node_modules/luxon/src/impl/digits.js +0 -76
- package/dist/node_modules/cron-parser/node_modules/luxon/src/impl/english.js +0 -233
- package/dist/node_modules/cron-parser/node_modules/luxon/src/impl/formats.js +0 -191
- package/dist/node_modules/cron-parser/node_modules/luxon/src/impl/formatter.js +0 -386
- package/dist/node_modules/cron-parser/node_modules/luxon/src/impl/invalid.js +0 -14
- package/dist/node_modules/cron-parser/node_modules/luxon/src/impl/locale.js +0 -482
- package/dist/node_modules/cron-parser/node_modules/luxon/src/impl/regexParser.js +0 -335
- package/dist/node_modules/cron-parser/node_modules/luxon/src/impl/tokenParser.js +0 -424
- package/dist/node_modules/cron-parser/node_modules/luxon/src/impl/util.js +0 -292
- package/dist/node_modules/cron-parser/node_modules/luxon/src/impl/zoneUtil.js +0 -36
- package/dist/node_modules/cron-parser/node_modules/luxon/src/info.js +0 -193
- package/dist/node_modules/cron-parser/node_modules/luxon/src/interval.js +0 -602
- package/dist/node_modules/cron-parser/node_modules/luxon/src/luxon.js +0 -26
- package/dist/node_modules/cron-parser/node_modules/luxon/src/luxonFilled.js +0 -13
- package/dist/node_modules/cron-parser/node_modules/luxon/src/settings.js +0 -137
- package/dist/node_modules/cron-parser/node_modules/luxon/src/zone.js +0 -88
- package/dist/node_modules/cron-parser/node_modules/luxon/src/zones/IANAZone.js +0 -191
- package/dist/node_modules/cron-parser/node_modules/luxon/src/zones/fixedOffsetZone.js +0 -94
- package/dist/node_modules/cron-parser/node_modules/luxon/src/zones/invalidZone.js +0 -53
- package/dist/node_modules/cron-parser/node_modules/luxon/src/zones/localZone.js +0 -63
- package/dist/node_modules/cron-parser/package.json +0 -1
- package/dist/node_modules/cron-parser/test/31_of_month.js +0 -17
- package/dist/node_modules/cron-parser/test/bug.js +0 -29
- package/dist/node_modules/cron-parser/test/crondate.js +0 -16
- package/dist/node_modules/cron-parser/test/crontab.example +0 -7
- package/dist/node_modules/cron-parser/test/empty_around_comma.js +0 -22
- package/dist/node_modules/cron-parser/test/expression.js +0 -1489
- package/dist/node_modules/cron-parser/test/field_compactor.js +0 -250
- package/dist/node_modules/cron-parser/test/field_stringify.js +0 -84
- package/dist/node_modules/cron-parser/test/fields.js +0 -32
- package/dist/node_modules/cron-parser/test/increment_on_first_iteration.js +0 -22
- package/dist/node_modules/cron-parser/test/index-ts3.test-d.ts +0 -133
- package/dist/node_modules/cron-parser/test/index.test-d.ts +0 -138
- package/dist/node_modules/cron-parser/test/leap_year.js +0 -17
- package/dist/node_modules/cron-parser/test/parser.js +0 -46
- package/dist/node_modules/cron-parser/test/parser_crondate_formats.js +0 -145
- package/dist/node_modules/cron-parser/test/parser_day_of_month.js +0 -169
- package/dist/node_modules/cron-parser/test/prev_date.js +0 -32
- package/dist/node_modules/cron-parser/test/stringify.js +0 -402
- package/dist/node_modules/cron-parser/test/timezone.js +0 -422
- package/dist/node_modules/cron-parser/types/common.d.ts +0 -131
- package/dist/node_modules/cron-parser/types/index.d.ts +0 -45
- package/dist/node_modules/cron-parser/types/ts3/index.d.ts +0 -28
- package/dist/node_modules/lru-cache/LICENSE +0 -15
- package/dist/node_modules/lru-cache/dist/cjs/index-cjs.d.ts +0 -7
- package/dist/node_modules/lru-cache/dist/cjs/index-cjs.js +0 -1
- package/dist/node_modules/lru-cache/dist/cjs/index.d.ts +0 -807
- package/dist/node_modules/lru-cache/dist/cjs/index.js +0 -1334
- package/dist/node_modules/lru-cache/dist/cjs/index.min.js +0 -2
- package/dist/node_modules/lru-cache/dist/cjs/package.json +0 -3
- package/dist/node_modules/lru-cache/dist/mjs/index.d.ts +0 -807
- package/dist/node_modules/lru-cache/dist/mjs/index.js +0 -1330
- package/dist/node_modules/lru-cache/dist/mjs/index.min.js +0 -2
- package/dist/node_modules/lru-cache/dist/mjs/package.json +0 -3
- package/dist/node_modules/lru-cache/package.json +0 -1
- package/dist/server/Plugin.d.ts +0 -84
- package/dist/server/Plugin.js +0 -503
- package/dist/server/Processor.d.ts +0 -115
- package/dist/server/Processor.js +0 -363
- package/dist/server/actions/executions.d.ts +0 -11
- package/dist/server/actions/executions.js +0 -96
- package/dist/server/actions/index.d.ts +0 -11
- package/dist/server/actions/index.js +0 -66
- package/dist/server/actions/nodes.d.ts +0 -12
- package/dist/server/actions/nodes.js +0 -217
- package/dist/server/actions/workflows.d.ts +0 -14
- package/dist/server/actions/workflows.js +0 -184
- package/dist/server/collections/executions.d.ts +0 -11
- package/dist/server/collections/executions.js +0 -66
- package/dist/server/collections/flow_nodes.d.ts +0 -11
- package/dist/server/collections/flow_nodes.js +0 -87
- package/dist/server/collections/jobs.d.ts +0 -11
- package/dist/server/collections/jobs.js +0 -66
- package/dist/server/collections/workflows.d.ts +0 -10
- package/dist/server/collections/workflows.js +0 -126
- package/dist/server/constants.d.ts +0 -29
- package/dist/server/constants.js +0 -58
- package/dist/server/functions/index.d.ts +0 -17
- package/dist/server/functions/index.js +0 -40
- package/dist/server/index.d.ts +0 -15
- package/dist/server/index.js +0 -60
- package/dist/server/instructions/CalculationInstruction.d.ts +0 -25
- package/dist/server/instructions/CalculationInstruction.js +0 -59
- package/dist/server/instructions/ConditionInstruction.d.ts +0 -36
- package/dist/server/instructions/ConditionInstruction.js +0 -167
- package/dist/server/instructions/CreateInstruction.d.ts +0 -18
- package/dist/server/instructions/CreateInstruction.js +0 -75
- package/dist/server/instructions/DestroyInstruction.d.ts +0 -18
- package/dist/server/instructions/DestroyInstruction.js +0 -59
- package/dist/server/instructions/EndInstruction.d.ts +0 -14
- package/dist/server/instructions/EndInstruction.js +0 -55
- package/dist/server/instructions/QueryInstruction.d.ts +0 -21
- package/dist/server/instructions/QueryInstruction.js +0 -82
- package/dist/server/instructions/UpdateInstruction.d.ts +0 -18
- package/dist/server/instructions/UpdateInstruction.js +0 -59
- package/dist/server/instructions/index.d.ts +0 -31
- package/dist/server/instructions/index.js +0 -42
- package/dist/server/migrations/20221129153547-calculation-variables.d.ts +0 -14
- package/dist/server/migrations/20221129153547-calculation-variables.js +0 -92
- package/dist/server/migrations/20230221032941-change-request-body-type.d.ts +0 -14
- package/dist/server/migrations/20230221032941-change-request-body-type.js +0 -102
- package/dist/server/migrations/20230221071831-calculation-expression.d.ts +0 -13
- package/dist/server/migrations/20230221071831-calculation-expression.js +0 -121
- package/dist/server/migrations/20230221121203-condition-calculation.d.ts +0 -13
- package/dist/server/migrations/20230221121203-condition-calculation.js +0 -106
- package/dist/server/migrations/20230221162902-jsonb-to-json.d.ts +0 -13
- package/dist/server/migrations/20230221162902-jsonb-to-json.js +0 -63
- package/dist/server/migrations/20230411034722-manual-multi-form.d.ts +0 -13
- package/dist/server/migrations/20230411034722-manual-multi-form.js +0 -283
- package/dist/server/migrations/20230612021134-manual-collection-block.d.ts +0 -13
- package/dist/server/migrations/20230612021134-manual-collection-block.js +0 -152
- package/dist/server/migrations/20230710115902-manual-action-values.d.ts +0 -13
- package/dist/server/migrations/20230710115902-manual-action-values.js +0 -101
- package/dist/server/migrations/20230809113132-workflow-options.d.ts +0 -13
- package/dist/server/migrations/20230809113132-workflow-options.js +0 -64
- package/dist/server/migrations/20231024172342-add-node-key.d.ts +0 -13
- package/dist/server/migrations/20231024172342-add-node-key.js +0 -90
- package/dist/server/migrations/20231122143143-split-to-plugins.d.ts +0 -13
- package/dist/server/migrations/20231122143143-split-to-plugins.js +0 -67
- package/dist/server/migrations/20240115220721-add-node-key-to-job.d.ts +0 -14
- package/dist/server/migrations/20240115220721-add-node-key-to-job.js +0 -63
- package/dist/server/migrations/20240613222612-fix-assign-field-config.d.ts +0 -13
- package/dist/server/migrations/20240613222612-fix-assign-field-config.js +0 -62
- package/dist/server/triggers/CollectionTrigger.d.ts +0 -22
- package/dist/server/triggers/CollectionTrigger.js +0 -184
- package/dist/server/triggers/ScheduleTrigger/DateFieldScheduleTrigger.d.ts +0 -39
- package/dist/server/triggers/ScheduleTrigger/DateFieldScheduleTrigger.js +0 -356
- package/dist/server/triggers/ScheduleTrigger/StaticScheduleTrigger.d.ts +0 -21
- package/dist/server/triggers/ScheduleTrigger/StaticScheduleTrigger.js +0 -152
- package/dist/server/triggers/ScheduleTrigger/index.d.ts +0 -18
- package/dist/server/triggers/ScheduleTrigger/index.js +0 -84
- package/dist/server/triggers/ScheduleTrigger/utils.d.ts +0 -13
- package/dist/server/triggers/ScheduleTrigger/utils.js +0 -44
- package/dist/server/triggers/index.d.ts +0 -21
- package/dist/server/triggers/index.js +0 -46
- package/dist/server/types/Execution.d.ts +0 -25
- package/dist/server/types/Execution.js +0 -34
- package/dist/server/types/FlowNode.d.ts +0 -24
- package/dist/server/types/FlowNode.js +0 -34
- package/dist/server/types/Job.d.ts +0 -22
- package/dist/server/types/Job.js +0 -34
- package/dist/server/types/Workflow.d.ts +0 -35
- package/dist/server/types/Workflow.js +0 -34
- package/dist/server/types/index.d.ts +0 -12
- package/dist/server/types/index.js +0 -24
- package/dist/server/utils.d.ts +0 -9
- package/dist/server/utils.js +0 -51
- package/dist/swagger/index.d.ts +0 -762
- package/dist/swagger/index.js +0 -807
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
var L=(o,t,e)=>{if(!t.has(o))throw TypeError("Cannot "+e)};var j=(o,t,e)=>(L(o,t,"read from private field"),e?e.call(o):t.get(o)),G=(o,t,e)=>{if(t.has(o))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(o):t.set(o,e)},C=(o,t,e,i)=>(L(o,t,"write to private field"),i?i.call(o,e):t.set(o,e),e);var v=typeof performance=="object"&&performance&&typeof performance.now=="function"?performance:Date,U=new Set,k=(o,t,e,i)=>{typeof process=="object"&&process&&typeof process.emitWarning=="function"?process.emitWarning(o,t,e,i):console.error(`[${e}] ${t}: ${o}`)},H=o=>!U.has(o),P=Symbol("type"),F=o=>o&&o===Math.floor(o)&&o>0&&isFinite(o),M=o=>F(o)?o<=Math.pow(2,8)?Uint8Array:o<=Math.pow(2,16)?Uint16Array:o<=Math.pow(2,32)?Uint32Array:o<=Number.MAX_SAFE_INTEGER?O:null:null,O=class extends Array{constructor(t){super(t),this.fill(0)}},E,T=class{heap;length;static create(t){let e=M(t);if(!e)return[];C(T,E,!0);let i=new T(t,e);return C(T,E,!1),i}constructor(t,e){if(!j(T,E))throw new TypeError("instantiate Stack using Stack.create(n)");this.heap=new e(t),this.length=0}push(t){this.heap[this.length++]=t}pop(){return this.heap[--this.length]}},D=T;E=new WeakMap,G(D,E,!1);var W=class{#d;#f;#_;#g;#W;ttl;ttlResolution;ttlAutopurge;updateAgeOnGet;updateAgeOnHas;allowStale;noDisposeOnSet;noUpdateTTL;maxEntrySize;sizeCalculation;noDeleteOnFetchRejection;noDeleteOnStaleGet;allowStaleOnFetchAbort;allowStaleOnFetchRejection;ignoreFetchAbort;#s;#p;#n;#i;#t;#l;#c;#o;#h;#w;#r;#F;#A;#S;#y;#T;#a;static unsafeExposeInternals(t){return{starts:t.#A,ttls:t.#S,sizes:t.#F,keyMap:t.#n,keyList:t.#i,valList:t.#t,next:t.#l,prev:t.#c,get head(){return t.#o},get tail(){return t.#h},free:t.#w,isBackgroundFetch:e=>t.#e(e),backgroundFetch:(e,i,s,n)=>t.#R(e,i,s,n),moveToTail:e=>t.#v(e),indexes:e=>t.#m(e),rindexes:e=>t.#b(e),isStale:e=>t.#u(e)}}get max(){return this.#d}get maxSize(){return this.#f}get calculatedSize(){return this.#p}get size(){return this.#s}get fetchMethod(){return this.#W}get dispose(){return this.#_}get disposeAfter(){return this.#g}constructor(t){let{max:e=0,ttl:i,ttlResolution:s=1,ttlAutopurge:n,updateAgeOnGet:h,updateAgeOnHas:f,allowStale:r,dispose:p,disposeAfter:y,noDisposeOnSet:a,noUpdateTTL:u,maxSize:g=0,maxEntrySize:A=0,sizeCalculation:c,fetchMethod:w,noDeleteOnFetchRejection:l,noDeleteOnStaleGet:S,allowStaleOnFetchRejection:m,allowStaleOnFetchAbort:d,ignoreFetchAbort:_}=t;if(e!==0&&!F(e))throw new TypeError("max option must be a nonnegative integer");let z=e?M(e):Array;if(!z)throw new Error("invalid max value: "+e);if(this.#d=e,this.#f=g,this.maxEntrySize=A||this.#f,this.sizeCalculation=c,this.sizeCalculation){if(!this.#f&&!this.maxEntrySize)throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");if(typeof this.sizeCalculation!="function")throw new TypeError("sizeCalculation set to non-function")}if(w!==void 0&&typeof w!="function")throw new TypeError("fetchMethod must be a function if specified");if(this.#W=w,this.#T=!!w,this.#n=new Map,this.#i=new Array(e).fill(void 0),this.#t=new Array(e).fill(void 0),this.#l=new z(e),this.#c=new z(e),this.#o=0,this.#h=0,this.#w=D.create(e),this.#s=0,this.#p=0,typeof p=="function"&&(this.#_=p),typeof y=="function"?(this.#g=y,this.#r=[]):(this.#g=void 0,this.#r=void 0),this.#y=!!this.#_,this.#a=!!this.#g,this.noDisposeOnSet=!!a,this.noUpdateTTL=!!u,this.noDeleteOnFetchRejection=!!l,this.allowStaleOnFetchRejection=!!m,this.allowStaleOnFetchAbort=!!d,this.ignoreFetchAbort=!!_,this.maxEntrySize!==0){if(this.#f!==0&&!F(this.#f))throw new TypeError("maxSize must be a positive integer if specified");if(!F(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");this.#M()}if(this.allowStale=!!r,this.noDeleteOnStaleGet=!!S,this.updateAgeOnGet=!!h,this.updateAgeOnHas=!!f,this.ttlResolution=F(s)||s===0?s:1,this.ttlAutopurge=!!n,this.ttl=i||0,this.ttl){if(!F(this.ttl))throw new TypeError("ttl must be a positive integer if specified");this.#x()}if(this.#d===0&&this.ttl===0&&this.#f===0)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!this.#d&&!this.#f){let b="LRU_CACHE_UNBOUNDED";H(b)&&(U.add(b),k("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning",b,W))}}getRemainingTTL(t){return this.#n.has(t)?1/0:0}#x(){let t=new O(this.#d),e=new O(this.#d);this.#S=t,this.#A=e,this.#L=(n,h,f=v.now())=>{if(e[n]=h!==0?f:0,t[n]=h,h!==0&&this.ttlAutopurge){let r=setTimeout(()=>{this.#u(n)&&this.delete(this.#i[n])},h+1);r.unref&&r.unref()}},this.#O=n=>{e[n]=t[n]!==0?v.now():0},this.#z=(n,h)=>{if(t[h]){let f=t[h],r=e[h];n.ttl=f,n.start=r,n.now=i||s(),n.remainingTTL=n.now+f-r}};let i=0,s=()=>{let n=v.now();if(this.ttlResolution>0){i=n;let h=setTimeout(()=>i=0,this.ttlResolution);h.unref&&h.unref()}return n};this.getRemainingTTL=n=>{let h=this.#n.get(n);return h===void 0?0:t[h]===0||e[h]===0?1/0:e[h]+t[h]-(i||s())},this.#u=n=>t[n]!==0&&e[n]!==0&&(i||s())-e[n]>t[n]}#O=()=>{};#z=()=>{};#L=()=>{};#u=()=>!1;#M(){let t=new O(this.#d);this.#p=0,this.#F=t,this.#E=e=>{this.#p-=t[e],t[e]=0},this.#j=(e,i,s,n)=>{if(this.#e(i))return 0;if(!F(s))if(n){if(typeof n!="function")throw new TypeError("sizeCalculation must be a function");if(s=n(i,e),!F(s))throw new TypeError("sizeCalculation return invalid (expect positive integer)")}else throw new TypeError("invalid size value (must be positive integer). When maxSize or maxEntrySize is used, sizeCalculation or size must be set.");return s},this.#D=(e,i,s)=>{if(t[e]=i,this.#f){let n=this.#f-t[e];for(;this.#p>n;)this.#C(!0)}this.#p+=t[e],s&&(s.entrySize=i,s.totalCalculatedSize=this.#p)}}#E=t=>{};#D=(t,e,i)=>{};#j=(t,e,i,s)=>{if(i||s)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache");return 0};*#m({allowStale:t=this.allowStale}={}){if(this.#s)for(let e=this.#h;!(!this.#G(e)||((t||!this.#u(e))&&(yield e),e===this.#o));)e=this.#c[e]}*#b({allowStale:t=this.allowStale}={}){if(this.#s)for(let e=this.#o;!(!this.#G(e)||((t||!this.#u(e))&&(yield e),e===this.#h));)e=this.#l[e]}#G(t){return t!==void 0&&this.#n.get(this.#i[t])===t}*entries(){for(let t of this.#m())this.#t[t]!==void 0&&this.#i[t]!==void 0&&!this.#e(this.#t[t])&&(yield[this.#i[t],this.#t[t]])}*rentries(){for(let t of this.#b())this.#t[t]!==void 0&&this.#i[t]!==void 0&&!this.#e(this.#t[t])&&(yield[this.#i[t],this.#t[t]])}*keys(){for(let t of this.#m()){let e=this.#i[t];e!==void 0&&!this.#e(this.#t[t])&&(yield e)}}*rkeys(){for(let t of this.#b()){let e=this.#i[t];e!==void 0&&!this.#e(this.#t[t])&&(yield e)}}*values(){for(let t of this.#m())this.#t[t]!==void 0&&!this.#e(this.#t[t])&&(yield this.#t[t])}*rvalues(){for(let t of this.#b())this.#t[t]!==void 0&&!this.#e(this.#t[t])&&(yield this.#t[t])}[Symbol.iterator](){return this.entries()}find(t,e={}){for(let i of this.#m()){let s=this.#t[i],n=this.#e(s)?s.__staleWhileFetching:s;if(n!==void 0&&t(n,this.#i[i],this))return this.get(this.#i[i],e)}}forEach(t,e=this){for(let i of this.#m()){let s=this.#t[i],n=this.#e(s)?s.__staleWhileFetching:s;n!==void 0&&t.call(e,n,this.#i[i],this)}}rforEach(t,e=this){for(let i of this.#b()){let s=this.#t[i],n=this.#e(s)?s.__staleWhileFetching:s;n!==void 0&&t.call(e,n,this.#i[i],this)}}purgeStale(){let t=!1;for(let e of this.#b({allowStale:!0}))this.#u(e)&&(this.delete(this.#i[e]),t=!0);return t}dump(){let t=[];for(let e of this.#m({allowStale:!0})){let i=this.#i[e],s=this.#t[e],n=this.#e(s)?s.__staleWhileFetching:s;if(n===void 0||i===void 0)continue;let h={value:n};if(this.#S&&this.#A){h.ttl=this.#S[e];let f=v.now()-this.#A[e];h.start=Math.floor(Date.now()-f)}this.#F&&(h.size=this.#F[e]),t.unshift([i,h])}return t}load(t){this.clear();for(let[e,i]of t){if(i.start){let s=Date.now()-i.start;i.start=v.now()-s}this.set(e,i.value,i)}}set(t,e,i={}){let{ttl:s=this.ttl,start:n,noDisposeOnSet:h=this.noDisposeOnSet,sizeCalculation:f=this.sizeCalculation,status:r}=i,{noUpdateTTL:p=this.noUpdateTTL}=i,y=this.#j(t,e,i.size||0,f);if(this.maxEntrySize&&y>this.maxEntrySize)return r&&(r.set="miss",r.maxEntrySizeExceeded=!0),this.delete(t),this;let a=this.#s===0?void 0:this.#n.get(t);if(a===void 0)a=this.#s===0?this.#h:this.#w.length!==0?this.#w.pop():this.#s===this.#d?this.#C(!1):this.#s,this.#i[a]=t,this.#t[a]=e,this.#n.set(t,a),this.#l[this.#h]=a,this.#c[a]=this.#h,this.#h=a,this.#s++,this.#D(a,y,r),r&&(r.set="add"),p=!1;else{this.#v(a);let u=this.#t[a];if(e!==u){if(this.#T&&this.#e(u)?u.__abortController.abort(new Error("replaced")):h||(this.#y&&this.#_?.(u,t,"set"),this.#a&&this.#r?.push([u,t,"set"])),this.#E(a),this.#D(a,y,r),this.#t[a]=e,r){r.set="replace";let g=u&&this.#e(u)?u.__staleWhileFetching:u;g!==void 0&&(r.oldValue=g)}}else r&&(r.set="update")}if(s!==0&&!this.#S&&this.#x(),this.#S&&(p||this.#L(a,s,n),r&&this.#z(r,a)),!h&&this.#a&&this.#r){let u=this.#r,g;for(;g=u?.shift();)this.#g?.(...g)}return this}pop(){try{for(;this.#s;){let t=this.#t[this.#o];if(this.#C(!0),this.#e(t)){if(t.__staleWhileFetching)return t.__staleWhileFetching}else if(t!==void 0)return t}}finally{if(this.#a&&this.#r){let t=this.#r,e;for(;e=t?.shift();)this.#g?.(...e)}}}#C(t){let e=this.#o,i=this.#i[e],s=this.#t[e];return this.#T&&this.#e(s)?s.__abortController.abort(new Error("evicted")):(this.#y||this.#a)&&(this.#y&&this.#_?.(s,i,"evict"),this.#a&&this.#r?.push([s,i,"evict"])),this.#E(e),t&&(this.#i[e]=void 0,this.#t[e]=void 0,this.#w.push(e)),this.#s===1?(this.#o=this.#h=0,this.#w.length=0):this.#o=this.#l[e],this.#n.delete(i),this.#s--,e}has(t,e={}){let{updateAgeOnHas:i=this.updateAgeOnHas,status:s}=e,n=this.#n.get(t);if(n!==void 0){let h=this.#t[n];if(this.#e(h)&&h.__staleWhileFetching===void 0)return!1;if(this.#u(n))s&&(s.has="stale",this.#z(s,n));else return i&&this.#O(n),s&&(s.has="hit",this.#z(s,n)),!0}else s&&(s.has="miss");return!1}peek(t,e={}){let{allowStale:i=this.allowStale}=e,s=this.#n.get(t);if(s!==void 0&&(i||!this.#u(s))){let n=this.#t[s];return this.#e(n)?n.__staleWhileFetching:n}}#R(t,e,i,s){let n=e===void 0?void 0:this.#t[e];if(this.#e(n))return n;let h=new AbortController,{signal:f}=i;f?.addEventListener("abort",()=>h.abort(f.reason),{signal:h.signal});let r={signal:h.signal,options:i,context:s},p=(c,w=!1)=>{let{aborted:l}=h.signal,S=i.ignoreFetchAbort&&c!==void 0;if(i.status&&(l&&!w?(i.status.fetchAborted=!0,i.status.fetchError=h.signal.reason,S&&(i.status.fetchAbortIgnored=!0)):i.status.fetchResolved=!0),l&&!S&&!w)return a(h.signal.reason);let m=g;return this.#t[e]===g&&(c===void 0?m.__staleWhileFetching?this.#t[e]=m.__staleWhileFetching:this.delete(t):(i.status&&(i.status.fetchUpdated=!0),this.set(t,c,r.options))),c},y=c=>(i.status&&(i.status.fetchRejected=!0,i.status.fetchError=c),a(c)),a=c=>{let{aborted:w}=h.signal,l=w&&i.allowStaleOnFetchAbort,S=l||i.allowStaleOnFetchRejection,m=S||i.noDeleteOnFetchRejection,d=g;if(this.#t[e]===g&&(!m||d.__staleWhileFetching===void 0?this.delete(t):l||(this.#t[e]=d.__staleWhileFetching)),S)return i.status&&d.__staleWhileFetching!==void 0&&(i.status.returnedStale=!0),d.__staleWhileFetching;if(d.__returned===d)throw c},u=(c,w)=>{let l=this.#W?.(t,n,r);l&&l instanceof Promise&&l.then(S=>c(S),w),h.signal.addEventListener("abort",()=>{(!i.ignoreFetchAbort||i.allowStaleOnFetchAbort)&&(c(),i.allowStaleOnFetchAbort&&(c=S=>p(S,!0)))})};i.status&&(i.status.fetchDispatched=!0);let g=new Promise(u).then(p,y),A=Object.assign(g,{__abortController:h,__staleWhileFetching:n,__returned:void 0});return e===void 0?(this.set(t,A,{...r.options,status:void 0}),e=this.#n.get(t)):this.#t[e]=A,A}#e(t){if(!this.#T)return!1;let e=t;return!!e&&e instanceof Promise&&e.hasOwnProperty("__staleWhileFetching")&&e.__abortController instanceof AbortController}async fetch(t,e={}){let{allowStale:i=this.allowStale,updateAgeOnGet:s=this.updateAgeOnGet,noDeleteOnStaleGet:n=this.noDeleteOnStaleGet,ttl:h=this.ttl,noDisposeOnSet:f=this.noDisposeOnSet,size:r=0,sizeCalculation:p=this.sizeCalculation,noUpdateTTL:y=this.noUpdateTTL,noDeleteOnFetchRejection:a=this.noDeleteOnFetchRejection,allowStaleOnFetchRejection:u=this.allowStaleOnFetchRejection,ignoreFetchAbort:g=this.ignoreFetchAbort,allowStaleOnFetchAbort:A=this.allowStaleOnFetchAbort,context:c,forceRefresh:w=!1,status:l,signal:S}=e;if(!this.#T)return l&&(l.fetch="get"),this.get(t,{allowStale:i,updateAgeOnGet:s,noDeleteOnStaleGet:n,status:l});let m={allowStale:i,updateAgeOnGet:s,noDeleteOnStaleGet:n,ttl:h,noDisposeOnSet:f,size:r,sizeCalculation:p,noUpdateTTL:y,noDeleteOnFetchRejection:a,allowStaleOnFetchRejection:u,allowStaleOnFetchAbort:A,ignoreFetchAbort:g,status:l,signal:S},d=this.#n.get(t);if(d===void 0){l&&(l.fetch="miss");let _=this.#R(t,d,m,c);return _.__returned=_}else{let _=this.#t[d];if(this.#e(_)){let x=i&&_.__staleWhileFetching!==void 0;return l&&(l.fetch="inflight",x&&(l.returnedStale=!0)),x?_.__staleWhileFetching:_.__returned=_}let z=this.#u(d);if(!w&&!z)return l&&(l.fetch="hit"),this.#v(d),s&&this.#O(d),l&&this.#z(l,d),_;let b=this.#R(t,d,m,c),R=b.__staleWhileFetching!==void 0&&i;return l&&(l.fetch=z?"stale":"refresh",R&&z&&(l.returnedStale=!0)),R?b.__staleWhileFetching:b.__returned=b}}get(t,e={}){let{allowStale:i=this.allowStale,updateAgeOnGet:s=this.updateAgeOnGet,noDeleteOnStaleGet:n=this.noDeleteOnStaleGet,status:h}=e,f=this.#n.get(t);if(f!==void 0){let r=this.#t[f],p=this.#e(r);return h&&this.#z(h,f),this.#u(f)?(h&&(h.get="stale"),p?(h&&i&&r.__staleWhileFetching!==void 0&&(h.returnedStale=!0),i?r.__staleWhileFetching:void 0):(n||this.delete(t),h&&i&&(h.returnedStale=!0),i?r:void 0)):(h&&(h.get="hit"),p?r.__staleWhileFetching:(this.#v(f),s&&this.#O(f),r))}else h&&(h.get="miss")}#U(t,e){this.#c[e]=t,this.#l[t]=e}#v(t){t!==this.#h&&(t===this.#o?this.#o=this.#l[t]:this.#U(this.#c[t],this.#l[t]),this.#U(this.#h,t),this.#h=t)}delete(t){let e=!1;if(this.#s!==0){let i=this.#n.get(t);if(i!==void 0)if(e=!0,this.#s===1)this.clear();else{this.#E(i);let s=this.#t[i];this.#e(s)?s.__abortController.abort(new Error("deleted")):(this.#y||this.#a)&&(this.#y&&this.#_?.(s,t,"delete"),this.#a&&this.#r?.push([s,t,"delete"])),this.#n.delete(t),this.#i[i]=void 0,this.#t[i]=void 0,i===this.#h?this.#h=this.#c[i]:i===this.#o?this.#o=this.#l[i]:(this.#l[this.#c[i]]=this.#l[i],this.#c[this.#l[i]]=this.#c[i]),this.#s--,this.#w.push(i)}}if(this.#a&&this.#r?.length){let i=this.#r,s;for(;s=i?.shift();)this.#g?.(...s)}return e}clear(){for(let t of this.#b({allowStale:!0})){let e=this.#t[t];if(this.#e(e))e.__abortController.abort(new Error("deleted"));else{let i=this.#i[t];this.#y&&this.#_?.(e,i,"delete"),this.#a&&this.#r?.push([e,i,"delete"])}}if(this.#n.clear(),this.#t.fill(void 0),this.#i.fill(void 0),this.#S&&this.#A&&(this.#S.fill(0),this.#A.fill(0)),this.#F&&this.#F.fill(0),this.#o=0,this.#h=0,this.#w.length=0,this.#p=0,this.#s=0,this.#a&&this.#r){let t=this.#r,e;for(;e=t?.shift();)this.#g?.(...e)}}},V=W;export{W as LRUCache,V as default};
|
|
2
|
-
//# sourceMappingURL=index.min.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"name":"lru-cache","description":"A cache object that deletes the least-recently-used items.","version":"8.0.5","author":"Isaac Z. Schlueter <i@izs.me>","keywords":["mru","lru","cache"],"sideEffects":false,"scripts":{"build":"npm run prepare","preprepare":"rm -rf dist","prepare":"tsc -p tsconfig.json && tsc -p tsconfig-esm.json","postprepare":"bash fixup.sh","pretest":"npm run prepare","presnap":"npm run prepare","test":"c8 tap","snap":"c8 tap","preversion":"npm test","postversion":"npm publish","prepublishOnly":"git push origin --follow-tags","format":"prettier --write .","typedoc":"typedoc --tsconfig tsconfig-esm.json ./src/*.ts","benchmark-results-typedoc":"bash scripts/benchmark-results-typedoc.sh","prebenchmark":"npm run prepare","benchmark":"make -C benchmark","preprofile":"npm run prepare","profile":"make -C benchmark profile"},"main":"./dist/cjs/index-cjs.js","module":"./dist/mjs/index.js","types":"./dist/mjs/index.d.ts","exports":{"./min":{"import":{"types":"./dist/mjs/index.d.ts","default":"./dist/mjs/index.min.js"},"require":{"types":"./dist/cjs/index.d.ts","default":"./dist/cjs/index.min.js"}},".":{"import":{"types":"./dist/mjs/index.d.ts","default":"./dist/mjs/index.js"},"require":{"types":"./dist/cjs/index.d.ts","default":"./dist/cjs/index-cjs.js"}}},"repository":"git://github.com/isaacs/node-lru-cache.git","devDependencies":{"@size-limit/preset-small-lib":"^7.0.8","@types/node":"^17.0.31","@types/tap":"^15.0.6","benchmark":"^2.1.4","c8":"^7.11.2","clock-mock":"^1.0.6","esbuild":"^0.17.11","eslint-config-prettier":"^8.5.0","marked":"^4.2.12","mkdirp":"^2.1.5","prettier":"^2.6.2","size-limit":"^7.0.8","tap":"^16.3.4","ts-node":"^10.7.0","tslib":"^2.4.0","typedoc":"^0.23.24","typescript":"^4.6.4"},"license":"ISC","files":["dist"],"engines":{"node":">=16.14"},"prettier":{"semi":false,"printWidth":70,"tabWidth":2,"useTabs":false,"singleQuote":true,"jsxSingleQuote":false,"bracketSameLine":true,"arrowParens":"avoid","endOfLine":"lf"},"tap":{"coverage":false,"node-arg":["--expose-gc","--no-warnings","--loader","ts-node/esm"],"ts":false},"size-limit":[{"path":"./dist/mjs/index.js"}],"_lastModified":"2024-07-05T09:20:20.867Z"}
|
package/dist/server/Plugin.d.ts
DELETED
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This file is part of the NocoBase (R) project.
|
|
3
|
-
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
|
|
4
|
-
* Authors: NocoBase Team.
|
|
5
|
-
*
|
|
6
|
-
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
|
-
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
|
-
*/
|
|
9
|
-
import { Transactionable } from '@nocobase/database';
|
|
10
|
-
import { Plugin } from '@nocobase/server';
|
|
11
|
-
import { Registry } from '@nocobase/utils';
|
|
12
|
-
import { Logger } from '@nocobase/logger';
|
|
13
|
-
import Processor from './Processor';
|
|
14
|
-
import { CustomFunction } from './functions';
|
|
15
|
-
import Trigger from './triggers';
|
|
16
|
-
import { InstructionInterface } from './instructions';
|
|
17
|
-
import type { ExecutionModel, WorkflowModel } from './types';
|
|
18
|
-
type ID = number | string;
|
|
19
|
-
type EventOptions = {
|
|
20
|
-
eventKey?: string;
|
|
21
|
-
context?: any;
|
|
22
|
-
deferred?: boolean;
|
|
23
|
-
[key: string]: any;
|
|
24
|
-
} & Transactionable;
|
|
25
|
-
export default class PluginWorkflowServer extends Plugin {
|
|
26
|
-
instructions: Registry<InstructionInterface>;
|
|
27
|
-
triggers: Registry<Trigger>;
|
|
28
|
-
functions: Registry<CustomFunction>;
|
|
29
|
-
enabledCache: Map<number, WorkflowModel>;
|
|
30
|
-
private ready;
|
|
31
|
-
private executing;
|
|
32
|
-
private pending;
|
|
33
|
-
private events;
|
|
34
|
-
private eventsCount;
|
|
35
|
-
private loggerCache;
|
|
36
|
-
private meter;
|
|
37
|
-
private checker;
|
|
38
|
-
private onBeforeSave;
|
|
39
|
-
/**
|
|
40
|
-
* @experimental
|
|
41
|
-
*/
|
|
42
|
-
getLogger(workflowId: ID): Logger;
|
|
43
|
-
/**
|
|
44
|
-
* @experimental
|
|
45
|
-
* @param {WorkflowModel} workflow
|
|
46
|
-
* @returns {boolean}
|
|
47
|
-
*/
|
|
48
|
-
isWorkflowSync(workflow: WorkflowModel): boolean;
|
|
49
|
-
registerTrigger<T extends Trigger>(type: string, trigger: T | {
|
|
50
|
-
new (p: Plugin): T;
|
|
51
|
-
}): void;
|
|
52
|
-
registerInstruction(type: string, instruction: InstructionInterface | {
|
|
53
|
-
new (p: Plugin): InstructionInterface;
|
|
54
|
-
}): void;
|
|
55
|
-
private initTriggers;
|
|
56
|
-
private initInstructions;
|
|
57
|
-
/**
|
|
58
|
-
* @internal
|
|
59
|
-
*/
|
|
60
|
-
load(): Promise<void>;
|
|
61
|
-
private toggle;
|
|
62
|
-
trigger(workflow: WorkflowModel, context: object, options?: EventOptions): void | Promise<Processor | null>;
|
|
63
|
-
private triggerSync;
|
|
64
|
-
resume(job: any): Promise<void>;
|
|
65
|
-
/**
|
|
66
|
-
* Start a deferred execution
|
|
67
|
-
* @experimental
|
|
68
|
-
*/
|
|
69
|
-
start(execution: ExecutionModel): void;
|
|
70
|
-
createProcessor(execution: ExecutionModel, options?: {}): Processor;
|
|
71
|
-
private createExecution;
|
|
72
|
-
private prepare;
|
|
73
|
-
private dispatch;
|
|
74
|
-
private process;
|
|
75
|
-
/**
|
|
76
|
-
* @experimental
|
|
77
|
-
* @param {string} dataSourceName
|
|
78
|
-
* @param {Transaction} transaction
|
|
79
|
-
* @param {boolean} create
|
|
80
|
-
* @returns {Trasaction}
|
|
81
|
-
*/
|
|
82
|
-
useDataSourceTransaction(dataSourceName: string, transaction: any, create?: boolean): any;
|
|
83
|
-
}
|
|
84
|
-
export {};
|
package/dist/server/Plugin.js
DELETED
|
@@ -1,503 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This file is part of the NocoBase (R) project.
|
|
3
|
-
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
|
|
4
|
-
* Authors: NocoBase Team.
|
|
5
|
-
*
|
|
6
|
-
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
|
-
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
var __create = Object.create;
|
|
11
|
-
var __defProp = Object.defineProperty;
|
|
12
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
13
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
14
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
15
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
16
|
-
var __export = (target, all) => {
|
|
17
|
-
for (var name in all)
|
|
18
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
19
|
-
};
|
|
20
|
-
var __copyProps = (to, from, except, desc) => {
|
|
21
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
22
|
-
for (let key of __getOwnPropNames(from))
|
|
23
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
24
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
25
|
-
}
|
|
26
|
-
return to;
|
|
27
|
-
};
|
|
28
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
29
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
30
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
31
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
32
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
33
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
34
|
-
mod
|
|
35
|
-
));
|
|
36
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
37
|
-
var Plugin_exports = {};
|
|
38
|
-
__export(Plugin_exports, {
|
|
39
|
-
default: () => PluginWorkflowServer
|
|
40
|
-
});
|
|
41
|
-
module.exports = __toCommonJS(Plugin_exports);
|
|
42
|
-
var import_path = __toESM(require("path"));
|
|
43
|
-
var import_crypto = require("crypto");
|
|
44
|
-
var import_lru_cache = __toESM(require("lru-cache"));
|
|
45
|
-
var import_database = require("@nocobase/database");
|
|
46
|
-
var import_server = require("@nocobase/server");
|
|
47
|
-
var import_utils = require("@nocobase/utils");
|
|
48
|
-
var import_Processor = __toESM(require("./Processor"));
|
|
49
|
-
var import_actions = __toESM(require("./actions"));
|
|
50
|
-
var import_constants = require("./constants");
|
|
51
|
-
var import_functions = __toESM(require("./functions"));
|
|
52
|
-
var import_CollectionTrigger = __toESM(require("./triggers/CollectionTrigger"));
|
|
53
|
-
var import_ScheduleTrigger = __toESM(require("./triggers/ScheduleTrigger"));
|
|
54
|
-
var import_CalculationInstruction = __toESM(require("./instructions/CalculationInstruction"));
|
|
55
|
-
var import_ConditionInstruction = __toESM(require("./instructions/ConditionInstruction"));
|
|
56
|
-
var import_EndInstruction = __toESM(require("./instructions/EndInstruction"));
|
|
57
|
-
var import_CreateInstruction = __toESM(require("./instructions/CreateInstruction"));
|
|
58
|
-
var import_DestroyInstruction = __toESM(require("./instructions/DestroyInstruction"));
|
|
59
|
-
var import_QueryInstruction = __toESM(require("./instructions/QueryInstruction"));
|
|
60
|
-
var import_UpdateInstruction = __toESM(require("./instructions/UpdateInstruction"));
|
|
61
|
-
class PluginWorkflowServer extends import_server.Plugin {
|
|
62
|
-
instructions = new import_utils.Registry();
|
|
63
|
-
triggers = new import_utils.Registry();
|
|
64
|
-
functions = new import_utils.Registry();
|
|
65
|
-
enabledCache = /* @__PURE__ */ new Map();
|
|
66
|
-
ready = false;
|
|
67
|
-
executing = null;
|
|
68
|
-
pending = [];
|
|
69
|
-
events = [];
|
|
70
|
-
eventsCount = 0;
|
|
71
|
-
loggerCache;
|
|
72
|
-
meter = null;
|
|
73
|
-
checker = null;
|
|
74
|
-
onBeforeSave = async (instance, options) => {
|
|
75
|
-
const Model = instance.constructor;
|
|
76
|
-
if (instance.enabled) {
|
|
77
|
-
instance.set("current", true);
|
|
78
|
-
} else if (!instance.current) {
|
|
79
|
-
const count = await Model.count({
|
|
80
|
-
where: {
|
|
81
|
-
key: instance.key
|
|
82
|
-
},
|
|
83
|
-
transaction: options.transaction
|
|
84
|
-
});
|
|
85
|
-
if (!count) {
|
|
86
|
-
instance.set("current", true);
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
if (!instance.changed("enabled") || !instance.enabled) {
|
|
90
|
-
return;
|
|
91
|
-
}
|
|
92
|
-
const previous = await Model.findOne({
|
|
93
|
-
where: {
|
|
94
|
-
key: instance.key,
|
|
95
|
-
current: true,
|
|
96
|
-
id: {
|
|
97
|
-
[import_database.Op.ne]: instance.id
|
|
98
|
-
}
|
|
99
|
-
},
|
|
100
|
-
transaction: options.transaction
|
|
101
|
-
});
|
|
102
|
-
if (previous) {
|
|
103
|
-
await previous.update(
|
|
104
|
-
{ enabled: false, current: null },
|
|
105
|
-
{
|
|
106
|
-
transaction: options.transaction,
|
|
107
|
-
hooks: false
|
|
108
|
-
}
|
|
109
|
-
);
|
|
110
|
-
this.toggle(previous, false);
|
|
111
|
-
}
|
|
112
|
-
};
|
|
113
|
-
/**
|
|
114
|
-
* @experimental
|
|
115
|
-
*/
|
|
116
|
-
getLogger(workflowId) {
|
|
117
|
-
const now = /* @__PURE__ */ new Date();
|
|
118
|
-
const date = `${now.getFullYear()}-${`0${now.getMonth() + 1}`.slice(-2)}-${`0${now.getDate()}`.slice(-2)}`;
|
|
119
|
-
const key = `${date}-${workflowId}}`;
|
|
120
|
-
if (this.loggerCache.has(key)) {
|
|
121
|
-
return this.loggerCache.get(key);
|
|
122
|
-
}
|
|
123
|
-
const logger = this.createLogger({
|
|
124
|
-
dirname: import_path.default.join("workflows", String(workflowId)),
|
|
125
|
-
filename: "%DATE%.log"
|
|
126
|
-
});
|
|
127
|
-
this.loggerCache.set(key, logger);
|
|
128
|
-
return logger;
|
|
129
|
-
}
|
|
130
|
-
/**
|
|
131
|
-
* @experimental
|
|
132
|
-
* @param {WorkflowModel} workflow
|
|
133
|
-
* @returns {boolean}
|
|
134
|
-
*/
|
|
135
|
-
isWorkflowSync(workflow) {
|
|
136
|
-
const trigger = this.triggers.get(workflow.type);
|
|
137
|
-
if (!trigger) {
|
|
138
|
-
throw new Error(`invalid trigger type ${workflow.type} of workflow ${workflow.id}`);
|
|
139
|
-
}
|
|
140
|
-
return trigger.sync ?? workflow.sync;
|
|
141
|
-
}
|
|
142
|
-
registerTrigger(type, trigger) {
|
|
143
|
-
if (typeof trigger === "function") {
|
|
144
|
-
this.triggers.register(type, new trigger(this));
|
|
145
|
-
} else if (trigger) {
|
|
146
|
-
this.triggers.register(type, trigger);
|
|
147
|
-
} else {
|
|
148
|
-
throw new Error("invalid trigger type to register");
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
registerInstruction(type, instruction) {
|
|
152
|
-
if (typeof instruction === "function") {
|
|
153
|
-
this.instructions.register(type, new instruction(this));
|
|
154
|
-
} else if (instruction) {
|
|
155
|
-
this.instructions.register(type, instruction);
|
|
156
|
-
} else {
|
|
157
|
-
throw new Error("invalid instruction type to register");
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
initTriggers(more = {}) {
|
|
161
|
-
this.registerTrigger("collection", import_CollectionTrigger.default);
|
|
162
|
-
this.registerTrigger("schedule", import_ScheduleTrigger.default);
|
|
163
|
-
for (const [name, trigger] of Object.entries(more)) {
|
|
164
|
-
this.registerTrigger(name, trigger);
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
initInstructions(more = {}) {
|
|
168
|
-
this.registerInstruction("calculation", import_CalculationInstruction.default);
|
|
169
|
-
this.registerInstruction("condition", import_ConditionInstruction.default);
|
|
170
|
-
this.registerInstruction("end", import_EndInstruction.default);
|
|
171
|
-
this.registerInstruction("create", import_CreateInstruction.default);
|
|
172
|
-
this.registerInstruction("destroy", import_DestroyInstruction.default);
|
|
173
|
-
this.registerInstruction("query", import_QueryInstruction.default);
|
|
174
|
-
this.registerInstruction("update", import_UpdateInstruction.default);
|
|
175
|
-
for (const [name, instruction] of Object.entries({ ...more })) {
|
|
176
|
-
this.registerInstruction(name, instruction);
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
/**
|
|
180
|
-
* @internal
|
|
181
|
-
*/
|
|
182
|
-
async load() {
|
|
183
|
-
const { db, options } = this;
|
|
184
|
-
(0, import_actions.default)(this);
|
|
185
|
-
this.initTriggers(options.triggers);
|
|
186
|
-
this.initInstructions(options.instructions);
|
|
187
|
-
(0, import_functions.default)(this, options.functions);
|
|
188
|
-
this.loggerCache = new import_lru_cache.default({
|
|
189
|
-
max: 20,
|
|
190
|
-
updateAgeOnGet: true,
|
|
191
|
-
dispose(logger) {
|
|
192
|
-
logger.end();
|
|
193
|
-
}
|
|
194
|
-
});
|
|
195
|
-
this.meter = this.app.telemetry.metric.getMeter();
|
|
196
|
-
const counter = this.meter.createObservableGauge("workflow.events.counter");
|
|
197
|
-
counter.addCallback((result) => {
|
|
198
|
-
result.observe(this.eventsCount);
|
|
199
|
-
});
|
|
200
|
-
this.app.acl.registerSnippet({
|
|
201
|
-
name: `pm.${this.name}.workflows`,
|
|
202
|
-
actions: [
|
|
203
|
-
"workflows:*",
|
|
204
|
-
"workflows.nodes:*",
|
|
205
|
-
"executions:list",
|
|
206
|
-
"executions:get",
|
|
207
|
-
"executions:cancel",
|
|
208
|
-
"flow_nodes:update",
|
|
209
|
-
"flow_nodes:destroy"
|
|
210
|
-
]
|
|
211
|
-
});
|
|
212
|
-
this.app.acl.registerSnippet({
|
|
213
|
-
name: "ui.workflows",
|
|
214
|
-
actions: ["workflows:list"]
|
|
215
|
-
});
|
|
216
|
-
this.app.acl.allow("*", ["trigger"], "loggedIn");
|
|
217
|
-
this.db.addMigrations({
|
|
218
|
-
namespace: this.name,
|
|
219
|
-
directory: import_path.default.resolve(__dirname, "migrations"),
|
|
220
|
-
context: {
|
|
221
|
-
plugin: this
|
|
222
|
-
}
|
|
223
|
-
});
|
|
224
|
-
db.on("workflows.beforeSave", this.onBeforeSave);
|
|
225
|
-
db.on("workflows.afterSave", (model) => this.toggle(model));
|
|
226
|
-
db.on("workflows.afterDestroy", (model) => this.toggle(model, false));
|
|
227
|
-
this.app.on("afterStart", async () => {
|
|
228
|
-
this.app.setMaintainingMessage("check for not started executions");
|
|
229
|
-
this.ready = true;
|
|
230
|
-
const collection = db.getCollection("workflows");
|
|
231
|
-
const workflows = await collection.repository.find({
|
|
232
|
-
filter: { enabled: true }
|
|
233
|
-
});
|
|
234
|
-
workflows.forEach((workflow) => {
|
|
235
|
-
this.toggle(workflow);
|
|
236
|
-
});
|
|
237
|
-
this.checker = setInterval(() => {
|
|
238
|
-
this.dispatch();
|
|
239
|
-
}, 3e5);
|
|
240
|
-
this.dispatch();
|
|
241
|
-
});
|
|
242
|
-
this.app.on("beforeStop", async () => {
|
|
243
|
-
const repository = db.getRepository("workflows");
|
|
244
|
-
const workflows = await repository.find({
|
|
245
|
-
filter: { enabled: true }
|
|
246
|
-
});
|
|
247
|
-
workflows.forEach((workflow) => {
|
|
248
|
-
this.toggle(workflow, false);
|
|
249
|
-
});
|
|
250
|
-
this.ready = false;
|
|
251
|
-
if (this.events.length) {
|
|
252
|
-
await this.prepare();
|
|
253
|
-
}
|
|
254
|
-
if (this.executing) {
|
|
255
|
-
await this.executing;
|
|
256
|
-
}
|
|
257
|
-
if (this.checker) {
|
|
258
|
-
clearInterval(this.checker);
|
|
259
|
-
}
|
|
260
|
-
});
|
|
261
|
-
}
|
|
262
|
-
toggle(workflow, enable) {
|
|
263
|
-
const type = workflow.get("type");
|
|
264
|
-
const trigger = this.triggers.get(type);
|
|
265
|
-
if (!trigger) {
|
|
266
|
-
this.getLogger(workflow.id).error(`trigger type ${workflow.type} of workflow ${workflow.id} is not implemented`);
|
|
267
|
-
return;
|
|
268
|
-
}
|
|
269
|
-
if (enable ?? workflow.get("enabled")) {
|
|
270
|
-
const prev = workflow.previous();
|
|
271
|
-
if (prev.config) {
|
|
272
|
-
trigger.off({ ...workflow.get(), ...prev });
|
|
273
|
-
}
|
|
274
|
-
trigger.on(workflow);
|
|
275
|
-
this.enabledCache.set(workflow.id, workflow);
|
|
276
|
-
} else {
|
|
277
|
-
trigger.off(workflow);
|
|
278
|
-
this.enabledCache.delete(workflow.id);
|
|
279
|
-
}
|
|
280
|
-
}
|
|
281
|
-
trigger(workflow, context, options = {}) {
|
|
282
|
-
const logger = this.getLogger(workflow.id);
|
|
283
|
-
if (!this.ready) {
|
|
284
|
-
logger.warn(`app is not ready, event of workflow ${workflow.id} will be ignored`);
|
|
285
|
-
logger.debug(`ignored event data:`, context);
|
|
286
|
-
return;
|
|
287
|
-
}
|
|
288
|
-
if (context == null) {
|
|
289
|
-
logger.warn(`workflow ${workflow.id} event data context is null, event will be ignored`);
|
|
290
|
-
return;
|
|
291
|
-
}
|
|
292
|
-
if (this.isWorkflowSync(workflow)) {
|
|
293
|
-
return this.triggerSync(workflow, context, options);
|
|
294
|
-
}
|
|
295
|
-
const { transaction, ...rest } = options;
|
|
296
|
-
this.events.push([workflow, context, rest]);
|
|
297
|
-
this.eventsCount = this.events.length;
|
|
298
|
-
logger.info(`new event triggered, now events: ${this.events.length}`);
|
|
299
|
-
logger.debug(`event data:`, { context });
|
|
300
|
-
if (this.events.length > 1) {
|
|
301
|
-
return;
|
|
302
|
-
}
|
|
303
|
-
setTimeout(this.prepare);
|
|
304
|
-
}
|
|
305
|
-
async triggerSync(workflow, context, { deferred, ...options } = {}) {
|
|
306
|
-
let execution;
|
|
307
|
-
try {
|
|
308
|
-
execution = await this.createExecution(workflow, context, options);
|
|
309
|
-
} catch (err) {
|
|
310
|
-
this.getLogger(workflow.id).error(`creating execution failed: ${err.message}`, err);
|
|
311
|
-
return null;
|
|
312
|
-
}
|
|
313
|
-
try {
|
|
314
|
-
return this.process(execution, null, options);
|
|
315
|
-
} catch (err) {
|
|
316
|
-
this.getLogger(execution.workflowId).error(`execution (${execution.id}) error: ${err.message}`, err);
|
|
317
|
-
}
|
|
318
|
-
return null;
|
|
319
|
-
}
|
|
320
|
-
async resume(job) {
|
|
321
|
-
if (!job.execution) {
|
|
322
|
-
job.execution = await job.getExecution();
|
|
323
|
-
}
|
|
324
|
-
this.getLogger(job.execution.workflowId).info(
|
|
325
|
-
`execution (${job.execution.id}) resuming from job (${job.id}) added to pending list`
|
|
326
|
-
);
|
|
327
|
-
this.pending.push([job.execution, job]);
|
|
328
|
-
this.dispatch();
|
|
329
|
-
}
|
|
330
|
-
/**
|
|
331
|
-
* Start a deferred execution
|
|
332
|
-
* @experimental
|
|
333
|
-
*/
|
|
334
|
-
start(execution) {
|
|
335
|
-
if (execution.status !== import_constants.EXECUTION_STATUS.STARTED) {
|
|
336
|
-
return;
|
|
337
|
-
}
|
|
338
|
-
this.pending.push([execution]);
|
|
339
|
-
this.dispatch();
|
|
340
|
-
}
|
|
341
|
-
createProcessor(execution, options = {}) {
|
|
342
|
-
return new import_Processor.default(execution, { ...options, plugin: this });
|
|
343
|
-
}
|
|
344
|
-
async createExecution(workflow, context, options) {
|
|
345
|
-
const { transaction = await this.db.sequelize.transaction(), deferred } = options;
|
|
346
|
-
const trigger = this.triggers.get(workflow.type);
|
|
347
|
-
const valid = await trigger.validateEvent(workflow, context, { ...options, transaction });
|
|
348
|
-
if (!valid) {
|
|
349
|
-
if (!options.transaction) {
|
|
350
|
-
await transaction.commit();
|
|
351
|
-
}
|
|
352
|
-
return null;
|
|
353
|
-
}
|
|
354
|
-
let execution;
|
|
355
|
-
try {
|
|
356
|
-
execution = await workflow.createExecution(
|
|
357
|
-
{
|
|
358
|
-
context,
|
|
359
|
-
key: workflow.key,
|
|
360
|
-
eventKey: options.eventKey ?? (0, import_crypto.randomUUID)(),
|
|
361
|
-
status: deferred ? import_constants.EXECUTION_STATUS.STARTED : import_constants.EXECUTION_STATUS.QUEUEING
|
|
362
|
-
},
|
|
363
|
-
{ transaction }
|
|
364
|
-
);
|
|
365
|
-
} catch (err) {
|
|
366
|
-
if (!options.transaction) {
|
|
367
|
-
await transaction.rollback();
|
|
368
|
-
}
|
|
369
|
-
throw err;
|
|
370
|
-
}
|
|
371
|
-
this.getLogger(workflow.id).info(`execution of workflow ${workflow.id} created as ${execution.id}`);
|
|
372
|
-
await workflow.increment(["executed", "allExecuted"], { transaction });
|
|
373
|
-
if (this.db.options.dialect !== "postgres") {
|
|
374
|
-
await workflow.reload({ transaction });
|
|
375
|
-
}
|
|
376
|
-
await workflow.constructor.update(
|
|
377
|
-
{
|
|
378
|
-
allExecuted: workflow.allExecuted
|
|
379
|
-
},
|
|
380
|
-
{
|
|
381
|
-
where: {
|
|
382
|
-
key: workflow.key
|
|
383
|
-
},
|
|
384
|
-
transaction
|
|
385
|
-
}
|
|
386
|
-
);
|
|
387
|
-
if (!options.transaction) {
|
|
388
|
-
await transaction.commit();
|
|
389
|
-
}
|
|
390
|
-
execution.workflow = workflow;
|
|
391
|
-
return execution;
|
|
392
|
-
}
|
|
393
|
-
prepare = async () => {
|
|
394
|
-
if (this.executing && this.db.options.dialect === "sqlite") {
|
|
395
|
-
await this.executing;
|
|
396
|
-
}
|
|
397
|
-
const event = this.events.shift();
|
|
398
|
-
this.eventsCount = this.events.length;
|
|
399
|
-
if (!event) {
|
|
400
|
-
this.getLogger("dispatcher").warn(`events queue is empty, no need to prepare`);
|
|
401
|
-
return;
|
|
402
|
-
}
|
|
403
|
-
const logger = this.getLogger(event[0].id);
|
|
404
|
-
logger.info(`preparing execution for event`);
|
|
405
|
-
try {
|
|
406
|
-
const execution = await this.createExecution(...event);
|
|
407
|
-
if ((execution == null ? void 0 : execution.status) === import_constants.EXECUTION_STATUS.QUEUEING && !this.executing && !this.pending.length) {
|
|
408
|
-
this.pending.push([execution]);
|
|
409
|
-
}
|
|
410
|
-
} catch (err) {
|
|
411
|
-
logger.error(`failed to create execution: ${err.message}`, err);
|
|
412
|
-
}
|
|
413
|
-
if (this.events.length) {
|
|
414
|
-
await this.prepare();
|
|
415
|
-
} else {
|
|
416
|
-
this.dispatch();
|
|
417
|
-
}
|
|
418
|
-
};
|
|
419
|
-
dispatch() {
|
|
420
|
-
if (!this.ready) {
|
|
421
|
-
this.getLogger("dispatcher").warn(`app is not ready, new dispatching will be ignored`);
|
|
422
|
-
return;
|
|
423
|
-
}
|
|
424
|
-
if (this.executing) {
|
|
425
|
-
this.getLogger("dispatcher").warn(`workflow executing is not finished, new dispatching will be ignored`);
|
|
426
|
-
return;
|
|
427
|
-
}
|
|
428
|
-
if (this.events.length) {
|
|
429
|
-
return this.prepare();
|
|
430
|
-
}
|
|
431
|
-
this.executing = (async () => {
|
|
432
|
-
let next = null;
|
|
433
|
-
try {
|
|
434
|
-
if (this.pending.length) {
|
|
435
|
-
next = this.pending.shift();
|
|
436
|
-
this.getLogger(next[0].workflowId).info(`pending execution (${next[0].id}) ready to process`);
|
|
437
|
-
} else {
|
|
438
|
-
const execution = await this.db.getRepository("executions").findOne({
|
|
439
|
-
filter: {
|
|
440
|
-
status: import_constants.EXECUTION_STATUS.QUEUEING,
|
|
441
|
-
"workflow.enabled": true,
|
|
442
|
-
"workflow.id": {
|
|
443
|
-
[import_database.Op.not]: null
|
|
444
|
-
}
|
|
445
|
-
},
|
|
446
|
-
appends: ["workflow"],
|
|
447
|
-
sort: "id"
|
|
448
|
-
});
|
|
449
|
-
if (execution) {
|
|
450
|
-
this.getLogger(execution.workflowId).info(`execution (${execution.id}) fetched from db`);
|
|
451
|
-
next = [execution];
|
|
452
|
-
}
|
|
453
|
-
}
|
|
454
|
-
if (next) {
|
|
455
|
-
await this.process(...next);
|
|
456
|
-
}
|
|
457
|
-
} finally {
|
|
458
|
-
this.executing = null;
|
|
459
|
-
if (next) {
|
|
460
|
-
this.dispatch();
|
|
461
|
-
}
|
|
462
|
-
}
|
|
463
|
-
})();
|
|
464
|
-
}
|
|
465
|
-
async process(execution, job, options = {}) {
|
|
466
|
-
var _a, _b;
|
|
467
|
-
if (execution.status === import_constants.EXECUTION_STATUS.QUEUEING) {
|
|
468
|
-
await execution.update({ status: import_constants.EXECUTION_STATUS.STARTED }, { transaction: options.transaction });
|
|
469
|
-
}
|
|
470
|
-
const logger = this.getLogger(execution.workflowId);
|
|
471
|
-
const processor = this.createProcessor(execution, options);
|
|
472
|
-
logger.info(`execution (${execution.id}) ${job ? "resuming" : "starting"}...`);
|
|
473
|
-
try {
|
|
474
|
-
await (job ? processor.resume(job) : processor.start());
|
|
475
|
-
logger.info(`execution (${execution.id}) finished with status: ${execution.status}`, { execution });
|
|
476
|
-
if (execution.status && ((_b = (_a = execution.workflow.options) == null ? void 0 : _a.deleteExecutionOnStatus) == null ? void 0 : _b.includes(execution.status))) {
|
|
477
|
-
await execution.destroy();
|
|
478
|
-
}
|
|
479
|
-
} catch (err) {
|
|
480
|
-
logger.error(`execution (${execution.id}) error: ${err.message}`, err);
|
|
481
|
-
}
|
|
482
|
-
return processor;
|
|
483
|
-
}
|
|
484
|
-
/**
|
|
485
|
-
* @experimental
|
|
486
|
-
* @param {string} dataSourceName
|
|
487
|
-
* @param {Transaction} transaction
|
|
488
|
-
* @param {boolean} create
|
|
489
|
-
* @returns {Trasaction}
|
|
490
|
-
*/
|
|
491
|
-
useDataSourceTransaction(dataSourceName = "main", transaction, create = false) {
|
|
492
|
-
const { db } = this.app.dataSourceManager.dataSources.get(dataSourceName).collectionManager;
|
|
493
|
-
if (!db) {
|
|
494
|
-
return;
|
|
495
|
-
}
|
|
496
|
-
if (db.sequelize === (transaction == null ? void 0 : transaction.sequelize)) {
|
|
497
|
-
return transaction;
|
|
498
|
-
}
|
|
499
|
-
if (create) {
|
|
500
|
-
return db.sequelize.transaction();
|
|
501
|
-
}
|
|
502
|
-
}
|
|
503
|
-
}
|