glitch-javascript-sdk 3.2.28 → 3.2.30
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/cjs/index.js +85 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/api/Crm.d.ts +10 -1
- package/dist/esm/api/TwitchReporting.d.ts +11 -0
- package/dist/esm/index.js +85 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/util/Requests.d.ts +1 -0
- package/dist/index.d.ts +21 -0
- package/package.json +1 -1
- package/src/api/Crm.ts +57 -1
- package/src/api/TwitchReporting.ts +15 -1
- package/src/routes/CrmRoute.ts +2 -0
- package/src/routes/TwitchReportingRoute.ts +5 -1
- package/src/util/Requests.ts +40 -0
package/dist/cjs/index.js
CHANGED
|
@@ -17525,6 +17525,39 @@ var Requests = /** @class */ (function () {
|
|
|
17525
17525
|
onUploadProgress: onUploadProgress,
|
|
17526
17526
|
});
|
|
17527
17527
|
};
|
|
17528
|
+
Requests.postFormData = function (url, formData, params, onUploadProgress) {
|
|
17529
|
+
if (params && Object.keys(params).length > 0) {
|
|
17530
|
+
var queryString = Object.entries(params)
|
|
17531
|
+
.filter(function (_a) {
|
|
17532
|
+
var value = _a[1];
|
|
17533
|
+
return value !== undefined && value !== null && value !== '';
|
|
17534
|
+
})
|
|
17535
|
+
.map(function (_a) {
|
|
17536
|
+
var key = _a[0], value = _a[1];
|
|
17537
|
+
if (Array.isArray(value)) {
|
|
17538
|
+
return value.map(function (item) { return "".concat(key, "[]=").concat(encodeURIComponent(item)); }).join('&');
|
|
17539
|
+
}
|
|
17540
|
+
return "".concat(key, "=").concat(encodeURIComponent(value));
|
|
17541
|
+
})
|
|
17542
|
+
.filter(Boolean)
|
|
17543
|
+
.join('&');
|
|
17544
|
+
if (queryString) {
|
|
17545
|
+
url = "".concat(url, "?").concat(queryString);
|
|
17546
|
+
}
|
|
17547
|
+
}
|
|
17548
|
+
var headers = {};
|
|
17549
|
+
if (Requests.authToken) {
|
|
17550
|
+
headers['Authorization'] = "Bearer ".concat(Requests.authToken);
|
|
17551
|
+
}
|
|
17552
|
+
var uri = Requests.baseUrl.replace(/\/+$/, '') + '/' + url.replace(/^\/+/, '');
|
|
17553
|
+
return axios$1({
|
|
17554
|
+
method: 'POST',
|
|
17555
|
+
url: uri,
|
|
17556
|
+
data: formData,
|
|
17557
|
+
headers: headers,
|
|
17558
|
+
onUploadProgress: onUploadProgress,
|
|
17559
|
+
});
|
|
17560
|
+
};
|
|
17528
17561
|
Requests.uploadBlob = function (url, filename, blob, data, params, onUploadProgress) {
|
|
17529
17562
|
// Process URL and params
|
|
17530
17563
|
if (params && Object.keys(params).length > 0) {
|
|
@@ -29874,6 +29907,10 @@ var TwitchReportingRoute = /** @class */ (function () {
|
|
|
29874
29907
|
url: '/reporting/twitch/games/most-active',
|
|
29875
29908
|
method: HTTP_METHODS.GET
|
|
29876
29909
|
},
|
|
29910
|
+
discoverActiveGames: {
|
|
29911
|
+
url: '/reporting/twitch/games/discovery',
|
|
29912
|
+
method: HTTP_METHODS.GET
|
|
29913
|
+
},
|
|
29877
29914
|
getTopStreamers: {
|
|
29878
29915
|
url: '/reporting/twitch/streamers/top',
|
|
29879
29916
|
method: HTTP_METHODS.GET
|
|
@@ -29946,6 +29983,19 @@ var TwitchReporting = /** @class */ (function () {
|
|
|
29946
29983
|
TwitchReporting.getMostActiveGames = function (params) {
|
|
29947
29984
|
return Requests.processRoute(TwitchReportingRoute.routes.getMostActiveGames, undefined, undefined, params);
|
|
29948
29985
|
};
|
|
29986
|
+
/**
|
|
29987
|
+
* Discover the most active Twitch games with Steam/IGDB genre, category,
|
|
29988
|
+
* theme, live snapshot, and trend metrics.
|
|
29989
|
+
*
|
|
29990
|
+
* @see https://api.glitch.fun/api/documentation#/Twitch%20Reporting/discoverActiveTwitchGames
|
|
29991
|
+
*
|
|
29992
|
+
* @param params Optional query parameters (e.g., genres, categories, match_mode, trend_days, sort_by, limit).
|
|
29993
|
+
*
|
|
29994
|
+
* @returns promise
|
|
29995
|
+
*/
|
|
29996
|
+
TwitchReporting.discoverActiveGames = function (params) {
|
|
29997
|
+
return Requests.processRoute(TwitchReportingRoute.routes.discoverActiveGames, undefined, undefined, params);
|
|
29998
|
+
};
|
|
29949
29999
|
/**
|
|
29950
30000
|
* Get top streamers by performance (average or peak CCV).
|
|
29951
30001
|
*
|
|
@@ -30632,6 +30682,8 @@ var CrmRoute = /** @class */ (function () {
|
|
|
30632
30682
|
listCampaignRecipients: { url: '/admin/crm/campaigns/{campaign_id}/recipients', method: HTTP_METHODS.GET },
|
|
30633
30683
|
previewCampaignProspectImport: { url: '/admin/crm/campaigns/import-prospects/preview', method: HTTP_METHODS.POST },
|
|
30634
30684
|
importCampaignProspects: { url: '/admin/crm/campaigns/import-prospects', method: HTTP_METHODS.POST },
|
|
30685
|
+
previewFestivalSubmissionImport: { url: '/admin/crm/imports/festival-submissions/preview', method: HTTP_METHODS.POST },
|
|
30686
|
+
importFestivalSubmissions: { url: '/admin/crm/imports/festival-submissions', method: HTTP_METHODS.POST },
|
|
30635
30687
|
listEmailProviderAddresses: { url: '/admin/crm/email-provider-addresses', method: HTTP_METHODS.GET },
|
|
30636
30688
|
getEmailProviderAddressOptions: { url: '/admin/crm/email-provider-addresses/options', method: HTTP_METHODS.GET },
|
|
30637
30689
|
createEmailProviderAddress: { url: '/admin/crm/email-provider-addresses', method: HTTP_METHODS.POST },
|
|
@@ -30876,6 +30928,20 @@ var Crm = /** @class */ (function () {
|
|
|
30876
30928
|
if (options === void 0) { options = {}; }
|
|
30877
30929
|
return Requests.processRoute(CrmRoute.routes.importCampaignProspects, __assign({ prospects: prospects }, options));
|
|
30878
30930
|
};
|
|
30931
|
+
/**
|
|
30932
|
+
* Preview uploaded festival submission sheets without writing External Game or CRM records.
|
|
30933
|
+
*/
|
|
30934
|
+
Crm.previewFestivalSubmissionImport = function (files, options, onUploadProgress) {
|
|
30935
|
+
if (options === void 0) { options = {}; }
|
|
30936
|
+
return Requests.postFormData(CrmRoute.routes.previewFestivalSubmissionImport.url, Crm.festivalSubmissionFormData(files, options), undefined, onUploadProgress);
|
|
30937
|
+
};
|
|
30938
|
+
/**
|
|
30939
|
+
* Import uploaded festival submission sheets into External Games and CRM leads/contacts.
|
|
30940
|
+
*/
|
|
30941
|
+
Crm.importFestivalSubmissions = function (files, options, onUploadProgress) {
|
|
30942
|
+
if (options === void 0) { options = {}; }
|
|
30943
|
+
return Requests.postFormData(CrmRoute.routes.importFestivalSubmissions.url, Crm.festivalSubmissionFormData(files, options), undefined, onUploadProgress);
|
|
30944
|
+
};
|
|
30879
30945
|
/**
|
|
30880
30946
|
* List provider-managed sender and reply-to addresses for CRM campaigns.
|
|
30881
30947
|
*/
|
|
@@ -30906,6 +30972,25 @@ var Crm = /** @class */ (function () {
|
|
|
30906
30972
|
Crm.deactivateEmailProviderAddress = function (address_id) {
|
|
30907
30973
|
return Requests.processRoute(CrmRoute.routes.deactivateEmailProviderAddress, {}, { address_id: address_id });
|
|
30908
30974
|
};
|
|
30975
|
+
Crm.festivalSubmissionFormData = function (files, options) {
|
|
30976
|
+
var formData = new FormData();
|
|
30977
|
+
files.forEach(function (file, index) {
|
|
30978
|
+
var candidate = file;
|
|
30979
|
+
formData.append('files[]', file, (candidate === null || candidate === void 0 ? void 0 : candidate.name) || "festival-submission-".concat(index + 1));
|
|
30980
|
+
});
|
|
30981
|
+
Object.entries(options || {}).forEach(function (_a) {
|
|
30982
|
+
var key = _a[0], value = _a[1];
|
|
30983
|
+
if (value === undefined || value === null) {
|
|
30984
|
+
return;
|
|
30985
|
+
}
|
|
30986
|
+
if (Array.isArray(value)) {
|
|
30987
|
+
value.forEach(function (item) { return formData.append("".concat(key, "[]"), String(item)); });
|
|
30988
|
+
return;
|
|
30989
|
+
}
|
|
30990
|
+
formData.append(key, typeof value === 'boolean' ? (value ? '1' : '0') : String(value));
|
|
30991
|
+
});
|
|
30992
|
+
return formData;
|
|
30993
|
+
};
|
|
30909
30994
|
return Crm;
|
|
30910
30995
|
}());
|
|
30911
30996
|
|