@activepieces/piece-google-bigquery 0.0.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.
Files changed (61) hide show
  1. package/package.json +18 -0
  2. package/src/index.d.ts +8 -0
  3. package/src/index.d.ts.map +1 -0
  4. package/src/index.js +60 -0
  5. package/src/index.js.map +1 -0
  6. package/src/lib/actions/create-row.d.ts +22 -0
  7. package/src/lib/actions/create-row.d.ts.map +1 -0
  8. package/src/lib/actions/create-row.js +75 -0
  9. package/src/lib/actions/create-row.js.map +1 -0
  10. package/src/lib/actions/create-rows.d.ts +21 -0
  11. package/src/lib/actions/create-rows.d.ts.map +1 -0
  12. package/src/lib/actions/create-rows.js +84 -0
  13. package/src/lib/actions/create-rows.js.map +1 -0
  14. package/src/lib/actions/delete-rows.d.ts +20 -0
  15. package/src/lib/actions/delete-rows.d.ts.map +1 -0
  16. package/src/lib/actions/delete-rows.js +43 -0
  17. package/src/lib/actions/delete-rows.js.map +1 -0
  18. package/src/lib/actions/find-one-row.d.ts +21 -0
  19. package/src/lib/actions/find-one-row.d.ts.map +1 -0
  20. package/src/lib/actions/find-one-row.js +60 -0
  21. package/src/lib/actions/find-one-row.js.map +1 -0
  22. package/src/lib/actions/find-or-create-row.d.ts +21 -0
  23. package/src/lib/actions/find-or-create-row.d.ts.map +1 -0
  24. package/src/lib/actions/find-or-create-row.js +79 -0
  25. package/src/lib/actions/find-or-create-row.js.map +1 -0
  26. package/src/lib/actions/get-rows-for-job.d.ts +13 -0
  27. package/src/lib/actions/get-rows-for-job.d.ts.map +1 -0
  28. package/src/lib/actions/get-rows-for-job.js +76 -0
  29. package/src/lib/actions/get-rows-for-job.js.map +1 -0
  30. package/src/lib/actions/import-data.d.ts +21 -0
  31. package/src/lib/actions/import-data.d.ts.map +1 -0
  32. package/src/lib/actions/import-data.js +111 -0
  33. package/src/lib/actions/import-data.js.map +1 -0
  34. package/src/lib/actions/run-query.d.ts +14 -0
  35. package/src/lib/actions/run-query.d.ts.map +1 -0
  36. package/src/lib/actions/run-query.js +86 -0
  37. package/src/lib/actions/run-query.js.map +1 -0
  38. package/src/lib/actions/update-rows.d.ts +21 -0
  39. package/src/lib/actions/update-rows.d.ts.map +1 -0
  40. package/src/lib/actions/update-rows.js +48 -0
  41. package/src/lib/actions/update-rows.js.map +1 -0
  42. package/src/lib/common/index.d.ts +73 -0
  43. package/src/lib/common/index.d.ts.map +1 -0
  44. package/src/lib/common/index.js +343 -0
  45. package/src/lib/common/index.js.map +1 -0
  46. package/src/lib/triggers/new-job-completed.d.ts +39 -0
  47. package/src/lib/triggers/new-job-completed.d.ts.map +1 -0
  48. package/src/lib/triggers/new-job-completed.js +118 -0
  49. package/src/lib/triggers/new-job-completed.js.map +1 -0
  50. package/src/lib/triggers/new-row.d.ts +75 -0
  51. package/src/lib/triggers/new-row.d.ts.map +1 -0
  52. package/src/lib/triggers/new-row.js +109 -0
  53. package/src/lib/triggers/new-row.js.map +1 -0
  54. package/src/lib/triggers/query-job-completed.d.ts +39 -0
  55. package/src/lib/triggers/query-job-completed.d.ts.map +1 -0
  56. package/src/lib/triggers/query-job-completed.js +127 -0
  57. package/src/lib/triggers/query-job-completed.js.map +1 -0
  58. package/src/lib/triggers/updated-row.d.ts +79 -0
  59. package/src/lib/triggers/updated-row.d.ts.map +1 -0
  60. package/src/lib/triggers/updated-row.js +118 -0
  61. package/src/lib/triggers/updated-row.js.map +1 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"find-or-create-row.js","sourceRoot":"","sources":["../../../../src/lib/actions/find-or-create-row.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ export declare const getRowsForJobAction: 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
+ job_id: import("@activepieces/pieces-framework").ShortTextProperty<true>;
10
+ max_results: import("@activepieces/pieces-framework").NumberProperty<false>;
11
+ location: import("@activepieces/pieces-framework").ShortTextProperty<false>;
12
+ }>;
13
+ //# sourceMappingURL=get-rows-for-job.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-rows-for-job.d.ts","sourceRoot":"","sources":["../../../../src/lib/actions/get-rows-for-job.ts"],"names":[],"mappings":"AAuBA,eAAO,MAAM,mBAAmB;;;;;;;;;;;EAgF9B,CAAC"}
@@ -0,0 +1,76 @@
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
+ props: {
14
+ project_id: common_1.projectIdProp,
15
+ job_id: pieces_framework_1.Property.ShortText({
16
+ displayName: 'Job ID',
17
+ description: 'The BigQuery job ID to fetch results for. This is returned by the "Query Job Completed" trigger or a "Run a Query" action.',
18
+ required: true,
19
+ }),
20
+ max_results: pieces_framework_1.Property.Number({
21
+ displayName: 'Max Rows',
22
+ description: 'Maximum number of rows to return (up to 10,000). Default: 1,000.',
23
+ required: false,
24
+ defaultValue: 1000,
25
+ }),
26
+ location: pieces_framework_1.Property.ShortText({
27
+ displayName: 'Location',
28
+ description: 'Dataset location where the job ran (e.g. US, EU). Leave blank for US.',
29
+ required: false,
30
+ }),
31
+ },
32
+ run(context) {
33
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
34
+ var _a, _b, _c, _d, _e, _f;
35
+ const { project_id, job_id, max_results, location } = context.propsValue;
36
+ const limit = Math.min((_a = max_results) !== null && _a !== void 0 ? _a : 1000, 10000);
37
+ const token = yield (0, common_1.getAccessToken)(context.auth);
38
+ const allRows = [];
39
+ let schema = [];
40
+ let pageToken;
41
+ let totalRows = '0';
42
+ let bytesProcessed = '0';
43
+ let cacheHit = false;
44
+ do {
45
+ const remaining = limit - allRows.length;
46
+ const response = yield pieces_common_1.httpClient.sendRequest({
47
+ method: pieces_common_1.HttpMethod.GET,
48
+ url: `${common_1.BASE_URL}/projects/${project_id}/queries/${job_id}`,
49
+ headers: { Authorization: `Bearer ${token}` },
50
+ queryParams: Object.assign(Object.assign({ maxResults: String(Math.min(remaining, 1000)), timeoutMs: '10000' }, (pageToken ? { pageToken } : {})), (location ? { location } : {})),
51
+ });
52
+ const body = response.body;
53
+ if (!body.jobComplete) {
54
+ throw new Error(`Job ${job_id} has not completed yet. Wait for the job to finish before fetching results.`);
55
+ }
56
+ if ((_b = body.schema) === null || _b === void 0 ? void 0 : _b.fields)
57
+ schema = body.schema.fields;
58
+ allRows.push(...((_c = body.rows) !== null && _c !== void 0 ? _c : []));
59
+ pageToken = body.pageToken;
60
+ totalRows = (_d = body.totalRows) !== null && _d !== void 0 ? _d : totalRows;
61
+ bytesProcessed = (_e = body.totalBytesProcessed) !== null && _e !== void 0 ? _e : bytesProcessed;
62
+ cacheHit = (_f = body.cacheHit) !== null && _f !== void 0 ? _f : cacheHit;
63
+ } while (pageToken && allRows.length < limit);
64
+ const rows = (0, common_1.bigQueryRowsToFlat)(schema, allRows.slice(0, limit));
65
+ return {
66
+ rows,
67
+ row_count: rows.length,
68
+ total_rows: parseInt(totalRows, 10),
69
+ bytes_processed: bytesProcessed,
70
+ cache_hit: cacheHit,
71
+ job_id,
72
+ };
73
+ });
74
+ },
75
+ });
76
+ //# sourceMappingURL=get-rows-for-job.js.map
@@ -0,0 +1 @@
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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"}
@@ -0,0 +1,21 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import-data.d.ts","sourceRoot":"","sources":["../../../../src/lib/actions/import-data.ts"],"names":[],"mappings":"AAwCA,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;EAqG3B,CAAC"}
@@ -0,0 +1,111 @@
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
+ props: {
32
+ project_id: common_1.projectIdProp,
33
+ dataset_id: common_1.datasetIdProp,
34
+ table_id: common_1.tableIdProp,
35
+ data: pieces_framework_1.Property.Json({
36
+ displayName: 'Data',
37
+ description: 'The data to import. Provide a JSON array of objects (`[{...}, {...}]`) or a newline-delimited JSON string where each line is one row object.',
38
+ required: true,
39
+ }),
40
+ skip_invalid_rows: pieces_framework_1.Property.Checkbox({
41
+ displayName: 'Skip Invalid Rows',
42
+ description: 'Continue importing valid rows even if some rows fail validation. Default: off (fail entire batch).',
43
+ required: false,
44
+ defaultValue: false,
45
+ }),
46
+ ignore_unknown_values: pieces_framework_1.Property.Checkbox({
47
+ displayName: 'Ignore Unknown Fields',
48
+ description: 'Silently drop fields not present in the table schema. Default: off (fail on unknown fields).',
49
+ required: false,
50
+ defaultValue: false,
51
+ }),
52
+ },
53
+ run(context) {
54
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
55
+ var _a, _b, _c, _d, _e;
56
+ const { project_id, dataset_id, table_id, data, skip_invalid_rows, ignore_unknown_values, } = context.propsValue;
57
+ const rows = parseInputData(data);
58
+ if (rows.length === 0)
59
+ throw new Error('Data contains no rows to import.');
60
+ const token = yield (0, common_1.getAccessToken)(context.auth);
61
+ const now = Date.now();
62
+ let totalInserted = 0;
63
+ let totalErrors = 0;
64
+ const allErrors = [];
65
+ // Split into chunks of CHUNK_SIZE
66
+ for (let offset = 0; offset < rows.length; offset += CHUNK_SIZE) {
67
+ const chunk = rows.slice(offset, offset + CHUNK_SIZE);
68
+ const bqRows = chunk.map((row, i) => ({
69
+ insertId: `${now}-${offset + i}-${Math.random()
70
+ .toString(36)
71
+ .slice(2, 9)}`,
72
+ json: row,
73
+ }));
74
+ const response = yield pieces_common_1.httpClient.sendRequest({
75
+ method: pieces_common_1.HttpMethod.POST,
76
+ url: `${common_1.BASE_URL}/projects/${project_id}/datasets/${dataset_id}/tables/${table_id}/insertAll`,
77
+ headers: { Authorization: `Bearer ${token}` },
78
+ body: {
79
+ kind: 'bigquery#tableDataInsertAllRequest',
80
+ skipInvalidRows: skip_invalid_rows !== null && skip_invalid_rows !== void 0 ? skip_invalid_rows : false,
81
+ ignoreUnknownValues: ignore_unknown_values !== null && ignore_unknown_values !== void 0 ? ignore_unknown_values : false,
82
+ rows: bqRows,
83
+ },
84
+ });
85
+ const chunkErrors = (_a = response.body.insertErrors) !== null && _a !== void 0 ? _a : [];
86
+ if (chunkErrors.length > 0 && !(skip_invalid_rows !== null && skip_invalid_rows !== void 0 ? skip_invalid_rows : false)) {
87
+ const first = (_b = chunkErrors[0]) === null || _b === void 0 ? void 0 : _b.errors[0];
88
+ 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'}`);
89
+ }
90
+ totalInserted += chunk.length - chunkErrors.length;
91
+ totalErrors += chunkErrors.length;
92
+ allErrors.push(...chunkErrors.map((e) => {
93
+ var _a, _b, _c, _d;
94
+ return ({
95
+ row_index: offset + e.index,
96
+ first_error: (_b = (_a = e.errors[0]) === null || _a === void 0 ? void 0 : _a.message) !== null && _b !== void 0 ? _b : 'Unknown',
97
+ reason: (_d = (_c = e.errors[0]) === null || _c === void 0 ? void 0 : _c.reason) !== null && _d !== void 0 ? _d : null,
98
+ });
99
+ }));
100
+ }
101
+ return {
102
+ success: totalErrors === 0,
103
+ rows_attempted: rows.length,
104
+ rows_imported: totalInserted,
105
+ error_count: totalErrors,
106
+ errors: allErrors,
107
+ };
108
+ });
109
+ },
110
+ });
111
+ //# sourceMappingURL=import-data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import-data.js","sourceRoot":"","sources":["../../../../src/lib/actions/import-data.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-query.d.ts","sourceRoot":"","sources":["../../../../src/lib/actions/run-query.ts"],"names":[],"mappings":"AAyBA,eAAO,MAAM,cAAc;;;;;;;;;;;;EAwGzB,CAAC"}
@@ -0,0 +1,86 @@
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
+ props: {
14
+ project_id: common_1.projectIdProp,
15
+ query: pieces_framework_1.Property.LongText({
16
+ displayName: 'SQL Query',
17
+ description: 'The SQL query to run. Uses standard SQL syntax. Example: `SELECT * FROM \\`my_dataset.my_table\\` LIMIT 100`',
18
+ required: true,
19
+ }),
20
+ max_results: pieces_framework_1.Property.Number({
21
+ displayName: 'Max Rows',
22
+ description: 'Maximum number of rows to return (up to 10,000)',
23
+ required: false,
24
+ defaultValue: 1000,
25
+ }),
26
+ location: pieces_framework_1.Property.ShortText({
27
+ displayName: 'Location',
28
+ description: 'Geographic location of your dataset (e.g. US, EU, us-central1). Leave blank for US.',
29
+ required: false,
30
+ }),
31
+ use_legacy_sql: pieces_framework_1.Property.Checkbox({
32
+ displayName: 'Use Legacy SQL',
33
+ description: 'Enable only if your query uses BigQuery Legacy SQL syntax (not recommended)',
34
+ required: false,
35
+ defaultValue: false,
36
+ }),
37
+ },
38
+ run(context) {
39
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
40
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
41
+ const { project_id, query, max_results, location, use_legacy_sql } = context.propsValue;
42
+ const limit = Math.min((_a = max_results) !== null && _a !== void 0 ? _a : 1000, 10000);
43
+ const token = yield (0, common_1.getAccessToken)(context.auth);
44
+ // Submit synchronous query (waits up to 10 seconds before returning)
45
+ const initialResponse = yield pieces_common_1.httpClient.sendRequest({
46
+ method: pieces_common_1.HttpMethod.POST,
47
+ url: `${common_1.BASE_URL}/projects/${project_id}/queries`,
48
+ headers: { Authorization: `Bearer ${token}` },
49
+ 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 } : {})),
50
+ });
51
+ let result = initialResponse.body;
52
+ let schema = (_c = (_b = result.schema) === null || _b === void 0 ? void 0 : _b.fields) !== null && _c !== void 0 ? _c : [];
53
+ // If job is still running, poll until it completes
54
+ if (!result.jobComplete) {
55
+ const jobId = result.jobReference.jobId;
56
+ const polled = yield (0, common_1.waitForJobResults)(token, project_id, jobId, (_d = location) !== null && _d !== void 0 ? _d : undefined);
57
+ result = Object.assign(Object.assign({}, polled), { jobReference: { projectId: project_id, jobId } });
58
+ schema = (_f = (_e = polled.schema) === null || _e === void 0 ? void 0 : _e.fields) !== null && _f !== void 0 ? _f : schema;
59
+ }
60
+ // Collect all rows, paginating if needed
61
+ const allRows = [...((_g = result.rows) !== null && _g !== void 0 ? _g : [])];
62
+ let pageToken = result.pageToken;
63
+ while (pageToken && allRows.length < limit) {
64
+ const remaining = limit - allRows.length;
65
+ const pageResponse = yield pieces_common_1.httpClient.sendRequest({
66
+ method: pieces_common_1.HttpMethod.GET,
67
+ url: `${common_1.BASE_URL}/projects/${project_id}/queries/${result.jobReference.jobId}`,
68
+ headers: { Authorization: `Bearer ${token}` },
69
+ queryParams: Object.assign({ pageToken, maxResults: String(Math.min(remaining, 1000)) }, (location ? { location } : {})),
70
+ });
71
+ allRows.push(...((_h = pageResponse.body.rows) !== null && _h !== void 0 ? _h : []));
72
+ pageToken = pageResponse.body.pageToken;
73
+ }
74
+ const rows = (0, common_1.bigQueryRowsToFlat)(schema, allRows.slice(0, limit));
75
+ return {
76
+ rows,
77
+ row_count: rows.length,
78
+ total_rows: parseInt((_j = result.totalRows) !== null && _j !== void 0 ? _j : '0', 10),
79
+ bytes_processed: (_k = result.totalBytesProcessed) !== null && _k !== void 0 ? _k : '0',
80
+ job_id: (_m = (_l = result.jobReference) === null || _l === void 0 ? void 0 : _l.jobId) !== null && _m !== void 0 ? _m : null,
81
+ cache_hit: (_o = result.cacheHit) !== null && _o !== void 0 ? _o : false,
82
+ };
83
+ });
84
+ },
85
+ });
86
+ //# sourceMappingURL=run-query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-query.js","sourceRoot":"","sources":["../../../../src/lib/actions/run-query.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-rows.d.ts","sourceRoot":"","sources":["../../../../src/lib/actions/update-rows.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;EAwD3B,CAAC"}
@@ -0,0 +1,48 @@
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
+ props: {
13
+ project_id: common_1.projectIdProp,
14
+ dataset_id: common_1.datasetIdProp,
15
+ table_id: common_1.tableIdProp,
16
+ set_expression: pieces_framework_1.Property.LongText({
17
+ displayName: 'SET Expression',
18
+ description: 'Comma-separated column assignments. Do not include the SET keyword. Example: `status = "active", updated_at = CURRENT_TIMESTAMP()`',
19
+ required: true,
20
+ }),
21
+ where_clause: pieces_framework_1.Property.LongText({
22
+ displayName: 'WHERE Clause',
23
+ description: 'SQL condition to match the rows to update. Do not include the WHERE keyword. Example: `id = "abc123"`',
24
+ required: true,
25
+ }),
26
+ location: pieces_framework_1.Property.ShortText({
27
+ displayName: 'Location',
28
+ description: 'Dataset location (e.g. US, EU). Leave blank to use the default.',
29
+ required: false,
30
+ }),
31
+ },
32
+ run(context) {
33
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
34
+ var _a;
35
+ const { project_id, dataset_id, table_id, set_expression, where_clause, location, } = context.propsValue;
36
+ const token = yield (0, common_1.getAccessToken)(context.auth);
37
+ const fullTable = `\`${project_id}.${dataset_id}.${table_id}\``;
38
+ const query = `UPDATE ${fullTable} SET ${set_expression} WHERE ${where_clause}`;
39
+ const result = yield (0, common_1.runDmlQuery)(token, project_id, query, (_a = location) !== null && _a !== void 0 ? _a : undefined);
40
+ return {
41
+ success: true,
42
+ rows_updated: result.updatedRowCount,
43
+ job_id: result.jobId,
44
+ };
45
+ });
46
+ },
47
+ });
48
+ //# sourceMappingURL=update-rows.js.map
@@ -0,0 +1 @@
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,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"}
@@ -0,0 +1,73 @@
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
@@ -0,0 +1 @@
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"}