@memberjunction/external-data-sources 5.45.0 → 5.45.1

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.
@@ -15,6 +15,11 @@ export declare abstract class BaseSqlExternalDataSourceDriver<TConnection = unkn
15
15
  protected screenReadOnlyClause(clause: string, kind: "where" | "orderby"): void;
16
16
  protected abstract orderAndPageClause(params: ExternalViewParams): string;
17
17
  protected selectTopClause(_params: ExternalViewParams): string;
18
+ protected quoteLiteral(value: string): string;
19
+ protected buildIncrementalPredicate(params: ExternalViewParams): string | undefined;
20
+ protected formatIncrementalLiteral(value: string): string;
21
+ protected effectiveWhere(params: ExternalViewParams): string | undefined;
22
+ protected buildCountSql(target: string, params: ExternalViewParams): string;
18
23
  protected buildSelectSql(target: string, params: ExternalViewParams): string;
19
24
  protected applyDefaultOrderBy(params: ExternalViewParams): ExternalViewParams;
20
25
  protected mapObjectType(objectType: string): ExternalObjectType;
@@ -1 +1 @@
1
- {"version":3,"file":"BaseSqlExternalDataSourceDriver.d.ts","sourceRoot":"","sources":["../src/BaseSqlExternalDataSourceDriver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AACtF,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AACpF,OAAO,EAAmD,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAiB1G,8BAAsB,+BAA+B,CAAC,WAAW,GAAG,OAAO,CAAE,SAAQ,4BAA4B,CAAC,WAAW,CAAC;IAE5H,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAQnD,SAAS,CAAC,aAAa,IAAI,aAAa;IAWxC,SAAS,CAAC,yBAAyB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAYtD,SAAS,CAAC,yBAAyB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAWxD,SAAS,CAAC,oBAAoB,CAC5B,WAAW,EAAE,SAAS,sBAAsB,EAAE,EAC9C,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GACrC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,KAAK,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC,CAAA;KAAE;IAoBrE,SAAS,CAAC,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI;IAQ/E,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM;IAMzE,SAAS,CAAC,eAAe,CAAC,OAAO,EAAE,kBAAkB,GAAG,MAAM;IAW9D,SAAS,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,GAAG,MAAM;IAwB5E,SAAS,CAAC,mBAAmB,CAAC,MAAM,EAAE,kBAAkB,GAAG,kBAAkB;IAS7E,SAAS,CAAC,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,kBAAkB;IAK/D,SAAS,CAAC,aAAa,CAAC,UAAU,EAAE,0BAA0B,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM;IAe3F,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,0BAA0B,EAAE,CAAC;CAoB/F"}
1
+ {"version":3,"file":"BaseSqlExternalDataSourceDriver.d.ts","sourceRoot":"","sources":["../src/BaseSqlExternalDataSourceDriver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AACtF,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AACpF,OAAO,EAAmD,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAiB1G,8BAAsB,+BAA+B,CAAC,WAAW,GAAG,OAAO,CAAE,SAAQ,4BAA4B,CAAC,WAAW,CAAC;IAE5H,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAQnD,SAAS,CAAC,aAAa,IAAI,aAAa;IAWxC,SAAS,CAAC,yBAAyB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAYtD,SAAS,CAAC,yBAAyB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAWxD,SAAS,CAAC,oBAAoB,CAC5B,WAAW,EAAE,SAAS,sBAAsB,EAAE,EAC9C,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GACrC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,KAAK,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC,CAAA;KAAE;IAoBrE,SAAS,CAAC,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI;IAQ/E,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM;IAMzE,SAAS,CAAC,eAAe,CAAC,OAAO,EAAE,kBAAkB,GAAG,MAAM;IAK9D,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAU7C,SAAS,CAAC,yBAAyB,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM,GAAG,SAAS;IAanF,SAAS,CAAC,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAUzD,SAAS,CAAC,cAAc,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM,GAAG,SAAS;IAmBxE,SAAS,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,GAAG,MAAM;IAa3E,SAAS,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,GAAG,MAAM;IAyB5E,SAAS,CAAC,mBAAmB,CAAC,MAAM,EAAE,kBAAkB,GAAG,kBAAkB;IAS7E,SAAS,CAAC,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,kBAAkB;IAK/D,SAAS,CAAC,aAAa,CAAC,UAAU,EAAE,0BAA0B,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM;IAe3F,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,0BAA0B,EAAE,CAAC;CAoB/F"}
@@ -28,8 +28,32 @@ export class BaseSqlExternalDataSourceDriver extends BaseExternalDataSourceDrive
28
28
  selectTopClause(_params) {
29
29
  return '';
30
30
  }
31
+ quoteLiteral(value) {
32
+ return `'${value.replace(/'/g, "''")}'`;
33
+ }
34
+ buildIncrementalPredicate(params) {
35
+ if (!params.incrementalSince) {
36
+ return undefined;
37
+ }
38
+ return `${this.quoteIdent(params.incrementalSince.Field)} >= ${this.formatIncrementalLiteral(params.incrementalSince.Value)}`;
39
+ }
40
+ formatIncrementalLiteral(value) {
41
+ return this.quoteLiteral(value);
42
+ }
43
+ effectiveWhere(params) {
44
+ const incremental = this.buildIncrementalPredicate(params);
45
+ const filter = params.filter && params.filter.trim().length > 0 ? params.filter : undefined;
46
+ if (filter && incremental) {
47
+ return `(${filter}) AND ${incremental}`;
48
+ }
49
+ return filter ?? incremental;
50
+ }
51
+ buildCountSql(target, params) {
52
+ const where = this.effectiveWhere(params);
53
+ return `SELECT COUNT(*) AS cnt FROM ${target}${where ? ` WHERE ${where}` : ''}`;
54
+ }
31
55
  buildSelectSql(target, params) {
32
- if (params.filter) {
56
+ if (params.filter && params.filter.trim().length > 0) {
33
57
  this.screenReadOnlyClause(params.filter, 'where');
34
58
  }
35
59
  if (params.orderBy) {
@@ -37,9 +61,10 @@ export class BaseSqlExternalDataSourceDriver extends BaseExternalDataSourceDrive
37
61
  }
38
62
  const projection = params.fields?.length ? params.fields.map((f) => this.quoteIdent(f)).join(', ') : '*';
39
63
  const effectiveParams = this.applyDefaultOrderBy(params);
64
+ const where = this.effectiveWhere(params);
40
65
  let sql = `SELECT ${this.selectTopClause(effectiveParams)}${projection} FROM ${target}`;
41
- if (params.filter) {
42
- sql += ` WHERE ${params.filter}`;
66
+ if (where) {
67
+ sql += ` WHERE ${where}`;
43
68
  }
44
69
  sql += this.orderAndPageClause(effectiveParams);
45
70
  return sql;
@@ -1 +1 @@
1
- {"version":3,"file":"BaseSqlExternalDataSourceDriver.js","sourceRoot":"","sources":["../src/BaseSqlExternalDataSourceDriver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BaseSqlExternalDataSourceDriver.js","sourceRoot":"","sources":["../src/BaseSqlExternalDataSourceDriver.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export * from "./types.js";
2
+ export * from "./temporal.js";
2
3
  export * from "./sqlReadOnlyScreen.js";
3
4
  export * from "./BaseExternalDataSourceDriver.js";
4
5
  export * from "./BaseSqlExternalDataSourceDriver.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,qBAAqB,CAAC;AACpC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mCAAmC,CAAC;AAClD,cAAc,4BAA4B,CAAC;AAG3C,cAAc,oCAAoC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mCAAmC,CAAC;AAClD,cAAc,4BAA4B,CAAC;AAG3C,cAAc,oCAAoC,CAAC"}
package/dist/index.js CHANGED
@@ -1,4 +1,5 @@
1
1
  export * from "./types.js";
2
+ export * from "./temporal.js";
2
3
  export * from "./sqlReadOnlyScreen.js";
3
4
  export * from "./BaseExternalDataSourceDriver.js";
4
5
  export * from "./BaseSqlExternalDataSourceDriver.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,qBAAqB,CAAC;AACpC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mCAAmC,CAAC;AAClD,cAAc,4BAA4B,CAAC;AAG3C,cAAc,oCAAoC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mCAAmC,CAAC;AAClD,cAAc,4BAA4B,CAAC;AAG3C,cAAc,oCAAoC,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare const ISO_8601_DATETIME_RE: RegExp;
2
+ export declare function isIso8601DateTime(value: string): boolean;
3
+ export declare function iso8601Zone(value: string): string | null;
4
+ export declare function parseIso8601AsUtc(value: string): Date | null;
5
+ //# sourceMappingURL=temporal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"temporal.d.ts","sourceRoot":"","sources":["../src/temporal.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,oBAAoB,QAA2E,CAAC;AAG7G,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAExD;AAGD,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGxD;AAQD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAO5D"}
@@ -0,0 +1,17 @@
1
+ export const ISO_8601_DATETIME_RE = /^(\d{4}-\d{2}-\d{2})T(\d{2}:\d{2}:\d{2})(\.\d+)?(Z|[+-]\d{2}:?\d{2})?$/;
2
+ export function isIso8601DateTime(value) {
3
+ return ISO_8601_DATETIME_RE.test(value);
4
+ }
5
+ export function iso8601Zone(value) {
6
+ const m = ISO_8601_DATETIME_RE.exec(value);
7
+ return m ? (m[4] ?? null) : null;
8
+ }
9
+ export function parseIso8601AsUtc(value) {
10
+ if (!isIso8601DateTime(value)) {
11
+ return null;
12
+ }
13
+ const normalized = iso8601Zone(value) ? value : `${value}Z`;
14
+ const d = new Date(normalized);
15
+ return Number.isNaN(d.getTime()) ? null : d;
16
+ }
17
+ //# sourceMappingURL=temporal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"temporal.js","sourceRoot":"","sources":["../src/temporal.ts"],"names":[],"mappings":"AAcA,MAAM,CAAC,MAAM,oBAAoB,GAAG,wEAAwE,CAAC;AAG7G,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,OAAO,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1C,CAAC;AAGD,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,MAAM,CAAC,GAAG,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3C,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACnC,CAAC;AAQD,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC;IAC5D,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC;IAC/B,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9C,CAAC"}
package/dist/types.d.ts CHANGED
@@ -13,6 +13,10 @@ export interface ExternalViewParams {
13
13
  defaultOrderByColumns?: readonly string[];
14
14
  maxRows?: number;
15
15
  offset?: number;
16
+ incrementalSince?: {
17
+ Field: string;
18
+ Value: string;
19
+ };
16
20
  }
17
21
  export interface ExternalViewResult<TRow extends ExternalRow = ExternalRow> {
18
22
  success: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAaA,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAGlD,MAAM,WAAW,4BAA4B;IAC3C,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,IAAI,CAAC;IAEf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAQD,MAAM,WAAW,kBAAkB;IAEjC,UAAU,EAAE,MAAM,CAAC;IAEnB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAElB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,OAAO,CAAC,EAAE,MAAM,CAAC;IAQjB,qBAAqB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAE1C,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAGD,MAAM,WAAW,kBAAkB,CAAC,IAAI,SAAS,WAAW,GAAG,WAAW;IACxE,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,IAAI,EAAE,CAAC;IAEb,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;CACzB;AAQD,MAAM,WAAW,aAAa;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAGD,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC;CAChD;AAGD,MAAM,WAAW,mBAAmB,CAAC,IAAI,SAAS,WAAW,GAAG,WAAW;IACzE,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,IAAI,EAAE,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;CACzB;AASD,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE/D"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAaA,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAGlD,MAAM,WAAW,4BAA4B;IAC3C,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,IAAI,CAAC;IAEf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAQD,MAAM,WAAW,kBAAkB;IAEjC,UAAU,EAAE,MAAM,CAAC;IAEnB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAElB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,OAAO,CAAC,EAAE,MAAM,CAAC;IAQjB,qBAAqB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAE1C,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAShB,gBAAgB,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CACrD;AAGD,MAAM,WAAW,kBAAkB,CAAC,IAAI,SAAS,WAAW,GAAG,WAAW;IACxE,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,IAAI,EAAE,CAAC;IAEb,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;CACzB;AAQD,MAAM,WAAW,aAAa;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAGD,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC;CAChD;AAGD,MAAM,WAAW,mBAAmB,CAAC,IAAI,SAAS,WAAW,GAAG,WAAW;IACzE,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,IAAI,EAAE,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;CACzB;AASD,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE/D"}
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAoGA,MAAM,UAAU,uBAAuB,CAAC,OAAe;IACrD,OAAO,OAAO,CAAC,OAAO,CAAC,qCAAqC,EAAE,QAAQ,CAAC,CAAC;AAC1E,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AA6GA,MAAM,UAAU,uBAAuB,CAAC,OAAe;IACrD,OAAO,OAAO,CAAC,OAAO,CAAC,qCAAqC,EAAE,QAAQ,CAAC,CAAC;AAC1E,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@memberjunction/external-data-sources",
3
- "version": "5.45.0",
3
+ "version": "5.45.1",
4
4
  "description": "MemberJunction: External Data Sources — live, runtime-proxied read access to remote data systems (Snowflake, Oracle, MongoDB, external SQL Server / PostgreSQL / MySQL) via pluggable @RegisterClass drivers.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -15,12 +15,12 @@
15
15
  "author": "MemberJunction.com",
16
16
  "license": "ISC",
17
17
  "dependencies": {
18
- "@memberjunction/core": "5.45.0",
19
- "@memberjunction/global": "5.45.0",
20
- "@memberjunction/core-entities": "5.45.0",
21
- "@memberjunction/credentials": "5.45.0",
22
- "@memberjunction/sql-parser": "5.45.0",
23
- "@memberjunction/sql-dialect": "5.45.0"
18
+ "@memberjunction/core": "5.45.1",
19
+ "@memberjunction/global": "5.45.1",
20
+ "@memberjunction/core-entities": "5.45.1",
21
+ "@memberjunction/credentials": "5.45.1",
22
+ "@memberjunction/sql-parser": "5.45.1",
23
+ "@memberjunction/sql-dialect": "5.45.1"
24
24
  },
25
25
  "devDependencies": {
26
26
  "@types/node": "24.10.11",