@skedulo/integration-sdk 0.8.2 → 0.9.0
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/.claude/worktrees/agent-a16acadaf5412dffd/jest.config.js +12 -0
- package/.claude/worktrees/agent-a33c3e4636d488e49/jest.config.js +12 -0
- package/.claude/worktrees/agent-a5b1d2ffa4ceef4a6/jest.config.js +12 -0
- package/.claude/worktrees/agent-aa1db4c22eabbde8e/jest.config.js +12 -0
- package/.claude/worktrees/agent-ac197ae8c69d7061c/jest.config.js +12 -0
- package/CHANGELOG.md +15 -0
- package/dist/actions/data-flow/preview.action.d.ts.map +1 -1
- package/dist/actions/data-flow/preview.action.js +18 -3
- package/dist/actions/data-flow/preview.action.js.map +1 -1
- package/dist/actions/event/on-vendor.action.d.ts.map +1 -1
- package/dist/actions/event/on-vendor.action.js +0 -3
- package/dist/actions/event/on-vendor.action.js.map +1 -1
- package/dist/handlers/metadata.handler.d.ts +17 -0
- package/dist/handlers/metadata.handler.d.ts.map +1 -0
- package/dist/handlers/metadata.handler.js +50 -0
- package/dist/handlers/metadata.handler.js.map +1 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -2
- package/dist/index.js.map +1 -1
- package/dist/services/field-mapping.service.d.ts +7 -0
- package/dist/services/field-mapping.service.d.ts.map +1 -1
- package/dist/services/field-mapping.service.js +16 -0
- package/dist/services/field-mapping.service.js.map +1 -1
- package/dist/services/sync-runner.d.ts +0 -6
- package/dist/services/sync-runner.d.ts.map +1 -1
- package/dist/services/sync-runner.js +2 -77
- package/dist/services/sync-runner.js.map +1 -1
- package/dist/services/sync.service.d.ts +10 -1
- package/dist/services/sync.service.d.ts.map +1 -1
- package/dist/services/sync.service.js +29 -3
- package/dist/services/sync.service.js.map +1 -1
- package/dist/utils/coerceFilterValues.d.ts +10 -0
- package/dist/utils/coerceFilterValues.d.ts.map +1 -0
- package/dist/utils/coerceFilterValues.js +51 -0
- package/dist/utils/coerceFilterValues.js.map +1 -0
- package/dist/utils/compileFilter.d.ts.map +1 -1
- package/dist/utils/compileFilter.js +13 -1
- package/dist/utils/compileFilter.js.map +1 -1
- package/dist/utils/normalizeDataFlow.d.ts +3 -0
- package/dist/utils/normalizeDataFlow.d.ts.map +1 -0
- package/dist/utils/normalizeDataFlow.js +37 -0
- package/dist/utils/normalizeDataFlow.js.map +1 -0
- package/dist/utils.d.ts +2 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +10 -0
- package/dist/utils.js.map +1 -0
- package/package.json +1 -1
- package/yarn.lock +3 -3
- package/dist/actions/data-flow.action.d.ts +0 -62
- package/dist/actions/data-flow.action.d.ts.map +0 -1
- package/dist/actions/data-flow.action.js +0 -217
- package/dist/actions/data-flow.action.js.map +0 -1
- package/dist/actions/event.action.d.ts +0 -32
- package/dist/actions/event.action.d.ts.map +0 -1
- package/dist/actions/event.action.js +0 -113
- package/dist/actions/event.action.js.map +0 -1
- package/dist/actions/metadata.action.d.ts +0 -44
- package/dist/actions/metadata.action.d.ts.map +0 -1
- package/dist/actions/metadata.action.js +0 -96
- package/dist/actions/metadata.action.js.map +0 -1
- package/dist/actions/scheduled-job.action.d.ts +0 -73
- package/dist/actions/scheduled-job.action.d.ts.map +0 -1
- package/dist/actions/scheduled-job.action.js +0 -355
- package/dist/actions/scheduled-job.action.js.map +0 -1
- package/dist/actions/sync.action.d.ts +0 -26
- package/dist/actions/sync.action.d.ts.map +0 -1
- package/dist/actions/sync.action.js +0 -81
- package/dist/actions/sync.action.js.map +0 -1
- package/dist/services/artifact-builder.d.ts +0 -95
- package/dist/services/artifact-builder.d.ts.map +0 -1
- package/dist/services/artifact-builder.js +0 -142
- package/dist/services/artifact-builder.js.map +0 -1
|
@@ -1,217 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.makeDataFlowCreateAction = makeDataFlowCreateAction;
|
|
4
|
-
exports.makeDataFlowUpdateAction = makeDataFlowUpdateAction;
|
|
5
|
-
exports.makeDataFlowDeleteAction = makeDataFlowDeleteAction;
|
|
6
|
-
exports.makeDataFlowActivateAction = makeDataFlowActivateAction;
|
|
7
|
-
exports.makeDataFlowDeactivateAction = makeDataFlowDeactivateAction;
|
|
8
|
-
exports.makeDataFlowGetAction = makeDataFlowGetAction;
|
|
9
|
-
exports.makeDataFlowListAction = makeDataFlowListAction;
|
|
10
|
-
const data_flow_spec_interface_1 = require("../interfaces/data-flow-spec.interface");
|
|
11
|
-
const action_names_1 = require("./utils/action-names");
|
|
12
|
-
const errors_1 = require("./utils/errors");
|
|
13
|
-
function isNonEmptyString(v) {
|
|
14
|
-
return typeof v === 'string' && v.length > 0;
|
|
15
|
-
}
|
|
16
|
-
function parseId(raw) {
|
|
17
|
-
const obj = (raw !== null && raw !== void 0 ? raw : {});
|
|
18
|
-
if (!Number.isInteger(obj.id) || obj.id <= 0) {
|
|
19
|
-
throw new errors_1.InvalidInputError('id must be a positive integer');
|
|
20
|
-
}
|
|
21
|
-
return obj.id;
|
|
22
|
-
}
|
|
23
|
-
// ── data-flow.create ─────────────────────────────────────────────────────────
|
|
24
|
-
function parseCreateInput(raw) {
|
|
25
|
-
var _a, _b, _c, _d, _e, _f, _g;
|
|
26
|
-
const obj = (raw !== null && raw !== void 0 ? raw : {});
|
|
27
|
-
const { name, sourceObject, targetObject, matchKeyField } = obj;
|
|
28
|
-
if (!isNonEmptyString(name)) {
|
|
29
|
-
throw new errors_1.InvalidInputError('name must be a non-empty string');
|
|
30
|
-
}
|
|
31
|
-
if (!isNonEmptyString(sourceObject)) {
|
|
32
|
-
throw new errors_1.InvalidInputError('sourceObject must be a non-empty string');
|
|
33
|
-
}
|
|
34
|
-
if (!isNonEmptyString(targetObject)) {
|
|
35
|
-
throw new errors_1.InvalidInputError('targetObject must be a non-empty string');
|
|
36
|
-
}
|
|
37
|
-
if (!isNonEmptyString(matchKeyField)) {
|
|
38
|
-
throw new errors_1.InvalidInputError('matchKeyField must be a non-empty string');
|
|
39
|
-
}
|
|
40
|
-
return {
|
|
41
|
-
// Authoritative integrationType is injected by the handler from context;
|
|
42
|
-
// placeholder here keeps the parsed shape well-typed.
|
|
43
|
-
integrationType: '',
|
|
44
|
-
name,
|
|
45
|
-
description: (_a = obj.description) !== null && _a !== void 0 ? _a : null,
|
|
46
|
-
sourceSystem: (_b = obj.sourceSystem) !== null && _b !== void 0 ? _b : null,
|
|
47
|
-
targetSystem: (_c = obj.targetSystem) !== null && _c !== void 0 ? _c : null,
|
|
48
|
-
sourceObject,
|
|
49
|
-
targetObject,
|
|
50
|
-
triggerConfig: (_d = obj.triggerConfig) !== null && _d !== void 0 ? _d : null,
|
|
51
|
-
mappingConfig: (_e = obj.mappingConfig) !== null && _e !== void 0 ? _e : null,
|
|
52
|
-
filter: (_f = obj.filter) !== null && _f !== void 0 ? _f : null,
|
|
53
|
-
matchKeyField,
|
|
54
|
-
executionOrder: (_g = obj.executionOrder) !== null && _g !== void 0 ? _g : null,
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Create a new data flow. New flows start INACTIVE per IS schema — no ES
|
|
59
|
-
* artifact is created here. Call `data-flow.activate` to provision the ES side.
|
|
60
|
-
*/
|
|
61
|
-
function makeDataFlowCreateAction() {
|
|
62
|
-
return {
|
|
63
|
-
name: action_names_1.ACTIONS.dataFlow.create,
|
|
64
|
-
parseInput: parseCreateInput,
|
|
65
|
-
async handler(input, ctx) {
|
|
66
|
-
// IS resolves tenantIntegrationId from integrationType + tenantId (token);
|
|
67
|
-
// take integrationType authoritatively from this function's context.
|
|
68
|
-
return ctx.dataFlowService.create(Object.assign(Object.assign({}, input), { integrationType: ctx.integrationType }));
|
|
69
|
-
},
|
|
70
|
-
};
|
|
71
|
-
}
|
|
72
|
-
function parseUpdateInput(raw) {
|
|
73
|
-
const obj = (raw !== null && raw !== void 0 ? raw : {});
|
|
74
|
-
const { id, patch } = obj;
|
|
75
|
-
if (!Number.isInteger(id) || id <= 0) {
|
|
76
|
-
throw new errors_1.InvalidInputError('id must be a positive integer');
|
|
77
|
-
}
|
|
78
|
-
if (!patch || typeof patch !== 'object' || Array.isArray(patch)) {
|
|
79
|
-
throw new errors_1.InvalidInputError('patch must be an object');
|
|
80
|
-
}
|
|
81
|
-
return { id: id, patch: patch };
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Update an existing data flow.
|
|
85
|
-
*
|
|
86
|
-
* Constraints (business rules):
|
|
87
|
-
* - `sourceSystem` / `targetSystem` (direction) are immutable after create.
|
|
88
|
-
* Reject with `DIRECTION_IS_IMMUTABLE`.
|
|
89
|
-
* - If the flow is currently ACTIVE (its `sync_config` carries a
|
|
90
|
-
* `trigger_name`) AND the patch changes `strategy` or `interval_minutes`,
|
|
91
|
-
* the artifact would need to be recreated. v1 requires the caller to
|
|
92
|
-
* deactivate first and rejects with `DEACTIVATE_BEFORE_STRATEGY_CHANGE`.
|
|
93
|
-
*/
|
|
94
|
-
function makeDataFlowUpdateAction() {
|
|
95
|
-
return {
|
|
96
|
-
name: action_names_1.ACTIONS.dataFlow.update,
|
|
97
|
-
parseInput: parseUpdateInput,
|
|
98
|
-
async handler(input, ctx) {
|
|
99
|
-
var _a;
|
|
100
|
-
const { id, patch } = input;
|
|
101
|
-
const patchRecord = patch;
|
|
102
|
-
if (Object.prototype.hasOwnProperty.call(patchRecord, 'sourceSystem') ||
|
|
103
|
-
Object.prototype.hasOwnProperty.call(patchRecord, 'targetSystem')) {
|
|
104
|
-
throw new errors_1.ActionError('DIRECTION_IS_IMMUTABLE', 'Direction is locked after creation. To change direction, delete this flow and create a new one.');
|
|
105
|
-
}
|
|
106
|
-
const incomingTrigger = patch.triggerConfig;
|
|
107
|
-
if (incomingTrigger) {
|
|
108
|
-
const incoming = (0, data_flow_spec_interface_1.asSyncConfig)(incomingTrigger);
|
|
109
|
-
if (incoming) {
|
|
110
|
-
const flow = await ctx.dataFlowService.getFlowById(id);
|
|
111
|
-
if (!flow) {
|
|
112
|
-
throw new errors_1.ActionError('FLOW_NOT_FOUND', `Flow ${id} not found`);
|
|
113
|
-
}
|
|
114
|
-
// Normalize both sides so a legacy-shaped DB row compares correctly
|
|
115
|
-
// against the new-shaped patch.
|
|
116
|
-
const existing = (0, data_flow_spec_interface_1.asSyncConfig)((_a = flow.triggerConfig) !== null && _a !== void 0 ? _a : null);
|
|
117
|
-
const isActive = !!(existing === null || existing === void 0 ? void 0 : existing.trigger_name);
|
|
118
|
-
if (isActive && existing && incoming.strategy !== existing.strategy) {
|
|
119
|
-
throw new errors_1.ActionError('DEACTIVATE_BEFORE_STRATEGY_CHANGE', 'Deactivate the flow before changing the sync strategy');
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
return ctx.dataFlowService.update(id, patch);
|
|
124
|
-
},
|
|
125
|
-
};
|
|
126
|
-
}
|
|
127
|
-
/**
|
|
128
|
-
* Delete a data flow. If currently ACTIVE (has a provisioned artifact),
|
|
129
|
-
* deactivate first so the artifact is cleaned up, then delete from IS.
|
|
130
|
-
*/
|
|
131
|
-
function makeDataFlowDeleteAction() {
|
|
132
|
-
return {
|
|
133
|
-
name: action_names_1.ACTIONS.dataFlow.delete,
|
|
134
|
-
parseInput(raw) {
|
|
135
|
-
return { id: parseId(raw) };
|
|
136
|
-
},
|
|
137
|
-
async handler(input, ctx) {
|
|
138
|
-
var _a;
|
|
139
|
-
const flow = await ctx.dataFlowService.getFlowById(input.id);
|
|
140
|
-
if (!flow) {
|
|
141
|
-
throw new errors_1.ActionError('FLOW_NOT_FOUND', `Flow ${input.id} not found`);
|
|
142
|
-
}
|
|
143
|
-
const sc = (0, data_flow_spec_interface_1.asSyncConfig)((_a = flow.triggerConfig) !== null && _a !== void 0 ? _a : null);
|
|
144
|
-
if (sc === null || sc === void 0 ? void 0 : sc.trigger_name) {
|
|
145
|
-
await ctx.dataFlowService.deactivate(input.id, ctx);
|
|
146
|
-
}
|
|
147
|
-
await ctx.dataFlowService.delete(input.id);
|
|
148
|
-
return { id: input.id };
|
|
149
|
-
},
|
|
150
|
-
};
|
|
151
|
-
}
|
|
152
|
-
/**
|
|
153
|
-
* Activate a data flow. Two-phase fail-closed: ES artifact created first,
|
|
154
|
-
* then IS PATCH; if PATCH fails the ES artifact is compensatingly deleted.
|
|
155
|
-
* See `DataFlowService.activate` for full semantics.
|
|
156
|
-
*/
|
|
157
|
-
function makeDataFlowActivateAction() {
|
|
158
|
-
return {
|
|
159
|
-
name: action_names_1.ACTIONS.dataFlow.activate,
|
|
160
|
-
parseInput(raw) {
|
|
161
|
-
return { id: parseId(raw) };
|
|
162
|
-
},
|
|
163
|
-
async handler(input, ctx) {
|
|
164
|
-
return ctx.dataFlowService.activate(input.id, ctx);
|
|
165
|
-
},
|
|
166
|
-
};
|
|
167
|
-
}
|
|
168
|
-
/**
|
|
169
|
-
* Deactivate a data flow. Deletes the artifact (404 = success) and clears
|
|
170
|
-
* `trigger_name`/`trigger_type` from `sync_config` in IS.
|
|
171
|
-
*/
|
|
172
|
-
function makeDataFlowDeactivateAction() {
|
|
173
|
-
return {
|
|
174
|
-
name: action_names_1.ACTIONS.dataFlow.deactivate,
|
|
175
|
-
parseInput(raw) {
|
|
176
|
-
return { id: parseId(raw) };
|
|
177
|
-
},
|
|
178
|
-
async handler(input, ctx) {
|
|
179
|
-
return ctx.dataFlowService.deactivate(input.id, ctx);
|
|
180
|
-
},
|
|
181
|
-
};
|
|
182
|
-
}
|
|
183
|
-
function makeDataFlowGetAction() {
|
|
184
|
-
return {
|
|
185
|
-
name: action_names_1.ACTIONS.dataFlow.get,
|
|
186
|
-
parseInput(raw) {
|
|
187
|
-
return { id: parseId(raw) };
|
|
188
|
-
},
|
|
189
|
-
async handler(input, ctx) {
|
|
190
|
-
const flow = await ctx.dataFlowService.getFlowById(input.id);
|
|
191
|
-
if (!flow) {
|
|
192
|
-
throw new errors_1.ActionError('FLOW_NOT_FOUND', `Flow ${input.id} not found`);
|
|
193
|
-
}
|
|
194
|
-
return flow;
|
|
195
|
-
},
|
|
196
|
-
};
|
|
197
|
-
}
|
|
198
|
-
function makeDataFlowListAction() {
|
|
199
|
-
return {
|
|
200
|
-
name: action_names_1.ACTIONS.dataFlow.list,
|
|
201
|
-
parseInput(raw) {
|
|
202
|
-
const obj = (raw !== null && raw !== void 0 ? raw : {});
|
|
203
|
-
const filter = obj.filter;
|
|
204
|
-
if (filter !== undefined &&
|
|
205
|
-
(filter === null || typeof filter !== 'object' || Array.isArray(filter))) {
|
|
206
|
-
throw new errors_1.InvalidInputError('filter must be an object when provided');
|
|
207
|
-
}
|
|
208
|
-
return { filter: filter };
|
|
209
|
-
},
|
|
210
|
-
async handler(input, ctx) {
|
|
211
|
-
// Scope to this function's own integration type so a vendor function
|
|
212
|
-
// never lists another vendor's flows.
|
|
213
|
-
return ctx.dataFlowService.list(Object.assign(Object.assign({}, input.filter), { integrationType: ctx.integrationType }));
|
|
214
|
-
},
|
|
215
|
-
};
|
|
216
|
-
}
|
|
217
|
-
//# sourceMappingURL=data-flow.action.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"data-flow.action.js","sourceRoot":"","sources":["../../src/actions/data-flow.action.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import type { Adapter } from '../interfaces/adapter.interface';
|
|
2
|
-
import type { AdapterRegistry } from '../adapters/adapter-registry';
|
|
3
|
-
import type { SyncResult } from '../interfaces/sync-result.interface';
|
|
4
|
-
import type { Action } from './utils/types';
|
|
5
|
-
type EventDeps = {
|
|
6
|
-
adapter: Adapter;
|
|
7
|
-
registry: AdapterRegistry;
|
|
8
|
-
};
|
|
9
|
-
type SkeduloOperation = 'INSERT' | 'UPDATE' | 'DELETE';
|
|
10
|
-
interface SkeduloChange {
|
|
11
|
-
operation: SkeduloOperation;
|
|
12
|
-
recordId: string;
|
|
13
|
-
payload: Record<string, unknown>;
|
|
14
|
-
}
|
|
15
|
-
export interface OnSkeduloEventInput {
|
|
16
|
-
/** Resolved from the `sked-data-flow-id` header (passed by the dispatcher as parse meta). */
|
|
17
|
-
dataFlowId: number;
|
|
18
|
-
changes: SkeduloChange[];
|
|
19
|
-
}
|
|
20
|
-
export interface OnSkeduloEventOutput {
|
|
21
|
-
message: string;
|
|
22
|
-
results: SyncResult[];
|
|
23
|
-
}
|
|
24
|
-
export declare function makeOnSkeduloEventAction(deps: EventDeps): Action<OnSkeduloEventInput, OnSkeduloEventOutput>;
|
|
25
|
-
export type OnVendorEventInput = unknown;
|
|
26
|
-
export interface OnVendorEventOutput {
|
|
27
|
-
message: string;
|
|
28
|
-
results: SyncResult[];
|
|
29
|
-
}
|
|
30
|
-
export declare function makeOnVendorEventAction(deps: EventDeps): Action<OnVendorEventInput, OnVendorEventOutput>;
|
|
31
|
-
export {};
|
|
32
|
-
//# sourceMappingURL=event.action.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"event.action.d.ts","sourceRoot":"","sources":["../../src/actions/event.action.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAEpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AAItE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAE5C,KAAK,SAAS,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,eAAe,CAAA;CAAE,CAAC;AAIjE,KAAK,gBAAgB,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEvD,UAAU,aAAa;IACrB,SAAS,EAAE,gBAAgB,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,mBAAmB;IAClC,6FAA6F;IAC7F,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,aAAa,EAAE,CAAC;CAC1B;AACD,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,UAAU,EAAE,CAAC;CACvB;AAkCD,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,SAAS,GACd,MAAM,CAAC,mBAAmB,EAAE,oBAAoB,CAAC,CA8CnD;AAID,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAC;AACzC,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,UAAU,EAAE,CAAC;CACvB;AAED,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,SAAS,GACd,MAAM,CAAC,kBAAkB,EAAE,mBAAmB,CAAC,CA2CjD"}
|
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.makeOnSkeduloEventAction = makeOnSkeduloEventAction;
|
|
4
|
-
exports.makeOnVendorEventAction = makeOnVendorEventAction;
|
|
5
|
-
const sync_runner_1 = require("../services/sync-runner");
|
|
6
|
-
const action_names_1 = require("./utils/action-names");
|
|
7
|
-
const helpers_1 = require("./utils/helpers");
|
|
8
|
-
const errors_1 = require("./utils/errors");
|
|
9
|
-
/**
|
|
10
|
-
* Parse one element of the ElasticServer triggered-action `call_url` body. Each
|
|
11
|
-
* element is the GraphQL query result wrapped under a single subscription-name
|
|
12
|
-
* key inside `data`, plus an `operation`, e.g.
|
|
13
|
-
* `{ "data": { "contacts": { "UID": "…", "Email": … } }, "operation": "INSERT" }`
|
|
14
|
-
*/
|
|
15
|
-
function parseSkeduloChange(raw, index) {
|
|
16
|
-
if (!raw || typeof raw !== 'object' || Array.isArray(raw)) {
|
|
17
|
-
throw new errors_1.InvalidInputError(`change[${index}] must be an object`);
|
|
18
|
-
}
|
|
19
|
-
const obj = raw;
|
|
20
|
-
const operation = obj.operation;
|
|
21
|
-
if (operation !== 'INSERT' && operation !== 'UPDATE' && operation !== 'DELETE') {
|
|
22
|
-
throw new errors_1.InvalidInputError(`change[${index}] has unsupported operation: ${String(operation)}`);
|
|
23
|
-
}
|
|
24
|
-
// The record sits under the single key inside `data` (its name is the schema's
|
|
25
|
-
// GraphQL subscription name, which we don't know statically).
|
|
26
|
-
const container = obj.data;
|
|
27
|
-
const record = container && typeof container === 'object' && !Array.isArray(container)
|
|
28
|
-
? Object.values(container)[0]
|
|
29
|
-
: undefined;
|
|
30
|
-
if (!record || typeof record !== 'object') {
|
|
31
|
-
throw new errors_1.InvalidInputError(`change[${index}] is missing a record under "data"`);
|
|
32
|
-
}
|
|
33
|
-
const recordId = record.UID;
|
|
34
|
-
if (typeof recordId !== 'string' || !recordId) {
|
|
35
|
-
throw new errors_1.InvalidInputError(`change[${index}] record is missing a UID`);
|
|
36
|
-
}
|
|
37
|
-
return { operation, recordId, payload: record };
|
|
38
|
-
}
|
|
39
|
-
function makeOnSkeduloEventAction(deps) {
|
|
40
|
-
return {
|
|
41
|
-
name: action_names_1.ACTIONS.event.onSkedulo,
|
|
42
|
-
parseInput(raw, meta) {
|
|
43
|
-
var _a;
|
|
44
|
-
const dataFlowId = (_a = meta === null || meta === void 0 ? void 0 : meta.dataFlowId) !== null && _a !== void 0 ? _a : raw === null || raw === void 0 ? void 0 : raw.dataFlowId;
|
|
45
|
-
if (!Number.isInteger(dataFlowId) || dataFlowId <= 0) {
|
|
46
|
-
throw new errors_1.InvalidInputError('dataFlowId must be a positive integer');
|
|
47
|
-
}
|
|
48
|
-
// ES posts an array; tolerate `{ changes: [...] }` or a single object for
|
|
49
|
-
// manual / testing calls.
|
|
50
|
-
const obj = (raw !== null && raw !== void 0 ? raw : {});
|
|
51
|
-
const elements = Array.isArray(raw) ? raw : Array.isArray(obj.changes) ? obj.changes : [raw];
|
|
52
|
-
const changes = elements.map(parseSkeduloChange);
|
|
53
|
-
return { dataFlowId: dataFlowId, changes };
|
|
54
|
-
},
|
|
55
|
-
async handler(input, ctx) {
|
|
56
|
-
const integrationType = deps.adapter.integrationType;
|
|
57
|
-
const lookupStrategy = (0, helpers_1.resolveLookupStrategy)(deps.adapter);
|
|
58
|
-
const runner = new sync_runner_1.SyncRunner(deps.registry);
|
|
59
|
-
const results = [];
|
|
60
|
-
for (const change of input.changes) {
|
|
61
|
-
const result = await runner.handleFlowEvent({
|
|
62
|
-
flowId: input.dataFlowId,
|
|
63
|
-
event: {
|
|
64
|
-
integrationType,
|
|
65
|
-
objectType: '',
|
|
66
|
-
operation: change.operation,
|
|
67
|
-
recordId: change.recordId,
|
|
68
|
-
payload: change.payload,
|
|
69
|
-
dataFlowId: input.dataFlowId,
|
|
70
|
-
},
|
|
71
|
-
options: { lookupStrategy },
|
|
72
|
-
}, ctx);
|
|
73
|
-
results.push(result);
|
|
74
|
-
}
|
|
75
|
-
if (results.some((r) => r.status === 'failed')) {
|
|
76
|
-
throw new errors_1.ActionError('PROCESSING_FAILED', 'Skedulo event processing failed', results);
|
|
77
|
-
}
|
|
78
|
-
return { message: 'Skedulo event processed', results };
|
|
79
|
-
},
|
|
80
|
-
};
|
|
81
|
-
}
|
|
82
|
-
function makeOnVendorEventAction(deps) {
|
|
83
|
-
return {
|
|
84
|
-
name: action_names_1.ACTIONS.event.onVendor,
|
|
85
|
-
parseInput(raw) {
|
|
86
|
-
// Vendor payload is opaque — adapter.parseChangeEvent validates inside handler.
|
|
87
|
-
return raw;
|
|
88
|
-
},
|
|
89
|
-
async handler(input, ctx) {
|
|
90
|
-
const adapter = deps.adapter;
|
|
91
|
-
const lookupStrategy = (0, helpers_1.resolveLookupStrategy)(adapter);
|
|
92
|
-
if (!adapter.parseChangeEvent) {
|
|
93
|
-
throw new errors_1.ActionError('NOT_IMPLEMENTED', `${adapter.integrationType} adapter does not implement parseChangeEvent`);
|
|
94
|
-
}
|
|
95
|
-
const parsed = adapter.parseChangeEvent(input);
|
|
96
|
-
if (!('event' in parsed)) {
|
|
97
|
-
throw new errors_1.InvalidInputError(parsed.error);
|
|
98
|
-
}
|
|
99
|
-
const results = await new sync_runner_1.SyncRunner(deps.registry).handleEvent({ event: parsed.event, options: { lookupStrategy } }, ctx);
|
|
100
|
-
if (results.some((r) => r.status === 'precondition_failed')) {
|
|
101
|
-
throw new errors_1.ActionError('PRECONDITION_FAILED', 'Integration not bootstrapped — run /setup then /run-all-flows', results);
|
|
102
|
-
}
|
|
103
|
-
if (results.some((r) => r.status === 'failed')) {
|
|
104
|
-
throw new errors_1.ActionError('PROCESSING_FAILED', 'Event processing failed', results);
|
|
105
|
-
}
|
|
106
|
-
return {
|
|
107
|
-
message: `${parsed.event.objectType} ${parsed.event.operation.toLowerCase()} processed`,
|
|
108
|
-
results,
|
|
109
|
-
};
|
|
110
|
-
},
|
|
111
|
-
};
|
|
112
|
-
}
|
|
113
|
-
//# sourceMappingURL=event.action.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"event.action.js","sourceRoot":"","sources":["../../src/actions/event.action.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import type { Adapter, DataFlowTemplate, FieldInfo, ObjectInfo, SampleAPI, SampleRecord } from '../interfaces/adapter.interface';
|
|
2
|
-
import type { Action } from './utils/types';
|
|
3
|
-
export interface GetObjectsInput {
|
|
4
|
-
system?: string;
|
|
5
|
-
}
|
|
6
|
-
export interface GetObjectsOutput {
|
|
7
|
-
system: string;
|
|
8
|
-
objects: ObjectInfo[];
|
|
9
|
-
}
|
|
10
|
-
export declare function makeGetObjectsAction(adapter: Adapter): Action<GetObjectsInput, GetObjectsOutput>;
|
|
11
|
-
export interface GetFieldsInput {
|
|
12
|
-
system?: string;
|
|
13
|
-
object: string;
|
|
14
|
-
}
|
|
15
|
-
export interface GetFieldsOutput {
|
|
16
|
-
system: string;
|
|
17
|
-
object: string;
|
|
18
|
-
fields: FieldInfo[];
|
|
19
|
-
}
|
|
20
|
-
export declare function makeGetFieldsAction(adapter: Adapter): Action<GetFieldsInput, GetFieldsOutput>;
|
|
21
|
-
export interface GetTemplatesInput {
|
|
22
|
-
system?: string;
|
|
23
|
-
}
|
|
24
|
-
export interface GetTemplatesOutput {
|
|
25
|
-
templates: DataFlowTemplate[];
|
|
26
|
-
}
|
|
27
|
-
export declare function makeGetTemplatesAction(adapter: Adapter): Action<GetTemplatesInput, GetTemplatesOutput>;
|
|
28
|
-
export interface GetSampleApisInput {
|
|
29
|
-
system?: string;
|
|
30
|
-
}
|
|
31
|
-
export interface GetSampleApisOutput {
|
|
32
|
-
apis: SampleAPI[];
|
|
33
|
-
}
|
|
34
|
-
export declare function makeGetSampleApisAction(adapter: Adapter): Action<GetSampleApisInput, GetSampleApisOutput>;
|
|
35
|
-
export interface GetSampleRecordsInput {
|
|
36
|
-
system?: string;
|
|
37
|
-
objectType: string;
|
|
38
|
-
limit: number;
|
|
39
|
-
}
|
|
40
|
-
export interface GetSampleRecordsOutput {
|
|
41
|
-
records: SampleRecord[];
|
|
42
|
-
}
|
|
43
|
-
export declare function makeGetSampleRecordsAction(adapter: Adapter): Action<GetSampleRecordsInput, GetSampleRecordsOutput>;
|
|
44
|
-
//# sourceMappingURL=metadata.action.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"metadata.action.d.ts","sourceRoot":"","sources":["../../src/actions/metadata.action.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,gBAAgB,EAChB,SAAS,EACT,UAAU,EACV,SAAS,EACT,YAAY,EACb,MAAM,iCAAiC,CAAC;AAIzC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAY5C,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AACD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,UAAU,EAAE,CAAC;CACvB;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAUhG;AAID,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AACD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,SAAS,EAAE,CAAC;CACrB;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC,cAAc,EAAE,eAAe,CAAC,CAkB7F;AAID,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AACD,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,gBAAgB,EAAE,CAAC;CAC/B;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,OAAO,GACf,MAAM,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,CAU/C;AAID,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AACD,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,SAAS,EAAE,CAAC;CACnB;AAED,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,OAAO,GACf,MAAM,CAAC,kBAAkB,EAAE,mBAAmB,CAAC,CAUjD;AAID,MAAM,WAAW,qBAAqB;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf;AACD,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,YAAY,EAAE,CAAC;CACzB;AAED,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,OAAO,GACf,MAAM,CAAC,qBAAqB,EAAE,sBAAsB,CAAC,CA6BvD"}
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.makeGetObjectsAction = makeGetObjectsAction;
|
|
4
|
-
exports.makeGetFieldsAction = makeGetFieldsAction;
|
|
5
|
-
exports.makeGetTemplatesAction = makeGetTemplatesAction;
|
|
6
|
-
exports.makeGetSampleApisAction = makeGetSampleApisAction;
|
|
7
|
-
exports.makeGetSampleRecordsAction = makeGetSampleRecordsAction;
|
|
8
|
-
const action_names_1 = require("./utils/action-names");
|
|
9
|
-
const helpers_1 = require("./utils/helpers");
|
|
10
|
-
const errors_1 = require("./utils/errors");
|
|
11
|
-
/** Default page size for `metadata.get-sample-records` when callers omit `limit`. */
|
|
12
|
-
const DEFAULT_SAMPLE_RECORD_LIMIT = 5;
|
|
13
|
-
function parseSystem(raw) {
|
|
14
|
-
const obj = (raw !== null && raw !== void 0 ? raw : {});
|
|
15
|
-
return { system: typeof obj.system === 'string' ? obj.system : undefined };
|
|
16
|
-
}
|
|
17
|
-
function makeGetObjectsAction(adapter) {
|
|
18
|
-
return {
|
|
19
|
-
name: action_names_1.ACTIONS.metadata.getObjects,
|
|
20
|
-
parseInput: parseSystem,
|
|
21
|
-
async handler(input, ctx) {
|
|
22
|
-
const { system, adapter: resolved } = (0, helpers_1.resolveSystem)(adapter, input.system);
|
|
23
|
-
const objects = await resolved.getObjects(ctx);
|
|
24
|
-
return { system, objects };
|
|
25
|
-
},
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
function makeGetFieldsAction(adapter) {
|
|
29
|
-
return {
|
|
30
|
-
name: action_names_1.ACTIONS.metadata.getFields,
|
|
31
|
-
parseInput(raw) {
|
|
32
|
-
const obj = (raw !== null && raw !== void 0 ? raw : {});
|
|
33
|
-
const system = typeof obj.system === 'string' ? obj.system : undefined;
|
|
34
|
-
const object = obj.object;
|
|
35
|
-
if (typeof object !== 'string' || !object) {
|
|
36
|
-
throw new errors_1.InvalidInputError('object is required');
|
|
37
|
-
}
|
|
38
|
-
return { system, object };
|
|
39
|
-
},
|
|
40
|
-
async handler(input, ctx) {
|
|
41
|
-
const { system, adapter: resolved } = (0, helpers_1.resolveSystem)(adapter, input.system);
|
|
42
|
-
const fields = await resolved.getFields(ctx, input.object);
|
|
43
|
-
return { system, object: input.object, fields };
|
|
44
|
-
},
|
|
45
|
-
};
|
|
46
|
-
}
|
|
47
|
-
function makeGetTemplatesAction(adapter) {
|
|
48
|
-
return {
|
|
49
|
-
name: action_names_1.ACTIONS.metadata.getTemplates,
|
|
50
|
-
parseInput: parseSystem,
|
|
51
|
-
async handler(input) {
|
|
52
|
-
var _a, _b;
|
|
53
|
-
const { adapter: resolved } = (0, helpers_1.resolveSystem)(adapter, input.system);
|
|
54
|
-
const templates = (_b = (await ((_a = resolved.getTemplates) === null || _a === void 0 ? void 0 : _a.call(resolved)))) !== null && _b !== void 0 ? _b : [];
|
|
55
|
-
return { templates };
|
|
56
|
-
},
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
function makeGetSampleApisAction(adapter) {
|
|
60
|
-
return {
|
|
61
|
-
name: action_names_1.ACTIONS.metadata.getSampleApis,
|
|
62
|
-
parseInput: parseSystem,
|
|
63
|
-
async handler(input) {
|
|
64
|
-
var _a, _b;
|
|
65
|
-
const { adapter: resolved } = (0, helpers_1.resolveSystem)(adapter, input.system);
|
|
66
|
-
const apis = (_b = (_a = resolved.getSampleAPIs) === null || _a === void 0 ? void 0 : _a.call(resolved)) !== null && _b !== void 0 ? _b : [];
|
|
67
|
-
return { apis };
|
|
68
|
-
},
|
|
69
|
-
};
|
|
70
|
-
}
|
|
71
|
-
function makeGetSampleRecordsAction(adapter) {
|
|
72
|
-
return {
|
|
73
|
-
name: action_names_1.ACTIONS.metadata.getSampleRecords,
|
|
74
|
-
parseInput(raw) {
|
|
75
|
-
const obj = (raw !== null && raw !== void 0 ? raw : {});
|
|
76
|
-
const system = typeof obj.system === 'string' ? obj.system : undefined;
|
|
77
|
-
const objectType = obj.objectType;
|
|
78
|
-
if (typeof objectType !== 'string' || !objectType) {
|
|
79
|
-
throw new errors_1.InvalidInputError('objectType is required');
|
|
80
|
-
}
|
|
81
|
-
const limit = obj.limit === undefined ? DEFAULT_SAMPLE_RECORD_LIMIT : Number(obj.limit);
|
|
82
|
-
if (!Number.isInteger(limit) || limit <= 0) {
|
|
83
|
-
throw new errors_1.InvalidInputError('limit must be a positive integer');
|
|
84
|
-
}
|
|
85
|
-
return { system, objectType, limit };
|
|
86
|
-
},
|
|
87
|
-
async handler(input, ctx) {
|
|
88
|
-
const { adapter: resolved } = (0, helpers_1.resolveSystem)(adapter, input.system);
|
|
89
|
-
const fields = await resolved.getFields(ctx, input.objectType);
|
|
90
|
-
const properties = fields.map((f) => f.name);
|
|
91
|
-
const records = await resolved.fetchSampleRecords(ctx, input.objectType, properties, input.limit);
|
|
92
|
-
return { records };
|
|
93
|
-
},
|
|
94
|
-
};
|
|
95
|
-
}
|
|
96
|
-
//# sourceMappingURL=metadata.action.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"metadata.action.js","sourceRoot":"","sources":["../../src/actions/metadata.action.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import type { Adapter } from '../interfaces/adapter.interface';
|
|
2
|
-
import type { AdapterRegistry } from '../adapters/adapter-registry';
|
|
3
|
-
import type { BatchResult } from '../interfaces/sync-result.interface';
|
|
4
|
-
import { JobIntervalUnit, type ScheduledJob } from '../interfaces/scheduled-job.interface';
|
|
5
|
-
import type { Action } from './utils/types';
|
|
6
|
-
type JobDeps = {
|
|
7
|
-
adapter: Adapter;
|
|
8
|
-
registry: AdapterRegistry;
|
|
9
|
-
};
|
|
10
|
-
interface RunJobInput {
|
|
11
|
-
webhookName: string;
|
|
12
|
-
}
|
|
13
|
-
type PerFlowResultBase = {
|
|
14
|
-
flowId: number;
|
|
15
|
-
sourceObject?: string;
|
|
16
|
-
targetObject?: string;
|
|
17
|
-
};
|
|
18
|
-
export type PerFlowResult = PerFlowResultBase & ({
|
|
19
|
-
skipped: true;
|
|
20
|
-
reason: string;
|
|
21
|
-
} | {
|
|
22
|
-
error: string;
|
|
23
|
-
} | (BatchResult & {
|
|
24
|
-
durationMs: number;
|
|
25
|
-
}));
|
|
26
|
-
export interface RunJobOutput {
|
|
27
|
-
webhookName: string;
|
|
28
|
-
skipped?: boolean;
|
|
29
|
-
results: PerFlowResult[];
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Run a scheduled job: load it from config by `webhook_name`, then run its
|
|
33
|
-
* `flow_ids` sequentially in order. Continue-on-error — one flow failing does
|
|
34
|
-
* not stop the rest; the failed flow's cursor holds (SyncRunner only advances on
|
|
35
|
-
* zero failures) so it retries next cycle. Per-flow direction is decided by the
|
|
36
|
-
* flow's own `sourceSystem`.
|
|
37
|
-
*/
|
|
38
|
-
export declare function makeRunJobAction(deps: JobDeps): Action<RunJobInput, RunJobOutput>;
|
|
39
|
-
export declare function makeScheduledJobListAction(deps: JobDeps): Action<void, ScheduledJob[]>;
|
|
40
|
-
export declare function makeScheduledJobGetAction(deps: JobDeps): Action<{
|
|
41
|
-
webhookName: string;
|
|
42
|
-
}, ScheduledJob>;
|
|
43
|
-
interface CreateJobInput {
|
|
44
|
-
name: string;
|
|
45
|
-
interval_value: number;
|
|
46
|
-
interval_unit: JobIntervalUnit;
|
|
47
|
-
flow_ids: number[];
|
|
48
|
-
enabled: boolean;
|
|
49
|
-
}
|
|
50
|
-
export declare function makeScheduledJobCreateAction(deps: JobDeps): Action<CreateJobInput, ScheduledJob>;
|
|
51
|
-
interface UpdateJobInput {
|
|
52
|
-
webhook_name: string;
|
|
53
|
-
name?: string;
|
|
54
|
-
interval_value?: number;
|
|
55
|
-
interval_unit?: JobIntervalUnit;
|
|
56
|
-
flow_ids?: number[];
|
|
57
|
-
enabled?: boolean;
|
|
58
|
-
}
|
|
59
|
-
export declare function makeScheduledJobUpdateAction(deps: JobDeps): Action<UpdateJobInput, ScheduledJob>;
|
|
60
|
-
/**
|
|
61
|
-
* Delete a scheduled job. Config is the source of truth, so the job is dropped
|
|
62
|
-
* from config first, then the webhook is torn down (404-tolerant, best-effort).
|
|
63
|
-
* If ES returns a 5xx the config write still stands and an orphan webhook may
|
|
64
|
-
* remain — safe to retry the delete, which is idempotent.
|
|
65
|
-
*/
|
|
66
|
-
export declare function makeScheduledJobDeleteAction(deps: JobDeps): Action<{
|
|
67
|
-
webhookName: string;
|
|
68
|
-
}, {
|
|
69
|
-
webhookName: string;
|
|
70
|
-
deleted: boolean;
|
|
71
|
-
}>;
|
|
72
|
-
export {};
|
|
73
|
-
//# sourceMappingURL=scheduled-job.action.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scheduled-job.action.d.ts","sourceRoot":"","sources":["../../src/actions/scheduled-job.action.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAEvE,OAAO,EAEL,eAAe,EAEf,KAAK,YAAY,EAClB,MAAM,uCAAuC,CAAC;AAe/C,OAAO,KAAK,EAAE,MAAM,EAAa,MAAM,eAAe,CAAC;AAGvD,KAAK,OAAO,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,eAAe,CAAA;CAAE,CAAC;AAgH/D,UAAU,WAAW;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,KAAK,iBAAiB,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAC1F,MAAM,MAAM,aAAa,GAAG,iBAAiB,GAC3C,CAAC;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,CAAC,WAAW,GAAG;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAAC;AAEnG,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,aAAa,EAAE,CAAC;CAC1B;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC,WAAW,EAAE,YAAY,CAAC,CA0EjF;AAID,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,YAAY,EAAE,CAAC,CAWtF;AAED,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,OAAO,GACZ,MAAM,CAAC;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,EAAE,YAAY,CAAC,CAe/C;AAID,UAAU,cAAc;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,eAAe,CAAC;IAC/B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC,cAAc,EAAE,YAAY,CAAC,CA+ChG;AAID,UAAU,cAAc;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,eAAe,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC,cAAc,EAAE,YAAY,CAAC,CAyDhG;AAID;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,OAAO,GACZ,MAAM,CAAC;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,EAAE;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CA8B5E"}
|