@temporalio/common 1.11.3 → 1.11.5
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/lib/activity-options.d.ts +8 -6
- package/lib/activity-options.js +13 -12
- package/lib/activity-options.js.map +1 -1
- package/lib/converter/failure-converter.js +8 -6
- package/lib/converter/failure-converter.js.map +1 -1
- package/lib/converter/payload-converter.js +7 -7
- package/lib/converter/payload-converter.js.map +1 -1
- package/lib/deprecated-time.js +9 -10
- package/lib/deprecated-time.js.map +1 -1
- package/lib/encoding.js +3 -3
- package/lib/encoding.js.map +1 -1
- package/lib/failure.d.ts +51 -23
- package/lib/failure.js +65 -32
- package/lib/failure.js.map +1 -1
- package/lib/index.js +4 -5
- package/lib/index.js.map +1 -1
- package/lib/interceptors.js +1 -2
- package/lib/interceptors.js.map +1 -1
- package/lib/interfaces.d.ts +5 -4
- package/lib/interfaces.js +4 -5
- package/lib/interfaces.js.map +1 -1
- package/lib/internal-non-workflow/codec-helpers.js +22 -23
- package/lib/internal-non-workflow/codec-helpers.js.map +1 -1
- package/lib/internal-non-workflow/data-converter-helpers.js +3 -4
- package/lib/internal-non-workflow/data-converter-helpers.js.map +1 -1
- package/lib/internal-non-workflow/parse-host-uri.js +3 -4
- package/lib/internal-non-workflow/parse-host-uri.js.map +1 -1
- package/lib/internal-non-workflow/proxy-config.js +1 -2
- package/lib/internal-non-workflow/proxy-config.js.map +1 -1
- package/lib/internal-non-workflow/tls-config.d.ts +0 -1
- package/lib/internal-non-workflow/tls-config.js +1 -2
- package/lib/internal-non-workflow/tls-config.js.map +1 -1
- package/lib/internal-non-workflow/utils.js +1 -2
- package/lib/internal-non-workflow/utils.js.map +1 -1
- package/lib/internal-workflow/enums-helpers.d.ts +170 -0
- package/lib/internal-workflow/enums-helpers.js +172 -0
- package/lib/internal-workflow/enums-helpers.js.map +1 -0
- package/lib/internal-workflow/index.d.ts +1 -0
- package/lib/internal-workflow/index.js +18 -0
- package/lib/internal-workflow/index.js.map +1 -0
- package/lib/proto-utils.js +4 -5
- package/lib/proto-utils.js.map +1 -1
- package/lib/retry-policy.js +2 -3
- package/lib/retry-policy.js.map +1 -1
- package/lib/time.js +12 -13
- package/lib/time.js.map +1 -1
- package/lib/type-helpers.d.ts +18 -0
- package/lib/type-helpers.js +12 -13
- package/lib/type-helpers.js.map +1 -1
- package/lib/versioning-intent-enum.js +2 -2
- package/lib/versioning-intent-enum.js.map +1 -1
- package/lib/workflow-options.d.ts +69 -17
- package/lib/workflow-options.js +64 -23
- package/lib/workflow-options.js.map +1 -1
- package/package.json +3 -3
- package/src/activity-options.ts +24 -13
- package/src/converter/failure-converter.ts +10 -6
- package/src/converter/payload-converter.ts +1 -1
- package/src/failure.ts +95 -28
- package/src/interfaces.ts +5 -4
- package/src/internal-non-workflow/data-converter-helpers.ts +1 -1
- package/src/internal-workflow/enums-helpers.ts +301 -0
- package/src/internal-workflow/index.ts +1 -0
- package/src/type-helpers.ts +79 -1
- package/src/workflow-options.ts +110 -23
package/src/workflow-options.ts
CHANGED
|
@@ -2,60 +2,147 @@ import type { temporal } from '@temporalio/proto';
|
|
|
2
2
|
import { SearchAttributes, Workflow } from './interfaces';
|
|
3
3
|
import { RetryPolicy } from './retry-policy';
|
|
4
4
|
import { Duration } from './time';
|
|
5
|
-
import {
|
|
5
|
+
import { makeProtoEnumConverters } from './internal-workflow';
|
|
6
6
|
|
|
7
|
-
// Avoid importing the proto implementation to reduce workflow bundle size
|
|
8
|
-
// Copied from temporal.api.enums.v1.WorkflowIdReusePolicy
|
|
9
7
|
/**
|
|
8
|
+
* Defines what happens when trying to start a Workflow with the same ID as a *Closed* Workflow.
|
|
9
|
+
*
|
|
10
|
+
* See {@link WorkflowOptions.workflowIdConflictPolicy} for what happens when trying to start a
|
|
11
|
+
* Workflow with the same ID as a *Running* Workflow.
|
|
12
|
+
*
|
|
10
13
|
* Concept: {@link https://docs.temporal.io/concepts/what-is-a-workflow-id-reuse-policy/ | Workflow Id Reuse Policy}
|
|
11
14
|
*
|
|
12
|
-
*
|
|
15
|
+
* *Note: It is not possible to have two actively running Workflows with the same ID.*
|
|
13
16
|
*
|
|
14
|
-
* *Note: A Workflow can never be started with a Workflow Id of a Running Workflow.*
|
|
15
17
|
*/
|
|
16
|
-
export
|
|
17
|
-
/**
|
|
18
|
-
* No need to use this.
|
|
19
|
-
*
|
|
20
|
-
* (If a `WorkflowIdReusePolicy` is set to this, or is not set at all, the default value will be used.)
|
|
21
|
-
*/
|
|
22
|
-
WORKFLOW_ID_REUSE_POLICY_UNSPECIFIED = 0,
|
|
23
|
-
|
|
18
|
+
export const WorkflowIdReusePolicy = {
|
|
24
19
|
/**
|
|
25
20
|
* The Workflow can be started if the previous Workflow is in a Closed state.
|
|
26
21
|
* @default
|
|
27
22
|
*/
|
|
28
|
-
|
|
23
|
+
ALLOW_DUPLICATE: 'ALLOW_DUPLICATE',
|
|
29
24
|
|
|
30
25
|
/**
|
|
31
26
|
* The Workflow can be started if the previous Workflow is in a Closed state that is not Completed.
|
|
32
27
|
*/
|
|
33
|
-
|
|
28
|
+
ALLOW_DUPLICATE_FAILED_ONLY: 'ALLOW_DUPLICATE_FAILED_ONLY',
|
|
34
29
|
|
|
35
30
|
/**
|
|
36
31
|
* The Workflow cannot be started.
|
|
37
32
|
*/
|
|
38
|
-
|
|
33
|
+
REJECT_DUPLICATE: 'REJECT_DUPLICATE',
|
|
39
34
|
|
|
40
35
|
/**
|
|
41
|
-
* Terminate the current
|
|
36
|
+
* Terminate the current Workflow if one is already running; otherwise allow reusing the Workflow ID.
|
|
37
|
+
*
|
|
38
|
+
* @deprecated Use {@link WORKFLOW_ID_REUSE_POLICY_ALLOW_DUPLICATE} instead, and
|
|
39
|
+
* set `WorkflowOptions.workflowIdConflictPolicy` to
|
|
40
|
+
* {@link WorkflowIdConflictPolicy.WORKFLOW_ID_CONFLICT_POLICY_TERMINATE_EXISTING}.
|
|
41
|
+
* When using this option, `WorkflowOptions.workflowIdConflictPolicy` must be left unspecified.
|
|
42
42
|
*/
|
|
43
|
-
|
|
44
|
-
|
|
43
|
+
TERMINATE_IF_RUNNING: 'TERMINATE_IF_RUNNING', // eslint-disable-line deprecation/deprecation
|
|
44
|
+
|
|
45
|
+
/// Anything below this line has been deprecated
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* No need to use this. If a `WorkflowIdReusePolicy` is set to this, or is not set at all, the default value will be used.
|
|
49
|
+
*
|
|
50
|
+
* @deprecated Either leave property `undefined`, or use {@link ALLOW_DUPLICATE} instead.
|
|
51
|
+
*/
|
|
52
|
+
WORKFLOW_ID_REUSE_POLICY_UNSPECIFIED: undefined, // eslint-disable-line deprecation/deprecation
|
|
53
|
+
|
|
54
|
+
/** @deprecated Use {@link ALLOW_DUPLICATE} instead. */
|
|
55
|
+
WORKFLOW_ID_REUSE_POLICY_ALLOW_DUPLICATE: 'ALLOW_DUPLICATE', // eslint-disable-line deprecation/deprecation
|
|
56
|
+
|
|
57
|
+
/** @deprecated Use {@link ALLOW_DUPLICATE_FAILED_ONLY} instead. */
|
|
58
|
+
WORKFLOW_ID_REUSE_POLICY_ALLOW_DUPLICATE_FAILED_ONLY: 'ALLOW_DUPLICATE_FAILED_ONLY', // eslint-disable-line deprecation/deprecation
|
|
59
|
+
|
|
60
|
+
/** @deprecated Use {@link REJECT_DUPLICATE} instead. */
|
|
61
|
+
WORKFLOW_ID_REUSE_POLICY_REJECT_DUPLICATE: 'REJECT_DUPLICATE', // eslint-disable-line deprecation/deprecation
|
|
62
|
+
|
|
63
|
+
/** @deprecated Use {@link TERMINATE_IF_RUNNING} instead. */
|
|
64
|
+
WORKFLOW_ID_REUSE_POLICY_TERMINATE_IF_RUNNING: 'TERMINATE_IF_RUNNING', // eslint-disable-line deprecation/deprecation
|
|
65
|
+
} as const;
|
|
66
|
+
export type WorkflowIdReusePolicy = (typeof WorkflowIdReusePolicy)[keyof typeof WorkflowIdReusePolicy];
|
|
67
|
+
|
|
68
|
+
export const [encodeWorkflowIdReusePolicy, decodeWorkflowIdReusePolicy] = makeProtoEnumConverters<
|
|
69
|
+
temporal.api.enums.v1.WorkflowIdReusePolicy,
|
|
70
|
+
typeof temporal.api.enums.v1.WorkflowIdReusePolicy,
|
|
71
|
+
keyof typeof temporal.api.enums.v1.WorkflowIdReusePolicy,
|
|
72
|
+
typeof WorkflowIdReusePolicy,
|
|
73
|
+
'WORKFLOW_ID_REUSE_POLICY_'
|
|
74
|
+
>(
|
|
75
|
+
{
|
|
76
|
+
[WorkflowIdReusePolicy.ALLOW_DUPLICATE]: 1,
|
|
77
|
+
[WorkflowIdReusePolicy.ALLOW_DUPLICATE_FAILED_ONLY]: 2,
|
|
78
|
+
[WorkflowIdReusePolicy.REJECT_DUPLICATE]: 3,
|
|
79
|
+
[WorkflowIdReusePolicy.TERMINATE_IF_RUNNING]: 4, // eslint-disable-line deprecation/deprecation
|
|
80
|
+
UNSPECIFIED: 0,
|
|
81
|
+
} as const,
|
|
82
|
+
'WORKFLOW_ID_REUSE_POLICY_'
|
|
83
|
+
);
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Defines what happens when trying to start a Workflow with the same ID as a *Running* Workflow.
|
|
87
|
+
*
|
|
88
|
+
* See {@link WorkflowOptions.workflowIdReusePolicy} for what happens when trying to start a Workflow
|
|
89
|
+
* with the same ID as a *Closed* Workflow.
|
|
90
|
+
*
|
|
91
|
+
* *Note: It is never possible to have two _actively running_ Workflows with the same ID.*
|
|
92
|
+
*/
|
|
93
|
+
export type WorkflowIdConflictPolicy = (typeof WorkflowIdConflictPolicy)[keyof typeof WorkflowIdConflictPolicy];
|
|
94
|
+
export const WorkflowIdConflictPolicy = {
|
|
95
|
+
/**
|
|
96
|
+
* Do not start a new Workflow. Instead raise a `WorkflowExecutionAlreadyStartedError`.
|
|
97
|
+
*/
|
|
98
|
+
FAIL: 'FAIL',
|
|
45
99
|
|
|
46
|
-
|
|
47
|
-
|
|
100
|
+
/**
|
|
101
|
+
* Do not start a new Workflow. Instead return a Workflow Handle for the already Running Workflow.
|
|
102
|
+
*/
|
|
103
|
+
USE_EXISTING: 'USE_EXISTING',
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Start a new Workflow, terminating the current workflow if one is already running.
|
|
107
|
+
*/
|
|
108
|
+
TERMINATE_EXISTING: 'TERMINATE_EXISTING',
|
|
109
|
+
} as const;
|
|
110
|
+
|
|
111
|
+
export const [encodeWorkflowIdConflictPolicy, decodeWorkflowIdConflictPolicy] = makeProtoEnumConverters<
|
|
112
|
+
temporal.api.enums.v1.WorkflowIdConflictPolicy,
|
|
113
|
+
typeof temporal.api.enums.v1.WorkflowIdConflictPolicy,
|
|
114
|
+
keyof typeof temporal.api.enums.v1.WorkflowIdConflictPolicy,
|
|
115
|
+
typeof WorkflowIdConflictPolicy,
|
|
116
|
+
'WORKFLOW_ID_CONFLICT_POLICY_'
|
|
117
|
+
>(
|
|
118
|
+
{
|
|
119
|
+
[WorkflowIdConflictPolicy.FAIL]: 1,
|
|
120
|
+
[WorkflowIdConflictPolicy.USE_EXISTING]: 2,
|
|
121
|
+
[WorkflowIdConflictPolicy.TERMINATE_EXISTING]: 3,
|
|
122
|
+
UNSPECIFIED: 0,
|
|
123
|
+
} as const,
|
|
124
|
+
'WORKFLOW_ID_CONFLICT_POLICY_'
|
|
125
|
+
);
|
|
48
126
|
|
|
49
127
|
export interface BaseWorkflowOptions {
|
|
50
128
|
/**
|
|
51
|
-
*
|
|
129
|
+
* Defines what happens when trying to start a Workflow with the same ID as a *Closed* Workflow.
|
|
52
130
|
*
|
|
53
|
-
* *Note:
|
|
131
|
+
* *Note: It is not possible to have two actively running Workflows with the same ID.*
|
|
54
132
|
*
|
|
55
133
|
* @default {@link WorkflowIdReusePolicy.WORKFLOW_ID_REUSE_POLICY_ALLOW_DUPLICATE}
|
|
56
134
|
*/
|
|
57
135
|
workflowIdReusePolicy?: WorkflowIdReusePolicy;
|
|
58
136
|
|
|
137
|
+
/**
|
|
138
|
+
* Defines what happens when trying to start a Workflow with the same ID as a *Running* Workflow.
|
|
139
|
+
*
|
|
140
|
+
* *Note: It is not possible to have two actively running Workflows with the same ID.*
|
|
141
|
+
*
|
|
142
|
+
* @default {@link WorkflowIdConflictPolicy.WORKFLOW_ID_CONFLICT_POLICY_UNSPECIFIED}
|
|
143
|
+
*/
|
|
144
|
+
workflowIdConflictPolicy?: WorkflowIdConflictPolicy;
|
|
145
|
+
|
|
59
146
|
/**
|
|
60
147
|
* Controls how a Workflow Execution is retried.
|
|
61
148
|
*
|