@datocms/cma-client 3.4.1 → 3.4.3

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.
@@ -131,7 +131,7 @@ var Client = /** @class */ (function () {
131
131
  });
132
132
  Client.prototype.request = function (options) {
133
133
  var _this = this;
134
- return (0, rest_client_utils_1.request)(__assign(__assign(__assign({}, this.config), options), { logFn: this.config.logFn || console.log, userAgent: '@datocms/cma-client v3.4.1', baseUrl: this.baseUrl, preCallStack: new Error().stack, extraHeaders: __assign(__assign(__assign({}, (this.config.extraHeaders || {})), (this.config.environment
134
+ return (0, rest_client_utils_1.request)(__assign(__assign(__assign({}, this.config), options), { logFn: this.config.logFn || console.log, userAgent: '@datocms/cma-client v3.4.3', baseUrl: this.baseUrl, preCallStack: new Error().stack, extraHeaders: __assign(__assign(__assign({}, (this.config.extraHeaders || {})), (this.config.environment
135
135
  ? { 'X-Environment': this.config.environment }
136
136
  : {})), { 'X-API-Version': '3' }), fetchJobResult: function (jobId) {
137
137
  return _this.jobResultsFetcher
@@ -2,10 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.generateId = exports.isValidId = void 0;
4
4
  var uuid_1 = require("uuid");
5
- var decoder = new TextDecoder('utf8');
6
5
  function fromUint8ArrayToUrlSafeBase64(bytes) {
7
6
  var base64 = typeof Buffer === 'undefined'
8
- ? btoa(decoder.decode(bytes))
7
+ ? btoa(Array.from(bytes, function (byte) { return String.fromCharCode(byte); }).join(''))
9
8
  : Buffer.from(bytes).toString('base64');
10
9
  // Convert to URL-safe format (see RFC 4648, sec. 5)
11
10
  return (base64
@@ -1 +1 @@
1
- {"version":3,"file":"idUtils.js","sourceRoot":"","sources":["../../src/idUtils.ts"],"names":[],"mappings":";;;AAAA,6BAA0B;AAE1B,IAAM,OAAO,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;AAExC,SAAS,6BAA6B,CAAC,KAAiB;IACtD,IAAM,MAAM,GACV,OAAO,MAAM,KAAK,WAAW;QAC3B,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAE5C,oDAAoD;IACpD,OAAO,CACL,MAAM;QACJ,mBAAmB;SAClB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;QACpB,mBAAmB;SAClB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;QACpB,oBAAoB;SACnB,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CACpB,CAAC;AACJ,CAAC;AAED,SAAS,6BAA6B,CAAC,aAAqB;IAC1D,sDAAsD;IACtD,IAAM,MAAM,GAAG,aAAa;QAC1B,mBAAmB;SAClB,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;QACnB,mBAAmB;SAClB,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAEtB,OAAO,OAAO,MAAM,KAAK,WAAW;QAClC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAf,CAAe,CAAC;QACvD,CAAC,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;AACpD,CAAC;AAED,SAAgB,SAAS,CAAC,EAAU;IAClC,4GAA4G;IAC5G,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;QACpB,IAAM,KAAK,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;QACzB,IAAM,gBAAgB,GAAG,eAAe,CAAC,CAAC,iCAAiC;QAC3E,OAAO,KAAK,IAAI,gBAAgB,CAAC;KAClC;IAED,IAAM,KAAK,GAAG,6BAA6B,CAAC,EAAE,CAAC,CAAC;IAEhD,qBAAqB;IACrB,IAAI,KAAK,CAAC,MAAM,KAAK,EAAE,EAAE;QACvB,OAAO,KAAK,CAAC;KACd;IAED,sDAAsD;IACtD,6BAA6B;IAE7B,IAAM,OAAO,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAE,CAAC;IAE7B,gDAAgD;IAChD,IAAI,CAAC,OAAO,GAAG,GAAU,CAAC,KAAK,GAAU,EAAE;QACzC,OAAO,KAAK,CAAC;KACd;IAED,uDAAuD;IACvD,+CAA+C;IAE/C,IAAM,OAAO,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAE,IAAI,CAAC,CAAC;IAElC,gDAAgD;IAChD,IAAI,OAAO,KAAK,GAAG,EAAE;QACnB,OAAO,KAAK,CAAC;KACd;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AApCD,8BAoCC;AAED,SAAgB,UAAU;IACxB,IAAM,KAAK,GAAG,IAAA,SAAE,EAAC,IAAI,EAAE,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;IAE3C,oEAAoE;IACpE,EAAE;IACF,iEAAiE;IACjE,mEAAmE;IACnE,mCAAmC;IAEnC,6DAA6D;IAE7D,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAE,GAAG,IAAI,CAAC;IAE5B,IAAM,MAAM,GAAG,6BAA6B,CAAC,KAAK,CAAC,CAAC;IAEpD,OAAO,MAAM,CAAC;AAChB,CAAC;AAhBD,gCAgBC"}
1
+ {"version":3,"file":"idUtils.js","sourceRoot":"","sources":["../../src/idUtils.ts"],"names":[],"mappings":";;;AAAA,6BAA0B;AAE1B,SAAS,6BAA6B,CAAC,KAAiB;IACtD,IAAM,MAAM,GACV,OAAO,MAAM,KAAK,WAAW;QAC3B,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,UAAC,IAAI,IAAK,OAAA,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,EAAzB,CAAyB,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACvE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAE5C,oDAAoD;IACpD,OAAO,CACL,MAAM;QACJ,mBAAmB;SAClB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;QACpB,mBAAmB;SAClB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;QACpB,oBAAoB;SACnB,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CACpB,CAAC;AACJ,CAAC;AAED,SAAS,6BAA6B,CAAC,aAAqB;IAC1D,sDAAsD;IACtD,IAAM,MAAM,GAAG,aAAa;QAC1B,mBAAmB;SAClB,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;QACnB,mBAAmB;SAClB,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAEtB,OAAO,OAAO,MAAM,KAAK,WAAW;QAClC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAf,CAAe,CAAC;QACvD,CAAC,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;AACpD,CAAC;AAED,SAAgB,SAAS,CAAC,EAAU;IAClC,4GAA4G;IAC5G,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;QACpB,IAAM,KAAK,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;QACzB,IAAM,gBAAgB,GAAG,eAAe,CAAC,CAAC,iCAAiC;QAC3E,OAAO,KAAK,IAAI,gBAAgB,CAAC;KAClC;IAED,IAAM,KAAK,GAAG,6BAA6B,CAAC,EAAE,CAAC,CAAC;IAEhD,qBAAqB;IACrB,IAAI,KAAK,CAAC,MAAM,KAAK,EAAE,EAAE;QACvB,OAAO,KAAK,CAAC;KACd;IAED,sDAAsD;IACtD,6BAA6B;IAE7B,IAAM,OAAO,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAE,CAAC;IAE7B,gDAAgD;IAChD,IAAI,CAAC,OAAO,GAAG,GAAU,CAAC,KAAK,GAAU,EAAE;QACzC,OAAO,KAAK,CAAC;KACd;IAED,uDAAuD;IACvD,+CAA+C;IAE/C,IAAM,OAAO,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAE,IAAI,CAAC,CAAC;IAElC,gDAAgD;IAChD,IAAI,OAAO,KAAK,GAAG,EAAE;QACnB,OAAO,KAAK,CAAC;KACd;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AApCD,8BAoCC;AAED,SAAgB,UAAU;IACxB,IAAM,KAAK,GAAG,IAAA,SAAE,EAAC,IAAI,EAAE,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;IAE3C,oEAAoE;IACpE,EAAE;IACF,iEAAiE;IACjE,mEAAmE;IACnE,mCAAmC;IAEnC,6DAA6D;IAE7D,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAE,GAAG,IAAI,CAAC;IAE5B,IAAM,MAAM,GAAG,6BAA6B,CAAC,KAAK,CAAC,CAAC;IAEpD,OAAO,MAAM,CAAC;AAChB,CAAC;AAhBD,gCAgBC"}
@@ -105,7 +105,7 @@ var Client = /** @class */ (function () {
105
105
  });
106
106
  Client.prototype.request = function (options) {
107
107
  var _this = this;
108
- return request(__assign(__assign(__assign({}, this.config), options), { logFn: this.config.logFn || console.log, userAgent: '@datocms/cma-client v3.4.1', baseUrl: this.baseUrl, preCallStack: new Error().stack, extraHeaders: __assign(__assign(__assign({}, (this.config.extraHeaders || {})), (this.config.environment
108
+ return request(__assign(__assign(__assign({}, this.config), options), { logFn: this.config.logFn || console.log, userAgent: '@datocms/cma-client v3.4.3', baseUrl: this.baseUrl, preCallStack: new Error().stack, extraHeaders: __assign(__assign(__assign({}, (this.config.extraHeaders || {})), (this.config.environment
109
109
  ? { 'X-Environment': this.config.environment }
110
110
  : {})), { 'X-API-Version': '3' }), fetchJobResult: function (jobId) {
111
111
  return _this.jobResultsFetcher
@@ -1,8 +1,7 @@
1
1
  import { v4 } from 'uuid';
2
- var decoder = new TextDecoder('utf8');
3
2
  function fromUint8ArrayToUrlSafeBase64(bytes) {
4
3
  var base64 = typeof Buffer === 'undefined'
5
- ? btoa(decoder.decode(bytes))
4
+ ? btoa(Array.from(bytes, function (byte) { return String.fromCharCode(byte); }).join(''))
6
5
  : Buffer.from(bytes).toString('base64');
7
6
  // Convert to URL-safe format (see RFC 4648, sec. 5)
8
7
  return (base64
@@ -1 +1 @@
1
- {"version":3,"file":"idUtils.js","sourceRoot":"","sources":["../../src/idUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAE1B,IAAM,OAAO,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;AAExC,SAAS,6BAA6B,CAAC,KAAiB;IACtD,IAAM,MAAM,GACV,OAAO,MAAM,KAAK,WAAW;QAC3B,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAE5C,oDAAoD;IACpD,OAAO,CACL,MAAM;QACJ,mBAAmB;SAClB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;QACpB,mBAAmB;SAClB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;QACpB,oBAAoB;SACnB,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CACpB,CAAC;AACJ,CAAC;AAED,SAAS,6BAA6B,CAAC,aAAqB;IAC1D,sDAAsD;IACtD,IAAM,MAAM,GAAG,aAAa;QAC1B,mBAAmB;SAClB,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;QACnB,mBAAmB;SAClB,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAEtB,OAAO,OAAO,MAAM,KAAK,WAAW;QAClC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAf,CAAe,CAAC;QACvD,CAAC,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,EAAU;IAClC,4GAA4G;IAC5G,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;QACpB,IAAM,KAAK,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;QACzB,IAAM,gBAAgB,GAAG,eAAe,CAAC,CAAC,iCAAiC;QAC3E,OAAO,KAAK,IAAI,gBAAgB,CAAC;KAClC;IAED,IAAM,KAAK,GAAG,6BAA6B,CAAC,EAAE,CAAC,CAAC;IAEhD,qBAAqB;IACrB,IAAI,KAAK,CAAC,MAAM,KAAK,EAAE,EAAE;QACvB,OAAO,KAAK,CAAC;KACd;IAED,sDAAsD;IACtD,6BAA6B;IAE7B,IAAM,OAAO,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAE,CAAC;IAE7B,gDAAgD;IAChD,IAAI,CAAC,OAAO,GAAG,GAAU,CAAC,KAAK,GAAU,EAAE;QACzC,OAAO,KAAK,CAAC;KACd;IAED,uDAAuD;IACvD,+CAA+C;IAE/C,IAAM,OAAO,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAE,IAAI,CAAC,CAAC;IAElC,gDAAgD;IAChD,IAAI,OAAO,KAAK,GAAG,EAAE;QACnB,OAAO,KAAK,CAAC;KACd;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,IAAM,KAAK,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;IAE3C,oEAAoE;IACpE,EAAE;IACF,iEAAiE;IACjE,mEAAmE;IACnE,mCAAmC;IAEnC,6DAA6D;IAE7D,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAE,GAAG,IAAI,CAAC;IAE5B,IAAM,MAAM,GAAG,6BAA6B,CAAC,KAAK,CAAC,CAAC;IAEpD,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"idUtils.js","sourceRoot":"","sources":["../../src/idUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAE1B,SAAS,6BAA6B,CAAC,KAAiB;IACtD,IAAM,MAAM,GACV,OAAO,MAAM,KAAK,WAAW;QAC3B,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,UAAC,IAAI,IAAK,OAAA,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,EAAzB,CAAyB,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACvE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAE5C,oDAAoD;IACpD,OAAO,CACL,MAAM;QACJ,mBAAmB;SAClB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;QACpB,mBAAmB;SAClB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;QACpB,oBAAoB;SACnB,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CACpB,CAAC;AACJ,CAAC;AAED,SAAS,6BAA6B,CAAC,aAAqB;IAC1D,sDAAsD;IACtD,IAAM,MAAM,GAAG,aAAa;QAC1B,mBAAmB;SAClB,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;QACnB,mBAAmB;SAClB,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAEtB,OAAO,OAAO,MAAM,KAAK,WAAW;QAClC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAf,CAAe,CAAC;QACvD,CAAC,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,EAAU;IAClC,4GAA4G;IAC5G,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;QACpB,IAAM,KAAK,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;QACzB,IAAM,gBAAgB,GAAG,eAAe,CAAC,CAAC,iCAAiC;QAC3E,OAAO,KAAK,IAAI,gBAAgB,CAAC;KAClC;IAED,IAAM,KAAK,GAAG,6BAA6B,CAAC,EAAE,CAAC,CAAC;IAEhD,qBAAqB;IACrB,IAAI,KAAK,CAAC,MAAM,KAAK,EAAE,EAAE;QACvB,OAAO,KAAK,CAAC;KACd;IAED,sDAAsD;IACtD,6BAA6B;IAE7B,IAAM,OAAO,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAE,CAAC;IAE7B,gDAAgD;IAChD,IAAI,CAAC,OAAO,GAAG,GAAU,CAAC,KAAK,GAAU,EAAE;QACzC,OAAO,KAAK,CAAC;KACd;IAED,uDAAuD;IACvD,+CAA+C;IAE/C,IAAM,OAAO,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAE,IAAI,CAAC,CAAC;IAElC,gDAAgD;IAChD,IAAI,OAAO,KAAK,GAAG,EAAE;QACnB,OAAO,KAAK,CAAC;KACd;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,IAAM,KAAK,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;IAE3C,oEAAoE;IACpE,EAAE;IACF,iEAAiE;IACjE,mEAAmE;IACnE,mCAAmC;IAEnC,6DAA6D;IAE7D,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAE,GAAG,IAAI,CAAC;IAE5B,IAAM,MAAM,GAAG,6BAA6B,CAAC,KAAK,CAAC,CAAC;IAEpD,OAAO,MAAM,CAAC;AAChB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@datocms/cma-client",
3
- "version": "3.4.1",
3
+ "version": "3.4.3",
4
4
  "description": "JS client for DatoCMS REST Content Management API",
5
5
  "keywords": [
6
6
  "datocms",
@@ -37,12 +37,12 @@
37
37
  "url": "https://github.com/datocms/js-rest-api-clients/issues"
38
38
  },
39
39
  "dependencies": {
40
- "@datocms/rest-client-utils": "^3.3.15",
40
+ "@datocms/rest-client-utils": "^3.4.2",
41
41
  "uuid": "^9.0.1"
42
42
  },
43
43
  "devDependencies": {
44
- "@datocms/dashboard-client": "^3.3.15",
44
+ "@datocms/dashboard-client": "^3.4.2",
45
45
  "@types/uuid": "^9.0.7"
46
46
  },
47
- "gitHead": "983cc9f3bc0078c621a32bab979c6a5813933bc6"
47
+ "gitHead": "c72b8e785e8c03e72481e320b808f13c65437271"
48
48
  }
@@ -147,7 +147,7 @@ export class Client {
147
147
  ...this.config,
148
148
  ...options,
149
149
  logFn: this.config.logFn || console.log,
150
- userAgent: '@datocms/cma-client v3.4.1',
150
+ userAgent: '@datocms/cma-client v3.4.3',
151
151
  baseUrl: this.baseUrl,
152
152
  preCallStack: new Error().stack,
153
153
  extraHeaders: {
package/src/idUtils.ts CHANGED
@@ -1,11 +1,9 @@
1
1
  import { v4 } from 'uuid';
2
2
 
3
- const decoder = new TextDecoder('utf8');
4
-
5
3
  function fromUint8ArrayToUrlSafeBase64(bytes: Uint8Array) {
6
4
  const base64 =
7
5
  typeof Buffer === 'undefined'
8
- ? btoa(decoder.decode(bytes))
6
+ ? btoa(Array.from(bytes, (byte) => String.fromCharCode(byte)).join(''))
9
7
  : Buffer.from(bytes).toString('base64');
10
8
 
11
9
  // Convert to URL-safe format (see RFC 4648, sec. 5)