n8n-nodes-lifespace 0.1.13 → 0.1.15
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 +20 -6
- package/dist/nodes/LifeSpaceWorkflow/LifeSpaceWorkflow.node.js +50 -51
- package/dist/nodes/LifeSpaceWorkflow/LifeSpaceWorkflow.node.js.map +1 -1
- package/dist/nodes/LifeSpaceWorkflow/humanProjection.d.ts +11 -1
- package/dist/nodes/LifeSpaceWorkflow/humanProjection.js +476 -44
- package/dist/nodes/LifeSpaceWorkflow/humanProjection.js.map +1 -1
- package/dist/package.json +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -68,7 +68,7 @@ Runtime Discovery determines which Spaces, Record Types, fields, queries, Action
|
|
|
68
68
|
|
|
69
69
|
The package deliberately exposes two different projections over the same LifeSpace Runtime Discovery semantics:
|
|
70
70
|
|
|
71
|
-
- **LifeSpace** is the human-authored workflow node. Create/Update fields are generated through n8n Resource Mapper from the selected Record Type
|
|
71
|
+
- **LifeSpace** is the human-authored workflow node. Create/Update scalar and relation fields are generated through n8n Resource Mapper from the selected Record Type. Writable `temporal_range` fields are projected directly as three adjacent controls named from the field itself, for example **When · Type / When · Start / When · End**; there is no redundant Field selector and no raw object/JSON entry. List / Query exposes semantic predicates instead of asking the workflow author to choose a filter type first. Multi-value relations keep their dedicated multi-select UX.
|
|
72
72
|
- **LifeSpace Agent Tool** is the native AI Tool surface. Its schema is generated from `query.canonical`: queries expose semantic `field` / `operator` / `value` inputs, and the adapter compiles them into the same structured Canonical Query used by human workflows.
|
|
73
73
|
|
|
74
74
|
The human workflow node is not exposed through `usableAsTool`; this avoids maintaining two competing Agent Tool surfaces with different schema behavior.
|
|
@@ -77,7 +77,7 @@ The node displays the authorized human-readable `spaceName` when present while c
|
|
|
77
77
|
|
|
78
78
|
Record Type is the LifeSpace `modelKey` (for example `task`). Design-time options, expressions, Trigger output and downstream Record nodes all use that plain value. CRUD calls go directly to `/spaces/{spaceId}/models/{modelKey}/records/...`, so execution adds no Discovery request and the adapter maintains no modelKey-to-route mapping. Existing `lsrt1...` workflow values are decoded only as a deprecated read-compatibility path and are never emitted or written by new configuration.
|
|
79
79
|
|
|
80
|
-
Current Calendar models expose the canonical `capabilityBindings.calendar.rangeField` role, which points at one authoritative `temporal_range` field (for example Event v6 `when`). Historical split-field Calendar bindings remain readable only for already-published compatibility models. Date-only values are normalized to `YYYY-MM-DD`; `instant`
|
|
80
|
+
Current Calendar models expose the canonical `capabilityBindings.calendar.rangeField` role, which points at one authoritative `temporal_range` field (for example Event v6 `when`). Historical split-field Calendar bindings remain readable only for already-published compatibility models. Date-only values are normalized to `YYYY-MM-DD`; ordinary `instant` fields use the n8n date-time control. Create/Update `temporal_range` fields use direct Discovery-generated component controls. **All Day / Date** stores `{ kind: "date", start, endExclusive }` and treats the Human End date as inclusive, while **Date & Time** stores `{ kind: "instant", start, endExclusive }` from the date-time controls. Existing stored workflows that already contain canonical object values or the earlier pre-release Temporal Ranges fixedCollection remain executable. Create/Update execution does not fetch fresh semantic Discovery solely to produce an adapter-local Calendar conflict error; the canonical mutation goes directly to LifeSpace Core, which remains authoritative for Calendar validation and current authorization.
|
|
81
81
|
|
|
82
82
|
## LifeSpace contract compatibility
|
|
83
83
|
|
|
@@ -128,8 +128,8 @@ Ordinary Record CRUD/Action routes remain model-contract surfaces derived from p
|
|
|
128
128
|
New Workflow and Agent configurations expose one query model:
|
|
129
129
|
|
|
130
130
|
- **Search** is a top-level retrieval facet when the selected Record Type publishes searchable fields.
|
|
131
|
-
- **Filters**
|
|
132
|
-
- **
|
|
131
|
+
- **Filters** expose only Filter Groups. Each group has its own **Match: All / Any** and vertically stacked **Field**, **Operator**, and string/expression **Value** controls; multiple groups compose with AND. Field choices come from Discovery, and Operator choices reload from the selected field using n8n's row-relative dynamic-option dependency.
|
|
132
|
+
- Temporal range **Overlaps** is projected for human workflows as paired **Overlaps Start** + **Overlaps End** conditions in the same group. The adapter validates the pair and lowers it to one canonical `overlaps` range predicate. Date pairs use the current n8n workflow timezone unless **Options → Viewing Timezone** overrides it.
|
|
133
133
|
- **Sorts** come from `query.canonical.sort.fields` and preserve user priority.
|
|
134
134
|
- **Return All**, **Limit**, and the optional opaque **Cursor** use canonical cursor pagination.
|
|
135
135
|
|
|
@@ -155,9 +155,11 @@ The same applies to ordinary values such as Record ID, Search, Return All, Limit
|
|
|
155
155
|
Two boundaries are intentional:
|
|
156
156
|
|
|
157
157
|
- **Resource** and **Operation** are structural node controls and do not accept expressions because they determine which parameter schema and execution path the node has.
|
|
158
|
-
- **Fields** and **Action Input** remain generated from Runtime Discovery. **Filters** use Discovery-backed field/operator selectors plus string/expression values so Boolean grouping does not depend on dynamically changing n8n value-control types.
|
|
158
|
+
- **Fields**, **Temporal Ranges**, and **Action Input** remain generated from Runtime Discovery. Scalar/relation CRUD fields stay in Resource Mapper; writable `temporal_range` CRUD fields use the dedicated form. **Filters** use Discovery-backed field/operator selectors plus string/expression values so Boolean grouping does not depend on dynamically changing n8n value-control types.
|
|
159
159
|
|
|
160
|
-
For List / Query, **Filters** is a Discovery-driven
|
|
160
|
+
For List / Query, **Filters** is a Discovery-driven group builder. There are no separate top-level Match or Conditions surfaces: every condition belongs to a Filter Group, each group chooses All/Any, and groups are ANDed together. Conditions use the same vertical layout as n8n's Data Table filters: **Field**, then **Operator**, then **Value**. Changing Field reloads only the operators published for that field. Scalar values remain text or n8n expressions and are deterministically converted back to canonical typed values before the request.
|
|
161
|
+
|
|
162
|
+
For TemporalRange fields, the human projection does not ask for JSON. Canonical `overlaps` is split into **Overlaps Start** and **Overlaps End** inputs; they must appear once each in the same Filter Group and are lowered back to one canonical `overlaps` predicate. Human date End values are inclusive, so the adapter converts them to Core's exclusive end boundary. `before` and `after` accept a single date or absolute RFC3339 date-time string. `contains` remains executable for stored workflows but is not offered in the new Human UI until it has an equally simple structured projection. **Options → Viewing Timezone** is optional; TemporalRange date interpretation and sorting fall back to the effective n8n workflow timezone when it is omitted. **Sorts** remains an ordered structural list because sort priority is part of workflow structure rather than per-item data.
|
|
161
163
|
|
|
162
164
|
If **Record Type** itself varies per input item and those Record Types have different schemas, one discovery-generated mapper cannot safely represent every possible schema at design time. In that case, branch to separate LifeSpace nodes per schema or use **API Request** for a deliberately fully dynamic request.
|
|
163
165
|
|
|
@@ -196,6 +198,18 @@ LifeSpace server defaults are authoritative. A field that is `required` but has
|
|
|
196
198
|
|
|
197
199
|
For example, lifecycle state such as Task status can remain server/Action-owned instead of being manually entered by the workflow author.
|
|
198
200
|
|
|
201
|
+
Writable `temporal_range` fields are not shown as generic object controls and do not require choosing the same field again. Runtime Discovery expands each field directly into three adjacent controls. For Event, the UI is:
|
|
202
|
+
|
|
203
|
+
```text
|
|
204
|
+
When · Type
|
|
205
|
+
When · Start
|
|
206
|
+
When · End
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
**Type** chooses **All Day / Date** or **Date & Time**. Start and End use n8n date-time controls. For All Day / Date, only the calendar date is used and End is inclusive in the UI; the adapter converts it to LifeSpace's exclusive end boundary. For Date & Time, End must be later than Start.
|
|
210
|
+
|
|
211
|
+
This projection is adapter-only; the three controls are combined back into one canonical LifeSpace `when` value before execution.
|
|
212
|
+
|
|
199
213
|
When Runtime Discovery advertises relation semantics, supported single-value `person` / `record` fields are rendered as selectors from the current authorized `{ id, label }` target projection. Multi-value relations retain the dedicated multi-select control rather than falling back to n8n Resource Mapper's generic JSON array editor. The displayed value is the canonical LifeSpace reference label, while the workflow payload still stores and submits the stable target ID.
|
|
200
214
|
|
|
201
215
|
Older compatible Discovery responses without relation lookup metadata retain the raw-ID field behavior. The adapter never guesses record labels from conventional fields such as `name`, `title` or `summary`.
|
|
@@ -4,6 +4,28 @@ exports.LifeSpaceWorkflow = void 0;
|
|
|
4
4
|
const LifeSpace_node_1 = require("../LifeSpace/LifeSpace.node");
|
|
5
5
|
const lifeSpaceErrorProjection_1 = require("./lifeSpaceErrorProjection");
|
|
6
6
|
const humanProjection_1 = require("./humanProjection");
|
|
7
|
+
function temporalRangeFieldsProperty() {
|
|
8
|
+
return {
|
|
9
|
+
displayName: 'Temporal Range Fields',
|
|
10
|
+
name: 'temporalFields',
|
|
11
|
+
type: 'resourceMapper',
|
|
12
|
+
default: { mappingMode: 'defineBelow', value: null },
|
|
13
|
+
noDataExpression: true,
|
|
14
|
+
typeOptions: {
|
|
15
|
+
loadOptionsDependsOn: ['spaceId', 'recordType', 'operation'],
|
|
16
|
+
resourceMapper: {
|
|
17
|
+
resourceMapperMethod: 'getHumanTemporalRangeMutationFields',
|
|
18
|
+
mode: 'add',
|
|
19
|
+
fieldWords: { singular: 'temporal value', plural: 'temporal values' },
|
|
20
|
+
addAllFields: true,
|
|
21
|
+
supportAutoMap: false,
|
|
22
|
+
noFieldsError: 'The selected LifeSpace Record Type has no writable TemporalRange fields.',
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
displayOptions: { show: { resource: ['modelRecord'], operation: ['create', 'update'] } },
|
|
26
|
+
description: 'Each writable TemporalRange is shown directly as Type, Start, and End controls. The adapter combines those controls into one canonical LifeSpace field.',
|
|
27
|
+
};
|
|
28
|
+
}
|
|
7
29
|
function filterConditionValues() {
|
|
8
30
|
return [
|
|
9
31
|
{
|
|
@@ -37,56 +59,26 @@ function filterConditionValues() {
|
|
|
37
59
|
name: 'value',
|
|
38
60
|
type: 'string',
|
|
39
61
|
default: '',
|
|
40
|
-
|
|
62
|
+
displayOptions: {
|
|
63
|
+
hide: {
|
|
64
|
+
operator: [{ _cnd: { regex: '^lsqh1:(?:isNull|isNotNull)\\.' } }],
|
|
65
|
+
},
|
|
66
|
+
},
|
|
67
|
+
description: 'Enter a string or n8n expression. Number and boolean values are parsed by the adapter. Temporal range Overlaps uses paired Overlaps Start and Overlaps End conditions; Before and After accept a date or absolute date-time string.',
|
|
41
68
|
},
|
|
42
69
|
];
|
|
43
70
|
}
|
|
44
|
-
function filterConditionsProperty() {
|
|
45
|
-
return {
|
|
46
|
-
displayName: 'Conditions',
|
|
47
|
-
name: 'queryFilterConditions',
|
|
48
|
-
type: 'fixedCollection',
|
|
49
|
-
default: {},
|
|
50
|
-
placeholder: 'Add Condition',
|
|
51
|
-
typeOptions: {
|
|
52
|
-
multipleValues: true,
|
|
53
|
-
multipleValueButtonText: 'Add Condition',
|
|
54
|
-
fixedCollection: { layout: 'inline' },
|
|
55
|
-
},
|
|
56
|
-
displayOptions: { show: { resource: ['modelRecord'], operation: ['list'] } },
|
|
57
|
-
options: [{
|
|
58
|
-
displayName: 'Condition',
|
|
59
|
-
name: 'condition',
|
|
60
|
-
values: filterConditionValues(),
|
|
61
|
-
}],
|
|
62
|
-
description: 'Top-level filter conditions. The Match setting determines whether all or any top-level conditions and groups must match.',
|
|
63
|
-
};
|
|
64
|
-
}
|
|
65
|
-
function filterMatchProperty() {
|
|
66
|
-
return {
|
|
67
|
-
displayName: 'Match',
|
|
68
|
-
name: 'queryFilterMatch',
|
|
69
|
-
type: 'options',
|
|
70
|
-
options: [
|
|
71
|
-
{ name: 'All Conditions and Groups', value: 'all' },
|
|
72
|
-
{ name: 'Any Condition or Group', value: 'any' },
|
|
73
|
-
],
|
|
74
|
-
default: 'all',
|
|
75
|
-
displayOptions: { show: { resource: ['modelRecord'], operation: ['list'] } },
|
|
76
|
-
description: 'How top-level Conditions and Groups are combined',
|
|
77
|
-
};
|
|
78
|
-
}
|
|
79
71
|
function filterGroupsProperty() {
|
|
80
72
|
return {
|
|
81
|
-
displayName: '
|
|
73
|
+
displayName: 'Filters',
|
|
82
74
|
name: 'queryFilterGroups',
|
|
83
75
|
type: 'fixedCollection',
|
|
84
76
|
default: {},
|
|
85
|
-
placeholder: 'Add
|
|
77
|
+
placeholder: 'Add Filter Group',
|
|
86
78
|
typeOptions: { multipleValues: true },
|
|
87
79
|
displayOptions: { show: { resource: ['modelRecord'], operation: ['list'] } },
|
|
88
80
|
options: [{
|
|
89
|
-
displayName: '
|
|
81
|
+
displayName: 'Filter Group',
|
|
90
82
|
name: 'group',
|
|
91
83
|
values: [
|
|
92
84
|
{
|
|
@@ -108,7 +100,6 @@ function filterGroupsProperty() {
|
|
|
108
100
|
typeOptions: {
|
|
109
101
|
multipleValues: true,
|
|
110
102
|
multipleValueButtonText: 'Add Condition',
|
|
111
|
-
fixedCollection: { layout: 'inline' },
|
|
112
103
|
},
|
|
113
104
|
options: [{
|
|
114
105
|
displayName: 'Condition',
|
|
@@ -118,21 +109,21 @@ function filterGroupsProperty() {
|
|
|
118
109
|
},
|
|
119
110
|
],
|
|
120
111
|
}],
|
|
121
|
-
description: 'Add
|
|
112
|
+
description: 'Add Filter Groups. Conditions inside a group use All or Any; multiple Filter Groups are combined with AND.',
|
|
122
113
|
};
|
|
123
114
|
}
|
|
124
|
-
function
|
|
115
|
+
function queryViewingTimezoneOption() {
|
|
125
116
|
return {
|
|
126
117
|
displayName: 'Viewing Timezone',
|
|
127
|
-
name: '
|
|
118
|
+
name: 'viewingTimezone',
|
|
128
119
|
type: 'string',
|
|
129
120
|
default: '',
|
|
130
121
|
placeholder: 'Asia/Shanghai',
|
|
131
|
-
|
|
132
|
-
description: 'IANA timezone used only when a TemporalRange field is sorted. LifeSpace requires this context to compare date and instant variants deterministically.',
|
|
122
|
+
description: 'Optional IANA timezone override for temporal range date interpretation and sorting. If omitted, the current n8n workflow timezone is used.',
|
|
133
123
|
};
|
|
134
124
|
}
|
|
135
125
|
function humanProperties(properties) {
|
|
126
|
+
var _a;
|
|
136
127
|
const result = [];
|
|
137
128
|
for (const property of properties) {
|
|
138
129
|
if ([
|
|
@@ -156,11 +147,11 @@ function humanProperties(properties) {
|
|
|
156
147
|
fieldWords: { singular: 'field', plural: 'fields' },
|
|
157
148
|
addAllFields: false,
|
|
158
149
|
supportAutoMap: false,
|
|
159
|
-
noFieldsError: 'The selected LifeSpace Record Type has no
|
|
150
|
+
noFieldsError: 'The selected LifeSpace Record Type has no scalar or relation fields for this operation.',
|
|
160
151
|
},
|
|
161
152
|
},
|
|
162
|
-
description: 'Only fields selected for this operation are sent.
|
|
163
|
-
});
|
|
153
|
+
description: 'Only fields selected for this operation are sent. TemporalRange fields use the direct controls below instead of JSON.',
|
|
154
|
+
}, temporalRangeFieldsProperty());
|
|
164
155
|
continue;
|
|
165
156
|
}
|
|
166
157
|
if (property.name === 'multiRelations') {
|
|
@@ -172,11 +163,18 @@ function humanProperties(properties) {
|
|
|
172
163
|
continue;
|
|
173
164
|
}
|
|
174
165
|
if (property.name === 'search') {
|
|
175
|
-
result.push({ ...property, displayOptions: { show: { resource: ['modelRecord'], operation: ['list'] } } },
|
|
166
|
+
result.push({ ...property, displayOptions: { show: { resource: ['modelRecord'], operation: ['list'] } } }, filterGroupsProperty());
|
|
176
167
|
continue;
|
|
177
168
|
}
|
|
178
169
|
if (property.name === 'sorts') {
|
|
179
|
-
result.push({ ...property, displayOptions: { show: { resource: ['modelRecord'], operation: ['list'] } } }
|
|
170
|
+
result.push({ ...property, displayOptions: { show: { resource: ['modelRecord'], operation: ['list'] } } });
|
|
171
|
+
continue;
|
|
172
|
+
}
|
|
173
|
+
if (property.name === 'options') {
|
|
174
|
+
result.push({
|
|
175
|
+
...property,
|
|
176
|
+
options: [...((_a = property.options) !== null && _a !== void 0 ? _a : []), queryViewingTimezoneOption()],
|
|
177
|
+
});
|
|
180
178
|
continue;
|
|
181
179
|
}
|
|
182
180
|
result.push(property);
|
|
@@ -214,7 +212,6 @@ class LifeSpaceWorkflow extends LifeSpace_node_1.LifeSpace {
|
|
|
214
212
|
dark: 'file:lifespace.dark.svg',
|
|
215
213
|
},
|
|
216
214
|
description: 'Use LifeSpace in human-authored n8n workflows',
|
|
217
|
-
parameterPane: 'wide',
|
|
218
215
|
properties: humanProperties(description.properties),
|
|
219
216
|
};
|
|
220
217
|
const node = this;
|
|
@@ -226,11 +223,13 @@ class LifeSpaceWorkflow extends LifeSpace_node_1.LifeSpace {
|
|
|
226
223
|
getCanonicalFilterOperators: humanProjection_1.getCanonicalFilterOperators,
|
|
227
224
|
getCanonicalFilterOptions: humanProjection_1.getCanonicalFilterOptions,
|
|
228
225
|
getCanonicalTimeWindowFields: humanProjection_1.getCanonicalTimeWindowFields,
|
|
226
|
+
getSortableFields: humanProjection_1.getHumanSortableFields,
|
|
229
227
|
},
|
|
230
228
|
resourceMapping: {
|
|
231
229
|
...((_e = (_d = node.methods) === null || _d === void 0 ? void 0 : _d.resourceMapping) !== null && _e !== void 0 ? _e : {}),
|
|
232
230
|
getHumanRecordFields: humanProjection_1.getHumanRecordFields,
|
|
233
231
|
getHumanQueryFilterFields: humanProjection_1.getHumanQueryFilterFields,
|
|
232
|
+
getHumanTemporalRangeMutationFields: humanProjection_1.getHumanTemporalRangeMutationFields,
|
|
234
233
|
getActionInputFields: humanProjection_1.getHumanActionInputFields,
|
|
235
234
|
},
|
|
236
235
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LifeSpaceWorkflow.node.js","sourceRoot":"","sources":["../../../nodes/LifeSpaceWorkflow/LifeSpaceWorkflow.node.ts"],"names":[],"mappings":";;;AAOA,gEAAwD;AACxD,yEAAkF;AAClF,
|
|
1
|
+
{"version":3,"file":"LifeSpaceWorkflow.node.js","sourceRoot":"","sources":["../../../nodes/LifeSpaceWorkflow/LifeSpaceWorkflow.node.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,14 @@
|
|
|
1
1
|
import type { IDataObject, IExecuteFunctions, ILoadOptionsFunctions, INodePropertyOptions, ResourceMapperField, ResourceMapperFields } from 'n8n-workflow';
|
|
2
|
+
import { type QueryPredicate } from '../shared/lifeSpaceQuerySemantics';
|
|
2
3
|
export declare function getHumanRecordFields(this: ILoadOptionsFunctions): Promise<ResourceMapperFields>;
|
|
4
|
+
type TemporalMutationComponent = 'kind' | 'start' | 'end';
|
|
5
|
+
export declare function temporalMutationComponentSelector(field: string, component: TemporalMutationComponent): string;
|
|
6
|
+
export declare function getHumanTemporalRangeMutationFields(this: ILoadOptionsFunctions): Promise<ResourceMapperFields>;
|
|
3
7
|
export declare function getHumanActionInputFields(this: ILoadOptionsFunctions): Promise<ResourceMapperFields>;
|
|
4
8
|
export declare function getCanonicalFilterFields(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
|
|
9
|
+
export declare function humanFilterOperatorSelector(predicate: QueryPredicate, role?: string): string;
|
|
10
|
+
export declare function temporalSortFieldSelector(field: string): string;
|
|
11
|
+
export declare function getHumanSortableFields(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
|
|
5
12
|
export declare function getCanonicalFilterOperators(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
|
|
6
13
|
export declare function getCanonicalFilterOptions(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
|
|
7
14
|
export declare function getHumanQueryFilterFields(this: ILoadOptionsFunctions): Promise<ResourceMapperFields>;
|
|
@@ -15,9 +22,12 @@ export type CanonicalFilter = {
|
|
|
15
22
|
} | {
|
|
16
23
|
or: CanonicalFilter[];
|
|
17
24
|
};
|
|
18
|
-
export declare function
|
|
25
|
+
export declare function projectHumanTemporalRangeMutationFields(context: Pick<IExecuteFunctions, 'getNode'>, value: unknown): IDataObject;
|
|
26
|
+
export declare function projectHumanTemporalRanges(context: Pick<IExecuteFunctions, 'getNode'>, value: unknown): IDataObject;
|
|
27
|
+
export declare function projectHumanFilterBuilder(context: Pick<IExecuteFunctions, 'getNode'>, match: unknown, conditions: unknown, groups: unknown, timezone?: string): CanonicalFilter[];
|
|
19
28
|
export declare function projectQueryFilters(value: unknown): CanonicalFilter[];
|
|
20
29
|
export declare function canonicalTimeWindowSelector(field: string, operator: string): string;
|
|
21
30
|
export declare function getCanonicalTimeWindowFields(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
|
|
22
31
|
export declare function projectCanonicalTimeWindows(value: unknown): CanonicalFilter[];
|
|
23
32
|
export declare function humanExecutionContext(context: IExecuteFunctions): IExecuteFunctions;
|
|
33
|
+
export {};
|