@panoboard/core 1.11.7 → 1.12.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/components/PanelWrapper.js +50 -5
- package/dist/components/PanelWrapper.js.map +1 -1
- package/dist/components/panels/TablePanel.d.ts +7 -1
- package/dist/components/panels/TablePanel.d.ts.map +1 -1
- package/dist/components/panels/TablePanel.js +38 -23
- package/dist/components/panels/TablePanel.js.map +1 -1
- package/dist/index.d.ts +1 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -8
- package/dist/index.js.map +1 -1
- package/dist/schemas/dashboard.d.ts +1 -0
- package/dist/schemas/dashboard.d.ts.map +1 -1
- package/dist/schemas/datasource.d.ts +118 -0
- package/dist/schemas/datasource.d.ts.map +1 -1
- package/dist/schemas/datasource.js +46 -0
- package/dist/schemas/datasource.js.map +1 -1
- package/dist/transforms/computed.d.ts +1 -1
- package/dist/transforms/computed.d.ts.map +1 -1
- package/dist/transforms/engine.d.ts +1 -1
- package/dist/transforms/engine.d.ts.map +1 -1
- package/dist/transforms/filter.d.ts +1 -1
- package/dist/transforms/filter.d.ts.map +1 -1
- package/dist/transforms/limit.d.ts +1 -1
- package/dist/transforms/limit.d.ts.map +1 -1
- package/dist/transforms/percentage.d.ts +1 -1
- package/dist/transforms/percentage.d.ts.map +1 -1
- package/dist/transforms/rename.d.ts +1 -1
- package/dist/transforms/rename.d.ts.map +1 -1
- package/dist/transforms/sort.d.ts +1 -1
- package/dist/transforms/sort.d.ts.map +1 -1
- package/dist/{connectors/types.d.ts → types/connector-types.d.ts} +8 -2
- package/dist/types/connector-types.d.ts.map +1 -0
- package/dist/{query/strategy/types.js → types/connector-types.js} +1 -1
- package/dist/types/connector-types.js.map +1 -0
- package/package.json +2 -39
- package/dist/annotations/executor.d.ts +0 -32
- package/dist/annotations/executor.d.ts.map +0 -1
- package/dist/annotations/executor.js +0 -87
- package/dist/annotations/executor.js.map +0 -1
- package/dist/annotations/index.d.ts +0 -2
- package/dist/annotations/index.d.ts.map +0 -1
- package/dist/annotations/index.js +0 -15
- package/dist/annotations/index.js.map +0 -1
- package/dist/cache/cache.d.ts +0 -11
- package/dist/cache/cache.d.ts.map +0 -1
- package/dist/cache/cache.js +0 -42
- package/dist/cache/cache.js.map +0 -1
- package/dist/cache/client.d.ts +0 -9
- package/dist/cache/client.d.ts.map +0 -1
- package/dist/cache/client.js +0 -63
- package/dist/cache/client.js.map +0 -1
- package/dist/cache/index.d.ts +0 -4
- package/dist/cache/index.d.ts.map +0 -1
- package/dist/cache/index.js +0 -17
- package/dist/cache/index.js.map +0 -1
- package/dist/cache/keys.d.ts +0 -2
- package/dist/cache/keys.d.ts.map +0 -1
- package/dist/cache/keys.js +0 -26
- package/dist/cache/keys.js.map +0 -1
- package/dist/connectors/bigquery.d.ts +0 -26
- package/dist/connectors/bigquery.d.ts.map +0 -1
- package/dist/connectors/bigquery.js +0 -118
- package/dist/connectors/bigquery.js.map +0 -1
- package/dist/connectors/index.d.ts +0 -17
- package/dist/connectors/index.d.ts.map +0 -1
- package/dist/connectors/index.js +0 -23
- package/dist/connectors/index.js.map +0 -1
- package/dist/connectors/params.d.ts +0 -15
- package/dist/connectors/params.d.ts.map +0 -1
- package/dist/connectors/params.js +0 -46
- package/dist/connectors/params.js.map +0 -1
- package/dist/connectors/postgres.d.ts +0 -29
- package/dist/connectors/postgres.d.ts.map +0 -1
- package/dist/connectors/postgres.js +0 -133
- package/dist/connectors/postgres.js.map +0 -1
- package/dist/connectors/redshift-data.d.ts +0 -25
- package/dist/connectors/redshift-data.d.ts.map +0 -1
- package/dist/connectors/redshift-data.js +0 -237
- package/dist/connectors/redshift-data.js.map +0 -1
- package/dist/connectors/redshift.d.ts +0 -29
- package/dist/connectors/redshift.d.ts.map +0 -1
- package/dist/connectors/redshift.js +0 -141
- package/dist/connectors/redshift.js.map +0 -1
- package/dist/connectors/registry.d.ts +0 -7
- package/dist/connectors/registry.d.ts.map +0 -1
- package/dist/connectors/registry.js +0 -30
- package/dist/connectors/registry.js.map +0 -1
- package/dist/connectors/snowflake.d.ts +0 -37
- package/dist/connectors/snowflake.d.ts.map +0 -1
- package/dist/connectors/snowflake.js +0 -181
- package/dist/connectors/snowflake.js.map +0 -1
- package/dist/connectors/types.d.ts.map +0 -1
- package/dist/connectors/types.js +0 -15
- package/dist/connectors/types.js.map +0 -1
- package/dist/connectors/url-parsers.d.ts +0 -13
- package/dist/connectors/url-parsers.d.ts.map +0 -1
- package/dist/connectors/url-parsers.js +0 -95
- package/dist/connectors/url-parsers.js.map +0 -1
- package/dist/connectors/url.d.ts +0 -36
- package/dist/connectors/url.d.ts.map +0 -1
- package/dist/connectors/url.js +0 -139
- package/dist/connectors/url.js.map +0 -1
- package/dist/query/array-expansion.d.ts +0 -5
- package/dist/query/array-expansion.d.ts.map +0 -1
- package/dist/query/array-expansion.js +0 -39
- package/dist/query/array-expansion.js.map +0 -1
- package/dist/query/index.d.ts +0 -8
- package/dist/query/index.d.ts.map +0 -1
- package/dist/query/index.js +0 -20
- package/dist/query/index.js.map +0 -1
- package/dist/query/pipeline.d.ts +0 -27
- package/dist/query/pipeline.d.ts.map +0 -1
- package/dist/query/pipeline.js +0 -49
- package/dist/query/pipeline.js.map +0 -1
- package/dist/query/strategy/http.d.ts +0 -7
- package/dist/query/strategy/http.d.ts.map +0 -1
- package/dist/query/strategy/http.js +0 -26
- package/dist/query/strategy/http.js.map +0 -1
- package/dist/query/strategy/index.d.ts +0 -4
- package/dist/query/strategy/index.d.ts.map +0 -1
- package/dist/query/strategy/index.js +0 -32
- package/dist/query/strategy/index.js.map +0 -1
- package/dist/query/strategy/sql.d.ts +0 -7
- package/dist/query/strategy/sql.d.ts.map +0 -1
- package/dist/query/strategy/sql.js +0 -40
- package/dist/query/strategy/sql.js.map +0 -1
- package/dist/query/strategy/types.d.ts +0 -6
- package/dist/query/strategy/types.d.ts.map +0 -1
- package/dist/query/strategy/types.js.map +0 -1
- package/dist/query/template.d.ts +0 -7
- package/dist/query/template.d.ts.map +0 -1
- package/dist/query/template.js +0 -43
- package/dist/query/template.js.map +0 -1
- package/dist/startup/index.d.ts +0 -5
- package/dist/startup/index.d.ts.map +0 -1
- package/dist/startup/index.js +0 -16
- package/dist/startup/index.js.map +0 -1
- package/dist/startup/sentinel-check.d.ts +0 -12
- package/dist/startup/sentinel-check.d.ts.map +0 -1
- package/dist/startup/sentinel-check.js +0 -142
- package/dist/startup/sentinel-check.js.map +0 -1
- package/dist/startup/sql-lint.d.ts +0 -13
- package/dist/startup/sql-lint.d.ts.map +0 -1
- package/dist/startup/sql-lint.js +0 -87
- package/dist/startup/sql-lint.js.map +0 -1
package/dist/cache/client.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/cache/client.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,+DAA+D;AAC/D,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,OAAO,KAAK,MAAM,SAAS,CAAC;AAE5B,IAAI,MAAM,GAAiB,IAAI,CAAC;AAChC,IAAI,SAAS,GAAG,KAAK,CAAC;AAEtB,MAAM,UAAU,SAAS,CAAC,MAA4C;IACpE,MAAM,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE;QAC7B,WAAW,EAAE,IAAI;QACjB,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,EAAE,IAAI,CAAC;KACtD,CAAC,CAAC;IACH,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;QACxB,SAAS,GAAG,IAAI,CAAC;IACnB,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAU,EAAE,EAAE;QAChC,OAAO,CAAC,IAAI,CAAC,yBAAyB,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;QACrD,SAAS,GAAG,KAAK,CAAC;IACpB,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE;QAC1B,OAAO,CAAC,IAAI,CACV,8DAA8D,CAC/D,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,OAAO,SAAS,IAAI,MAAM,KAAK,IAAI,CAAC;AACtC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,GAAW;IACxC,IAAI,CAAC,WAAW,EAAE;QAAE,OAAO,IAAI,CAAC;IAChC,IAAI,CAAC;QACH,OAAO,MAAM,MAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,GAAW,EACX,GAAW,EACX,KAAa;IAEb,IAAI,CAAC,WAAW,EAAE;QAAE,OAAO;IAC3B,IAAI,CAAC;QACH,MAAM,MAAO,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,UAAU;IACZ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,MAAM,GAAG,IAAI,CAAC;QACd,SAAS,GAAG,KAAK,CAAC;IACpB,CAAC;AACH,CAAC"}
|
package/dist/cache/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cache/index.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EACL,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,UAAU,GACX,MAAM,UAAU,CAAC"}
|
package/dist/cache/index.js
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
// Copyright 2026 Mataki Labs LLC
|
|
2
|
-
//
|
|
3
|
-
// Licensed under the Business Source License 1.1 (the "License");
|
|
4
|
-
// you may not use this file except in compliance with the License.
|
|
5
|
-
// You may obtain a copy of the License at
|
|
6
|
-
//
|
|
7
|
-
// https://github.com/panoboard/panoboard/blob/main/LICENSE
|
|
8
|
-
//
|
|
9
|
-
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
-
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
-
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
-
// See the License for the specific language governing permissions and
|
|
13
|
-
// limitations under the License.
|
|
14
|
-
export { buildCacheKey } from "./keys";
|
|
15
|
-
export { cachedQuery, resolveTtl } from "./cache";
|
|
16
|
-
export { initCache, cacheGet, cacheSet, isAvailable, closeCache, } from "./client";
|
|
17
|
-
//# sourceMappingURL=index.js.map
|
package/dist/cache/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cache/index.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,+DAA+D;AAC/D,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EACL,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,UAAU,GACX,MAAM,UAAU,CAAC"}
|
package/dist/cache/keys.d.ts
DELETED
package/dist/cache/keys.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../src/cache/keys.ts"],"names":[],"mappings":"AAgBA,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,eAAe,CAAC,EAAE,MAAM,GACvB,MAAM,CAaR"}
|
package/dist/cache/keys.js
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
// Copyright 2026 Mataki Labs LLC
|
|
2
|
-
//
|
|
3
|
-
// Licensed under the Business Source License 1.1 (the "License");
|
|
4
|
-
// you may not use this file except in compliance with the License.
|
|
5
|
-
// You may obtain a copy of the License at
|
|
6
|
-
//
|
|
7
|
-
// https://github.com/panoboard/panoboard/blob/main/LICENSE
|
|
8
|
-
//
|
|
9
|
-
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
-
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
-
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
-
// See the License for the specific language governing permissions and
|
|
13
|
-
// limitations under the License.
|
|
14
|
-
import { createHash } from "crypto";
|
|
15
|
-
export function buildCacheKey(prefix, slug, panelId, params, queryIdentifier) {
|
|
16
|
-
const sortedEntries = Object.entries(params).sort(([a], [b]) => a.localeCompare(b));
|
|
17
|
-
const hashParts = queryIdentifier
|
|
18
|
-
? [queryIdentifier, sortedEntries]
|
|
19
|
-
: [sortedEntries];
|
|
20
|
-
const hash = createHash("sha256")
|
|
21
|
-
.update(JSON.stringify(hashParts))
|
|
22
|
-
.digest("hex")
|
|
23
|
-
.slice(0, 16);
|
|
24
|
-
return `${prefix}:panel:${slug}:${panelId}:${hash}`;
|
|
25
|
-
}
|
|
26
|
-
//# sourceMappingURL=keys.js.map
|
package/dist/cache/keys.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"keys.js","sourceRoot":"","sources":["../../src/cache/keys.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,+DAA+D;AAC/D,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC,MAAM,UAAU,aAAa,CAC3B,MAAc,EACd,IAAY,EACZ,OAAe,EACf,MAA+B,EAC/B,eAAwB;IAExB,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAC7D,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CACnB,CAAC;IACF,MAAM,SAAS,GAAc,eAAe;QAC1C,CAAC,CAAC,CAAC,eAAe,EAAE,aAAa,CAAC;QAClC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;IAEpB,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC;SAC9B,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;SACjC,MAAM,CAAC,KAAK,CAAC;SACb,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAChB,OAAO,GAAG,MAAM,UAAU,IAAI,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;AACtD,CAAC"}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import type { Connector, QueryRequest, QueryResult, QueryOptions, ConnectionTestResult, ColumnMeta } from "./types";
|
|
2
|
-
export declare function mapBigQueryType(bqType: string): ColumnMeta["type"];
|
|
3
|
-
export interface BigQueryConnectorConfig {
|
|
4
|
-
id: string;
|
|
5
|
-
project: string;
|
|
6
|
-
dataset?: string;
|
|
7
|
-
location?: string;
|
|
8
|
-
auth: {
|
|
9
|
-
type: "adc";
|
|
10
|
-
} | {
|
|
11
|
-
type: "service-account-key";
|
|
12
|
-
key_file?: string;
|
|
13
|
-
key_json?: string;
|
|
14
|
-
};
|
|
15
|
-
}
|
|
16
|
-
export declare class BigQueryConnector implements Connector {
|
|
17
|
-
readonly id: string;
|
|
18
|
-
readonly type: "bigquery";
|
|
19
|
-
private client;
|
|
20
|
-
private location?;
|
|
21
|
-
constructor(config: BigQueryConnectorConfig);
|
|
22
|
-
query(request: QueryRequest, options?: QueryOptions): Promise<QueryResult>;
|
|
23
|
-
testConnection(): Promise<ConnectionTestResult>;
|
|
24
|
-
close(): Promise<void>;
|
|
25
|
-
}
|
|
26
|
-
//# sourceMappingURL=bigquery.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bigquery.d.ts","sourceRoot":"","sources":["../../src/connectors/bigquery.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EACV,SAAS,EACT,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,oBAAoB,EACpB,UAAU,EACX,MAAM,SAAS,CAAC;AAMjB,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CA2BlE;AAMD,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,EACA;QAAE,IAAI,EAAE,KAAK,CAAA;KAAE,GACf;QAAE,IAAI,EAAE,qBAAqB,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3E;AAMD,qBAAa,iBAAkB,YAAW,SAAS;IACjD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAG,UAAU,CAAU;IACpC,OAAO,CAAC,MAAM,CAAW;IACzB,OAAO,CAAC,QAAQ,CAAC,CAAS;gBAEd,MAAM,EAAE,uBAAuB;IAmBrC,KAAK,CACT,OAAO,EAAE,YAAY,EACrB,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,WAAW,CAAC;IAiDjB,cAAc,IAAI,OAAO,CAAC,oBAAoB,CAAC;IAe/C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG7B"}
|
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
// Copyright 2026 Mataki Labs LLC
|
|
2
|
-
//
|
|
3
|
-
// Licensed under the Business Source License 1.1 (the "License");
|
|
4
|
-
// you may not use this file except in compliance with the License.
|
|
5
|
-
// You may obtain a copy of the License at
|
|
6
|
-
//
|
|
7
|
-
// https://github.com/panoboard/panoboard/blob/main/LICENSE
|
|
8
|
-
//
|
|
9
|
-
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
-
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
-
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
-
// See the License for the specific language governing permissions and
|
|
13
|
-
// limitations under the License.
|
|
14
|
-
import { BigQuery } from "@google-cloud/bigquery";
|
|
15
|
-
// ---------------------------------------------------------------------------
|
|
16
|
-
// BigQuery column type → normalized column type
|
|
17
|
-
// ---------------------------------------------------------------------------
|
|
18
|
-
export function mapBigQueryType(bqType) {
|
|
19
|
-
switch (bqType) {
|
|
20
|
-
case "STRING":
|
|
21
|
-
case "BYTES":
|
|
22
|
-
return "string";
|
|
23
|
-
case "INT64":
|
|
24
|
-
case "FLOAT64":
|
|
25
|
-
case "NUMERIC":
|
|
26
|
-
case "BIGNUMERIC":
|
|
27
|
-
return "number";
|
|
28
|
-
case "BOOL":
|
|
29
|
-
return "boolean";
|
|
30
|
-
case "DATE":
|
|
31
|
-
case "DATETIME":
|
|
32
|
-
case "TIMESTAMP":
|
|
33
|
-
case "TIME":
|
|
34
|
-
return "date";
|
|
35
|
-
case "NULL":
|
|
36
|
-
return "null";
|
|
37
|
-
default:
|
|
38
|
-
return "string";
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
// ---------------------------------------------------------------------------
|
|
42
|
-
// Connector implementation
|
|
43
|
-
// ---------------------------------------------------------------------------
|
|
44
|
-
export class BigQueryConnector {
|
|
45
|
-
id;
|
|
46
|
-
type = "bigquery";
|
|
47
|
-
client;
|
|
48
|
-
location;
|
|
49
|
-
constructor(config) {
|
|
50
|
-
this.id = config.id;
|
|
51
|
-
this.location = config.location;
|
|
52
|
-
const clientOptions = {
|
|
53
|
-
projectId: config.project,
|
|
54
|
-
};
|
|
55
|
-
if (config.auth.type === "service-account-key") {
|
|
56
|
-
if (config.auth.key_file) {
|
|
57
|
-
clientOptions.keyFilename = config.auth.key_file;
|
|
58
|
-
}
|
|
59
|
-
else if (config.auth.key_json) {
|
|
60
|
-
clientOptions.credentials = JSON.parse(config.auth.key_json);
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
this.client = new BigQuery(clientOptions);
|
|
64
|
-
}
|
|
65
|
-
async query(request, options) {
|
|
66
|
-
if (request.type !== "sql") {
|
|
67
|
-
throw new Error("[BigQueryConnector] only supports SQL queries");
|
|
68
|
-
}
|
|
69
|
-
const start = Date.now();
|
|
70
|
-
// Replace :param_name with @param_name (BigQuery named param syntax)
|
|
71
|
-
const normalizedSql = request.sql.replace(/:([a-zA-Z_][a-zA-Z0-9_]*)/g, (_match, name) => `@${name}`);
|
|
72
|
-
// BigQuery SDK throws if any param value is null without an explicit type.
|
|
73
|
-
// Strip nulls — unbound params will result in a "parameter not found" error
|
|
74
|
-
// from BigQuery, which surfaces as a panel-level 500, not a process crash.
|
|
75
|
-
const rawParams = request.params ?? options?.params ?? {};
|
|
76
|
-
const params = Object.fromEntries(Object.entries(rawParams).filter(([, v]) => v !== null && v !== undefined));
|
|
77
|
-
const queryOptions = {
|
|
78
|
-
query: normalizedSql,
|
|
79
|
-
params,
|
|
80
|
-
};
|
|
81
|
-
if (this.location !== undefined) {
|
|
82
|
-
queryOptions.location = this.location;
|
|
83
|
-
}
|
|
84
|
-
const [rows, metadata] = await this.client.query(queryOptions);
|
|
85
|
-
const fields = metadata?.schema?.fields ?? [];
|
|
86
|
-
const columns = fields.map((f) => ({
|
|
87
|
-
name: f.name,
|
|
88
|
-
type: mapBigQueryType(f.type),
|
|
89
|
-
nullable: true, // BigQuery does not expose nullability in query responses
|
|
90
|
-
}));
|
|
91
|
-
return {
|
|
92
|
-
columns,
|
|
93
|
-
rows: rows,
|
|
94
|
-
rowCount: rows.length,
|
|
95
|
-
durationMs: Date.now() - start,
|
|
96
|
-
fromCache: false,
|
|
97
|
-
};
|
|
98
|
-
}
|
|
99
|
-
async testConnection() {
|
|
100
|
-
const start = Date.now();
|
|
101
|
-
try {
|
|
102
|
-
await this.client.query({ query: "SELECT 1" });
|
|
103
|
-
return { ok: true, latencyMs: Date.now() - start };
|
|
104
|
-
}
|
|
105
|
-
catch (error) {
|
|
106
|
-
return {
|
|
107
|
-
ok: false,
|
|
108
|
-
latencyMs: Date.now() - start,
|
|
109
|
-
error: error.message,
|
|
110
|
-
};
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
// BigQuery SDK is stateless (HTTP-based); nothing to close.
|
|
114
|
-
async close() {
|
|
115
|
-
// no-op
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
//# sourceMappingURL=bigquery.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bigquery.js","sourceRoot":"","sources":["../../src/connectors/bigquery.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,+DAA+D;AAC/D,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAUlD,8EAA8E;AAC9E,gDAAgD;AAChD,8EAA8E;AAE9E,MAAM,UAAU,eAAe,CAAC,MAAc;IAC5C,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,QAAQ,CAAC;QACd,KAAK,OAAO;YACV,OAAO,QAAQ,CAAC;QAElB,KAAK,OAAO,CAAC;QACb,KAAK,SAAS,CAAC;QACf,KAAK,SAAS,CAAC;QACf,KAAK,YAAY;YACf,OAAO,QAAQ,CAAC;QAElB,KAAK,MAAM;YACT,OAAO,SAAS,CAAC;QAEnB,KAAK,MAAM,CAAC;QACZ,KAAK,UAAU,CAAC;QAChB,KAAK,WAAW,CAAC;QACjB,KAAK,MAAM;YACT,OAAO,MAAM,CAAC;QAEhB,KAAK,MAAM;YACT,OAAO,MAAM,CAAC;QAEhB;YACE,OAAO,QAAQ,CAAC;IACpB,CAAC;AACH,CAAC;AAgBD,8EAA8E;AAC9E,2BAA2B;AAC3B,8EAA8E;AAE9E,MAAM,OAAO,iBAAiB;IACnB,EAAE,CAAS;IACX,IAAI,GAAG,UAAmB,CAAC;IAC5B,MAAM,CAAW;IACjB,QAAQ,CAAU;IAE1B,YAAY,MAA+B;QACzC,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;QACpB,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAEhC,MAAM,aAAa,GAA8C;YAC/D,SAAS,EAAE,MAAM,CAAC,OAAO;SAC1B,CAAC;QAEF,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;YAC/C,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACzB,aAAa,CAAC,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;YACnD,CAAC;iBAAM,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,IAAI,QAAQ,CAAC,aAAa,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,KAAK,CACT,OAAqB,EACrB,OAAsB;QAEtB,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;QACnE,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEzB,qEAAqE;QACrE,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CACvC,4BAA4B,EAC5B,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,EAAE,CAC7B,CAAC;QAEF,2EAA2E;QAC3E,4EAA4E;QAC5E,2EAA2E;QAC3E,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,EAAE,MAAM,IAAI,EAAE,CAAC;QAC1D,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAC/B,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS,CAAC,CAC3E,CAAC;QAEF,MAAM,YAAY,GAAqC;YACrD,KAAK,EAAE,aAAa;YACpB,MAAM;SACP,CAAC;QAEF,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAChC,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QACxC,CAAC;QAED,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAE/D,MAAM,MAAM,GACT,QAAgB,EAAE,MAAM,EAAE,MAAM,IAAI,EAAE,CAAC;QAE1C,MAAM,OAAO,GAAiB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC/C,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC;YAC7B,QAAQ,EAAE,IAAI,EAAE,0DAA0D;SAC3E,CAAC,CAAC,CAAC;QAEJ,OAAO;YACL,OAAO;YACP,IAAI,EAAE,IAAiC;YACvC,QAAQ,EAAG,IAAkB,CAAC,MAAM;YACpC,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;YAC9B,SAAS,EAAE,KAAK;SACjB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;YAC/C,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC;QACrD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;gBAC7B,KAAK,EAAG,KAAe,CAAC,OAAO;aAChC,CAAC;QACJ,CAAC;IACH,CAAC;IAED,4DAA4D;IAC5D,KAAK,CAAC,KAAK;QACT,QAAQ;IACV,CAAC;CACF"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
export type { DatasourceType, QueryRequest, ColumnMeta, QueryResult, QueryOptions, ConnectionTestResult, Connector, } from "./types";
|
|
2
|
-
export { normalizeParams, type ParamStyle } from "./params";
|
|
3
|
-
export { registerConnector, getConnector, getAllConnectors, closeAll, clearRegistry, } from "./registry";
|
|
4
|
-
export { PostgresConnector, mapOidToType } from "./postgres";
|
|
5
|
-
export type { PostgresConnectorConfig, PostgresIamAuth } from "./postgres";
|
|
6
|
-
export { BigQueryConnector, mapBigQueryType } from "./bigquery";
|
|
7
|
-
export type { BigQueryConnectorConfig } from "./bigquery";
|
|
8
|
-
export { RedshiftConnector } from "./redshift";
|
|
9
|
-
export type { RedshiftConnectorConfig, RedshiftIamAuth } from "./redshift";
|
|
10
|
-
export { RedshiftDataConnector, mapTypeNameToType } from "./redshift-data";
|
|
11
|
-
export type { RedshiftDataConnectorConfig } from "./redshift-data";
|
|
12
|
-
export { UrlConnector } from "./url";
|
|
13
|
-
export type { UrlConnectorConfig } from "./url";
|
|
14
|
-
export { SnowflakeConnector, mapSnowflakeType } from "./snowflake";
|
|
15
|
-
export type { SnowflakeConnectorConfig } from "./snowflake";
|
|
16
|
-
export { parsePanoboard, parseArray, parseGrafana, parseDatasette, parseJsonl, } from "./url-parsers";
|
|
17
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/connectors/index.ts"],"names":[],"mappings":"AAcA,YAAY,EACV,cAAc,EACd,YAAY,EACZ,UAAU,EACV,WAAW,EACX,YAAY,EACZ,oBAAoB,EACpB,SAAS,GACV,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,eAAe,EAAE,KAAK,UAAU,EAAE,MAAM,UAAU,CAAC;AAE5D,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,QAAQ,EACR,aAAa,GACd,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC7D,YAAY,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE3E,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAChE,YAAY,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAE1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,YAAY,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE3E,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAC3E,YAAY,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AAEnE,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AACrC,YAAY,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAEhD,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACnE,YAAY,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAE5D,OAAO,EACL,cAAc,EACd,UAAU,EACV,YAAY,EACZ,cAAc,EACd,UAAU,GACX,MAAM,eAAe,CAAC"}
|
package/dist/connectors/index.js
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
// Copyright 2026 Mataki Labs LLC
|
|
2
|
-
//
|
|
3
|
-
// Licensed under the Business Source License 1.1 (the "License");
|
|
4
|
-
// you may not use this file except in compliance with the License.
|
|
5
|
-
// You may obtain a copy of the License at
|
|
6
|
-
//
|
|
7
|
-
// https://github.com/panoboard/panoboard/blob/main/LICENSE
|
|
8
|
-
//
|
|
9
|
-
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
-
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
-
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
-
// See the License for the specific language governing permissions and
|
|
13
|
-
// limitations under the License.
|
|
14
|
-
export { normalizeParams } from "./params";
|
|
15
|
-
export { registerConnector, getConnector, getAllConnectors, closeAll, clearRegistry, } from "./registry";
|
|
16
|
-
export { PostgresConnector, mapOidToType } from "./postgres";
|
|
17
|
-
export { BigQueryConnector, mapBigQueryType } from "./bigquery";
|
|
18
|
-
export { RedshiftConnector } from "./redshift";
|
|
19
|
-
export { RedshiftDataConnector, mapTypeNameToType } from "./redshift-data";
|
|
20
|
-
export { UrlConnector } from "./url";
|
|
21
|
-
export { SnowflakeConnector, mapSnowflakeType } from "./snowflake";
|
|
22
|
-
export { parsePanoboard, parseArray, parseGrafana, parseDatasette, parseJsonl, } from "./url-parsers";
|
|
23
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/connectors/index.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,+DAA+D;AAC/D,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAYjC,OAAO,EAAE,eAAe,EAAmB,MAAM,UAAU,CAAC;AAE5D,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,QAAQ,EACR,aAAa,GACd,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG7D,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGhE,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAG/C,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAG3E,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAGrC,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAGnE,OAAO,EACL,cAAc,EACd,UAAU,EACV,YAAY,EACZ,cAAc,EACd,UAAU,GACX,MAAM,eAAe,CAAC"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
export type ParamStyle = "numbered" | "positional";
|
|
2
|
-
/**
|
|
3
|
-
* Normalizes named :param_name placeholders in SQL to driver-specific
|
|
4
|
-
* positional parameters.
|
|
5
|
-
*
|
|
6
|
-
* @param style - "numbered" ($1, $2) for Postgres/Redshift, "positional" (?) for Snowflake
|
|
7
|
-
*
|
|
8
|
-
* With "numbered": duplicate :param references reuse the same $N index.
|
|
9
|
-
* With "positional": each :param occurrence gets its own ? slot.
|
|
10
|
-
*/
|
|
11
|
-
export declare function normalizeParams(sql: string, params: Record<string, unknown>, style?: ParamStyle): {
|
|
12
|
-
normalizedSql: string;
|
|
13
|
-
values: unknown[];
|
|
14
|
-
};
|
|
15
|
-
//# sourceMappingURL=params.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"params.d.ts","sourceRoot":"","sources":["../../src/connectors/params.ts"],"names":[],"mappings":"AAcA,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,YAAY,CAAC;AAEnD;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,KAAK,GAAE,UAAuB,GAC7B;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,EAAE,CAAA;CAAE,CA6B9C"}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
// Copyright 2026 Mataki Labs LLC
|
|
2
|
-
//
|
|
3
|
-
// Licensed under the Business Source License 1.1 (the "License");
|
|
4
|
-
// you may not use this file except in compliance with the License.
|
|
5
|
-
// You may obtain a copy of the License at
|
|
6
|
-
//
|
|
7
|
-
// https://github.com/panoboard/panoboard/blob/main/LICENSE
|
|
8
|
-
//
|
|
9
|
-
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
-
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
-
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
-
// See the License for the specific language governing permissions and
|
|
13
|
-
// limitations under the License.
|
|
14
|
-
/**
|
|
15
|
-
* Normalizes named :param_name placeholders in SQL to driver-specific
|
|
16
|
-
* positional parameters.
|
|
17
|
-
*
|
|
18
|
-
* @param style - "numbered" ($1, $2) for Postgres/Redshift, "positional" (?) for Snowflake
|
|
19
|
-
*
|
|
20
|
-
* With "numbered": duplicate :param references reuse the same $N index.
|
|
21
|
-
* With "positional": each :param occurrence gets its own ? slot.
|
|
22
|
-
*/
|
|
23
|
-
export function normalizeParams(sql, params, style = "numbered") {
|
|
24
|
-
if (style === "positional") {
|
|
25
|
-
const paramNames = [];
|
|
26
|
-
const normalizedSql = sql.replace(/(?<!:):([a-zA-Z_][a-zA-Z0-9_]*)/g, (_match, name) => {
|
|
27
|
-
paramNames.push(name);
|
|
28
|
-
return "?";
|
|
29
|
-
});
|
|
30
|
-
const values = paramNames.map((name) => params[name] ?? null);
|
|
31
|
-
return { normalizedSql, values };
|
|
32
|
-
}
|
|
33
|
-
// "numbered" — Postgres/Redshift style ($1, $2, ...)
|
|
34
|
-
const paramNames = [];
|
|
35
|
-
const paramMap = new Map();
|
|
36
|
-
const normalizedSql = sql.replace(/(?<!:):([a-zA-Z_][a-zA-Z0-9_]*)/g, (_match, name) => {
|
|
37
|
-
if (!paramMap.has(name)) {
|
|
38
|
-
paramMap.set(name, paramNames.length + 1);
|
|
39
|
-
paramNames.push(name);
|
|
40
|
-
}
|
|
41
|
-
return `$${paramMap.get(name)}`;
|
|
42
|
-
});
|
|
43
|
-
const values = paramNames.map((name) => params[name] ?? null);
|
|
44
|
-
return { normalizedSql, values };
|
|
45
|
-
}
|
|
46
|
-
//# sourceMappingURL=params.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"params.js","sourceRoot":"","sources":["../../src/connectors/params.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,+DAA+D;AAC/D,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAIjC;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAC7B,GAAW,EACX,MAA+B,EAC/B,QAAoB,UAAU;IAE9B,IAAI,KAAK,KAAK,YAAY,EAAE,CAAC;QAC3B,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,MAAM,aAAa,GAAG,GAAG,CAAC,OAAO,CAC/B,kCAAkC,EAClC,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;YACf,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtB,OAAO,GAAG,CAAC;QACb,CAAC,CACF,CAAC;QACF,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC;QAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC;IACnC,CAAC;IAED,qDAAqD;IACrD,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC3C,MAAM,aAAa,GAAG,GAAG,CAAC,OAAO,CAC/B,kCAAkC,EAClC,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;QACf,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC1C,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;QACD,OAAO,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;IAClC,CAAC,CACF,CAAC;IACF,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC;IAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC;AACnC,CAAC"}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import type { Connector, QueryRequest, QueryResult, QueryOptions, ConnectionTestResult, ColumnMeta } from "./types";
|
|
2
|
-
export declare function mapOidToType(oid: number): ColumnMeta["type"];
|
|
3
|
-
export interface PostgresIamAuth {
|
|
4
|
-
type: "iam";
|
|
5
|
-
provider: "aws" | "gcp";
|
|
6
|
-
region?: string;
|
|
7
|
-
username?: string;
|
|
8
|
-
}
|
|
9
|
-
export interface PostgresConnectorConfig {
|
|
10
|
-
id: string;
|
|
11
|
-
host: string;
|
|
12
|
-
port: number;
|
|
13
|
-
database: string;
|
|
14
|
-
user: string;
|
|
15
|
-
password: string;
|
|
16
|
-
ssl: "require" | "prefer" | boolean;
|
|
17
|
-
pool_size: number;
|
|
18
|
-
auth?: PostgresIamAuth;
|
|
19
|
-
}
|
|
20
|
-
export declare class PostgresConnector implements Connector {
|
|
21
|
-
readonly id: string;
|
|
22
|
-
readonly type: "postgres";
|
|
23
|
-
private pool;
|
|
24
|
-
constructor(config: PostgresConnectorConfig);
|
|
25
|
-
query(request: QueryRequest, options?: QueryOptions): Promise<QueryResult>;
|
|
26
|
-
testConnection(): Promise<ConnectionTestResult>;
|
|
27
|
-
close(): Promise<void>;
|
|
28
|
-
}
|
|
29
|
-
//# sourceMappingURL=postgres.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"postgres.d.ts","sourceRoot":"","sources":["../../src/connectors/postgres.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EACV,SAAS,EACT,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,oBAAoB,EACpB,UAAU,EACX,MAAM,SAAS,CAAC;AAIjB,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CA0B5D;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,KAAK,CAAC;IACZ,QAAQ,EAAE,KAAK,GAAG,KAAK,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,eAAe,CAAC;CACxB;AAoCD,qBAAa,iBAAkB,YAAW,SAAS;IACjD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAG,UAAU,CAAU;IACpC,OAAO,CAAC,IAAI,CAAO;gBAEP,MAAM,EAAE,uBAAuB;IA0BrC,KAAK,CACT,OAAO,EAAE,YAAY,EACrB,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,WAAW,CAAC;IA2BjB,cAAc,IAAI,OAAO,CAAC,oBAAoB,CAAC;IAc/C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG7B"}
|
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
// Copyright 2026 Mataki Labs LLC
|
|
2
|
-
//
|
|
3
|
-
// Licensed under the Business Source License 1.1 (the "License");
|
|
4
|
-
// you may not use this file except in compliance with the License.
|
|
5
|
-
// You may obtain a copy of the License at
|
|
6
|
-
//
|
|
7
|
-
// https://github.com/panoboard/panoboard/blob/main/LICENSE
|
|
8
|
-
//
|
|
9
|
-
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
-
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
-
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
-
// See the License for the specific language governing permissions and
|
|
13
|
-
// limitations under the License.
|
|
14
|
-
import { Pool } from "pg";
|
|
15
|
-
import { normalizeParams } from "./params";
|
|
16
|
-
// Postgres OID → normalized column type
|
|
17
|
-
export function mapOidToType(oid) {
|
|
18
|
-
switch (oid) {
|
|
19
|
-
case 20: // int8
|
|
20
|
-
case 21: // int2
|
|
21
|
-
case 23: // int4
|
|
22
|
-
case 700: // float4
|
|
23
|
-
case 701: // float8
|
|
24
|
-
case 1700: // numeric / decimal
|
|
25
|
-
return "number";
|
|
26
|
-
case 16: // bool
|
|
27
|
-
return "boolean";
|
|
28
|
-
case 25: // text
|
|
29
|
-
case 1042: // bpchar
|
|
30
|
-
case 1043: // varchar
|
|
31
|
-
return "string";
|
|
32
|
-
case 1082: // date
|
|
33
|
-
case 1114: // timestamp
|
|
34
|
-
case 1184: // timestamptz
|
|
35
|
-
return "date";
|
|
36
|
-
default:
|
|
37
|
-
return "string";
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
async function resolveIamPassword(config) {
|
|
41
|
-
if (!config.auth || config.auth.type !== "iam") {
|
|
42
|
-
return config.password;
|
|
43
|
-
}
|
|
44
|
-
if (config.auth.provider === "aws") {
|
|
45
|
-
const { Signer } = await import("@aws-sdk/rds-signer");
|
|
46
|
-
const signer = new Signer({
|
|
47
|
-
hostname: config.host,
|
|
48
|
-
port: config.port,
|
|
49
|
-
username: config.auth.username ?? config.user,
|
|
50
|
-
region: config.auth.region,
|
|
51
|
-
});
|
|
52
|
-
return signer.getAuthToken();
|
|
53
|
-
}
|
|
54
|
-
if (config.auth.provider === "gcp") {
|
|
55
|
-
const { GoogleAuth } = await import("google-auth-library");
|
|
56
|
-
const auth = new GoogleAuth({
|
|
57
|
-
scopes: ["https://www.googleapis.com/auth/sqlservice.admin"],
|
|
58
|
-
});
|
|
59
|
-
const client = await auth.getClient();
|
|
60
|
-
const tokenResponse = await client.getAccessToken();
|
|
61
|
-
if (!tokenResponse.token) {
|
|
62
|
-
throw new Error("Failed to get GCP access token for Cloud SQL IAM auth");
|
|
63
|
-
}
|
|
64
|
-
return tokenResponse.token;
|
|
65
|
-
}
|
|
66
|
-
return config.password;
|
|
67
|
-
}
|
|
68
|
-
export class PostgresConnector {
|
|
69
|
-
id;
|
|
70
|
-
type = "postgres";
|
|
71
|
-
pool;
|
|
72
|
-
constructor(config) {
|
|
73
|
-
this.id = config.id;
|
|
74
|
-
this.pool = new Pool({
|
|
75
|
-
host: config.host,
|
|
76
|
-
port: config.port,
|
|
77
|
-
database: config.database,
|
|
78
|
-
user: config.user,
|
|
79
|
-
password: config.auth?.type === "iam"
|
|
80
|
-
? () => resolveIamPassword(config)
|
|
81
|
-
: config.password,
|
|
82
|
-
ssl: config.ssl === "require"
|
|
83
|
-
? { rejectUnauthorized: true }
|
|
84
|
-
: config.ssl === "prefer"
|
|
85
|
-
? { rejectUnauthorized: false }
|
|
86
|
-
: config.ssl === true
|
|
87
|
-
? { rejectUnauthorized: true }
|
|
88
|
-
: undefined,
|
|
89
|
-
max: config.pool_size,
|
|
90
|
-
});
|
|
91
|
-
this.pool.on("error", (err) => {
|
|
92
|
-
console.error(`[${this.id}] pg.Pool idle client error:`, err.message);
|
|
93
|
-
});
|
|
94
|
-
}
|
|
95
|
-
async query(request, options) {
|
|
96
|
-
if (request.type !== "sql") {
|
|
97
|
-
throw new Error("[PostgresConnector] only supports SQL queries");
|
|
98
|
-
}
|
|
99
|
-
const start = Date.now();
|
|
100
|
-
const { normalizedSql, values } = normalizeParams(request.sql, request.params ?? options?.params ?? {});
|
|
101
|
-
const result = await this.pool.query(normalizedSql, values);
|
|
102
|
-
const columns = result.fields.map((f) => ({
|
|
103
|
-
name: f.name,
|
|
104
|
-
type: mapOidToType(f.dataTypeID),
|
|
105
|
-
nullable: true, // pg doesn't expose nullability in query results
|
|
106
|
-
}));
|
|
107
|
-
return {
|
|
108
|
-
columns,
|
|
109
|
-
rows: result.rows,
|
|
110
|
-
rowCount: result.rowCount ?? result.rows.length,
|
|
111
|
-
durationMs: Date.now() - start,
|
|
112
|
-
fromCache: false,
|
|
113
|
-
};
|
|
114
|
-
}
|
|
115
|
-
async testConnection() {
|
|
116
|
-
const start = Date.now();
|
|
117
|
-
try {
|
|
118
|
-
await this.pool.query("SELECT 1");
|
|
119
|
-
return { ok: true, latencyMs: Date.now() - start };
|
|
120
|
-
}
|
|
121
|
-
catch (error) {
|
|
122
|
-
return {
|
|
123
|
-
ok: false,
|
|
124
|
-
latencyMs: Date.now() - start,
|
|
125
|
-
error: error.message,
|
|
126
|
-
};
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
async close() {
|
|
130
|
-
await this.pool.end();
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
//# sourceMappingURL=postgres.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"postgres.js","sourceRoot":"","sources":["../../src/connectors/postgres.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import type { Connector, QueryRequest, QueryResult, QueryOptions, ConnectionTestResult, ColumnMeta } from "./types";
|
|
2
|
-
export declare function mapTypeNameToType(typeName: string): ColumnMeta["type"];
|
|
3
|
-
export interface RedshiftDataConnectorConfig {
|
|
4
|
-
id: string;
|
|
5
|
-
cluster_identifier?: string;
|
|
6
|
-
workgroup_name?: string;
|
|
7
|
-
database: string;
|
|
8
|
-
region: string;
|
|
9
|
-
auth: {
|
|
10
|
-
type: "sdk-default" | "role";
|
|
11
|
-
role_arn?: string;
|
|
12
|
-
};
|
|
13
|
-
}
|
|
14
|
-
export declare class RedshiftDataConnector implements Connector {
|
|
15
|
-
readonly id: string;
|
|
16
|
-
readonly type: "redshift-data";
|
|
17
|
-
private client;
|
|
18
|
-
private config;
|
|
19
|
-
constructor(config: RedshiftDataConnectorConfig);
|
|
20
|
-
private getClient;
|
|
21
|
-
query(request: QueryRequest, options?: QueryOptions): Promise<QueryResult>;
|
|
22
|
-
testConnection(): Promise<ConnectionTestResult>;
|
|
23
|
-
close(): Promise<void>;
|
|
24
|
-
}
|
|
25
|
-
//# sourceMappingURL=redshift-data.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"redshift-data.d.ts","sourceRoot":"","sources":["../../src/connectors/redshift-data.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EACV,SAAS,EACT,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,oBAAoB,EACpB,UAAU,EACX,MAAM,SAAS,CAAC;AAMjB,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CA2BtE;AAMD,MAAM,WAAW,2BAA2B;IAC1C,EAAE,EAAE,MAAM,CAAC;IACX,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE;QACJ,IAAI,EAAE,aAAa,GAAG,MAAM,CAAC;QAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAsCD,qBAAa,qBAAsB,YAAW,SAAS;IACrD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAG,eAAe,CAAU;IAEzC,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,MAAM,CAA8B;gBAEhC,MAAM,EAAE,2BAA2B;YAOjC,SAAS;IAgBjB,KAAK,CACT,OAAO,EAAE,YAAY,EACrB,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,WAAW,CAAC;IAqJjB,cAAc,IAAI,OAAO,CAAC,oBAAoB,CAAC;IAc/C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG7B"}
|