@activepieces/piece-google-bigquery 0.0.3 → 0.0.5
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/package.json +7 -14
- package/src/index.js +100 -60
- package/src/index.d.ts +0 -8
- package/src/index.d.ts.map +0 -1
- package/src/index.js.map +0 -1
- package/src/lib/actions/create-row.d.ts +0 -22
- package/src/lib/actions/create-row.d.ts.map +0 -1
- package/src/lib/actions/create-row.js +0 -80
- package/src/lib/actions/create-row.js.map +0 -1
- package/src/lib/actions/create-rows.d.ts +0 -21
- package/src/lib/actions/create-rows.d.ts.map +0 -1
- package/src/lib/actions/create-rows.js +0 -89
- package/src/lib/actions/create-rows.js.map +0 -1
- package/src/lib/actions/delete-rows.d.ts +0 -20
- package/src/lib/actions/delete-rows.d.ts.map +0 -1
- package/src/lib/actions/delete-rows.js +0 -48
- package/src/lib/actions/delete-rows.js.map +0 -1
- package/src/lib/actions/find-one-row.d.ts +0 -21
- package/src/lib/actions/find-one-row.d.ts.map +0 -1
- package/src/lib/actions/find-one-row.js +0 -65
- package/src/lib/actions/find-one-row.js.map +0 -1
- package/src/lib/actions/find-or-create-row.d.ts +0 -21
- package/src/lib/actions/find-or-create-row.d.ts.map +0 -1
- package/src/lib/actions/find-or-create-row.js +0 -84
- package/src/lib/actions/find-or-create-row.js.map +0 -1
- package/src/lib/actions/get-rows-for-job.d.ts +0 -13
- package/src/lib/actions/get-rows-for-job.d.ts.map +0 -1
- package/src/lib/actions/get-rows-for-job.js +0 -81
- package/src/lib/actions/get-rows-for-job.js.map +0 -1
- package/src/lib/actions/import-data.d.ts +0 -21
- package/src/lib/actions/import-data.d.ts.map +0 -1
- package/src/lib/actions/import-data.js +0 -116
- package/src/lib/actions/import-data.js.map +0 -1
- package/src/lib/actions/run-query.d.ts +0 -14
- package/src/lib/actions/run-query.d.ts.map +0 -1
- package/src/lib/actions/run-query.js +0 -91
- package/src/lib/actions/run-query.js.map +0 -1
- package/src/lib/actions/update-rows.d.ts +0 -21
- package/src/lib/actions/update-rows.d.ts.map +0 -1
- package/src/lib/actions/update-rows.js +0 -53
- package/src/lib/actions/update-rows.js.map +0 -1
- package/src/lib/common/index.d.ts +0 -73
- package/src/lib/common/index.d.ts.map +0 -1
- package/src/lib/common/index.js +0 -343
- package/src/lib/common/index.js.map +0 -1
- package/src/lib/triggers/new-job-completed.d.ts +0 -39
- package/src/lib/triggers/new-job-completed.d.ts.map +0 -1
- package/src/lib/triggers/new-job-completed.js +0 -121
- package/src/lib/triggers/new-job-completed.js.map +0 -1
- package/src/lib/triggers/new-row.d.ts +0 -75
- package/src/lib/triggers/new-row.d.ts.map +0 -1
- package/src/lib/triggers/new-row.js +0 -112
- package/src/lib/triggers/new-row.js.map +0 -1
- package/src/lib/triggers/query-job-completed.d.ts +0 -39
- package/src/lib/triggers/query-job-completed.d.ts.map +0 -1
- package/src/lib/triggers/query-job-completed.js +0 -130
- package/src/lib/triggers/query-job-completed.js.map +0 -1
- package/src/lib/triggers/updated-row.d.ts +0 -79
- package/src/lib/triggers/updated-row.d.ts.map +0 -1
- package/src/lib/triggers/updated-row.js +0 -121
- package/src/lib/triggers/updated-row.js.map +0 -1
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getRowsForJobAction = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const pieces_framework_1 = require("@activepieces/pieces-framework");
|
|
6
|
-
const pieces_common_1 = require("@activepieces/pieces-common");
|
|
7
|
-
const common_1 = require("../common");
|
|
8
|
-
exports.getRowsForJobAction = (0, pieces_framework_1.createAction)({
|
|
9
|
-
auth: common_1.bigQueryAuth,
|
|
10
|
-
name: 'get_rows_for_job',
|
|
11
|
-
displayName: 'Get Rows for Job Completed',
|
|
12
|
-
description: 'Retrieves the result rows from a completed BigQuery query job by Job ID. Use this after a "Query Job Completed" trigger to fetch the full result set.',
|
|
13
|
-
audience: 'both',
|
|
14
|
-
aiMetadata: {
|
|
15
|
-
description: 'Fetches the cached result rows of an already-completed BigQuery query job by its job ID, paginating up to the max-rows cap. Use it to retrieve the full result set after a "Query Job Completed" trigger or a "Run a Query" action hands you a job ID. The job must already be finished — it errors if the job is still running. Read-only and idempotent.',
|
|
16
|
-
idempotent: true,
|
|
17
|
-
},
|
|
18
|
-
props: {
|
|
19
|
-
project_id: common_1.projectIdProp,
|
|
20
|
-
job_id: pieces_framework_1.Property.ShortText({
|
|
21
|
-
displayName: 'Job ID',
|
|
22
|
-
description: 'The BigQuery job ID to fetch results for. This is returned by the "Query Job Completed" trigger or a "Run a Query" action.',
|
|
23
|
-
required: true,
|
|
24
|
-
}),
|
|
25
|
-
max_results: pieces_framework_1.Property.Number({
|
|
26
|
-
displayName: 'Max Rows',
|
|
27
|
-
description: 'Maximum number of rows to return (up to 10,000). Default: 1,000.',
|
|
28
|
-
required: false,
|
|
29
|
-
defaultValue: 1000,
|
|
30
|
-
}),
|
|
31
|
-
location: pieces_framework_1.Property.ShortText({
|
|
32
|
-
displayName: 'Location',
|
|
33
|
-
description: 'Dataset location where the job ran (e.g. US, EU). Leave blank for US.',
|
|
34
|
-
required: false,
|
|
35
|
-
}),
|
|
36
|
-
},
|
|
37
|
-
run(context) {
|
|
38
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
39
|
-
var _a, _b, _c, _d, _e, _f;
|
|
40
|
-
const { project_id, job_id, max_results, location } = context.propsValue;
|
|
41
|
-
const limit = Math.min((_a = max_results) !== null && _a !== void 0 ? _a : 1000, 10000);
|
|
42
|
-
const token = yield (0, common_1.getAccessToken)(context.auth);
|
|
43
|
-
const allRows = [];
|
|
44
|
-
let schema = [];
|
|
45
|
-
let pageToken;
|
|
46
|
-
let totalRows = '0';
|
|
47
|
-
let bytesProcessed = '0';
|
|
48
|
-
let cacheHit = false;
|
|
49
|
-
do {
|
|
50
|
-
const remaining = limit - allRows.length;
|
|
51
|
-
const response = yield pieces_common_1.httpClient.sendRequest({
|
|
52
|
-
method: pieces_common_1.HttpMethod.GET,
|
|
53
|
-
url: `${common_1.BASE_URL}/projects/${project_id}/queries/${job_id}`,
|
|
54
|
-
headers: { Authorization: `Bearer ${token}` },
|
|
55
|
-
queryParams: Object.assign(Object.assign({ maxResults: String(Math.min(remaining, 1000)), timeoutMs: '10000' }, (pageToken ? { pageToken } : {})), (location ? { location } : {})),
|
|
56
|
-
});
|
|
57
|
-
const body = response.body;
|
|
58
|
-
if (!body.jobComplete) {
|
|
59
|
-
throw new Error(`Job ${job_id} has not completed yet. Wait for the job to finish before fetching results.`);
|
|
60
|
-
}
|
|
61
|
-
if ((_b = body.schema) === null || _b === void 0 ? void 0 : _b.fields)
|
|
62
|
-
schema = body.schema.fields;
|
|
63
|
-
allRows.push(...((_c = body.rows) !== null && _c !== void 0 ? _c : []));
|
|
64
|
-
pageToken = body.pageToken;
|
|
65
|
-
totalRows = (_d = body.totalRows) !== null && _d !== void 0 ? _d : totalRows;
|
|
66
|
-
bytesProcessed = (_e = body.totalBytesProcessed) !== null && _e !== void 0 ? _e : bytesProcessed;
|
|
67
|
-
cacheHit = (_f = body.cacheHit) !== null && _f !== void 0 ? _f : cacheHit;
|
|
68
|
-
} while (pageToken && allRows.length < limit);
|
|
69
|
-
const rows = (0, common_1.bigQueryRowsToFlat)(schema, allRows.slice(0, limit));
|
|
70
|
-
return {
|
|
71
|
-
rows,
|
|
72
|
-
row_count: rows.length,
|
|
73
|
-
total_rows: parseInt(totalRows, 10),
|
|
74
|
-
bytes_processed: bytesProcessed,
|
|
75
|
-
cache_hit: cacheHit,
|
|
76
|
-
job_id,
|
|
77
|
-
};
|
|
78
|
-
});
|
|
79
|
-
},
|
|
80
|
-
});
|
|
81
|
-
//# sourceMappingURL=get-rows-for-job.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"get-rows-for-job.js","sourceRoot":"","sources":["../../../../src/lib/actions/get-rows-for-job.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
export declare const importDataAction: import("@activepieces/pieces-framework").IAction<(import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props> | import("@activepieces/pieces-framework").CustomAuthProperty<{
|
|
2
|
-
instructions: import("@activepieces/pieces-framework/dist/src/lib/property/input/markdown-property").MarkDownProperty;
|
|
3
|
-
serviceAccountJson: import("@activepieces/pieces-framework").ShortTextProperty<true>;
|
|
4
|
-
}>)[], {
|
|
5
|
-
project_id: import("@activepieces/pieces-framework").DropdownProperty<string, true, (import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props> | import("@activepieces/pieces-framework").CustomAuthProperty<{
|
|
6
|
-
instructions: import("@activepieces/pieces-framework/dist/src/lib/property/input/markdown-property").MarkDownProperty;
|
|
7
|
-
serviceAccountJson: import("@activepieces/pieces-framework").ShortTextProperty<true>;
|
|
8
|
-
}>)[]>;
|
|
9
|
-
dataset_id: import("@activepieces/pieces-framework").DropdownProperty<string, true, (import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props> | import("@activepieces/pieces-framework").CustomAuthProperty<{
|
|
10
|
-
instructions: import("@activepieces/pieces-framework/dist/src/lib/property/input/markdown-property").MarkDownProperty;
|
|
11
|
-
serviceAccountJson: import("@activepieces/pieces-framework").ShortTextProperty<true>;
|
|
12
|
-
}>)[]>;
|
|
13
|
-
table_id: import("@activepieces/pieces-framework").DropdownProperty<string, true, (import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props> | import("@activepieces/pieces-framework").CustomAuthProperty<{
|
|
14
|
-
instructions: import("@activepieces/pieces-framework/dist/src/lib/property/input/markdown-property").MarkDownProperty;
|
|
15
|
-
serviceAccountJson: import("@activepieces/pieces-framework").ShortTextProperty<true>;
|
|
16
|
-
}>)[]>;
|
|
17
|
-
data: import("@activepieces/pieces-framework").JsonProperty<true>;
|
|
18
|
-
skip_invalid_rows: import("@activepieces/pieces-framework").CheckboxProperty<false>;
|
|
19
|
-
ignore_unknown_values: import("@activepieces/pieces-framework").CheckboxProperty<false>;
|
|
20
|
-
}>;
|
|
21
|
-
//# sourceMappingURL=import-data.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"import-data.d.ts","sourceRoot":"","sources":["../../../../src/lib/actions/import-data.ts"],"names":[],"mappings":"AAwCA,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;EA2G3B,CAAC"}
|
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.importDataAction = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const pieces_framework_1 = require("@activepieces/pieces-framework");
|
|
6
|
-
const pieces_common_1 = require("@activepieces/pieces-common");
|
|
7
|
-
const common_1 = require("../common");
|
|
8
|
-
const CHUNK_SIZE = 500; // BigQuery recommends ≤500 rows per streaming request
|
|
9
|
-
function parseInputData(data) {
|
|
10
|
-
if (Array.isArray(data))
|
|
11
|
-
return data;
|
|
12
|
-
if (typeof data === 'string') {
|
|
13
|
-
const trimmed = data.trim();
|
|
14
|
-
// JSON array
|
|
15
|
-
if (trimmed.startsWith('['))
|
|
16
|
-
return JSON.parse(trimmed);
|
|
17
|
-
// Newline-delimited JSON (NDJSON)
|
|
18
|
-
return trimmed
|
|
19
|
-
.split('\n')
|
|
20
|
-
.map((line) => line.trim())
|
|
21
|
-
.filter((line) => line.length > 0)
|
|
22
|
-
.map((line) => JSON.parse(line));
|
|
23
|
-
}
|
|
24
|
-
throw new Error('Data must be a JSON array or a newline-delimited JSON (NDJSON) string.');
|
|
25
|
-
}
|
|
26
|
-
exports.importDataAction = (0, pieces_framework_1.createAction)({
|
|
27
|
-
auth: common_1.bigQueryAuth,
|
|
28
|
-
name: 'import_data',
|
|
29
|
-
displayName: 'Import Data',
|
|
30
|
-
description: 'Imports a batch of rows into a BigQuery table. Accepts a JSON array or newline-delimited JSON (NDJSON). Large datasets are automatically split into chunks.',
|
|
31
|
-
audience: 'both',
|
|
32
|
-
aiMetadata: {
|
|
33
|
-
description: 'Bulk-imports rows into a BigQuery table via streaming inserts, accepting either a JSON array of objects or a newline-delimited JSON (NDJSON) string and automatically splitting large datasets into chunks. Choose this for ingesting a large or variably-formatted dataset in one step; optional flags control whether the batch fails on bad rows or skips invalid rows / unknown fields. Not idempotent: each call appends the rows again, duplicating data if re-run.',
|
|
34
|
-
idempotent: false,
|
|
35
|
-
},
|
|
36
|
-
props: {
|
|
37
|
-
project_id: common_1.projectIdProp,
|
|
38
|
-
dataset_id: common_1.datasetIdProp,
|
|
39
|
-
table_id: common_1.tableIdProp,
|
|
40
|
-
data: pieces_framework_1.Property.Json({
|
|
41
|
-
displayName: 'Data',
|
|
42
|
-
description: 'The data to import. Provide a JSON array of objects (`[{...}, {...}]`) or a newline-delimited JSON string where each line is one row object.',
|
|
43
|
-
required: true,
|
|
44
|
-
}),
|
|
45
|
-
skip_invalid_rows: pieces_framework_1.Property.Checkbox({
|
|
46
|
-
displayName: 'Skip Invalid Rows',
|
|
47
|
-
description: 'Continue importing valid rows even if some rows fail validation. Default: off (fail entire batch).',
|
|
48
|
-
required: false,
|
|
49
|
-
defaultValue: false,
|
|
50
|
-
}),
|
|
51
|
-
ignore_unknown_values: pieces_framework_1.Property.Checkbox({
|
|
52
|
-
displayName: 'Ignore Unknown Fields',
|
|
53
|
-
description: 'Silently drop fields not present in the table schema. Default: off (fail on unknown fields).',
|
|
54
|
-
required: false,
|
|
55
|
-
defaultValue: false,
|
|
56
|
-
}),
|
|
57
|
-
},
|
|
58
|
-
run(context) {
|
|
59
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
60
|
-
var _a, _b, _c, _d, _e;
|
|
61
|
-
const { project_id, dataset_id, table_id, data, skip_invalid_rows, ignore_unknown_values, } = context.propsValue;
|
|
62
|
-
const rows = parseInputData(data);
|
|
63
|
-
if (rows.length === 0)
|
|
64
|
-
throw new Error('Data contains no rows to import.');
|
|
65
|
-
const token = yield (0, common_1.getAccessToken)(context.auth);
|
|
66
|
-
const now = Date.now();
|
|
67
|
-
let totalInserted = 0;
|
|
68
|
-
let totalErrors = 0;
|
|
69
|
-
const allErrors = [];
|
|
70
|
-
// Split into chunks of CHUNK_SIZE
|
|
71
|
-
for (let offset = 0; offset < rows.length; offset += CHUNK_SIZE) {
|
|
72
|
-
const chunk = rows.slice(offset, offset + CHUNK_SIZE);
|
|
73
|
-
const bqRows = chunk.map((row, i) => ({
|
|
74
|
-
insertId: `${now}-${offset + i}-${Math.random()
|
|
75
|
-
.toString(36)
|
|
76
|
-
.slice(2, 9)}`,
|
|
77
|
-
json: row,
|
|
78
|
-
}));
|
|
79
|
-
const response = yield pieces_common_1.httpClient.sendRequest({
|
|
80
|
-
method: pieces_common_1.HttpMethod.POST,
|
|
81
|
-
url: `${common_1.BASE_URL}/projects/${project_id}/datasets/${dataset_id}/tables/${table_id}/insertAll`,
|
|
82
|
-
headers: { Authorization: `Bearer ${token}` },
|
|
83
|
-
body: {
|
|
84
|
-
kind: 'bigquery#tableDataInsertAllRequest',
|
|
85
|
-
skipInvalidRows: skip_invalid_rows !== null && skip_invalid_rows !== void 0 ? skip_invalid_rows : false,
|
|
86
|
-
ignoreUnknownValues: ignore_unknown_values !== null && ignore_unknown_values !== void 0 ? ignore_unknown_values : false,
|
|
87
|
-
rows: bqRows,
|
|
88
|
-
},
|
|
89
|
-
});
|
|
90
|
-
const chunkErrors = (_a = response.body.insertErrors) !== null && _a !== void 0 ? _a : [];
|
|
91
|
-
if (chunkErrors.length > 0 && !(skip_invalid_rows !== null && skip_invalid_rows !== void 0 ? skip_invalid_rows : false)) {
|
|
92
|
-
const first = (_b = chunkErrors[0]) === null || _b === void 0 ? void 0 : _b.errors[0];
|
|
93
|
-
throw new Error(`Import failed on row ${offset + ((_d = (_c = chunkErrors[0]) === null || _c === void 0 ? void 0 : _c.index) !== null && _d !== void 0 ? _d : 0)}: ${(_e = first === null || first === void 0 ? void 0 : first.message) !== null && _e !== void 0 ? _e : 'Unknown error'}`);
|
|
94
|
-
}
|
|
95
|
-
totalInserted += chunk.length - chunkErrors.length;
|
|
96
|
-
totalErrors += chunkErrors.length;
|
|
97
|
-
allErrors.push(...chunkErrors.map((e) => {
|
|
98
|
-
var _a, _b, _c, _d;
|
|
99
|
-
return ({
|
|
100
|
-
row_index: offset + e.index,
|
|
101
|
-
first_error: (_b = (_a = e.errors[0]) === null || _a === void 0 ? void 0 : _a.message) !== null && _b !== void 0 ? _b : 'Unknown',
|
|
102
|
-
reason: (_d = (_c = e.errors[0]) === null || _c === void 0 ? void 0 : _c.reason) !== null && _d !== void 0 ? _d : null,
|
|
103
|
-
});
|
|
104
|
-
}));
|
|
105
|
-
}
|
|
106
|
-
return {
|
|
107
|
-
success: totalErrors === 0,
|
|
108
|
-
rows_attempted: rows.length,
|
|
109
|
-
rows_imported: totalInserted,
|
|
110
|
-
error_count: totalErrors,
|
|
111
|
-
errors: allErrors,
|
|
112
|
-
};
|
|
113
|
-
});
|
|
114
|
-
},
|
|
115
|
-
});
|
|
116
|
-
//# sourceMappingURL=import-data.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"import-data.js","sourceRoot":"","sources":["../../../../src/lib/actions/import-data.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
export declare const runQueryAction: import("@activepieces/pieces-framework").IAction<(import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props> | import("@activepieces/pieces-framework").CustomAuthProperty<{
|
|
2
|
-
instructions: import("@activepieces/pieces-framework/dist/src/lib/property/input/markdown-property").MarkDownProperty;
|
|
3
|
-
serviceAccountJson: import("@activepieces/pieces-framework").ShortTextProperty<true>;
|
|
4
|
-
}>)[], {
|
|
5
|
-
project_id: import("@activepieces/pieces-framework").DropdownProperty<string, true, (import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props> | import("@activepieces/pieces-framework").CustomAuthProperty<{
|
|
6
|
-
instructions: import("@activepieces/pieces-framework/dist/src/lib/property/input/markdown-property").MarkDownProperty;
|
|
7
|
-
serviceAccountJson: import("@activepieces/pieces-framework").ShortTextProperty<true>;
|
|
8
|
-
}>)[]>;
|
|
9
|
-
query: import("@activepieces/pieces-framework").LongTextProperty<true>;
|
|
10
|
-
max_results: import("@activepieces/pieces-framework").NumberProperty<false>;
|
|
11
|
-
location: import("@activepieces/pieces-framework").ShortTextProperty<false>;
|
|
12
|
-
use_legacy_sql: import("@activepieces/pieces-framework").CheckboxProperty<false>;
|
|
13
|
-
}>;
|
|
14
|
-
//# sourceMappingURL=run-query.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"run-query.d.ts","sourceRoot":"","sources":["../../../../src/lib/actions/run-query.ts"],"names":[],"mappings":"AAyBA,eAAO,MAAM,cAAc;;;;;;;;;;;;EA8GzB,CAAC"}
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.runQueryAction = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const pieces_framework_1 = require("@activepieces/pieces-framework");
|
|
6
|
-
const pieces_common_1 = require("@activepieces/pieces-common");
|
|
7
|
-
const common_1 = require("../common");
|
|
8
|
-
exports.runQueryAction = (0, pieces_framework_1.createAction)({
|
|
9
|
-
auth: common_1.bigQueryAuth,
|
|
10
|
-
name: 'run_query',
|
|
11
|
-
displayName: 'Run a Query',
|
|
12
|
-
description: 'Execute a SQL query on BigQuery and return the results as flat rows',
|
|
13
|
-
audience: 'both',
|
|
14
|
-
aiMetadata: {
|
|
15
|
-
description: 'Runs an arbitrary standard-SQL (or legacy-SQL) statement against BigQuery in a given project and returns the result rows, paginating up to the max-rows cap. Use it for any ad-hoc read or aggregation when no purpose-built action fits, or when you need full SQL control. Note that BigQuery SQL is not limited to reads — a DML/DDL statement passed here will mutate data — so idempotency depends on the query you supply; a plain SELECT is safe to repeat.',
|
|
16
|
-
idempotent: false,
|
|
17
|
-
},
|
|
18
|
-
props: {
|
|
19
|
-
project_id: common_1.projectIdProp,
|
|
20
|
-
query: pieces_framework_1.Property.LongText({
|
|
21
|
-
displayName: 'SQL Query',
|
|
22
|
-
description: 'The SQL query to run. Uses standard SQL syntax. Example: `SELECT * FROM \\`my_dataset.my_table\\` LIMIT 100`',
|
|
23
|
-
required: true,
|
|
24
|
-
}),
|
|
25
|
-
max_results: pieces_framework_1.Property.Number({
|
|
26
|
-
displayName: 'Max Rows',
|
|
27
|
-
description: 'Maximum number of rows to return (up to 10,000)',
|
|
28
|
-
required: false,
|
|
29
|
-
defaultValue: 1000,
|
|
30
|
-
}),
|
|
31
|
-
location: pieces_framework_1.Property.ShortText({
|
|
32
|
-
displayName: 'Location',
|
|
33
|
-
description: 'Geographic location of your dataset (e.g. US, EU, us-central1). Leave blank for US.',
|
|
34
|
-
required: false,
|
|
35
|
-
}),
|
|
36
|
-
use_legacy_sql: pieces_framework_1.Property.Checkbox({
|
|
37
|
-
displayName: 'Use Legacy SQL',
|
|
38
|
-
description: 'Enable only if your query uses BigQuery Legacy SQL syntax (not recommended)',
|
|
39
|
-
required: false,
|
|
40
|
-
defaultValue: false,
|
|
41
|
-
}),
|
|
42
|
-
},
|
|
43
|
-
run(context) {
|
|
44
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
45
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
|
|
46
|
-
const { project_id, query, max_results, location, use_legacy_sql } = context.propsValue;
|
|
47
|
-
const limit = Math.min((_a = max_results) !== null && _a !== void 0 ? _a : 1000, 10000);
|
|
48
|
-
const token = yield (0, common_1.getAccessToken)(context.auth);
|
|
49
|
-
// Submit synchronous query (waits up to 10 seconds before returning)
|
|
50
|
-
const initialResponse = yield pieces_common_1.httpClient.sendRequest({
|
|
51
|
-
method: pieces_common_1.HttpMethod.POST,
|
|
52
|
-
url: `${common_1.BASE_URL}/projects/${project_id}/queries`,
|
|
53
|
-
headers: { Authorization: `Bearer ${token}` },
|
|
54
|
-
body: Object.assign({ query, useLegacySql: use_legacy_sql !== null && use_legacy_sql !== void 0 ? use_legacy_sql : false, maxResults: Math.min(limit, 1000), timeoutMs: 10000 }, (location ? { location } : {})),
|
|
55
|
-
});
|
|
56
|
-
let result = initialResponse.body;
|
|
57
|
-
let schema = (_c = (_b = result.schema) === null || _b === void 0 ? void 0 : _b.fields) !== null && _c !== void 0 ? _c : [];
|
|
58
|
-
// If job is still running, poll until it completes
|
|
59
|
-
if (!result.jobComplete) {
|
|
60
|
-
const jobId = result.jobReference.jobId;
|
|
61
|
-
const polled = yield (0, common_1.waitForJobResults)(token, project_id, jobId, (_d = location) !== null && _d !== void 0 ? _d : undefined);
|
|
62
|
-
result = Object.assign(Object.assign({}, polled), { jobReference: { projectId: project_id, jobId } });
|
|
63
|
-
schema = (_f = (_e = polled.schema) === null || _e === void 0 ? void 0 : _e.fields) !== null && _f !== void 0 ? _f : schema;
|
|
64
|
-
}
|
|
65
|
-
// Collect all rows, paginating if needed
|
|
66
|
-
const allRows = [...((_g = result.rows) !== null && _g !== void 0 ? _g : [])];
|
|
67
|
-
let pageToken = result.pageToken;
|
|
68
|
-
while (pageToken && allRows.length < limit) {
|
|
69
|
-
const remaining = limit - allRows.length;
|
|
70
|
-
const pageResponse = yield pieces_common_1.httpClient.sendRequest({
|
|
71
|
-
method: pieces_common_1.HttpMethod.GET,
|
|
72
|
-
url: `${common_1.BASE_URL}/projects/${project_id}/queries/${result.jobReference.jobId}`,
|
|
73
|
-
headers: { Authorization: `Bearer ${token}` },
|
|
74
|
-
queryParams: Object.assign({ pageToken, maxResults: String(Math.min(remaining, 1000)) }, (location ? { location } : {})),
|
|
75
|
-
});
|
|
76
|
-
allRows.push(...((_h = pageResponse.body.rows) !== null && _h !== void 0 ? _h : []));
|
|
77
|
-
pageToken = pageResponse.body.pageToken;
|
|
78
|
-
}
|
|
79
|
-
const rows = (0, common_1.bigQueryRowsToFlat)(schema, allRows.slice(0, limit));
|
|
80
|
-
return {
|
|
81
|
-
rows,
|
|
82
|
-
row_count: rows.length,
|
|
83
|
-
total_rows: parseInt((_j = result.totalRows) !== null && _j !== void 0 ? _j : '0', 10),
|
|
84
|
-
bytes_processed: (_k = result.totalBytesProcessed) !== null && _k !== void 0 ? _k : '0',
|
|
85
|
-
job_id: (_m = (_l = result.jobReference) === null || _l === void 0 ? void 0 : _l.jobId) !== null && _m !== void 0 ? _m : null,
|
|
86
|
-
cache_hit: (_o = result.cacheHit) !== null && _o !== void 0 ? _o : false,
|
|
87
|
-
};
|
|
88
|
-
});
|
|
89
|
-
},
|
|
90
|
-
});
|
|
91
|
-
//# sourceMappingURL=run-query.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"run-query.js","sourceRoot":"","sources":["../../../../src/lib/actions/run-query.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
export declare const updateRowsAction: import("@activepieces/pieces-framework").IAction<(import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props> | import("@activepieces/pieces-framework").CustomAuthProperty<{
|
|
2
|
-
instructions: import("@activepieces/pieces-framework/dist/src/lib/property/input/markdown-property").MarkDownProperty;
|
|
3
|
-
serviceAccountJson: import("@activepieces/pieces-framework").ShortTextProperty<true>;
|
|
4
|
-
}>)[], {
|
|
5
|
-
project_id: import("@activepieces/pieces-framework").DropdownProperty<string, true, (import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props> | import("@activepieces/pieces-framework").CustomAuthProperty<{
|
|
6
|
-
instructions: import("@activepieces/pieces-framework/dist/src/lib/property/input/markdown-property").MarkDownProperty;
|
|
7
|
-
serviceAccountJson: import("@activepieces/pieces-framework").ShortTextProperty<true>;
|
|
8
|
-
}>)[]>;
|
|
9
|
-
dataset_id: import("@activepieces/pieces-framework").DropdownProperty<string, true, (import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props> | import("@activepieces/pieces-framework").CustomAuthProperty<{
|
|
10
|
-
instructions: import("@activepieces/pieces-framework/dist/src/lib/property/input/markdown-property").MarkDownProperty;
|
|
11
|
-
serviceAccountJson: import("@activepieces/pieces-framework").ShortTextProperty<true>;
|
|
12
|
-
}>)[]>;
|
|
13
|
-
table_id: import("@activepieces/pieces-framework").DropdownProperty<string, true, (import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props> | import("@activepieces/pieces-framework").CustomAuthProperty<{
|
|
14
|
-
instructions: import("@activepieces/pieces-framework/dist/src/lib/property/input/markdown-property").MarkDownProperty;
|
|
15
|
-
serviceAccountJson: import("@activepieces/pieces-framework").ShortTextProperty<true>;
|
|
16
|
-
}>)[]>;
|
|
17
|
-
set_expression: import("@activepieces/pieces-framework").LongTextProperty<true>;
|
|
18
|
-
where_clause: import("@activepieces/pieces-framework").LongTextProperty<true>;
|
|
19
|
-
location: import("@activepieces/pieces-framework").ShortTextProperty<false>;
|
|
20
|
-
}>;
|
|
21
|
-
//# sourceMappingURL=update-rows.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"update-rows.d.ts","sourceRoot":"","sources":["../../../../src/lib/actions/update-rows.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;EA8D3B,CAAC"}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.updateRowsAction = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const pieces_framework_1 = require("@activepieces/pieces-framework");
|
|
6
|
-
const common_1 = require("../common");
|
|
7
|
-
exports.updateRowsAction = (0, pieces_framework_1.createAction)({
|
|
8
|
-
auth: common_1.bigQueryAuth,
|
|
9
|
-
name: 'update_rows',
|
|
10
|
-
displayName: 'Update Row(s)',
|
|
11
|
-
description: 'Updates one or more existing rows in a BigQuery table using SQL SET and WHERE expressions.',
|
|
12
|
-
audience: 'both',
|
|
13
|
-
aiMetadata: {
|
|
14
|
-
description: 'Updates rows in a BigQuery table by running an UPDATE DML statement, applying a comma-separated SET assignment to every row matching a WHERE condition (supply both as raw SQL fragments without the SET/WHERE keywords). Use it to change column values on existing records. Mutates state on each run, so it is not safe to assume idempotency — assignments to fixed literal values repeat harmlessly, but relative expressions (e.g. incrementing a counter) compound on every call.',
|
|
15
|
-
idempotent: false,
|
|
16
|
-
},
|
|
17
|
-
props: {
|
|
18
|
-
project_id: common_1.projectIdProp,
|
|
19
|
-
dataset_id: common_1.datasetIdProp,
|
|
20
|
-
table_id: common_1.tableIdProp,
|
|
21
|
-
set_expression: pieces_framework_1.Property.LongText({
|
|
22
|
-
displayName: 'SET Expression',
|
|
23
|
-
description: 'Comma-separated column assignments. Do not include the SET keyword. Example: `status = "active", updated_at = CURRENT_TIMESTAMP()`',
|
|
24
|
-
required: true,
|
|
25
|
-
}),
|
|
26
|
-
where_clause: pieces_framework_1.Property.LongText({
|
|
27
|
-
displayName: 'WHERE Clause',
|
|
28
|
-
description: 'SQL condition to match the rows to update. Do not include the WHERE keyword. Example: `id = "abc123"`',
|
|
29
|
-
required: true,
|
|
30
|
-
}),
|
|
31
|
-
location: pieces_framework_1.Property.ShortText({
|
|
32
|
-
displayName: 'Location',
|
|
33
|
-
description: 'Dataset location (e.g. US, EU). Leave blank to use the default.',
|
|
34
|
-
required: false,
|
|
35
|
-
}),
|
|
36
|
-
},
|
|
37
|
-
run(context) {
|
|
38
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
39
|
-
var _a;
|
|
40
|
-
const { project_id, dataset_id, table_id, set_expression, where_clause, location, } = context.propsValue;
|
|
41
|
-
const token = yield (0, common_1.getAccessToken)(context.auth);
|
|
42
|
-
const fullTable = `\`${project_id}.${dataset_id}.${table_id}\``;
|
|
43
|
-
const query = `UPDATE ${fullTable} SET ${set_expression} WHERE ${where_clause}`;
|
|
44
|
-
const result = yield (0, common_1.runDmlQuery)(token, project_id, query, (_a = location) !== null && _a !== void 0 ? _a : undefined);
|
|
45
|
-
return {
|
|
46
|
-
success: true,
|
|
47
|
-
rows_updated: result.updatedRowCount,
|
|
48
|
-
job_id: result.jobId,
|
|
49
|
-
};
|
|
50
|
-
});
|
|
51
|
-
},
|
|
52
|
-
});
|
|
53
|
-
//# sourceMappingURL=update-rows.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"update-rows.js","sourceRoot":"","sources":["../../../../src/lib/actions/update-rows.ts"],"names":[],"mappings":";;;;AAAA,qEAAwE;AACxE,sCAQmB;AAEN,QAAA,gBAAgB,GAAG,IAAA,+BAAY,EAAC;IAC3C,IAAI,EAAE,qBAAY;IAClB,IAAI,EAAE,aAAa;IACnB,WAAW,EAAE,eAAe;IAC5B,WAAW,EACT,4FAA4F;IAC9F,QAAQ,EAAE,MAAM;IAChB,UAAU,EAAE;QACV,WAAW,EACT,0dAA0d;QAC5d,UAAU,EAAE,KAAK;KAClB;IACD,KAAK,EAAE;QACL,UAAU,EAAE,sBAAa;QACzB,UAAU,EAAE,sBAAa;QACzB,QAAQ,EAAE,oBAAW;QACrB,cAAc,EAAE,2BAAQ,CAAC,QAAQ,CAAC;YAChC,WAAW,EAAE,gBAAgB;YAC7B,WAAW,EACT,oIAAoI;YACtI,QAAQ,EAAE,IAAI;SACf,CAAC;QACF,YAAY,EAAE,2BAAQ,CAAC,QAAQ,CAAC;YAC9B,WAAW,EAAE,cAAc;YAC3B,WAAW,EACT,uGAAuG;YACzG,QAAQ,EAAE,IAAI;SACf,CAAC;QACF,QAAQ,EAAE,2BAAQ,CAAC,SAAS,CAAC;YAC3B,WAAW,EAAE,UAAU;YACvB,WAAW,EACT,iEAAiE;YACnE,QAAQ,EAAE,KAAK;SAChB,CAAC;KACH;IACK,GAAG,CAAC,OAAO;;;YACf,MAAM,EACJ,UAAU,EACV,UAAU,EACV,QAAQ,EACR,cAAc,EACd,YAAY,EACZ,QAAQ,GACT,GAAG,OAAO,CAAC,UAAU,CAAC;YACvB,MAAM,KAAK,GAAG,MAAM,IAAA,uBAAc,EAAC,OAAO,CAAC,IAAyB,CAAC,CAAC;YAEtE,MAAM,SAAS,GAAG,KAAK,UAAU,IAAI,UAAU,IAAI,QAAQ,IAAI,CAAC;YAChE,MAAM,KAAK,GAAG,UAAU,SAAS,QAAQ,cAAc,UAAU,YAAY,EAAE,CAAC;YAEhF,MAAM,MAAM,GAAG,MAAM,IAAA,oBAAW,EAC9B,KAAK,EACL,UAAoB,EACpB,KAAK,EACL,MAAC,QAAmB,mCAAI,SAAS,CAClC,CAAC;YAEF,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,YAAY,EAAE,MAAM,CAAC,eAAe;gBACpC,MAAM,EAAE,MAAM,CAAC,KAAK;aACrB,CAAC;QACJ,CAAC;KAAA;CACF,CAAC,CAAC"}
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import { AppConnectionValueForAuthProperty } from '@activepieces/pieces-framework';
|
|
2
|
-
export declare const BASE_URL = "https://bigquery.googleapis.com/bigquery/v2";
|
|
3
|
-
export declare const bigQueryScopes: string[];
|
|
4
|
-
export declare const bigQueryAuth: (import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props> | import("@activepieces/pieces-framework").CustomAuthProperty<{
|
|
5
|
-
instructions: import("@activepieces/pieces-framework/dist/src/lib/property/input/markdown-property").MarkDownProperty;
|
|
6
|
-
serviceAccountJson: import("@activepieces/pieces-framework").ShortTextProperty<true>;
|
|
7
|
-
}>)[];
|
|
8
|
-
export type BigQueryAuthValue = AppConnectionValueForAuthProperty<typeof bigQueryAuth>;
|
|
9
|
-
export declare function getAccessToken(auth: BigQueryAuthValue): Promise<string>;
|
|
10
|
-
export declare const projectIdProp: import("@activepieces/pieces-framework").DropdownProperty<string, true, (import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props> | import("@activepieces/pieces-framework").CustomAuthProperty<{
|
|
11
|
-
instructions: import("@activepieces/pieces-framework/dist/src/lib/property/input/markdown-property").MarkDownProperty;
|
|
12
|
-
serviceAccountJson: import("@activepieces/pieces-framework").ShortTextProperty<true>;
|
|
13
|
-
}>)[]>;
|
|
14
|
-
export declare const datasetIdProp: import("@activepieces/pieces-framework").DropdownProperty<string, true, (import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props> | import("@activepieces/pieces-framework").CustomAuthProperty<{
|
|
15
|
-
instructions: import("@activepieces/pieces-framework/dist/src/lib/property/input/markdown-property").MarkDownProperty;
|
|
16
|
-
serviceAccountJson: import("@activepieces/pieces-framework").ShortTextProperty<true>;
|
|
17
|
-
}>)[]>;
|
|
18
|
-
export declare const tableIdProp: import("@activepieces/pieces-framework").DropdownProperty<string, true, (import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props> | import("@activepieces/pieces-framework").CustomAuthProperty<{
|
|
19
|
-
instructions: import("@activepieces/pieces-framework/dist/src/lib/property/input/markdown-property").MarkDownProperty;
|
|
20
|
-
serviceAccountJson: import("@activepieces/pieces-framework").ShortTextProperty<true>;
|
|
21
|
-
}>)[]>;
|
|
22
|
-
export interface BQField {
|
|
23
|
-
name: string;
|
|
24
|
-
type: string;
|
|
25
|
-
mode?: string;
|
|
26
|
-
fields?: BQField[];
|
|
27
|
-
}
|
|
28
|
-
export interface BQRow {
|
|
29
|
-
f: Array<{
|
|
30
|
-
v: unknown;
|
|
31
|
-
}>;
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Converts BigQuery query result rows (f[].v format) into flat key/value objects
|
|
35
|
-
* ready for spreadsheet mapping. Nested RECORD fields are JSON-stringified.
|
|
36
|
-
* REPEATED fields are joined as comma-separated strings.
|
|
37
|
-
*/
|
|
38
|
-
export declare function bigQueryRowsToFlat(fields: BQField[], rows: BQRow[]): Record<string, string | number | boolean | null>[];
|
|
39
|
-
/**
|
|
40
|
-
* Fetches a table's schema fields from the BigQuery API.
|
|
41
|
-
*/
|
|
42
|
-
export declare function getTableSchema(token: string, projectId: string, datasetId: string, tableId: string): Promise<BQField[]>;
|
|
43
|
-
/**
|
|
44
|
-
* Submits a DML query (DELETE / UPDATE / INSERT) as a BigQuery job,
|
|
45
|
-
* polls until DONE, and returns the DML statistics.
|
|
46
|
-
*/
|
|
47
|
-
export declare function runDmlQuery(token: string, projectId: string, query: string, location?: string): Promise<{
|
|
48
|
-
jobId: string;
|
|
49
|
-
affectedRowCount: number;
|
|
50
|
-
deletedRowCount: number;
|
|
51
|
-
updatedRowCount: number;
|
|
52
|
-
insertedRowCount: number;
|
|
53
|
-
}>;
|
|
54
|
-
/**
|
|
55
|
-
* Waits for a BigQuery job to reach DONE state by long-polling jobs.getQueryResults.
|
|
56
|
-
* Returns the final response (schema + first page of rows).
|
|
57
|
-
*/
|
|
58
|
-
export declare function waitForJobResults(token: string, projectId: string, jobId: string, location?: string): Promise<{
|
|
59
|
-
schema?: {
|
|
60
|
-
fields: BQField[];
|
|
61
|
-
};
|
|
62
|
-
rows?: BQRow[];
|
|
63
|
-
pageToken?: string;
|
|
64
|
-
totalRows?: string;
|
|
65
|
-
totalBytesProcessed?: string;
|
|
66
|
-
cacheHit?: boolean;
|
|
67
|
-
jobComplete: boolean;
|
|
68
|
-
jobReference: {
|
|
69
|
-
projectId: string;
|
|
70
|
-
jobId: string;
|
|
71
|
-
};
|
|
72
|
-
}>;
|
|
73
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/common/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,iCAAiC,EAIlC,MAAM,gCAAgC,CAAC;AAIxC,eAAO,MAAM,QAAQ,gDAAgD,CAAC;AAEtE,eAAO,MAAM,cAAc,UAA+C,CAAC;AAE3E,eAAO,MAAM,YAAY;;;KA8DxB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,iCAAiC,CAC/D,OAAO,YAAY,CACpB,CAAC;AAEF,wBAAsB,cAAc,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAe7E;AAMD,eAAO,MAAM,aAAa;;;MAkDxB,CAAC;AAEH,eAAO,MAAM,aAAa;;;MAuDxB,CAAC;AAEH,eAAO,MAAM,WAAW;;;MAsDvB,CAAC;AAMF,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,KAAK;IACpB,CAAC,EAAE,KAAK,CAAC;QAAE,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CAC1B;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,OAAO,EAAE,EACjB,IAAI,EAAE,KAAK,EAAE,GACZ,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC,EAAE,CAyBpD;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,OAAO,EAAE,CAAC,CAUpB;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC;IACT,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAAC,CA6DD;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC;IACT,MAAM,CAAC,EAAE;QAAE,MAAM,EAAE,OAAO,EAAE,CAAA;KAAE,CAAC;IAC/B,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CACpD,CAAC,CA4BD"}
|