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 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