@skedulo/integration-sdk 0.8.1 → 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 +19 -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 +32 -5
- 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/interfaces/adapter.interface.d.ts +7 -3
- package/dist/interfaces/adapter.interface.d.ts.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 +3 -4
- package/dist/services/sync-runner.d.ts.map +1 -1
- package/dist/services/sync-runner.js +53 -90
- 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 +40 -15
- 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
|
@@ -4,7 +4,6 @@ exports.SyncRunner = exports.AdapterNotRegisteredError = exports.AdapterRoleErro
|
|
|
4
4
|
const crypto_1 = require("crypto");
|
|
5
5
|
const constants_1 = require("../constants");
|
|
6
6
|
const integration_log_interface_1 = require("../interfaces/integration-log.interface");
|
|
7
|
-
const sync_pipeline_interface_1 = require("../interfaces/sync-pipeline.interface");
|
|
8
7
|
const run_log_builder_1 = require("./run-log-builder");
|
|
9
8
|
const adapter_registry_1 = require("../adapters/adapter-registry");
|
|
10
9
|
const external_id_sync_strategy_1 = require("./external-id-sync.strategy");
|
|
@@ -12,7 +11,7 @@ const id_mapping_sync_strategy_1 = require("./id-mapping-sync.strategy");
|
|
|
12
11
|
const id_mapping_service_1 = require("./id-mapping.service");
|
|
13
12
|
const sync_service_1 = require("./sync.service");
|
|
14
13
|
// High-level entry point: resolves adapters and a strategy from the flow, then
|
|
15
|
-
// delegates to SyncService. `run()` drives batch/scheduled syncs; `
|
|
14
|
+
// delegates to SyncService. `run()` drives batch/scheduled syncs; `handleEventBatch`
|
|
16
15
|
// and `handleFlowEventBatch` drive event-driven ones.
|
|
17
16
|
class AdapterRoleError extends Error {
|
|
18
17
|
constructor(systemName, requiredRole) {
|
|
@@ -157,84 +156,54 @@ class SyncRunner {
|
|
|
157
156
|
ctx.logger.error(`run_log_flush_failed: flowId=${args.flowId} error="${err instanceof Error ? err.message : String(err)}"`);
|
|
158
157
|
});
|
|
159
158
|
}
|
|
160
|
-
//
|
|
161
|
-
//
|
|
162
|
-
//
|
|
163
|
-
//
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
159
|
+
// Inbound (vendor→Skedulo) batch path. Fans one delivery out to every flow
|
|
160
|
+
// matching the changed object, but processes each flow's share as ONE batch
|
|
161
|
+
// (grouped resolveLookups + one upsert call) instead of record-by-record —
|
|
162
|
+
// the fix for N events causing N resolve+write round-trips. Events are grouped
|
|
163
|
+
// by object so each (integrationType, objectType) resolves its flows once.
|
|
164
|
+
// Returns one SyncResult per fanned-out flow.
|
|
165
|
+
async handleEventBatch(args, ctx) {
|
|
166
|
+
const byObject = new Map();
|
|
167
|
+
for (const e of args.events) {
|
|
168
|
+
const key = `${e.integrationType}:${e.objectType}`;
|
|
169
|
+
const list = byObject.get(key);
|
|
170
|
+
if (list)
|
|
171
|
+
list.push(e);
|
|
172
|
+
else
|
|
173
|
+
byObject.set(key, [e]);
|
|
173
174
|
}
|
|
174
|
-
const sorted = [...flows].sort((a, b) => { var _a, _b; return ((_a = a.executionOrder) !== null && _a !== void 0 ? _a : Infinity) - ((_b = b.executionOrder) !== null && _b !== void 0 ? _b : Infinity); });
|
|
175
175
|
const results = [];
|
|
176
|
-
for (const
|
|
177
|
-
const
|
|
178
|
-
const
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
176
|
+
for (const group of byObject.values()) {
|
|
177
|
+
const { integrationType, objectType } = group[0];
|
|
178
|
+
const flows = await ctx.dataFlowService.getFlowsByFilter({
|
|
179
|
+
integrationType,
|
|
180
|
+
sourceObject: objectType,
|
|
181
|
+
});
|
|
182
|
+
if (flows.length === 0) {
|
|
183
|
+
ctx.logger.warn(`sync_runner_event: no active DataFlow for ${integrationType}.${objectType}`);
|
|
184
|
+
results.push({ status: 'skipped', recordsProcessed: 0, reason: 'no_data_flow' });
|
|
185
|
+
continue;
|
|
186
|
+
}
|
|
187
|
+
const sorted = [...flows].sort((a, b) => { var _a, _b; return ((_a = a.executionOrder) !== null && _a !== void 0 ? _a : Infinity) - ((_b = b.executionOrder) !== null && _b !== void 0 ? _b : Infinity); });
|
|
188
|
+
for (const flow of sorted) {
|
|
189
|
+
results.push(await this._processFlowEventBatch(flow, group, args.options, ctx));
|
|
190
|
+
}
|
|
182
191
|
}
|
|
183
192
|
return results;
|
|
184
193
|
}
|
|
185
|
-
//
|
|
186
|
-
//
|
|
187
|
-
//
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
const r = args.result;
|
|
191
|
-
const failed = r.status === 'failed' || r.status === 'precondition_failed';
|
|
192
|
-
const errors = failed
|
|
193
|
-
? [
|
|
194
|
-
{
|
|
195
|
-
stage: args.event.operation === 'DELETE' ? sync_pipeline_interface_1.SyncStage.DELETE : sync_pipeline_interface_1.SyncStage.UPSERT,
|
|
196
|
-
message: (_b = (_a = r.error) !== null && _a !== void 0 ? _a : r.reason) !== null && _b !== void 0 ? _b : `event ${r.status}`,
|
|
197
|
-
data: { recordId: args.event.recordId },
|
|
198
|
-
},
|
|
199
|
-
]
|
|
200
|
-
: [];
|
|
201
|
-
await this._emitRunLog(ctx, {
|
|
202
|
-
executionId: args.executionId,
|
|
203
|
-
flowId: args.flow.id,
|
|
204
|
-
flowName: args.flow.name,
|
|
205
|
-
startedAt: args.startedAt,
|
|
206
|
-
source: integration_log_interface_1.LogSource.EVENT,
|
|
207
|
-
summary: {
|
|
208
|
-
succeeded: r.status === 'synced' ? r.recordsProcessed : 0,
|
|
209
|
-
filtered: r.status === 'filtered' ? 1 : 0,
|
|
210
|
-
skipped: r.status === 'skipped' ? 1 : 0,
|
|
211
|
-
failed: failed ? 1 : 0,
|
|
212
|
-
dlqWrites: 0,
|
|
213
|
-
errors,
|
|
214
|
-
},
|
|
215
|
-
});
|
|
216
|
-
}
|
|
217
|
-
// Handle an inbound event for a single, already-known flow. Used by the outbound
|
|
218
|
-
// (Skedulo→vendor) triggered-action path, where each flow has its own ElasticServer
|
|
219
|
-
// triggered action carrying its `dataFlowId` — so we process only that flow rather than
|
|
220
|
-
// fanning out to every flow matching the object (which would double-process when multiple
|
|
221
|
-
// flows target the same Skedulo object). A single delivery can carry many record changes:
|
|
222
|
-
// upserts run through the shared SyncService.processBatch path (one grouped resolveLookups +
|
|
223
|
-
// one insert/update batch for all records), instead of resolving and writing each record one
|
|
224
|
-
// by one. Deletes stay per-record (individual by nature). Returns one aggregated result —
|
|
225
|
-
// filter/skip drops mean per-change outcomes aren't 1:1.
|
|
194
|
+
// Handle an inbound event batch for a single, already-known flow. Used by the
|
|
195
|
+
// outbound (Skedulo→vendor) triggered-action path, where each flow has its own
|
|
196
|
+
// ElasticServer triggered action carrying its `dataFlowId` — so we process only
|
|
197
|
+
// that flow rather than fanning out to every flow matching the object (which
|
|
198
|
+
// would double-process when multiple flows target the same Skedulo object).
|
|
226
199
|
async handleFlowEventBatch(args, ctx) {
|
|
227
|
-
var _a, _b, _c, _d, _e;
|
|
228
|
-
// One execution_id per delivery; correlates the run_summary + record_error logs.
|
|
229
|
-
const executionId = (0, crypto_1.randomUUID)();
|
|
230
|
-
const startedAt = Date.now();
|
|
231
200
|
const flow = await ctx.dataFlowService.getFlowById(args.flowId);
|
|
232
201
|
if (!flow) {
|
|
233
202
|
ctx.logger.warn(`sync_runner_event: flow ${args.flowId} not found`);
|
|
234
203
|
await this._emitRunLog(ctx, {
|
|
235
|
-
executionId,
|
|
204
|
+
executionId: (0, crypto_1.randomUUID)(),
|
|
236
205
|
flowId: args.flowId,
|
|
237
|
-
startedAt,
|
|
206
|
+
startedAt: Date.now(),
|
|
238
207
|
source: integration_log_interface_1.LogSource.EVENT,
|
|
239
208
|
summary: { succeeded: 0, filtered: 0, skipped: 0, failed: 0, dlqWrites: 0 },
|
|
240
209
|
summaryLevel: integration_log_interface_1.LogLevel.WARNING,
|
|
@@ -242,6 +211,17 @@ class SyncRunner {
|
|
|
242
211
|
});
|
|
243
212
|
return { status: 'skipped', recordsProcessed: 0, reason: 'no_data_flow' };
|
|
244
213
|
}
|
|
214
|
+
return this._processFlowEventBatch(flow, args.events, args.options, ctx);
|
|
215
|
+
}
|
|
216
|
+
// Process a resolved flow's event batch: one grouped upsert for non-deletes,
|
|
217
|
+
// per-record deletes (individual by nature). Emits one run-log summarising the
|
|
218
|
+
// delivery for this flow. Returns one aggregated result — filter/skip drops mean
|
|
219
|
+
// per-change outcomes aren't 1:1.
|
|
220
|
+
async _processFlowEventBatch(flow, events, options, ctx) {
|
|
221
|
+
var _a, _b, _c, _d;
|
|
222
|
+
// One execution_id per delivery; correlates the run_summary + record_error logs.
|
|
223
|
+
const executionId = (0, crypto_1.randomUUID)();
|
|
224
|
+
const startedAt = Date.now();
|
|
245
225
|
try {
|
|
246
226
|
// Resolve the real source adapter (not null): processBatch derives the source-id
|
|
247
227
|
// field from it (Skedulo → 'UID'), and unlike the single-event path there is no
|
|
@@ -249,10 +229,10 @@ class SyncRunner {
|
|
|
249
229
|
// mis-resolve every upsert as a create.
|
|
250
230
|
const source = this._resolve((_a = flow.sourceSystem) !== null && _a !== void 0 ? _a : null, constants_1.AdapterRole.SOURCE);
|
|
251
231
|
const target = this._resolve((_b = flow.targetSystem) !== null && _b !== void 0 ? _b : null, constants_1.AdapterRole.TARGET);
|
|
252
|
-
const strategy = createSyncStrategy(
|
|
232
|
+
const strategy = createSyncStrategy(options !== null && options !== void 0 ? options : {}, ctx);
|
|
253
233
|
const service = new sync_service_1.SyncService(source, target, strategy);
|
|
254
|
-
const upserts =
|
|
255
|
-
const deletes =
|
|
234
|
+
const upserts = events.filter((e) => e.operation !== 'DELETE');
|
|
235
|
+
const deletes = events.filter((e) => e.operation === 'DELETE');
|
|
256
236
|
let succeeded = 0;
|
|
257
237
|
let failed = 0;
|
|
258
238
|
let recordErrors = [];
|
|
@@ -261,7 +241,7 @@ class SyncRunner {
|
|
|
261
241
|
succeeded += batch.succeeded;
|
|
262
242
|
failed += batch.failed;
|
|
263
243
|
// Snapshot now — the delete loop below re-inits/clears ctx.pipeline.
|
|
264
|
-
if ((
|
|
244
|
+
if ((_d = (_c = ctx.pipeline) === null || _c === void 0 ? void 0 : _c.errors) === null || _d === void 0 ? void 0 : _d.length)
|
|
265
245
|
recordErrors = [...ctx.pipeline.errors];
|
|
266
246
|
}
|
|
267
247
|
for (const del of deletes) {
|
|
@@ -304,23 +284,6 @@ class SyncRunner {
|
|
|
304
284
|
return { status: 'failed', recordsProcessed: 0, error: msg };
|
|
305
285
|
}
|
|
306
286
|
}
|
|
307
|
-
async _processFlowEvent(flow, event, options, ctx) {
|
|
308
|
-
var _a;
|
|
309
|
-
try {
|
|
310
|
-
const target = this._resolve((_a = flow.targetSystem) !== null && _a !== void 0 ? _a : null, constants_1.AdapterRole.TARGET);
|
|
311
|
-
const strategy = createSyncStrategy(options !== null && options !== void 0 ? options : {}, ctx);
|
|
312
|
-
return await new sync_service_1.SyncService(null, target, strategy).handleEvent({ event, flow }, ctx);
|
|
313
|
-
}
|
|
314
|
-
catch (err) {
|
|
315
|
-
if (err instanceof AdapterNotRegisteredError || err instanceof AdapterRoleError) {
|
|
316
|
-
ctx.logger.error(`sync_runner_event: ${err.message} flowId=${flow.id}`);
|
|
317
|
-
return { status: 'failed', recordsProcessed: 0, error: err.message };
|
|
318
|
-
}
|
|
319
|
-
const msg = err instanceof Error ? err.message : String(err);
|
|
320
|
-
ctx.logger.error(`sync_runner_event: flowId=${flow.id} ${msg}`);
|
|
321
|
-
return { status: 'failed', recordsProcessed: 0, error: msg };
|
|
322
|
-
}
|
|
323
|
-
}
|
|
324
287
|
_resolve(systemName, role) {
|
|
325
288
|
var _a, _b;
|
|
326
289
|
if (!systemName)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-runner.js","sourceRoot":"","sources":["../../src/services/sync-runner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sync-runner.js","sourceRoot":"","sources":["../../src/services/sync-runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,15 @@ export declare class SyncService {
|
|
|
17
17
|
event: MappedEvent;
|
|
18
18
|
flow: DataFlow;
|
|
19
19
|
}, ctx: IntegrationContext): Promise<SyncResult>;
|
|
20
|
-
processBatch(
|
|
20
|
+
processBatch(flowArg: DataFlow, records: Record<string, unknown>[], ctx: IntegrationContext): Promise<BatchResult>;
|
|
21
|
+
/**
|
|
22
|
+
* Coerce the flow's filter scalar values to the source field types (e.g. a
|
|
23
|
+
* `Skedulo_Sync__c = "true"` text filter → boolean) so the local filter matches
|
|
24
|
+
* the typed records the source returns — the same coercion preview applies, so
|
|
25
|
+
* preview and live sync agree. Best-effort: falls back to the raw filter when the
|
|
26
|
+
* schema can't be loaded. Runs once per batch/event; relies on the source adapter
|
|
27
|
+
* caching field metadata.
|
|
28
|
+
*/
|
|
29
|
+
private _coerceFlowFilter;
|
|
21
30
|
}
|
|
22
31
|
//# sourceMappingURL=sync.service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.service.d.ts","sourceRoot":"","sources":["../../src/services/sync.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AACvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AACnF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAC;
|
|
1
|
+
{"version":3,"file":"sync.service.d.ts","sourceRoot":"","sources":["../../src/services/sync.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AACvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AACnF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAC;AA0BnF,qBAAa,WAAW;IAIpB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAJzB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmB;gBAGzB,MAAM,EAAE,OAAO,GAAG,IAAI,EACtB,MAAM,EAAE,OAAO,EAChC,QAAQ,CAAC,EAAE,gBAAgB;IAOvB,GAAG,CACP,IAAI,EAAE;QAAE,IAAI,EAAE,QAAQ,CAAC;QAAC,KAAK,EAAE,IAAI,GAAG,IAAI,CAAA;KAAE,EAC5C,GAAG,EAAE,kBAAkB,GACtB,OAAO,CAAC,WAAW,CAAC;IAgFjB,WAAW,CACf,IAAI,EAAE;QAAE,KAAK,EAAE,WAAW,CAAC;QAAC,IAAI,EAAE,QAAQ,CAAA;KAAE,EAC5C,GAAG,EAAE,kBAAkB,GACtB,OAAO,CAAC,UAAU,CAAC;IAqBhB,YAAY,CAChB,OAAO,EAAE,QAAQ,EACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAClC,GAAG,EAAE,kBAAkB,GACtB,OAAO,CAAC,WAAW,CAAC;IAevB;;;;;;;OAOG;YACW,iBAAiB;CAShC"}
|
|
@@ -13,6 +13,7 @@ const base_adapter_1 = require("../adapters/base.adapter");
|
|
|
13
13
|
const external_id_sync_strategy_1 = require("./external-id-sync.strategy");
|
|
14
14
|
const run_log_builder_1 = require("./run-log-builder");
|
|
15
15
|
const helpers_1 = require("../utils/helpers");
|
|
16
|
+
const coerceFilterValues_1 = require("../utils/coerceFilterValues");
|
|
16
17
|
// SyncService runs one DataFlow using a source adapter, target adapter, and an injected strategy.
|
|
17
18
|
//
|
|
18
19
|
// Two entrypoints:
|
|
@@ -46,7 +47,8 @@ class SyncService {
|
|
|
46
47
|
if (!((_d = this.source) === null || _d === void 0 ? void 0 : _d.fetch)) {
|
|
47
48
|
throw new Error('SyncService.run requires a source adapter with fetch()');
|
|
48
49
|
}
|
|
49
|
-
const {
|
|
50
|
+
const { since } = args;
|
|
51
|
+
const flow = await this._coerceFlowFilter(args.flow, ctx);
|
|
50
52
|
const totals = {
|
|
51
53
|
succeeded: 0,
|
|
52
54
|
filtered: 0,
|
|
@@ -114,7 +116,10 @@ class SyncService {
|
|
|
114
116
|
}
|
|
115
117
|
async handleEvent(args, ctx) {
|
|
116
118
|
var _a;
|
|
117
|
-
const { event
|
|
119
|
+
const { event } = args;
|
|
120
|
+
// Deletes never evaluate the filter (handleDeleteEvent keys off recordId), so skip the
|
|
121
|
+
// schema fetch coercion needs — avoids a wasted getFields round-trip per delete event.
|
|
122
|
+
const flow = event.operation === 'DELETE' ? args.flow : await this._coerceFlowFilter(args.flow, ctx);
|
|
118
123
|
ctx.pipeline = _initPipeline(flow, (_a = flow.filter) !== null && _a !== void 0 ? _a : null, [event.payload], constants_1.SyncMode.EVENT, null);
|
|
119
124
|
let result;
|
|
120
125
|
if (event.operation === 'DELETE') {
|
|
@@ -127,13 +132,34 @@ class SyncService {
|
|
|
127
132
|
return result;
|
|
128
133
|
}
|
|
129
134
|
// Exposed for tests / direct batch processing.
|
|
130
|
-
async processBatch(
|
|
135
|
+
async processBatch(flowArg, records, ctx) {
|
|
131
136
|
var _a, _b;
|
|
137
|
+
const flow = await this._coerceFlowFilter(flowArg, ctx);
|
|
132
138
|
if (!ctx.pipeline) {
|
|
133
139
|
ctx.pipeline = _initPipeline(flow, (_a = flow.filter) !== null && _a !== void 0 ? _a : null, records, constants_1.SyncMode.BATCH, null);
|
|
134
140
|
}
|
|
135
141
|
return this.strategy.processBatch(ctx, flow, this.source, this.target, records, (_b = flow.filter) !== null && _b !== void 0 ? _b : null);
|
|
136
142
|
}
|
|
143
|
+
/**
|
|
144
|
+
* Coerce the flow's filter scalar values to the source field types (e.g. a
|
|
145
|
+
* `Skedulo_Sync__c = "true"` text filter → boolean) so the local filter matches
|
|
146
|
+
* the typed records the source returns — the same coercion preview applies, so
|
|
147
|
+
* preview and live sync agree. Best-effort: falls back to the raw filter when the
|
|
148
|
+
* schema can't be loaded. Runs once per batch/event; relies on the source adapter
|
|
149
|
+
* caching field metadata.
|
|
150
|
+
*/
|
|
151
|
+
async _coerceFlowFilter(flow, ctx) {
|
|
152
|
+
var _a;
|
|
153
|
+
if (!flow.filter || !((_a = this.source) === null || _a === void 0 ? void 0 : _a.getFields))
|
|
154
|
+
return flow;
|
|
155
|
+
try {
|
|
156
|
+
const fields = await this.source.getFields(ctx, flow.sourceObject);
|
|
157
|
+
return Object.assign(Object.assign({}, flow), { filter: (0, coerceFilterValues_1.coerceFilterValues)(flow.filter, fields) });
|
|
158
|
+
}
|
|
159
|
+
catch (_b) {
|
|
160
|
+
return flow;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
137
163
|
}
|
|
138
164
|
exports.SyncService = SyncService;
|
|
139
165
|
function _initPipeline(flow, filter, records, syncMode, since) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.service.js","sourceRoot":"","sources":["../../src/services/sync.service.ts"],"names":[],"mappings":";;;;;;;;;;AAOA,4CAA8E;AAC9E,2DAAuD;AACvD,2EAAqE;AACrE,uDAAsD;AACtD,8CAA8C;
|
|
1
|
+
{"version":3,"file":"sync.service.js","sourceRoot":"","sources":["../../src/services/sync.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { FieldInfo } from '../interfaces/adapter.interface';
|
|
2
|
+
import type { FilterSpec } from '../interfaces/filter.interface';
|
|
3
|
+
/**
|
|
4
|
+
* Coerce a data-flow filter's scalar string values to the source field's real type
|
|
5
|
+
* (boolean / number), so a filter built in the UI text box matches the typed values
|
|
6
|
+
* the adapter returns. Schema-aware and non-lossy: fields not in `fields`, non-string
|
|
7
|
+
* values, and unparseable text pass through unchanged.
|
|
8
|
+
*/
|
|
9
|
+
export declare function coerceFilterValues(filter: FilterSpec | undefined, fields: FieldInfo[]): FilterSpec | undefined;
|
|
10
|
+
//# sourceMappingURL=coerceFilterValues.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coerceFilterValues.d.ts","sourceRoot":"","sources":["../../src/utils/coerceFilterValues.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,KAAK,EAA8B,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAqC7F;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,UAAU,GAAG,SAAS,EAC9B,MAAM,EAAE,SAAS,EAAE,GAClB,UAAU,GAAG,SAAS,CAIxB"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.coerceFilterValues = coerceFilterValues;
|
|
4
|
+
// `in`/`nin` carry a list (handled by compileFilter's coerceArrayValue), `between` a
|
|
5
|
+
// tuple, and exists/notExists no value — none want scalar type coercion.
|
|
6
|
+
const NON_SCALAR_OPS = new Set(['in', 'nin', 'between', 'exists', 'notExists']);
|
|
7
|
+
const toBoolean = (v) => {
|
|
8
|
+
const t = v.trim().toLowerCase();
|
|
9
|
+
if (t === 'true')
|
|
10
|
+
return true;
|
|
11
|
+
if (t === 'false')
|
|
12
|
+
return false;
|
|
13
|
+
return null;
|
|
14
|
+
};
|
|
15
|
+
const toNumber = (v) => {
|
|
16
|
+
if (v.trim() === '')
|
|
17
|
+
return null;
|
|
18
|
+
const n = Number(v);
|
|
19
|
+
return Number.isFinite(n) ? n : null;
|
|
20
|
+
};
|
|
21
|
+
// Only plain string values need coercing; UI text inputs always emit strings, so a
|
|
22
|
+
// boolean/number field ends up as `"true"`/`"5"` and JSONata's type-strict `=` never
|
|
23
|
+
// matches the real typed record value. Coerce to the field's type. Unrecognized text
|
|
24
|
+
// (e.g. "yes", "") is left as-is rather than lost.
|
|
25
|
+
function coerceRule(rule, typeByField) {
|
|
26
|
+
if (NON_SCALAR_OPS.has(rule.op) || typeof rule.value !== 'string')
|
|
27
|
+
return rule;
|
|
28
|
+
const type = typeByField.get(rule.field);
|
|
29
|
+
if (type === 'boolean') {
|
|
30
|
+
const b = toBoolean(rule.value);
|
|
31
|
+
return b === null ? rule : Object.assign(Object.assign({}, rule), { value: b });
|
|
32
|
+
}
|
|
33
|
+
if (type === 'number') {
|
|
34
|
+
const n = toNumber(rule.value);
|
|
35
|
+
return n === null ? rule : Object.assign(Object.assign({}, rule), { value: n });
|
|
36
|
+
}
|
|
37
|
+
return rule;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Coerce a data-flow filter's scalar string values to the source field's real type
|
|
41
|
+
* (boolean / number), so a filter built in the UI text box matches the typed values
|
|
42
|
+
* the adapter returns. Schema-aware and non-lossy: fields not in `fields`, non-string
|
|
43
|
+
* values, and unparseable text pass through unchanged.
|
|
44
|
+
*/
|
|
45
|
+
function coerceFilterValues(filter, fields) {
|
|
46
|
+
if (!filter)
|
|
47
|
+
return filter;
|
|
48
|
+
const typeByField = new Map(fields.map((f) => [f.name, f.type]));
|
|
49
|
+
return Object.assign(Object.assign({}, filter), { rules: filter.rules.map((r) => coerceRule(r, typeByField)) });
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=coerceFilterValues.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coerceFilterValues.js","sourceRoot":"","sources":["../../src/utils/coerceFilterValues.ts"],"names":[],"mappings":";;AA4CA,gDAOC;AAhDD,qFAAqF;AACrF,yEAAyE;AACzE,MAAM,cAAc,GAAG,IAAI,GAAG,CAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;AAEhG,MAAM,SAAS,GAAG,CAAC,CAAS,EAAkB,EAAE;IAC9C,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACjC,IAAI,CAAC,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IAC9B,IAAI,CAAC,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IAChC,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAG,CAAC,CAAS,EAAiB,EAAE;IAC5C,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IACjC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACpB,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACvC,CAAC,CAAC;AAEF,mFAAmF;AACnF,qFAAqF;AACrF,qFAAqF;AACrF,mDAAmD;AACnD,SAAS,UAAU,CAAC,IAAgB,EAAE,WAAgC;IACpE,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC/E,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChC,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,iCAAM,IAAI,KAAE,KAAK,EAAE,CAAC,GAAE,CAAC;IACnD,CAAC;IACD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/B,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,iCAAM,IAAI,KAAE,KAAK,EAAE,CAAC,GAAE,CAAC;IACnD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,SAAgB,kBAAkB,CAChC,MAA8B,EAC9B,MAAmB;IAEnB,IAAI,CAAC,MAAM;QAAE,OAAO,MAAM,CAAC;IAC3B,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjE,uCAAY,MAAM,KAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,IAAG;AACnF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compileFilter.d.ts","sourceRoot":"","sources":["../../src/utils/compileFilter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAc,UAAU,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"compileFilter.d.ts","sourceRoot":"","sources":["../../src/utils/compileFilter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAc,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAuG7E,wBAAgB,aAAa,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAIxD"}
|
|
@@ -24,29 +24,54 @@ function renderValue(value) {
|
|
|
24
24
|
return JSON.stringify(value);
|
|
25
25
|
return String(value);
|
|
26
26
|
}
|
|
27
|
+
// Compile a field name to a JSONata reference. A dotted path (e.g. Salesforce's
|
|
28
|
+
// `Account.Name`) must become a nested traversal `` `Account`.`Name` `` — quoting
|
|
29
|
+
// each segment, not the whole name — otherwise `` `Account.Name` `` is read as a
|
|
30
|
+
// single flat key literally named "Account.Name" and never matches a nested
|
|
31
|
+
// relationship object. Single-segment fields (e.g. HubSpot's flattened
|
|
32
|
+
// `firstname`) compile to `` `firstname` `` exactly as before.
|
|
33
|
+
function fieldRef(field) {
|
|
34
|
+
return field
|
|
35
|
+
.split('.')
|
|
36
|
+
.map((segment) => `\`${segment}\``)
|
|
37
|
+
.join('.');
|
|
38
|
+
}
|
|
39
|
+
// `in`/`nin` take a list. If a caller (e.g. an older UI build) persisted the values as a
|
|
40
|
+
// single comma-joined string, split it back into an array so the operator doesn't collapse
|
|
41
|
+
// to a scalar-equality test that never matches. Leaves real arrays and expr values as-is.
|
|
42
|
+
function coerceArrayValue(value) {
|
|
43
|
+
if (typeof value !== 'string')
|
|
44
|
+
return value;
|
|
45
|
+
return value
|
|
46
|
+
.split(',')
|
|
47
|
+
.map((s) => s.trim())
|
|
48
|
+
.filter((s) => s.length > 0);
|
|
49
|
+
}
|
|
27
50
|
function compileRule(rule) {
|
|
28
|
-
const { field, op
|
|
51
|
+
const { field, op } = rule;
|
|
52
|
+
const value = op === 'in' || op === 'nin' ? coerceArrayValue(rule.value) : rule.value;
|
|
29
53
|
// Backtick in a field name would break out of the JSONata identifier — reject early
|
|
30
54
|
if (field.includes('`'))
|
|
31
55
|
throw new Error(`Invalid field name (contains backtick): ${field}`);
|
|
56
|
+
const ref = fieldRef(field);
|
|
32
57
|
switch (op) {
|
|
33
58
|
case 'eq':
|
|
34
|
-
return
|
|
59
|
+
return `${ref} = ${renderValue(value)}`;
|
|
35
60
|
case 'neq':
|
|
36
|
-
return
|
|
61
|
+
return `${ref} != ${renderValue(value)}`;
|
|
37
62
|
case 'in':
|
|
38
|
-
return
|
|
63
|
+
return `${ref} in ${renderValue(value)}`;
|
|
39
64
|
case 'nin':
|
|
40
|
-
return `$not(
|
|
65
|
+
return `$not(${ref} in ${renderValue(value)})`;
|
|
41
66
|
case 'contains':
|
|
42
|
-
return `$contains(
|
|
67
|
+
return `$contains(${ref}, ${renderValue(value)})`;
|
|
43
68
|
case 'startsWith': {
|
|
44
69
|
if (typeof value === 'object' &&
|
|
45
70
|
value !== null &&
|
|
46
71
|
!Array.isArray(value) &&
|
|
47
72
|
value.type === 'expr')
|
|
48
73
|
throw new Error('startsWith/endsWith does not support expr values');
|
|
49
|
-
return `$contains(
|
|
74
|
+
return `$contains(${ref}, /^${String(value).replace(/[.*+?^${}()|[\]\/\\]/g, '\\$&')}/)`;
|
|
50
75
|
}
|
|
51
76
|
case 'endsWith': {
|
|
52
77
|
if (typeof value === 'object' &&
|
|
@@ -54,25 +79,25 @@ function compileRule(rule) {
|
|
|
54
79
|
!Array.isArray(value) &&
|
|
55
80
|
value.type === 'expr')
|
|
56
81
|
throw new Error('startsWith/endsWith does not support expr values');
|
|
57
|
-
return `$contains(
|
|
82
|
+
return `$contains(${ref}, /${String(value).replace(/[.*+?^${}()|[\]\/\\]/g, '\\$&')}$/)`;
|
|
58
83
|
}
|
|
59
84
|
case 'gt':
|
|
60
|
-
return
|
|
85
|
+
return `${ref} > ${renderValue(value)}`;
|
|
61
86
|
case 'lt':
|
|
62
|
-
return
|
|
87
|
+
return `${ref} < ${renderValue(value)}`;
|
|
63
88
|
case 'gte':
|
|
64
|
-
return
|
|
89
|
+
return `${ref} >= ${renderValue(value)}`;
|
|
65
90
|
case 'lte':
|
|
66
|
-
return
|
|
91
|
+
return `${ref} <= ${renderValue(value)}`;
|
|
67
92
|
case 'between': {
|
|
68
93
|
if (!Array.isArray(value) || value.length !== 2)
|
|
69
94
|
throw new Error(`'between' requires a 2-element array, got: ${JSON.stringify(value)}`);
|
|
70
|
-
return
|
|
95
|
+
return `${ref} >= ${renderValue(value[0])} and ${ref} <= ${renderValue(value[1])}`;
|
|
71
96
|
}
|
|
72
97
|
case 'notExists':
|
|
73
|
-
return `($not($exists(
|
|
98
|
+
return `($not($exists(${ref})) or ${ref} = null)`;
|
|
74
99
|
case 'exists':
|
|
75
|
-
return `($exists(
|
|
100
|
+
return `($exists(${ref}) and ${ref} != null)`;
|
|
76
101
|
default: {
|
|
77
102
|
const _exhaustive = op;
|
|
78
103
|
throw new Error(`Unknown filter operator: ${_exhaustive}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compileFilter.js","sourceRoot":"","sources":["../../src/utils/compileFilter.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"compileFilter.js","sourceRoot":"","sources":["../../src/utils/compileFilter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalizeDataFlow.d.ts","sourceRoot":"","sources":["../../src/utils/normalizeDataFlow.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AAqBvE,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAW1D"}
|