@owox/connectors 0.12.0-next-20251106101648 → 0.12.0-next-20251106142331
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/index.cjs +24 -24
- package/dist/index.js +24 -24
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -1861,7 +1861,7 @@ const GoogleBigQuery = (function() {
|
|
|
1861
1861
|
//----------------------------------------------------------------
|
|
1862
1862
|
//---- loads Google BigQuery Table Schema ---------------------------
|
|
1863
1863
|
async loadTableSchema() {
|
|
1864
|
-
this.existingColumns = this.getAListOfExistingColumns() || {};
|
|
1864
|
+
this.existingColumns = await this.getAListOfExistingColumns() || {};
|
|
1865
1865
|
if (Object.keys(this.existingColumns).length == 0) {
|
|
1866
1866
|
await this.createDatasetIfItDoesntExist();
|
|
1867
1867
|
this.existingColumns = await this.createTableIfItDoesntExist();
|
|
@@ -1880,7 +1880,7 @@ const GoogleBigQuery = (function() {
|
|
|
1880
1880
|
* @return columns (object)
|
|
1881
1881
|
*
|
|
1882
1882
|
*/
|
|
1883
|
-
getAListOfExistingColumns() {
|
|
1883
|
+
async getAListOfExistingColumns() {
|
|
1884
1884
|
let query = "----- Getting a list of existing columns ------\n";
|
|
1885
1885
|
query += `DECLARE dataset_exists BOOL;
|
|
1886
1886
|
SET dataset_exists = EXISTS (
|
|
@@ -1893,7 +1893,7 @@ const GoogleBigQuery = (function() {
|
|
|
1893
1893
|
FROM \`${this.config.DestinationDatasetID.value}.INFORMATION_SCHEMA.COLUMNS\`
|
|
1894
1894
|
WHERE table_name = '${this.config.DestinationTableName.value}';
|
|
1895
1895
|
END IF`;
|
|
1896
|
-
let queryResults = this.executeQuery(query);
|
|
1896
|
+
let queryResults = await this.executeQuery(query);
|
|
1897
1897
|
let columns = {};
|
|
1898
1898
|
if (queryResults.rows) {
|
|
1899
1899
|
queryResults.rows.map((row) => {
|
|
@@ -2075,12 +2075,12 @@ OPTIONS(description="${this.description}")`;
|
|
|
2075
2075
|
this.totalRecordsProcessed += currentBatch.length;
|
|
2076
2076
|
console.log(`BigQuery MERGE completed successfully for ${currentBatch.length} records (Total processed: ${this.totalRecordsProcessed})`);
|
|
2077
2077
|
if (remainingRecords.length > 0) {
|
|
2078
|
-
this.executeMergeQueryRecursively(remainingRecords, batchSize);
|
|
2078
|
+
await this.executeMergeQueryRecursively(remainingRecords, batchSize);
|
|
2079
2079
|
}
|
|
2080
2080
|
} catch (error) {
|
|
2081
2081
|
if (error.message && error.message.includes("query is too large")) {
|
|
2082
2082
|
console.log(`Query execution failed due to size. Reducing batch size from ${batchSize} to ${Math.floor(batchSize / 2)}`);
|
|
2083
|
-
this.executeMergeQueryRecursively(recordKeys, Math.floor(batchSize / 2));
|
|
2083
|
+
await this.executeMergeQueryRecursively(recordKeys, Math.floor(batchSize / 2));
|
|
2084
2084
|
} else {
|
|
2085
2085
|
throw error;
|
|
2086
2086
|
}
|
|
@@ -4418,7 +4418,7 @@ const TikTokAds = (function() {
|
|
|
4418
4418
|
"conversion_28d_click"
|
|
4419
4419
|
];
|
|
4420
4420
|
}
|
|
4421
|
-
getAdvertisers(advertiserIds) {
|
|
4421
|
+
async getAdvertisers(advertiserIds) {
|
|
4422
4422
|
if (!this.appId || !this.appSecret) {
|
|
4423
4423
|
throw new Error("To fetch advertiser data, both AppId and AppSecret must be provided.");
|
|
4424
4424
|
}
|
|
@@ -4428,37 +4428,37 @@ const TikTokAds = (function() {
|
|
|
4428
4428
|
secret: this.appSecret
|
|
4429
4429
|
};
|
|
4430
4430
|
const url = this.buildUrl("oauth2/advertiser/get/", params);
|
|
4431
|
-
const response = this.makeRequest({ url, method: "GET" });
|
|
4431
|
+
const response = await this.makeRequest({ url, method: "GET" });
|
|
4432
4432
|
return response.data.list;
|
|
4433
4433
|
}
|
|
4434
|
-
getCampaigns(advertiserId, fields = [], filtering = null) {
|
|
4434
|
+
async getCampaigns(advertiserId, fields = [], filtering = null) {
|
|
4435
4435
|
this.currentAdvertiserId = advertiserId;
|
|
4436
4436
|
const params = {
|
|
4437
4437
|
advertiser_id: advertiserId,
|
|
4438
4438
|
fields,
|
|
4439
4439
|
filtering
|
|
4440
4440
|
};
|
|
4441
|
-
return this.handlePagination("campaign/get/", params);
|
|
4441
|
+
return await this.handlePagination("campaign/get/", params);
|
|
4442
4442
|
}
|
|
4443
|
-
getAdGroups(advertiserId, fields = [], filtering = null) {
|
|
4443
|
+
async getAdGroups(advertiserId, fields = [], filtering = null) {
|
|
4444
4444
|
this.currentAdvertiserId = advertiserId;
|
|
4445
4445
|
const params = {
|
|
4446
4446
|
advertiser_id: advertiserId,
|
|
4447
4447
|
fields,
|
|
4448
4448
|
filtering
|
|
4449
4449
|
};
|
|
4450
|
-
return this.handlePagination("adgroup/get/", params);
|
|
4450
|
+
return await this.handlePagination("adgroup/get/", params);
|
|
4451
4451
|
}
|
|
4452
|
-
getAds(advertiserId, fields = [], filtering = null) {
|
|
4452
|
+
async getAds(advertiserId, fields = [], filtering = null) {
|
|
4453
4453
|
this.currentAdvertiserId = advertiserId;
|
|
4454
4454
|
const params = {
|
|
4455
4455
|
advertiser_id: advertiserId,
|
|
4456
4456
|
fields,
|
|
4457
4457
|
filtering
|
|
4458
4458
|
};
|
|
4459
|
-
return this.handlePagination("ad/get/", params);
|
|
4459
|
+
return await this.handlePagination("ad/get/", params);
|
|
4460
4460
|
}
|
|
4461
|
-
getAdInsights(options) {
|
|
4461
|
+
async getAdInsights(options) {
|
|
4462
4462
|
const { advertiserId, dataLevel, dimensions, metrics, startDate, endDate } = options;
|
|
4463
4463
|
this.currentAdvertiserId = advertiserId;
|
|
4464
4464
|
const params = {
|
|
@@ -4470,14 +4470,14 @@ const TikTokAds = (function() {
|
|
|
4470
4470
|
start_date: startDate,
|
|
4471
4471
|
end_date: endDate
|
|
4472
4472
|
};
|
|
4473
|
-
return this.handlePagination("report/integrated/get/", params);
|
|
4473
|
+
return await this.handlePagination("report/integrated/get/", params);
|
|
4474
4474
|
}
|
|
4475
|
-
getAudiences(advertiserId) {
|
|
4475
|
+
async getAudiences(advertiserId) {
|
|
4476
4476
|
this.currentAdvertiserId = advertiserId;
|
|
4477
4477
|
const params = {
|
|
4478
4478
|
advertiser_id: advertiserId
|
|
4479
4479
|
};
|
|
4480
|
-
return this.handlePagination("dmp/custom_audience/list/", params);
|
|
4480
|
+
return await this.handlePagination("dmp/custom_audience/list/", params);
|
|
4481
4481
|
}
|
|
4482
4482
|
}
|
|
4483
4483
|
const TikTokAdsHelper = {
|
|
@@ -5480,16 +5480,16 @@ const TikTokAds = (function() {
|
|
|
5480
5480
|
try {
|
|
5481
5481
|
switch (nodeName) {
|
|
5482
5482
|
case "advertiser":
|
|
5483
|
-
allData = provider.getAdvertisers(advertiserId);
|
|
5483
|
+
allData = await provider.getAdvertisers(advertiserId);
|
|
5484
5484
|
break;
|
|
5485
5485
|
case "campaigns":
|
|
5486
|
-
allData = provider.getCampaigns(advertiserId, filteredFields, filtering);
|
|
5486
|
+
allData = await provider.getCampaigns(advertiserId, filteredFields, filtering);
|
|
5487
5487
|
break;
|
|
5488
5488
|
case "ad_groups":
|
|
5489
|
-
allData = provider.getAdGroups(advertiserId, filteredFields, filtering);
|
|
5489
|
+
allData = await provider.getAdGroups(advertiserId, filteredFields, filtering);
|
|
5490
5490
|
break;
|
|
5491
5491
|
case "ads":
|
|
5492
|
-
allData = provider.getAds(advertiserId, filteredFields, filtering);
|
|
5492
|
+
allData = await provider.getAds(advertiserId, filteredFields, filtering);
|
|
5493
5493
|
break;
|
|
5494
5494
|
case "ad_insights":
|
|
5495
5495
|
let dataLevel = this.config.DataLevel && this.config.DataLevel.value ? this.config.DataLevel.value : "AUCTION_AD";
|
|
@@ -5501,7 +5501,7 @@ const TikTokAds = (function() {
|
|
|
5501
5501
|
let dimensions = this.getDimensionsForDataLevel(dataLevel);
|
|
5502
5502
|
const validMetricsList = provider.getValidAdInsightsMetrics();
|
|
5503
5503
|
let metricFields = this.getFilteredMetrics(filteredFields, dimensions, validMetricsList);
|
|
5504
|
-
allData = provider.getAdInsights({
|
|
5504
|
+
allData = await provider.getAdInsights({
|
|
5505
5505
|
advertiserId,
|
|
5506
5506
|
dataLevel,
|
|
5507
5507
|
dimensions,
|
|
@@ -5511,7 +5511,7 @@ const TikTokAds = (function() {
|
|
|
5511
5511
|
});
|
|
5512
5512
|
break;
|
|
5513
5513
|
case "audiences":
|
|
5514
|
-
allData = provider.getAudiences(advertiserId);
|
|
5514
|
+
allData = await provider.getAudiences(advertiserId);
|
|
5515
5515
|
break;
|
|
5516
5516
|
default:
|
|
5517
5517
|
throw new Error(`Endpoint for ${nodeName} is not implemented yet. Feel free to add idea here: https://github.com/OWOX/owox-data-marts/discussions/categories/ideas`);
|
|
@@ -14621,7 +14621,7 @@ const GoogleAds = (function() {
|
|
|
14621
14621
|
const { fields, startDate } = options;
|
|
14622
14622
|
const query = this._buildQuery({ nodeName, fields, startDate });
|
|
14623
14623
|
const response = await this.makeRequest({ customerId, query, nodeName, fields });
|
|
14624
|
-
return
|
|
14624
|
+
return response;
|
|
14625
14625
|
}
|
|
14626
14626
|
/**
|
|
14627
14627
|
* Convert field names to API field names
|
package/dist/index.js
CHANGED
|
@@ -1866,7 +1866,7 @@ var require_index = __commonJS({
|
|
|
1866
1866
|
//----------------------------------------------------------------
|
|
1867
1867
|
//---- loads Google BigQuery Table Schema ---------------------------
|
|
1868
1868
|
async loadTableSchema() {
|
|
1869
|
-
this.existingColumns = this.getAListOfExistingColumns() || {};
|
|
1869
|
+
this.existingColumns = await this.getAListOfExistingColumns() || {};
|
|
1870
1870
|
if (Object.keys(this.existingColumns).length == 0) {
|
|
1871
1871
|
await this.createDatasetIfItDoesntExist();
|
|
1872
1872
|
this.existingColumns = await this.createTableIfItDoesntExist();
|
|
@@ -1885,7 +1885,7 @@ var require_index = __commonJS({
|
|
|
1885
1885
|
* @return columns (object)
|
|
1886
1886
|
*
|
|
1887
1887
|
*/
|
|
1888
|
-
getAListOfExistingColumns() {
|
|
1888
|
+
async getAListOfExistingColumns() {
|
|
1889
1889
|
let query = "----- Getting a list of existing columns ------\n";
|
|
1890
1890
|
query += `DECLARE dataset_exists BOOL;
|
|
1891
1891
|
SET dataset_exists = EXISTS (
|
|
@@ -1898,7 +1898,7 @@ var require_index = __commonJS({
|
|
|
1898
1898
|
FROM \`${this.config.DestinationDatasetID.value}.INFORMATION_SCHEMA.COLUMNS\`
|
|
1899
1899
|
WHERE table_name = '${this.config.DestinationTableName.value}';
|
|
1900
1900
|
END IF`;
|
|
1901
|
-
let queryResults = this.executeQuery(query);
|
|
1901
|
+
let queryResults = await this.executeQuery(query);
|
|
1902
1902
|
let columns = {};
|
|
1903
1903
|
if (queryResults.rows) {
|
|
1904
1904
|
queryResults.rows.map((row) => {
|
|
@@ -2080,12 +2080,12 @@ OPTIONS(description="${this.description}")`;
|
|
|
2080
2080
|
this.totalRecordsProcessed += currentBatch.length;
|
|
2081
2081
|
console.log(`BigQuery MERGE completed successfully for ${currentBatch.length} records (Total processed: ${this.totalRecordsProcessed})`);
|
|
2082
2082
|
if (remainingRecords.length > 0) {
|
|
2083
|
-
this.executeMergeQueryRecursively(remainingRecords, batchSize);
|
|
2083
|
+
await this.executeMergeQueryRecursively(remainingRecords, batchSize);
|
|
2084
2084
|
}
|
|
2085
2085
|
} catch (error) {
|
|
2086
2086
|
if (error.message && error.message.includes("query is too large")) {
|
|
2087
2087
|
console.log(`Query execution failed due to size. Reducing batch size from ${batchSize} to ${Math.floor(batchSize / 2)}`);
|
|
2088
|
-
this.executeMergeQueryRecursively(recordKeys, Math.floor(batchSize / 2));
|
|
2088
|
+
await this.executeMergeQueryRecursively(recordKeys, Math.floor(batchSize / 2));
|
|
2089
2089
|
} else {
|
|
2090
2090
|
throw error;
|
|
2091
2091
|
}
|
|
@@ -4423,7 +4423,7 @@ OPTIONS(description="${this.description}")`;
|
|
|
4423
4423
|
"conversion_28d_click"
|
|
4424
4424
|
];
|
|
4425
4425
|
}
|
|
4426
|
-
getAdvertisers(advertiserIds) {
|
|
4426
|
+
async getAdvertisers(advertiserIds) {
|
|
4427
4427
|
if (!this.appId || !this.appSecret) {
|
|
4428
4428
|
throw new Error("To fetch advertiser data, both AppId and AppSecret must be provided.");
|
|
4429
4429
|
}
|
|
@@ -4433,37 +4433,37 @@ OPTIONS(description="${this.description}")`;
|
|
|
4433
4433
|
secret: this.appSecret
|
|
4434
4434
|
};
|
|
4435
4435
|
const url = this.buildUrl("oauth2/advertiser/get/", params);
|
|
4436
|
-
const response = this.makeRequest({ url, method: "GET" });
|
|
4436
|
+
const response = await this.makeRequest({ url, method: "GET" });
|
|
4437
4437
|
return response.data.list;
|
|
4438
4438
|
}
|
|
4439
|
-
getCampaigns(advertiserId, fields = [], filtering = null) {
|
|
4439
|
+
async getCampaigns(advertiserId, fields = [], filtering = null) {
|
|
4440
4440
|
this.currentAdvertiserId = advertiserId;
|
|
4441
4441
|
const params = {
|
|
4442
4442
|
advertiser_id: advertiserId,
|
|
4443
4443
|
fields,
|
|
4444
4444
|
filtering
|
|
4445
4445
|
};
|
|
4446
|
-
return this.handlePagination("campaign/get/", params);
|
|
4446
|
+
return await this.handlePagination("campaign/get/", params);
|
|
4447
4447
|
}
|
|
4448
|
-
getAdGroups(advertiserId, fields = [], filtering = null) {
|
|
4448
|
+
async getAdGroups(advertiserId, fields = [], filtering = null) {
|
|
4449
4449
|
this.currentAdvertiserId = advertiserId;
|
|
4450
4450
|
const params = {
|
|
4451
4451
|
advertiser_id: advertiserId,
|
|
4452
4452
|
fields,
|
|
4453
4453
|
filtering
|
|
4454
4454
|
};
|
|
4455
|
-
return this.handlePagination("adgroup/get/", params);
|
|
4455
|
+
return await this.handlePagination("adgroup/get/", params);
|
|
4456
4456
|
}
|
|
4457
|
-
getAds(advertiserId, fields = [], filtering = null) {
|
|
4457
|
+
async getAds(advertiserId, fields = [], filtering = null) {
|
|
4458
4458
|
this.currentAdvertiserId = advertiserId;
|
|
4459
4459
|
const params = {
|
|
4460
4460
|
advertiser_id: advertiserId,
|
|
4461
4461
|
fields,
|
|
4462
4462
|
filtering
|
|
4463
4463
|
};
|
|
4464
|
-
return this.handlePagination("ad/get/", params);
|
|
4464
|
+
return await this.handlePagination("ad/get/", params);
|
|
4465
4465
|
}
|
|
4466
|
-
getAdInsights(options) {
|
|
4466
|
+
async getAdInsights(options) {
|
|
4467
4467
|
const { advertiserId, dataLevel, dimensions, metrics, startDate, endDate } = options;
|
|
4468
4468
|
this.currentAdvertiserId = advertiserId;
|
|
4469
4469
|
const params = {
|
|
@@ -4475,14 +4475,14 @@ OPTIONS(description="${this.description}")`;
|
|
|
4475
4475
|
start_date: startDate,
|
|
4476
4476
|
end_date: endDate
|
|
4477
4477
|
};
|
|
4478
|
-
return this.handlePagination("report/integrated/get/", params);
|
|
4478
|
+
return await this.handlePagination("report/integrated/get/", params);
|
|
4479
4479
|
}
|
|
4480
|
-
getAudiences(advertiserId) {
|
|
4480
|
+
async getAudiences(advertiserId) {
|
|
4481
4481
|
this.currentAdvertiserId = advertiserId;
|
|
4482
4482
|
const params = {
|
|
4483
4483
|
advertiser_id: advertiserId
|
|
4484
4484
|
};
|
|
4485
|
-
return this.handlePagination("dmp/custom_audience/list/", params);
|
|
4485
|
+
return await this.handlePagination("dmp/custom_audience/list/", params);
|
|
4486
4486
|
}
|
|
4487
4487
|
}
|
|
4488
4488
|
const TikTokAdsHelper = {
|
|
@@ -5485,16 +5485,16 @@ OPTIONS(description="${this.description}")`;
|
|
|
5485
5485
|
try {
|
|
5486
5486
|
switch (nodeName) {
|
|
5487
5487
|
case "advertiser":
|
|
5488
|
-
allData = provider.getAdvertisers(advertiserId);
|
|
5488
|
+
allData = await provider.getAdvertisers(advertiserId);
|
|
5489
5489
|
break;
|
|
5490
5490
|
case "campaigns":
|
|
5491
|
-
allData = provider.getCampaigns(advertiserId, filteredFields, filtering);
|
|
5491
|
+
allData = await provider.getCampaigns(advertiserId, filteredFields, filtering);
|
|
5492
5492
|
break;
|
|
5493
5493
|
case "ad_groups":
|
|
5494
|
-
allData = provider.getAdGroups(advertiserId, filteredFields, filtering);
|
|
5494
|
+
allData = await provider.getAdGroups(advertiserId, filteredFields, filtering);
|
|
5495
5495
|
break;
|
|
5496
5496
|
case "ads":
|
|
5497
|
-
allData = provider.getAds(advertiserId, filteredFields, filtering);
|
|
5497
|
+
allData = await provider.getAds(advertiserId, filteredFields, filtering);
|
|
5498
5498
|
break;
|
|
5499
5499
|
case "ad_insights":
|
|
5500
5500
|
let dataLevel = this.config.DataLevel && this.config.DataLevel.value ? this.config.DataLevel.value : "AUCTION_AD";
|
|
@@ -5506,7 +5506,7 @@ OPTIONS(description="${this.description}")`;
|
|
|
5506
5506
|
let dimensions = this.getDimensionsForDataLevel(dataLevel);
|
|
5507
5507
|
const validMetricsList = provider.getValidAdInsightsMetrics();
|
|
5508
5508
|
let metricFields = this.getFilteredMetrics(filteredFields, dimensions, validMetricsList);
|
|
5509
|
-
allData = provider.getAdInsights({
|
|
5509
|
+
allData = await provider.getAdInsights({
|
|
5510
5510
|
advertiserId,
|
|
5511
5511
|
dataLevel,
|
|
5512
5512
|
dimensions,
|
|
@@ -5516,7 +5516,7 @@ OPTIONS(description="${this.description}")`;
|
|
|
5516
5516
|
});
|
|
5517
5517
|
break;
|
|
5518
5518
|
case "audiences":
|
|
5519
|
-
allData = provider.getAudiences(advertiserId);
|
|
5519
|
+
allData = await provider.getAudiences(advertiserId);
|
|
5520
5520
|
break;
|
|
5521
5521
|
default:
|
|
5522
5522
|
throw new Error(`Endpoint for ${nodeName} is not implemented yet. Feel free to add idea here: https://github.com/OWOX/owox-data-marts/discussions/categories/ideas`);
|
|
@@ -14626,7 +14626,7 @@ API Response: ${JSON.stringify(statusResult, null, 2)}`);
|
|
|
14626
14626
|
const { fields, startDate } = options;
|
|
14627
14627
|
const query = this._buildQuery({ nodeName, fields, startDate });
|
|
14628
14628
|
const response = await this.makeRequest({ customerId, query, nodeName, fields });
|
|
14629
|
-
return
|
|
14629
|
+
return response;
|
|
14630
14630
|
}
|
|
14631
14631
|
/**
|
|
14632
14632
|
* Convert field names to API field names
|