@memberjunction/external-data-sources 6.2.0-edge.0 → 6.2.0-edge.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.
- package/dist/BaseExternalDataSourceDriver.d.ts +1 -1
- package/dist/BaseExternalDataSourceDriver.js +2 -2
- package/dist/BaseSqlExternalDataSourceDriver.js +3 -3
- package/dist/ExternalDataSourceReadRouterImpl.js +2 -2
- package/dist/sqlReadOnlyScreen.d.ts +2 -0
- package/dist/sqlReadOnlyScreen.d.ts.map +1 -1
- package/dist/sqlReadOnlyScreen.js +8 -2
- package/dist/sqlReadOnlyScreen.js.map +1 -1
- package/dist/temporal.d.ts +3 -0
- package/dist/temporal.d.ts.map +1 -1
- package/dist/temporal.js +14 -5
- package/dist/temporal.js.map +1 -1
- package/dist/types.d.ts +1 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +4 -1
- package/dist/types.js.map +1 -1
- package/package.json +7 -7
|
@@ -29,7 +29,7 @@ export declare abstract class BaseExternalDataSourceDriver<TConnection = unknown
|
|
|
29
29
|
CloseConnection(dataSourceId: string): Promise<void>;
|
|
30
30
|
protected withConnectionRetry<T>(dataSource: MJExternalDataSourceEntity, op: () => Promise<T>): Promise<T>;
|
|
31
31
|
protected isAuthError(e: unknown): boolean;
|
|
32
|
-
private static readonly
|
|
32
|
+
private static readonly authErrorCodes;
|
|
33
33
|
private extractErrorCode;
|
|
34
34
|
}
|
|
35
35
|
//# sourceMappingURL=BaseExternalDataSourceDriver.d.ts.map
|
|
@@ -154,7 +154,7 @@ export class BaseExternalDataSourceDriver {
|
|
|
154
154
|
}
|
|
155
155
|
isAuthError(e) {
|
|
156
156
|
const code = this.extractErrorCode(e);
|
|
157
|
-
if (code && BaseExternalDataSourceDriver.
|
|
157
|
+
if (code && BaseExternalDataSourceDriver.authErrorCodes.has(code)) {
|
|
158
158
|
return true;
|
|
159
159
|
}
|
|
160
160
|
const msg = (e instanceof Error ? e.message : String(e)).toLowerCase();
|
|
@@ -166,7 +166,7 @@ export class BaseExternalDataSourceDriver {
|
|
|
166
166
|
msg.includes('28p01') ||
|
|
167
167
|
msg.includes('28000'));
|
|
168
168
|
}
|
|
169
|
-
static { this.
|
|
169
|
+
static { this.authErrorCodes = new Set([
|
|
170
170
|
'28P01', '28000', '1044', '1045', '1698', '4060', '18452', '18456', '18470', '1017', '1031',
|
|
171
171
|
]); }
|
|
172
172
|
extractErrorCode(e) {
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { BaseExternalDataSourceDriver } from "./BaseExternalDataSourceDriver.js";
|
|
2
|
-
import {
|
|
2
|
+
import { AssertReadOnlyNativeQuery, AssertReadOnlyClause } from "./sqlReadOnlyScreen.js";
|
|
3
3
|
export class BaseSqlExternalDataSourceDriver extends BaseExternalDataSourceDriver {
|
|
4
4
|
sqlDialectKey() {
|
|
5
5
|
return 'ansi';
|
|
6
6
|
}
|
|
7
7
|
screenReadOnlyNativeQuery(sql) {
|
|
8
|
-
|
|
8
|
+
AssertReadOnlyNativeQuery(this.normalizeForReadOnlyParse(sql), this.sqlDialectKey());
|
|
9
9
|
}
|
|
10
10
|
normalizeForReadOnlyParse(sql) {
|
|
11
11
|
return sql;
|
|
@@ -23,7 +23,7 @@ export class BaseSqlExternalDataSourceDriver extends BaseExternalDataSourceDrive
|
|
|
23
23
|
return { clause: parts.join(" AND "), values };
|
|
24
24
|
}
|
|
25
25
|
screenReadOnlyClause(clause, kind) {
|
|
26
|
-
|
|
26
|
+
AssertReadOnlyClause(clause, this.sqlDialectKey(), kind);
|
|
27
27
|
}
|
|
28
28
|
selectTopClause(_params) {
|
|
29
29
|
return '';
|
|
@@ -7,7 +7,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
import { RegisterClass } from "@memberjunction/global";
|
|
8
8
|
import { ExternalDataSourceReadRouter, } from "@memberjunction/core";
|
|
9
9
|
import { ExternalDataSourceRouter } from "./ExternalDataSourceRouter.js";
|
|
10
|
-
import {
|
|
10
|
+
import { RedactConnectionSecrets } from "./types.js";
|
|
11
11
|
const DEFAULT_EXTERNAL_CACHE_TTL_SECONDS = 300;
|
|
12
12
|
const DEFAULT_EXTERNAL_MAX_ROWS = 1000;
|
|
13
13
|
const HARD_MAX_EXTERNAL_ROWS = 50_000;
|
|
@@ -153,7 +153,7 @@ let ExternalDataSourceReadRouterImpl = class ExternalDataSourceReadRouterImpl ex
|
|
|
153
153
|
};
|
|
154
154
|
}
|
|
155
155
|
errorText(e) {
|
|
156
|
-
return
|
|
156
|
+
return RedactConnectionSecrets(e instanceof Error ? e.message : String(e));
|
|
157
157
|
}
|
|
158
158
|
};
|
|
159
159
|
ExternalDataSourceReadRouterImpl = __decorate([
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export type SqlDialectKey = "sqlserver" | "ansi";
|
|
2
|
+
export declare function AssertReadOnlyNativeQuery(sql: string, dialectKey: SqlDialectKey): void;
|
|
2
3
|
export declare function assertReadOnlyNativeQuery(sql: string, dialectKey: SqlDialectKey): void;
|
|
4
|
+
export declare function AssertReadOnlyClause(clause: string, dialectKey: SqlDialectKey, kind: "where" | "orderby"): void;
|
|
3
5
|
export declare function assertReadOnlyClause(clause: string, dialectKey: SqlDialectKey, kind: "where" | "orderby"): void;
|
|
4
6
|
//# sourceMappingURL=sqlReadOnlyScreen.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlReadOnlyScreen.d.ts","sourceRoot":"","sources":["../src/sqlReadOnlyScreen.ts"],"names":[],"mappings":"AAUA,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG,MAAM,CAAC;AA6EjD,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,GAAG,IAAI,CAqDtF;AAmBD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI,CA6B/G"}
|
|
1
|
+
{"version":3,"file":"sqlReadOnlyScreen.d.ts","sourceRoot":"","sources":["../src/sqlReadOnlyScreen.ts"],"names":[],"mappings":"AAUA,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG,MAAM,CAAC;AA6EjD,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,GAAG,IAAI,CAqDtF;AAGD,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,GAAG,IAAI,CAEtF;AAmBD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI,CA6B/G;AAGD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI,CAE/G"}
|
|
@@ -29,7 +29,7 @@ function isSingleTypedStatement(ast) {
|
|
|
29
29
|
const stmt = statements[0];
|
|
30
30
|
return !!stmt && typeof stmt === "object" && typeof stmt.type === "string";
|
|
31
31
|
}
|
|
32
|
-
export function
|
|
32
|
+
export function AssertReadOnlyNativeQuery(sql, dialectKey) {
|
|
33
33
|
const dialect = dialectFor(dialectKey);
|
|
34
34
|
if (SQLParser.HasStackedStatements(sql, dialect)) {
|
|
35
35
|
throw new Error("External native query rejected: multiple statements are not allowed against a read-only external data source.");
|
|
@@ -56,7 +56,10 @@ export function assertReadOnlyNativeQuery(sql, dialectKey) {
|
|
|
56
56
|
throw new Error("External native query rejected: only a single, well-formed read statement is allowed — refusing under uncertainty (External Data Sources are read-only).");
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
|
-
export function
|
|
59
|
+
export function assertReadOnlyNativeQuery(sql, dialectKey) {
|
|
60
|
+
return AssertReadOnlyNativeQuery(sql, dialectKey);
|
|
61
|
+
}
|
|
62
|
+
export function AssertReadOnlyClause(clause, dialectKey, kind) {
|
|
60
63
|
if (/--|\/\*|\*\//.test(clause)) {
|
|
61
64
|
throw new Error(`External ${kind} clause rejected: SQL comment markers are not allowed.`);
|
|
62
65
|
}
|
|
@@ -72,4 +75,7 @@ export function assertReadOnlyClause(clause, dialectKey, kind) {
|
|
|
72
75
|
throw new Error(`External ${kind} clause rejected: not a safe read-only ${kind} fragment — refusing under uncertainty.`);
|
|
73
76
|
}
|
|
74
77
|
}
|
|
78
|
+
export function assertReadOnlyClause(clause, dialectKey, kind) {
|
|
79
|
+
return AssertReadOnlyClause(clause, dialectKey, kind);
|
|
80
|
+
}
|
|
75
81
|
//# sourceMappingURL=sqlReadOnlyScreen.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlReadOnlyScreen.js","sourceRoot":"","sources":["../src/sqlReadOnlyScreen.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sqlReadOnlyScreen.js","sourceRoot":"","sources":["../src/sqlReadOnlyScreen.ts"],"names":[],"mappings":"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"}
|
package/dist/temporal.d.ts
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
export declare const ISO_8601_DATETIME_RE: RegExp;
|
|
2
|
+
export declare function IsIso8601DateTime(value: string): boolean;
|
|
2
3
|
export declare function isIso8601DateTime(value: string): boolean;
|
|
4
|
+
export declare function Iso8601Zone(value: string): string | null;
|
|
3
5
|
export declare function iso8601Zone(value: string): string | null;
|
|
6
|
+
export declare function ParseIso8601AsUtc(value: string): Date | null;
|
|
4
7
|
export declare function parseIso8601AsUtc(value: string): Date | null;
|
|
5
8
|
//# sourceMappingURL=temporal.d.ts.map
|
package/dist/temporal.d.ts.map
CHANGED
|
@@ -1 +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"}
|
|
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,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAExD;AAGD,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGxD;AAGD,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAExD;AAQD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAO5D;AAGD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAE5D"}
|
package/dist/temporal.js
CHANGED
|
@@ -1,17 +1,26 @@
|
|
|
1
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
|
|
2
|
+
export function IsIso8601DateTime(value) {
|
|
3
3
|
return ISO_8601_DATETIME_RE.test(value);
|
|
4
4
|
}
|
|
5
|
-
export function
|
|
5
|
+
export function isIso8601DateTime(value) {
|
|
6
|
+
return IsIso8601DateTime(value);
|
|
7
|
+
}
|
|
8
|
+
export function Iso8601Zone(value) {
|
|
6
9
|
const m = ISO_8601_DATETIME_RE.exec(value);
|
|
7
10
|
return m ? (m[4] ?? null) : null;
|
|
8
11
|
}
|
|
9
|
-
export function
|
|
10
|
-
|
|
12
|
+
export function iso8601Zone(value) {
|
|
13
|
+
return Iso8601Zone(value);
|
|
14
|
+
}
|
|
15
|
+
export function ParseIso8601AsUtc(value) {
|
|
16
|
+
if (!IsIso8601DateTime(value)) {
|
|
11
17
|
return null;
|
|
12
18
|
}
|
|
13
|
-
const normalized =
|
|
19
|
+
const normalized = Iso8601Zone(value) ? value : `${value}Z`;
|
|
14
20
|
const d = new Date(normalized);
|
|
15
21
|
return Number.isNaN(d.getTime()) ? null : d;
|
|
16
22
|
}
|
|
23
|
+
export function parseIso8601AsUtc(value) {
|
|
24
|
+
return ParseIso8601AsUtc(value);
|
|
25
|
+
}
|
|
17
26
|
//# sourceMappingURL=temporal.js.map
|
package/dist/temporal.js.map
CHANGED
|
@@ -1 +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"}
|
|
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,iBAAiB,CAAC,KAAa;IAC7C,OAAO,iBAAiB,CAAC,KAAK,CAAC,CAAC;AAClC,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;AAGD,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;AAC5B,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;AAGD,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,OAAO,iBAAiB,CAAC,KAAK,CAAC,CAAC;AAClC,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -44,5 +44,6 @@ export interface ExternalQueryResult<TRow extends ExternalRow = ExternalRow> {
|
|
|
44
44
|
errorMessage?: string;
|
|
45
45
|
executionTimeMs: number;
|
|
46
46
|
}
|
|
47
|
+
export declare function RedactConnectionSecrets(message: string): string;
|
|
47
48
|
export declare function redactConnectionSecrets(message: string): string;
|
|
48
49
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -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;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"}
|
|
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;AAGD,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE/D"}
|
package/dist/types.js
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
export function
|
|
1
|
+
export function RedactConnectionSecrets(message) {
|
|
2
2
|
return message.replace(/([a-z][a-z0-9+.-]*:\/\/)[^@/\s]+@/gi, '$1***@');
|
|
3
3
|
}
|
|
4
|
+
export function redactConnectionSecrets(message) {
|
|
5
|
+
return RedactConnectionSecrets(message);
|
|
6
|
+
}
|
|
4
7
|
//# sourceMappingURL=types.js.map
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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"}
|
|
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;AAGD,MAAM,UAAU,uBAAuB,CAAC,OAAe;IACrD,OAAO,uBAAuB,CAAC,OAAO,CAAC,CAAC;AAC1C,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@memberjunction/external-data-sources",
|
|
3
|
-
"version": "6.2.0-edge.
|
|
3
|
+
"version": "6.2.0-edge.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",
|
|
@@ -11,12 +11,12 @@
|
|
|
11
11
|
"author": "MemberJunction.com",
|
|
12
12
|
"license": "BUSL-1.1",
|
|
13
13
|
"dependencies": {
|
|
14
|
-
"@memberjunction/core": "6.2.0-edge.
|
|
15
|
-
"@memberjunction/global": "6.2.0-edge.
|
|
16
|
-
"@memberjunction/core-entities": "6.2.0-edge.
|
|
17
|
-
"@memberjunction/credentials": "6.2.0-edge.
|
|
18
|
-
"@memberjunction/sql-parser": "6.2.0-edge.
|
|
19
|
-
"@memberjunction/sql-dialect": "6.2.0-edge.
|
|
14
|
+
"@memberjunction/core": "6.2.0-edge.1",
|
|
15
|
+
"@memberjunction/global": "6.2.0-edge.1",
|
|
16
|
+
"@memberjunction/core-entities": "6.2.0-edge.1",
|
|
17
|
+
"@memberjunction/credentials": "6.2.0-edge.1",
|
|
18
|
+
"@memberjunction/sql-parser": "6.2.0-edge.1",
|
|
19
|
+
"@memberjunction/sql-dialect": "6.2.0-edge.1"
|
|
20
20
|
},
|
|
21
21
|
"devDependencies": {
|
|
22
22
|
"@types/node": "24.10.11",
|