@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
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
module.exports = {
|
|
2
|
+
preset: 'ts-jest',
|
|
3
|
+
testEnvironment: 'node',
|
|
4
|
+
collectCoverageFrom: [
|
|
5
|
+
'src/**/*.ts'
|
|
6
|
+
],
|
|
7
|
+
coverageDirectory: 'coverage',
|
|
8
|
+
testMatch: [
|
|
9
|
+
'**/test/**/*.test.ts'
|
|
10
|
+
],
|
|
11
|
+
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node']
|
|
12
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
module.exports = {
|
|
2
|
+
preset: 'ts-jest',
|
|
3
|
+
testEnvironment: 'node',
|
|
4
|
+
collectCoverageFrom: [
|
|
5
|
+
'src/**/*.ts'
|
|
6
|
+
],
|
|
7
|
+
coverageDirectory: 'coverage',
|
|
8
|
+
testMatch: [
|
|
9
|
+
'**/test/**/*.test.ts'
|
|
10
|
+
],
|
|
11
|
+
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node']
|
|
12
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
module.exports = {
|
|
2
|
+
preset: 'ts-jest',
|
|
3
|
+
testEnvironment: 'node',
|
|
4
|
+
collectCoverageFrom: [
|
|
5
|
+
'src/**/*.ts'
|
|
6
|
+
],
|
|
7
|
+
coverageDirectory: 'coverage',
|
|
8
|
+
testMatch: [
|
|
9
|
+
'**/test/**/*.test.ts'
|
|
10
|
+
],
|
|
11
|
+
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node']
|
|
12
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
module.exports = {
|
|
2
|
+
preset: 'ts-jest',
|
|
3
|
+
testEnvironment: 'node',
|
|
4
|
+
collectCoverageFrom: [
|
|
5
|
+
'src/**/*.ts'
|
|
6
|
+
],
|
|
7
|
+
coverageDirectory: 'coverage',
|
|
8
|
+
testMatch: [
|
|
9
|
+
'**/test/**/*.test.ts'
|
|
10
|
+
],
|
|
11
|
+
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node']
|
|
12
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
module.exports = {
|
|
2
|
+
preset: 'ts-jest',
|
|
3
|
+
testEnvironment: 'node',
|
|
4
|
+
collectCoverageFrom: [
|
|
5
|
+
'src/**/*.ts'
|
|
6
|
+
],
|
|
7
|
+
coverageDirectory: 'coverage',
|
|
8
|
+
testMatch: [
|
|
9
|
+
'**/test/**/*.test.ts'
|
|
10
|
+
],
|
|
11
|
+
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node']
|
|
12
|
+
};
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.9.0] - 2026-07-03
|
|
4
|
+
|
|
5
|
+
**Typed filter values matched consistently across preview and live sync (COR-602 follow-up).**
|
|
6
|
+
|
|
7
|
+
- New `coerceFilterValues` util coerces a filter's scalar string values to the source field's real type (boolean/number) using the object schema, so a filter built in the UI text box (which persists `"true"`/`"5"` as strings) matches JSONata's type-strict comparison against typed records. Non-lossy: unknown fields, non-string values, and unparseable text pass through unchanged.
|
|
8
|
+
- `SyncService` now applies the same coercion on the live-sync paths (`run`, `handleEvent`, `processBatch`) via the source adapter schema — previously only preview coerced, so live sync silently dropped rows that preview reported as `will_sync`. Best-effort: falls back to the raw filter if the schema can't be loaded.
|
|
9
|
+
- New `deriveFetchFields` unions filter-only fields into the fetch projection, so a field referenced only by the filter (e.g. a sync flag not mapped to a target) is still selected and doesn't evaluate against `undefined`. Wired into the inbound preview fetcher.
|
|
10
|
+
- Exports `coerceFilterValues` and `deriveFetchFields`.
|
|
11
|
+
|
|
12
|
+
## [0.8.3] - 2026-07-01
|
|
13
|
+
|
|
14
|
+
**Fix `in`/`nin` data-flow filters matching no records (COR-602).**
|
|
15
|
+
|
|
16
|
+
- `compileFilter` now splits a comma-joined string value into a trimmed array for `in`/`nin`, so the operator no longer collapses to a scalar-equality test that never matches. Self-heals already-saved flows.
|
|
17
|
+
|
|
3
18
|
## [0.8.2] - 2026-06-24
|
|
4
19
|
|
|
5
20
|
**Realtime inbound batch events + nested relationship-field filter fix.**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preview.action.d.ts","sourceRoot":"","sources":["../../../src/actions/data-flow/preview.action.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"preview.action.d.ts","sourceRoot":"","sources":["../../../src/actions/data-flow/preview.action.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oCAAoC,CAAC;AAYlE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,KAAK,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAE3E;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,OAAO,GACf,MAAM,CAAC,oBAAoB,EAAE,qBAAqB,CAAC,CAgErD"}
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.makeDataFlowPreviewAction = makeDataFlowPreviewAction;
|
|
4
4
|
const preview_service_1 = require("../../services/preview.service");
|
|
5
5
|
const field_mapping_service_1 = require("../../services/field-mapping.service");
|
|
6
|
+
const coerceFilterValues_1 = require("../../utils/coerceFilterValues");
|
|
6
7
|
const constants_1 = require("../../constants");
|
|
7
8
|
const action_names_1 = require("../utils/action-names");
|
|
8
9
|
const errors_1 = require("../utils/errors");
|
|
@@ -48,16 +49,30 @@ function makeDataFlowPreviewAction(adapter) {
|
|
|
48
49
|
};
|
|
49
50
|
},
|
|
50
51
|
async handler(input, ctx) {
|
|
51
|
-
var _a;
|
|
52
|
-
const flow = buildPreviewFlow(input, adapter);
|
|
52
|
+
var _a, _b;
|
|
53
53
|
// Inbound (vendor source) preview fetches via the adapter; outbound
|
|
54
54
|
// (Skedulo source) falls through to PreviewService's default query fetcher.
|
|
55
55
|
const inbound = ((_a = input.sourceSystem) !== null && _a !== void 0 ? _a : adapter.integrationType) !== constants_1.SKEDULO_SYSTEM;
|
|
56
|
+
// Coerce filter values to the source field types (e.g. a `Skedulo_Sync__c = "true"`
|
|
57
|
+
// text filter → boolean) so preview matches how live sync compares typed records.
|
|
58
|
+
// Best-effort: fall back to the raw filter if the schema can't be loaded.
|
|
59
|
+
let filter = input.filter;
|
|
60
|
+
if (filter && inbound) {
|
|
61
|
+
try {
|
|
62
|
+
const { adapter: source } = (0, helpers_1.resolveSystem)(adapter, (_b = input.sourceSystem) !== null && _b !== void 0 ? _b : undefined);
|
|
63
|
+
const fields = await source.getFields(ctx, input.sourceObject);
|
|
64
|
+
filter = (0, coerceFilterValues_1.coerceFilterValues)(filter, fields);
|
|
65
|
+
}
|
|
66
|
+
catch (_c) {
|
|
67
|
+
// keep raw filter
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
const flow = buildPreviewFlow(Object.assign(Object.assign({}, input), { filter }), adapter);
|
|
56
71
|
const sampleFetcher = inbound
|
|
57
72
|
? async (f, size, c) => {
|
|
58
73
|
var _a;
|
|
59
74
|
const { adapter: source } = (0, helpers_1.resolveSystem)(adapter, (_a = f.sourceSystem) !== null && _a !== void 0 ? _a : undefined);
|
|
60
|
-
return source.fetchSampleRecords(c, f.sourceObject, (0, field_mapping_service_1.
|
|
75
|
+
return source.fetchSampleRecords(c, f.sourceObject, (0, field_mapping_service_1.deriveFetchFields)(f), size);
|
|
61
76
|
}
|
|
62
77
|
: undefined;
|
|
63
78
|
const results = await new preview_service_1.PreviewService().run({ flow, sampleSize: input.limit, sampleRecord: input.sampleRecord, sampleFetcher }, ctx);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preview.action.js","sourceRoot":"","sources":["../../../src/actions/data-flow/preview.action.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"preview.action.js","sourceRoot":"","sources":["../../../src/actions/data-flow/preview.action.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"on-vendor.action.d.ts","sourceRoot":"","sources":["../../../src/actions/event/on-vendor.action.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"on-vendor.action.d.ts","sourceRoot":"","sources":["../../../src/actions/event/on-vendor.action.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAG7C,OAAO,KAAK,EAAE,SAAS,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAwBlF,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,SAAS,GACd,MAAM,CAAC,kBAAkB,EAAE,mBAAmB,CAAC,CA8CjD"}
|
|
@@ -58,9 +58,6 @@ function makeOnVendorEventAction(deps) {
|
|
|
58
58
|
// share as one grouped upsert (one resolveLookups + one write batch),
|
|
59
59
|
// instead of a resolve+write round-trip per record.
|
|
60
60
|
const results = await new sync_runner_1.SyncRunner(deps.registry).handleEventBatch({ events, options: { lookupStrategy } }, ctx);
|
|
61
|
-
if (results.some((r) => r.status === 'precondition_failed')) {
|
|
62
|
-
throw new errors_1.PreconditionFailedError('PRECONDITION_FAILED', 'Integration not bootstrapped — run setup then trigger the scheduled job (sync.run-job)', results);
|
|
63
|
-
}
|
|
64
61
|
if (results.some((r) => r.status === 'failed')) {
|
|
65
62
|
throw new errors_1.UpstreamPermanentError('Event processing failed', { details: results });
|
|
66
63
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"on-vendor.action.js","sourceRoot":"","sources":["../../../src/actions/event/on-vendor.action.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"on-vendor.action.js","sourceRoot":"","sources":["../../../src/actions/event/on-vendor.action.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { IntegrationContext } from '../context';
|
|
2
|
+
import type { Adapter, DataFlowTemplate, FieldInfo, ObjectInfo, SampleAPI, SampleRecord } from '../interfaces/adapter.interface';
|
|
3
|
+
export declare class MetadataHandler {
|
|
4
|
+
private readonly adapters;
|
|
5
|
+
constructor(integrationAdapters: Record<string, Adapter>);
|
|
6
|
+
resolve(system: string | undefined): Adapter;
|
|
7
|
+
getObjects(system: string, ctx: IntegrationContext): Promise<ObjectInfo[]>;
|
|
8
|
+
getFields(system: string, objectName: string, ctx: IntegrationContext): Promise<FieldInfo[]>;
|
|
9
|
+
fetchSampleRecords(system: string, objectName: string, properties: string[], limit: number, ctx: IntegrationContext): Promise<SampleRecord[]>;
|
|
10
|
+
getTemplates(system: string): Promise<DataFlowTemplate[]>;
|
|
11
|
+
getSampleAPIs(system: string): SampleAPI[];
|
|
12
|
+
}
|
|
13
|
+
export declare class MetadataHandlerError extends Error {
|
|
14
|
+
readonly status: number;
|
|
15
|
+
constructor(status: number, message: string);
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=metadata.handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadata.handler.d.ts","sourceRoot":"","sources":["../../src/handlers/metadata.handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,KAAK,EACV,OAAO,EACP,gBAAgB,EAChB,SAAS,EACT,UAAU,EACV,SAAS,EACT,YAAY,EACb,MAAM,iCAAiC,CAAC;AAGzC,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA0B;gBAEvC,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAOxD,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO;IActC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAI1E,SAAS,CACb,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,kBAAkB,GACtB,OAAO,CAAC,SAAS,EAAE,CAAC;IAIjB,kBAAkB,CACtB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAAE,EACpB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,kBAAkB,GACtB,OAAO,CAAC,YAAY,EAAE,CAAC;IAIpB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAM/D,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE;CAK3C;AAED,qBAAa,oBAAqB,SAAQ,KAAK;aAE3B,MAAM,EAAE,MAAM;gBAAd,MAAM,EAAE,MAAM,EAC9B,OAAO,EAAE,MAAM;CAKlB"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MetadataHandlerError = exports.MetadataHandler = void 0;
|
|
4
|
+
const skedulo_adapter_1 = require("../adapters/skedulo.adapter");
|
|
5
|
+
class MetadataHandler {
|
|
6
|
+
constructor(integrationAdapters) {
|
|
7
|
+
this.adapters = Object.assign({ skedulo: new skedulo_adapter_1.SkeduloAdapter() }, integrationAdapters);
|
|
8
|
+
}
|
|
9
|
+
resolve(system) {
|
|
10
|
+
if (!system) {
|
|
11
|
+
throw new MetadataHandlerError(400, 'system is required');
|
|
12
|
+
}
|
|
13
|
+
const adapter = this.adapters[system];
|
|
14
|
+
if (!adapter) {
|
|
15
|
+
throw new MetadataHandlerError(400, `Unsupported system: "${system}". Must be one of: ${Object.keys(this.adapters).join(', ')}`);
|
|
16
|
+
}
|
|
17
|
+
return adapter;
|
|
18
|
+
}
|
|
19
|
+
async getObjects(system, ctx) {
|
|
20
|
+
return this.resolve(system).getObjects(ctx);
|
|
21
|
+
}
|
|
22
|
+
async getFields(system, objectName, ctx) {
|
|
23
|
+
return this.resolve(system).getFields(ctx, objectName);
|
|
24
|
+
}
|
|
25
|
+
async fetchSampleRecords(system, objectName, properties, limit, ctx) {
|
|
26
|
+
return this.resolve(system).fetchSampleRecords(ctx, objectName, properties, limit);
|
|
27
|
+
}
|
|
28
|
+
async getTemplates(system) {
|
|
29
|
+
const adapter = this.resolve(system);
|
|
30
|
+
if (!adapter.getTemplates)
|
|
31
|
+
return [];
|
|
32
|
+
return adapter.getTemplates();
|
|
33
|
+
}
|
|
34
|
+
getSampleAPIs(system) {
|
|
35
|
+
const adapter = this.resolve(system);
|
|
36
|
+
if (!adapter.getSampleAPIs)
|
|
37
|
+
return [];
|
|
38
|
+
return adapter.getSampleAPIs();
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
exports.MetadataHandler = MetadataHandler;
|
|
42
|
+
class MetadataHandlerError extends Error {
|
|
43
|
+
constructor(status, message) {
|
|
44
|
+
super(message);
|
|
45
|
+
this.status = status;
|
|
46
|
+
this.name = 'MetadataHandlerError';
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
exports.MetadataHandlerError = MetadataHandlerError;
|
|
50
|
+
//# sourceMappingURL=metadata.handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadata.handler.js","sourceRoot":"","sources":["../../src/handlers/metadata.handler.ts"],"names":[],"mappings":";;;AASA,iEAA6D;AAE7D,MAAa,eAAe;IAG1B,YAAY,mBAA4C;QACtD,IAAI,CAAC,QAAQ,mBACX,OAAO,EAAE,IAAI,gCAAc,EAAE,IAC1B,mBAAmB,CACvB,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,MAA0B;QAChC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,oBAAoB,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAC;QAC5D,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,oBAAoB,CAC5B,GAAG,EACH,wBAAwB,MAAM,sBAAsB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC5F,CAAC;QACJ,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAc,EAAE,GAAuB;QACtD,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,SAAS,CACb,MAAc,EACd,UAAkB,EAClB,GAAuB;QAEvB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,kBAAkB,CACtB,MAAc,EACd,UAAkB,EAClB,UAAoB,EACpB,KAAa,EACb,GAAuB;QAEvB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;IACrF,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,MAAc;QAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,CAAC,OAAO,CAAC,YAAY;YAAE,OAAO,EAAE,CAAC;QACrC,OAAO,OAAO,CAAC,YAAY,EAAE,CAAC;IAChC,CAAC;IAED,aAAa,CAAC,MAAc;QAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,CAAC,OAAO,CAAC,aAAa;YAAE,OAAO,EAAE,CAAC;QACtC,OAAO,OAAO,CAAC,aAAa,EAAE,CAAC;IACjC,CAAC;CACF;AAzDD,0CAyDC;AAED,MAAa,oBAAqB,SAAQ,KAAK;IAC7C,YACkB,MAAc,EAC9B,OAAe;QAEf,KAAK,CAAC,OAAO,CAAC,CAAC;QAHC,WAAM,GAAN,MAAM,CAAQ;QAI9B,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AARD,oDAQC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -24,8 +24,9 @@ export type { RetryClass, StaleMappingArgs } from './adapters/base.adapter';
|
|
|
24
24
|
export { IdMappingService } from './services/id-mapping.service';
|
|
25
25
|
export type { MappingEntry } from './services/id-mapping.service';
|
|
26
26
|
export type { SyncRunOptions, SyncFlowStrategy } from './interfaces/sync-flow-strategy.interface';
|
|
27
|
-
export { executeMapping, evaluateFilter, executeMappingDetailed, deriveSourceFields, } from './services/field-mapping.service';
|
|
27
|
+
export { executeMapping, evaluateFilter, executeMappingDetailed, deriveSourceFields, deriveFetchFields, } from './services/field-mapping.service';
|
|
28
28
|
export type { MappingDetail } from './services/field-mapping.service';
|
|
29
|
+
export { coerceFilterValues } from './utils/coerceFilterValues';
|
|
29
30
|
export { AdapterRegistry } from './adapters/adapter-registry';
|
|
30
31
|
export { BaseAdapterHandler } from './adapters/base-adapter-handler';
|
|
31
32
|
export type { BaseAdapterHandlerConfig, RouteHandler } from './adapters/base-adapter-handler';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,OAAO,EACL,QAAQ,EACR,aAAa,EACb,iBAAiB,EACjB,WAAW,EACX,QAAQ,EACR,cAAc,EACd,cAAc,EACd,cAAc,GACf,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAC/F,YAAY,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,YAAY,EAAE,UAAU,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC3F,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,YAAY,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAC;AACtF,YAAY,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAClF,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,YAAY,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAC5F,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAC5F,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AACjG,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,YAAY,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,YAAY,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAClG,OAAO,EACL,cAAc,EACd,cAAc,EACd,sBAAsB,EACtB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -14,8 +14,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.
|
|
18
|
-
exports.humanizeFieldName = exports.requireAdmin = exports.isAdminRequest = exports.getQueryParam = exports.errorResponse = exports.okResponse = exports.unwrapProxy = exports.mockProxyResult = exports.runAdapterContractTests = exports.noopMetrics = exports.withMetrics = exports.withLogging = exports.withAudit = exports.requireAdminMiddleware = exports.compose = exports.defineAction = exports.categoryToStatus = exports.categoryRetryable = void 0;
|
|
17
|
+
exports.PreconditionFailedError = exports.NotImplementedError = exports.NotFoundError = exports.InvalidInputError = exports.ForbiddenError = exports.ConflictError = exports.ActionError = exports.SCHEDULED_JOB_NAME_HEADER = exports.ACTIONS = exports.ACTION_HEADER = exports.SyncStage = exports.BaseAdapterHandler = exports.AdapterRegistry = exports.coerceFilterValues = exports.deriveFetchFields = exports.deriveSourceFields = exports.executeMappingDetailed = exports.evaluateFilter = exports.executeMapping = exports.IdMappingService = exports.BaseAdapter = exports.skeduloAdapter = exports.SkeduloAdapter = exports.AdapterRoleError = exports.AdapterNotRegisteredError = exports.SyncRunner = exports.SyncService = exports.PreviewService = exports.JobIntervalUnit = exports.asIntegrationConfig = exports.DataFlowService = exports.buildRunLogEntries = exports.LogSource = exports.LogKind = exports.LogLevel = exports.IntegrationLogClient = exports.IntegrationConfigClient = exports.DataFlowClient = exports.ProxyClient = exports.createContextFactory = exports.createIntegrationContext = exports.IntegrationContext = exports.SKEDULO_SYSTEM = exports.DataFlowStatus = exports.LookupStrategy = exports.SyncMode = exports.AdapterRole = exports.LOOKUP_CHUNK_SIZE = exports.OperationName = exports.Strategy = void 0;
|
|
18
|
+
exports.humanizeFieldName = exports.requireAdmin = exports.isAdminRequest = exports.getQueryParam = exports.errorResponse = exports.okResponse = exports.unwrapProxy = exports.mockProxyResult = exports.runAdapterContractTests = exports.noopMetrics = exports.withMetrics = exports.withLogging = exports.withAudit = exports.requireAdminMiddleware = exports.compose = exports.defineAction = exports.categoryToStatus = exports.categoryRetryable = exports.UpstreamTransientError = exports.UpstreamPermanentError = void 0;
|
|
19
19
|
__exportStar(require("./types"), exports);
|
|
20
20
|
var constants_1 = require("./constants");
|
|
21
21
|
Object.defineProperty(exports, "Strategy", { enumerable: true, get: function () { return constants_1.Strategy; } });
|
|
@@ -69,6 +69,9 @@ Object.defineProperty(exports, "executeMapping", { enumerable: true, get: functi
|
|
|
69
69
|
Object.defineProperty(exports, "evaluateFilter", { enumerable: true, get: function () { return field_mapping_service_1.evaluateFilter; } });
|
|
70
70
|
Object.defineProperty(exports, "executeMappingDetailed", { enumerable: true, get: function () { return field_mapping_service_1.executeMappingDetailed; } });
|
|
71
71
|
Object.defineProperty(exports, "deriveSourceFields", { enumerable: true, get: function () { return field_mapping_service_1.deriveSourceFields; } });
|
|
72
|
+
Object.defineProperty(exports, "deriveFetchFields", { enumerable: true, get: function () { return field_mapping_service_1.deriveFetchFields; } });
|
|
73
|
+
var coerceFilterValues_1 = require("./utils/coerceFilterValues");
|
|
74
|
+
Object.defineProperty(exports, "coerceFilterValues", { enumerable: true, get: function () { return coerceFilterValues_1.coerceFilterValues; } });
|
|
72
75
|
var adapter_registry_1 = require("./adapters/adapter-registry");
|
|
73
76
|
Object.defineProperty(exports, "AdapterRegistry", { enumerable: true, get: function () { return adapter_registry_1.AdapterRegistry; } });
|
|
74
77
|
var base_adapter_handler_1 = require("./adapters/base-adapter-handler");
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,yCASqB;AARnB,qGAAA,QAAQ,OAAA;AACR,0GAAA,aAAa,OAAA;AACb,8GAAA,iBAAiB,OAAA;AACjB,wGAAA,WAAW,OAAA;AACX,qGAAA,QAAQ,OAAA;AACR,2GAAA,cAAc,OAAA;AACd,2GAAA,cAAc,OAAA;AACd,2GAAA,cAAc,OAAA;AAEhB,qCAA+F;AAAtF,6GAAA,kBAAkB,OAAA;AAAE,mHAAA,wBAAwB,OAAA;AAAE,+GAAA,oBAAoB,OAAA;AAE3E,uDAAqD;AAA5C,2GAAA,WAAW,OAAA;AAEpB,6DAA2D;AAAlD,iHAAA,cAAc,OAAA;AAEvB,iFAA8E;AAArE,oIAAA,uBAAuB,OAAA;AAChC,2EAAwE;AAA/D,8HAAA,oBAAoB,OAAA;AAC7B,oFAAsF;AAA7E,qHAAA,QAAQ,OAAA;AAAE,oHAAA,OAAO,OAAA;AAAE,sHAAA,SAAS,OAAA;AAErC,8DAAgE;AAAvD,qHAAA,kBAAkB,OAAA;AAE3B,gEAA8D;AAArD,mHAAA,eAAe,OAAA;AAExB,gFAA4F;AAAnF,8HAAA,mBAAmB,OAAA;AAAE,0HAAA,eAAe,OAAA;AAC7C,8DAA4D;AAAnD,iHAAA,cAAc,OAAA;AACvB,wDAAsD;AAA7C,2GAAA,WAAW,OAAA;AACpB,sDAAiG;AAAxF,yGAAA,UAAU,OAAA;AAAE,wHAAA,yBAAyB,OAAA;AAAE,+GAAA,gBAAgB,OAAA;AAChE,8DAA4E;AAAnE,iHAAA,cAAc,OAAA;AAAE,iHAAA,cAAc,OAAA;AACvC,wDAAsD;AAA7C,2GAAA,WAAW,OAAA;AAEpB,oEAAiE;AAAxD,sHAAA,gBAAgB,OAAA;AAGzB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,13 @@ export declare const engineCache: Map<string, MappingEngine>;
|
|
|
12
12
|
* `$join([address, address_line_2], ", ")`.
|
|
13
13
|
*/
|
|
14
14
|
export declare function deriveSourceFields(flow: DataFlow): string[];
|
|
15
|
+
/**
|
|
16
|
+
* The source fields to actually fetch: the mapping-referenced fields plus any field
|
|
17
|
+
* the filter reads. A filter-only field (e.g. a `Skedulo_Sync__c` sync flag not mapped
|
|
18
|
+
* to a target) must still be SELECTed, otherwise it's absent from the record and the
|
|
19
|
+
* filter evaluates against `undefined` and drops every row.
|
|
20
|
+
*/
|
|
21
|
+
export declare function deriveFetchFields(flow: DataFlow): string[];
|
|
15
22
|
export declare function applyMapping(flow: DataFlow, record: Record<string, unknown>): Promise<Record<string, unknown> | null>;
|
|
16
23
|
export declare function executeMapping(flow: DataFlow, record: Record<string, unknown>): Promise<Record<string, unknown> | null>;
|
|
17
24
|
export interface MappingDetail {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-mapping.service.d.ts","sourceRoot":"","sources":["../../src/services/field-mapping.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAuB,MAAM,+BAA+B,CAAC;AACnF,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvD,OAAO,EAAE,aAAa,EAAE,CAAC;AAGzB,eAAO,MAAM,WAAW,4BAAmC,CAAC;AAE5D;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,EAAE,CAE3D;AAgDD,wBAAsB,YAAY,CAChC,IAAI,EAAE,QAAQ,EACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAIzC;AAED,wBAAsB,cAAc,CAClC,IAAI,EAAE,QAAQ,EACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAKzC;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,kBAAkB,GAAG,OAAO,CAAC;IAC9D,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACrC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,QAAQ,EACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,aAAa,CAAC,CAKxB;AAED,wBAAsB,cAAc,CAClC,MAAM,EAAE,UAAU,GAAG,SAAS,EAC9B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,OAAO,CAAC,CAOlB;AAED,kEAAkE;AAClE,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,MAAM,EAAE,cAAc,EAAE,CAAC;CAC1B;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAClC,WAAW,EAAE,UAAU,GAAG,IAAI,EAC9B,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,eAAe,CAAC,CA6C1B;AAED,0EAA0E;AAC1E,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAMjE"}
|
|
1
|
+
{"version":3,"file":"field-mapping.service.d.ts","sourceRoot":"","sources":["../../src/services/field-mapping.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAuB,MAAM,+BAA+B,CAAC;AACnF,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvD,OAAO,EAAE,aAAa,EAAE,CAAC;AAGzB,eAAO,MAAM,WAAW,4BAAmC,CAAC;AAE5D;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,EAAE,CAE3D;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,EAAE,CAM1D;AAgDD,wBAAsB,YAAY,CAChC,IAAI,EAAE,QAAQ,EACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAIzC;AAED,wBAAsB,cAAc,CAClC,IAAI,EAAE,QAAQ,EACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAKzC;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,kBAAkB,GAAG,OAAO,CAAC;IAC9D,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACrC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,QAAQ,EACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,aAAa,CAAC,CAKxB;AAED,wBAAsB,cAAc,CAClC,MAAM,EAAE,UAAU,GAAG,SAAS,EAC9B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,OAAO,CAAC,CAOlB;AAED,kEAAkE;AAClE,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,MAAM,EAAE,cAAc,EAAE,CAAC;CAC1B;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAClC,WAAW,EAAE,UAAU,GAAG,IAAI,EAC9B,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,eAAe,CAAC,CA6C1B;AAED,0EAA0E;AAC1E,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAMjE"}
|
|
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.engineCache = exports.compileFilter = void 0;
|
|
7
7
|
exports.deriveSourceFields = deriveSourceFields;
|
|
8
|
+
exports.deriveFetchFields = deriveFetchFields;
|
|
8
9
|
exports.applyMapping = applyMapping;
|
|
9
10
|
exports.executeMapping = executeMapping;
|
|
10
11
|
exports.executeMappingDetailed = executeMappingDetailed;
|
|
@@ -28,6 +29,21 @@ function deriveSourceFields(flow) {
|
|
|
28
29
|
var _a;
|
|
29
30
|
return (_a = flow.sourceFields) !== null && _a !== void 0 ? _a : (0, field_mapping_engine_1.getReferencedFields)(flow.mappingConfig);
|
|
30
31
|
}
|
|
32
|
+
/**
|
|
33
|
+
* The source fields to actually fetch: the mapping-referenced fields plus any field
|
|
34
|
+
* the filter reads. A filter-only field (e.g. a `Skedulo_Sync__c` sync flag not mapped
|
|
35
|
+
* to a target) must still be SELECTed, otherwise it's absent from the record and the
|
|
36
|
+
* filter evaluates against `undefined` and drops every row.
|
|
37
|
+
*/
|
|
38
|
+
function deriveFetchFields(flow) {
|
|
39
|
+
var _a, _b;
|
|
40
|
+
const fields = new Set(deriveSourceFields(flow));
|
|
41
|
+
for (const rule of (_b = (_a = flow.filter) === null || _a === void 0 ? void 0 : _a.rules) !== null && _b !== void 0 ? _b : []) {
|
|
42
|
+
if (rule.field)
|
|
43
|
+
fields.add(rule.field);
|
|
44
|
+
}
|
|
45
|
+
return [...fields];
|
|
46
|
+
}
|
|
31
47
|
/**
|
|
32
48
|
* Map an FME engine result to a MappingDetail. SKIP (a validation SKIP rule)
|
|
33
49
|
* is an intentional filter; ERROR is a real failure — kept distinct so callers
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-mapping.service.js","sourceRoot":"","sources":["../../src/services/field-mapping.service.ts"],"names":[],"mappings":";;;;;;AAkBA,gDAEC;AAgDD,oCAOC;AAED,wCAQC;AASD,wDAQC;AAED,wCAUC;AA+BD,8CAkDC;AAGD,kDAMC;
|
|
1
|
+
{"version":3,"file":"field-mapping.service.js","sourceRoot":"","sources":["../../src/services/field-mapping.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,11 +24,6 @@ export declare class SyncRunner {
|
|
|
24
24
|
options?: SyncRunOptions;
|
|
25
25
|
}, ctx: IntegrationContext): Promise<BatchResult>;
|
|
26
26
|
private _emitRunLog;
|
|
27
|
-
handleEvent(args: {
|
|
28
|
-
event: MappedEvent;
|
|
29
|
-
options?: SyncRunOptions;
|
|
30
|
-
}, ctx: IntegrationContext): Promise<SyncResult[]>;
|
|
31
|
-
private _emitEventResultLog;
|
|
32
27
|
handleEventBatch(args: {
|
|
33
28
|
events: MappedEvent[];
|
|
34
29
|
options?: SyncRunOptions;
|
|
@@ -39,7 +34,6 @@ export declare class SyncRunner {
|
|
|
39
34
|
options?: SyncRunOptions;
|
|
40
35
|
}, ctx: IntegrationContext): Promise<SyncResult>;
|
|
41
36
|
private _processFlowEventBatch;
|
|
42
|
-
private _processFlowEvent;
|
|
43
37
|
private _resolve;
|
|
44
38
|
}
|
|
45
39
|
//# sourceMappingURL=sync-runner.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-runner.d.ts","sourceRoot":"","sources":["../../src/services/sync-runner.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,WAAW,EAAkB,MAAM,cAAc,CAAC;AAC3D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAE/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AAGnF,OAAO,KAAK,EAAoB,cAAc,EAAE,MAAM,4CAA4C,CAAC;AAEnG,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAU/D,qBAAa,gBAAiB,SAAQ,KAAK;gBAC7B,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW;CAI1D;AAED,qBAAa,yBAA0B,SAAQ,KAAK;gBACtC,UAAU,EAAE,MAAM;CAI/B;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;gBAI/B,QAAQ,CAAC,EAAE,eAAe;IAItC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAQ9C,GAAG,CACP,IAAI,EAAE;QACJ,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC;QAInB,aAAa,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;QAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,OAAO,CAAC,EAAE,cAAc,CAAC;KAC1B,EACD,GAAG,EAAE,kBAAkB,GACtB,OAAO,CAAC,WAAW,CAAC;YA4GT,WAAW;
|
|
1
|
+
{"version":3,"file":"sync-runner.d.ts","sourceRoot":"","sources":["../../src/services/sync-runner.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,WAAW,EAAkB,MAAM,cAAc,CAAC;AAC3D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAE/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AAGnF,OAAO,KAAK,EAAoB,cAAc,EAAE,MAAM,4CAA4C,CAAC;AAEnG,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAU/D,qBAAa,gBAAiB,SAAQ,KAAK;gBAC7B,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW;CAI1D;AAED,qBAAa,yBAA0B,SAAQ,KAAK;gBACtC,UAAU,EAAE,MAAM;CAI/B;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;gBAI/B,QAAQ,CAAC,EAAE,eAAe;IAItC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAQ9C,GAAG,CACP,IAAI,EAAE;QACJ,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC;QAInB,aAAa,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;QAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,OAAO,CAAC,EAAE,cAAc,CAAC;KAC1B,EACD,GAAG,EAAE,kBAAkB,GACtB,OAAO,CAAC,WAAW,CAAC;YA4GT,WAAW;IA+CnB,gBAAgB,CACpB,IAAI,EAAE;QAAE,MAAM,EAAE,WAAW,EAAE,CAAC;QAAC,OAAO,CAAC,EAAE,cAAc,CAAA;KAAE,EACzD,GAAG,EAAE,kBAAkB,GACtB,OAAO,CAAC,UAAU,EAAE,CAAC;IAsClB,oBAAoB,CACxB,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,WAAW,EAAE,CAAC;QAAC,OAAO,CAAC,EAAE,cAAc,CAAA;KAAE,EACzE,GAAG,EAAE,kBAAkB,GACtB,OAAO,CAAC,UAAU,CAAC;YAsBR,sBAAsB;IA+EpC,OAAO,CAAC,QAAQ;CAejB"}
|
|
@@ -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,63 +156,6 @@ 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
|
-
// Handle an inbound event (e.g. from Paragon Workflow).
|
|
161
|
-
// Looks up ALL active flows matching integrationType + sourceObject, sorts by
|
|
162
|
-
// executionOrder (nulls last), and processes each sequentially so that a failure
|
|
163
|
-
// in one flow doesn't prevent the others from running.
|
|
164
|
-
async handleEvent(args, ctx) {
|
|
165
|
-
const { event } = args;
|
|
166
|
-
const flows = await ctx.dataFlowService.getFlowsByFilter({
|
|
167
|
-
integrationType: event.integrationType,
|
|
168
|
-
sourceObject: event.objectType,
|
|
169
|
-
});
|
|
170
|
-
if (flows.length === 0) {
|
|
171
|
-
ctx.logger.warn(`sync_runner_event: no active DataFlow for ${event.integrationType}.${event.objectType}`);
|
|
172
|
-
return [{ status: 'skipped', recordsProcessed: 0, reason: 'no_data_flow' }];
|
|
173
|
-
}
|
|
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
|
-
const results = [];
|
|
176
|
-
for (const flow of sorted) {
|
|
177
|
-
const executionId = (0, crypto_1.randomUUID)();
|
|
178
|
-
const startedAt = Date.now();
|
|
179
|
-
const result = await this._processFlowEvent(flow, event, args.options, ctx);
|
|
180
|
-
results.push(result);
|
|
181
|
-
await this._emitEventResultLog(ctx, { executionId, flow, startedAt, event, result });
|
|
182
|
-
}
|
|
183
|
-
return results;
|
|
184
|
-
}
|
|
185
|
-
// Emit one event run-log per fanned-out flow. The single-event pipeline is already
|
|
186
|
-
// cleared by SyncService.handleEvent, so a failure synthesises one record_error from
|
|
187
|
-
// the result's message + the event's recordId (enough detail for an inbound single event).
|
|
188
|
-
async _emitEventResultLog(ctx, args) {
|
|
189
|
-
var _a, _b;
|
|
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
159
|
// Inbound (vendor→Skedulo) batch path. Fans one delivery out to every flow
|
|
218
160
|
// matching the changed object, but processes each flow's share as ONE batch
|
|
219
161
|
// (grouped resolveLookups + one upsert call) instead of record-by-record —
|
|
@@ -223,7 +165,7 @@ class SyncRunner {
|
|
|
223
165
|
async handleEventBatch(args, ctx) {
|
|
224
166
|
const byObject = new Map();
|
|
225
167
|
for (const e of args.events) {
|
|
226
|
-
const key = `${e.integrationType}
|
|
168
|
+
const key = `${e.integrationType}:${e.objectType}`;
|
|
227
169
|
const list = byObject.get(key);
|
|
228
170
|
if (list)
|
|
229
171
|
list.push(e);
|
|
@@ -342,23 +284,6 @@ class SyncRunner {
|
|
|
342
284
|
return { status: 'failed', recordsProcessed: 0, error: msg };
|
|
343
285
|
}
|
|
344
286
|
}
|
|
345
|
-
async _processFlowEvent(flow, event, options, ctx) {
|
|
346
|
-
var _a;
|
|
347
|
-
try {
|
|
348
|
-
const target = this._resolve((_a = flow.targetSystem) !== null && _a !== void 0 ? _a : null, constants_1.AdapterRole.TARGET);
|
|
349
|
-
const strategy = createSyncStrategy(options !== null && options !== void 0 ? options : {}, ctx);
|
|
350
|
-
return await new sync_service_1.SyncService(null, target, strategy).handleEvent({ event, flow }, ctx);
|
|
351
|
-
}
|
|
352
|
-
catch (err) {
|
|
353
|
-
if (err instanceof AdapterNotRegisteredError || err instanceof AdapterRoleError) {
|
|
354
|
-
ctx.logger.error(`sync_runner_event: ${err.message} flowId=${flow.id}`);
|
|
355
|
-
return { status: 'failed', recordsProcessed: 0, error: err.message };
|
|
356
|
-
}
|
|
357
|
-
const msg = err instanceof Error ? err.message : String(err);
|
|
358
|
-
ctx.logger.error(`sync_runner_event: flowId=${flow.id} ${msg}`);
|
|
359
|
-
return { status: 'failed', recordsProcessed: 0, error: msg };
|
|
360
|
-
}
|
|
361
|
-
}
|
|
362
287
|
_resolve(systemName, role) {
|
|
363
288
|
var _a, _b;
|
|
364
289
|
if (!systemName)
|