@nmshd/transport 1.1.0 → 1.1.4

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.
@@ -70,11 +70,31 @@ class TokenController extends TransportController_1.TransportController {
70
70
  return tokenDoc ? await Token_1.Token.from(tokenDoc) : undefined;
71
71
  }
72
72
  async updateCache(ids) {
73
- const resultItems = (await this.client.getTokens({ ids })).value;
73
+ if (ids.length < 1) {
74
+ return [];
75
+ }
74
76
  const promises = [];
75
- for await (const resultItem of resultItems) {
77
+ for (const id of ids) {
78
+ const result = await this.client.getToken(id);
79
+ if (result.isError) {
80
+ if (result.error.code === "error.transport.recordNotFound" ||
81
+ result.error.code === "error.transport.request.notFound") {
82
+ this.log.warn(`Record id ${id} could not be found on backbone. It might be expired.`, result.error);
83
+ continue;
84
+ }
85
+ throw result.error;
86
+ }
87
+ const resultItem = result.value;
76
88
  promises.push(this.updateCacheOfExistingTokenInDb(resultItem.id, resultItem));
77
89
  }
90
+ /*
91
+ // TODO: Optimize once backbone handling is clarified
92
+ const resultItems = (await this.client.getTokens({ ids })).value
93
+ const promises = []
94
+ for await (const resultItem of resultItems) {
95
+ promises.push(this.updateCacheOfExistingTokenInDb(resultItem.id, resultItem))
96
+ }
97
+ */
78
98
  return await Promise.all(promises);
79
99
  }
80
100
  async fetchCaches(ids) {
@@ -1 +1 @@
1
- {"version":3,"file":"TokenController.js","sourceRoot":"","sources":["../../../src/modules/tokens/TokenController.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TokenController.js","sourceRoot":"","sources":["../../../src/modules/tokens/TokenController.ts"],"names":[],"mappings":"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"}
@@ -15,11 +15,11 @@ exports.buildInformation = void 0;
15
15
  const ts_serval_1 = __webpack_require__(/*! @js-soft/ts-serval */ "@js-soft/ts-serval");
16
16
  const crypto_1 = __webpack_require__(/*! @nmshd/crypto */ "@nmshd/crypto");
17
17
  exports.buildInformation = {
18
- version: "1.1.0",
19
- build: "12",
20
- date: "2021-11-24T08:13:17+00:00",
21
- commit: "79449175787ac5c327066c6846fba4deb209606e",
22
- dependencies: {"@js-soft/docdb-access-abstractions":"1.0.1","@js-soft/logging-abstractions":"1.0.0","@js-soft/simple-logger":"1.0.0","@js-soft/ts-utils":"1.1.1","axios":"^0.24.0","deep-equal":"^2.0.5","fast-json-patch":"^3.1.0","form-data":"^4.0.0","json-stringify-safe":"^5.0.1","lodash":"^4.17.21","luxon":"^2.1.1","qs":"^6.10.1","reflect-metadata":"^0.1.13","ts-simple-nameof":"^1.3.1","uuid":"^8.3.2"},
18
+ version: "1.1.4",
19
+ build: "16",
20
+ date: "2022-01-03T10:30:14+00:00",
21
+ commit: "d2352a36a63834c46a5fc86dd75e6d703aaba74f",
22
+ dependencies: {"@js-soft/docdb-access-abstractions":"1.0.1","@js-soft/logging-abstractions":"1.0.0","@js-soft/simple-logger":"1.0.0","@js-soft/ts-utils":"1.1.1","axios":"^0.24.0","deep-equal":"^2.0.5","fast-json-patch":"^3.1.0","form-data":"^4.0.0","json-stringify-safe":"^5.0.1","lodash":"^4.17.21","luxon":"^2.2.0","qs":"^6.10.2","reflect-metadata":"^0.1.13","ts-simple-nameof":"^1.3.1","uuid":"^8.3.2"},
23
23
  libraries: {
24
24
  crypto: crypto_1.buildInformation,
25
25
  serval: ts_serval_1.buildInformation
@@ -2828,11 +2828,7 @@ class AccountController {
2828
2828
  }
2829
2829
  const identity = await Identity_1.Identity.from({
2830
2830
  address: core_1.CoreAddress.from(deviceResponse.address),
2831
- createdAt: core_1.CoreDate.from(deviceResponse.createdAt),
2832
- description: "",
2833
- name: "",
2834
2831
  realm: realm,
2835
- type: "unknown" /* UNKNOWN */,
2836
2832
  publicKey: identityKeypair.publicKey
2837
2833
  });
2838
2834
  const deviceId = core_1.CoreId.from(deviceResponse.device.id);
@@ -2970,18 +2966,6 @@ class IdentityController extends core_1.TransportController {
2970
2966
  get realm() {
2971
2967
  return this._identity.realm;
2972
2968
  }
2973
- get name() {
2974
- return this._identity.name;
2975
- }
2976
- get description() {
2977
- return this._identity.description;
2978
- }
2979
- get createdAt() {
2980
- return this._identity.createdAt;
2981
- }
2982
- get type() {
2983
- return this._identity.type;
2984
- }
2985
2969
  get identity() {
2986
2970
  return this._identity;
2987
2971
  }
@@ -2996,9 +2980,7 @@ class IdentityController extends core_1.TransportController {
2996
2980
  isMe(address) {
2997
2981
  return this.address.equals(address);
2998
2982
  }
2999
- async update(name, description) {
3000
- this.identity.name = name;
3001
- this.identity.description = description;
2983
+ async update() {
3002
2984
  await this.parent.info.set("identity", this.identity);
3003
2985
  }
3004
2986
  async sign(content) {
@@ -3145,7 +3127,13 @@ var Realm;
3145
3127
  })(Realm = exports.Realm || (exports.Realm = {}));
3146
3128
  let Identity = Identity_1 = class Identity extends CoreSerializableAsync_1.CoreSerializableAsync {
3147
3129
  static async from(value) {
3148
- return await super.fromT(value, Identity_1);
3130
+ const identity = await super.fromT(value, Identity_1);
3131
+ // TODO: Remove these default values once we're sure that nobody is accessing the deprecated properties anymore
3132
+ identity.name = "";
3133
+ identity.description = "";
3134
+ identity.type = "unknown";
3135
+ identity.createdAt = CoreDate_1.CoreDate.from("2020-01-01T00:00:00Z");
3136
+ return identity;
3149
3137
  }
3150
3138
  };
3151
3139
  __decorate([
@@ -3164,22 +3152,26 @@ __decorate([
3164
3152
  __metadata("design:type", String)
3165
3153
  ], Identity.prototype, "realm", void 0);
3166
3154
  __decorate([
3167
- (0, ts_serval_1.validate)(),
3155
+ (0, ts_serval_1.validate)({ nullable: true }),
3168
3156
  (0, ts_serval_1.serialize)(),
3169
3157
  __metadata("design:type", String)
3170
3158
  ], Identity.prototype, "name", void 0);
3171
3159
  __decorate([
3172
- (0, ts_serval_1.validate)(),
3160
+ (0, ts_serval_1.validate)({ nullable: true }),
3173
3161
  (0, ts_serval_1.serialize)(),
3174
3162
  __metadata("design:type", String)
3175
3163
  ], Identity.prototype, "description", void 0);
3176
3164
  __decorate([
3177
- (0, ts_serval_1.validate)(),
3165
+ (0, ts_serval_1.validate)({ nullable: true }),
3178
3166
  (0, ts_serval_1.serialize)(),
3179
- __metadata("design:type", CoreDate_1.CoreDate)
3167
+ __metadata("design:type", CoreDate_1.CoreDate
3168
+ /**
3169
+ * @deprecated
3170
+ */
3171
+ )
3180
3172
  ], Identity.prototype, "createdAt", void 0);
3181
3173
  __decorate([
3182
- (0, ts_serval_1.validate)(),
3174
+ (0, ts_serval_1.validate)({ nullable: true }),
3183
3175
  (0, ts_serval_1.serialize)(),
3184
3176
  __metadata("design:type", String)
3185
3177
  ], Identity.prototype, "type", void 0);
@@ -5257,11 +5249,31 @@ class FileController extends TransportController_1.TransportController {
5257
5249
  return await Promise.all(decryptionPromises);
5258
5250
  }
5259
5251
  async updateCache(ids) {
5260
- const resultItems = (await this.client.getFiles({ ids })).value;
5252
+ if (ids.length < 1) {
5253
+ return [];
5254
+ }
5261
5255
  const promises = [];
5262
- for await (const resultItem of resultItems) {
5256
+ for (const id of ids) {
5257
+ const result = await this.client.getFile(id);
5258
+ if (result.isError) {
5259
+ if (result.error.code === "error.transport.recordNotFound" ||
5260
+ result.error.code === "error.transport.request.notFound") {
5261
+ this.log.warn(`Record id ${id} could not be found on backbone. It might be expired.`, result.error);
5262
+ continue;
5263
+ }
5264
+ throw result.error;
5265
+ }
5266
+ const resultItem = result.value;
5263
5267
  promises.push(this.updateCacheOfExistingFileInDb(resultItem.id, resultItem));
5264
5268
  }
5269
+ /*
5270
+ // TODO: Optimize once backbone handling is clarified
5271
+ const resultItems = (await this.client.getFiles({ ids })).value
5272
+ const promises = []
5273
+ for await (const resultItem of resultItems) {
5274
+ promises.push(this.updateCacheOfExistingFileInDb(resultItem.id, resultItem))
5275
+ }
5276
+ */
5265
5277
  return await Promise.all(promises);
5266
5278
  }
5267
5279
  async updateCacheOfExistingFileInDb(id, response) {
@@ -6174,6 +6186,9 @@ class MessageController extends TransportController_1.TransportController {
6174
6186
  return messageDoc ? await Message_1.Message.from(messageDoc) : undefined;
6175
6187
  }
6176
6188
  async updateCache(ids) {
6189
+ if (ids.length < 1) {
6190
+ return [];
6191
+ }
6177
6192
  const paginator = (await this.client.getMessages({ ids })).value;
6178
6193
  const promises = [];
6179
6194
  for await (const resultItem of paginator) {
@@ -7141,11 +7156,31 @@ class RelationshipTemplateController extends TransportController_1.TransportCont
7141
7156
  return await this.parseArray(templateDocs, RelationshipTemplate_1.RelationshipTemplate);
7142
7157
  }
7143
7158
  async updateCache(ids) {
7144
- const resultItems = (await this.client.getRelationshipTemplates({ ids })).value;
7159
+ if (ids.length < 1) {
7160
+ return [];
7161
+ }
7145
7162
  const promises = [];
7146
- for await (const resultItem of resultItems) {
7163
+ for (const id of ids) {
7164
+ const result = await this.client.getRelationshipTemplate(id);
7165
+ if (result.isError) {
7166
+ if (result.error.code === "error.transport.recordNotFound" ||
7167
+ result.error.code === "error.transport.request.notFound") {
7168
+ this.log.warn(`Record id ${id} could not be found on backbone. It might be expired.`, result.error);
7169
+ continue;
7170
+ }
7171
+ throw result.error;
7172
+ }
7173
+ const resultItem = result.value;
7147
7174
  promises.push(this.updateCacheOfExistingTemplateInDb(resultItem.id, resultItem));
7148
7175
  }
7176
+ /*
7177
+ // TODO: Optimize once backbone handling is clarified
7178
+ const resultItems = (await this.client.getRelationshipTemplates({ ids })).value
7179
+ const promises = []
7180
+ for await (const resultItem of resultItems) {
7181
+ promises.push(this.updateCacheOfExistingTemplateInDb(resultItem.id, resultItem))
7182
+ }
7183
+ */
7149
7184
  return await Promise.all(promises);
7150
7185
  }
7151
7186
  async fetchCaches(ids) {
@@ -7928,6 +7963,9 @@ class RelationshipsController extends core_1.TransportController {
7928
7963
  return await this.parseArray(relationshipDocs, Relationship_1.Relationship);
7929
7964
  }
7930
7965
  async updateCache(ids) {
7966
+ if (ids.length < 1) {
7967
+ return [];
7968
+ }
7931
7969
  const resultItems = (await this.client.getRelationships({ ids })).value;
7932
7970
  const promises = [];
7933
7971
  for await (const resultItem of resultItems) {
@@ -11024,11 +11062,31 @@ class TokenController extends TransportController_1.TransportController {
11024
11062
  return tokenDoc ? await Token_1.Token.from(tokenDoc) : undefined;
11025
11063
  }
11026
11064
  async updateCache(ids) {
11027
- const resultItems = (await this.client.getTokens({ ids })).value;
11065
+ if (ids.length < 1) {
11066
+ return [];
11067
+ }
11028
11068
  const promises = [];
11029
- for await (const resultItem of resultItems) {
11069
+ for (const id of ids) {
11070
+ const result = await this.client.getToken(id);
11071
+ if (result.isError) {
11072
+ if (result.error.code === "error.transport.recordNotFound" ||
11073
+ result.error.code === "error.transport.request.notFound") {
11074
+ this.log.warn(`Record id ${id} could not be found on backbone. It might be expired.`, result.error);
11075
+ continue;
11076
+ }
11077
+ throw result.error;
11078
+ }
11079
+ const resultItem = result.value;
11030
11080
  promises.push(this.updateCacheOfExistingTokenInDb(resultItem.id, resultItem));
11031
11081
  }
11082
+ /*
11083
+ // TODO: Optimize once backbone handling is clarified
11084
+ const resultItems = (await this.client.getTokens({ ids })).value
11085
+ const promises = []
11086
+ for await (const resultItem of resultItems) {
11087
+ promises.push(this.updateCacheOfExistingTokenInDb(resultItem.id, resultItem))
11088
+ }
11089
+ */
11032
11090
  return await Promise.all(promises);
11033
11091
  }
11034
11092
  async fetchCaches(ids) {
@@ -38191,8 +38249,7 @@ var Duration = /*#__PURE__*/function () {
38191
38249
 
38192
38250
  var i = Math.trunc(own);
38193
38251
  built[k] = i;
38194
- accumulated[k] = own - i; // we'd like to absorb these fractions in another unit
38195
- // plus anything further down the chain that should be rolled up in to this
38252
+ accumulated[k] = (own * 1000 - i * 1000) / 1000; // plus anything further down the chain that should be rolled up in to this
38196
38253
 
38197
38254
  for (var down in vals) {
38198
38255
  if (orderedUnits$1.indexOf(down) > orderedUnits$1.indexOf(k)) {
@@ -39953,14 +40010,19 @@ function dateTimeFromMatches(matches) {
39953
40010
  }
39954
40011
  };
39955
40012
 
39956
- var zone;
40013
+ var zone = null;
40014
+ var specificOffset;
39957
40015
 
39958
- if (!isUndefined(matches.Z)) {
39959
- zone = new FixedOffsetZone(matches.Z);
39960
- } else if (!isUndefined(matches.z)) {
40016
+ if (!isUndefined(matches.z)) {
39961
40017
  zone = IANAZone.create(matches.z);
39962
- } else {
39963
- zone = null;
40018
+ }
40019
+
40020
+ if (!isUndefined(matches.Z)) {
40021
+ if (!zone) {
40022
+ zone = new FixedOffsetZone(matches.Z);
40023
+ }
40024
+
40025
+ specificOffset = matches.Z;
39964
40026
  }
39965
40027
 
39966
40028
  if (!isUndefined(matches.q)) {
@@ -39992,7 +40054,7 @@ function dateTimeFromMatches(matches) {
39992
40054
 
39993
40055
  return r;
39994
40056
  }, {});
39995
- return [vals, zone];
40057
+ return [vals, zone, specificOffset];
39996
40058
  }
39997
40059
 
39998
40060
  var dummyDateTimeCache = null;
@@ -40064,9 +40126,10 @@ function explainFromTokens(locale, input, format) {
40064
40126
  _match = match(input, regex, handlers),
40065
40127
  rawMatches = _match[0],
40066
40128
  matches = _match[1],
40067
- _ref6 = matches ? dateTimeFromMatches(matches) : [null, null],
40129
+ _ref6 = matches ? dateTimeFromMatches(matches) : [null, null, undefined],
40068
40130
  result = _ref6[0],
40069
- zone = _ref6[1];
40131
+ zone = _ref6[1],
40132
+ specificOffset = _ref6[2];
40070
40133
 
40071
40134
  if (hasOwnProperty(matches, "a") && hasOwnProperty(matches, "H")) {
40072
40135
  throw new ConflictingSpecificationError("Can't include meridiem when specifying 24-hour format");
@@ -40079,7 +40142,8 @@ function explainFromTokens(locale, input, format) {
40079
40142
  rawMatches: rawMatches,
40080
40143
  matches: matches,
40081
40144
  result: result,
40082
- zone: zone
40145
+ zone: zone,
40146
+ specificOffset: specificOffset
40083
40147
  };
40084
40148
  }
40085
40149
  }
@@ -40087,9 +40151,10 @@ function parseFromTokens(locale, input, format) {
40087
40151
  var _explainFromTokens = explainFromTokens(locale, input, format),
40088
40152
  result = _explainFromTokens.result,
40089
40153
  zone = _explainFromTokens.zone,
40154
+ specificOffset = _explainFromTokens.specificOffset,
40090
40155
  invalidReason = _explainFromTokens.invalidReason;
40091
40156
 
40092
- return [result, zone, invalidReason];
40157
+ return [result, zone, specificOffset, invalidReason];
40093
40158
  }
40094
40159
 
40095
40160
  var nonLeapLadder = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334],
@@ -40377,14 +40442,15 @@ function adjustTime(inst, dur) {
40377
40442
  // by handling the zone options
40378
40443
 
40379
40444
 
40380
- function parseDataToDateTime(parsed, parsedZone, opts, format, text) {
40445
+ function parseDataToDateTime(parsed, parsedZone, opts, format, text, specificOffset) {
40381
40446
  var setZone = opts.setZone,
40382
40447
  zone = opts.zone;
40383
40448
 
40384
40449
  if (parsed && Object.keys(parsed).length !== 0) {
40385
40450
  var interpretationZone = parsedZone || zone,
40386
40451
  inst = DateTime.fromObject(parsed, _extends({}, opts, {
40387
- zone: interpretationZone
40452
+ zone: interpretationZone,
40453
+ specificOffset: specificOffset
40388
40454
  }));
40389
40455
  return setZone ? inst : inst.setZone(zone);
40390
40456
  } else {
@@ -40929,7 +40995,7 @@ var DateTime = /*#__PURE__*/function () {
40929
40995
  }
40930
40996
 
40931
40997
  var tsNow = Settings.now(),
40932
- offsetProvis = zoneToUse.offset(tsNow),
40998
+ offsetProvis = !isUndefined(opts.specificOffset) ? opts.specificOffset : zoneToUse.offset(tsNow),
40933
40999
  normalized = normalizeObject(obj, normalizeUnit),
40934
41000
  containsOrdinal = !isUndefined(normalized.ordinal),
40935
41001
  containsGregorYear = !isUndefined(normalized.year),
@@ -41133,12 +41199,13 @@ var DateTime = /*#__PURE__*/function () {
41133
41199
  _parseFromTokens = parseFromTokens(localeToUse, text, fmt),
41134
41200
  vals = _parseFromTokens[0],
41135
41201
  parsedZone = _parseFromTokens[1],
41136
- invalid = _parseFromTokens[2];
41202
+ specificOffset = _parseFromTokens[2],
41203
+ invalid = _parseFromTokens[3];
41137
41204
 
41138
41205
  if (invalid) {
41139
41206
  return DateTime.invalid(invalid);
41140
41207
  } else {
41141
- return parseDataToDateTime(vals, parsedZone, opts, "format " + fmt, text);
41208
+ return parseDataToDateTime(vals, parsedZone, opts, "format " + fmt, text, specificOffset);
41142
41209
  }
41143
41210
  }
41144
41211
  /**
@@ -42776,7 +42843,7 @@ function friendlyDateTime(dateTimeish) {
42776
42843
  }
42777
42844
  }
42778
42845
 
42779
- var VERSION = "2.1.1";
42846
+ var VERSION = "2.2.0";
42780
42847
 
42781
42848
  exports.DateTime = DateTime;
42782
42849
  exports.Duration = Duration;
@@ -43630,6 +43697,7 @@ var arrayPrefixGenerators = {
43630
43697
  };
43631
43698
 
43632
43699
  var isArray = Array.isArray;
43700
+ var split = String.prototype.split;
43633
43701
  var push = Array.prototype.push;
43634
43702
  var pushToArray = function (arr, valueOrArray) {
43635
43703
  push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]);
@@ -43666,6 +43734,8 @@ var isNonNullishPrimitive = function isNonNullishPrimitive(v) {
43666
43734
  || typeof v === 'bigint';
43667
43735
  };
43668
43736
 
43737
+ var sentinel = {};
43738
+
43669
43739
  var stringify = function stringify(
43670
43740
  object,
43671
43741
  prefix,
@@ -43685,8 +43755,23 @@ var stringify = function stringify(
43685
43755
  ) {
43686
43756
  var obj = object;
43687
43757
 
43688
- if (sideChannel.has(object)) {
43689
- throw new RangeError('Cyclic object value');
43758
+ var tmpSc = sideChannel;
43759
+ var step = 0;
43760
+ var findFlag = false;
43761
+ while ((tmpSc = tmpSc.get(sentinel)) !== undefined && !findFlag) {
43762
+ // Where object last appeared in the ref tree
43763
+ var pos = tmpSc.get(object);
43764
+ step += 1;
43765
+ if (typeof pos !== 'undefined') {
43766
+ if (pos === step) {
43767
+ throw new RangeError('Cyclic object value');
43768
+ } else {
43769
+ findFlag = true; // Break while
43770
+ }
43771
+ }
43772
+ if (typeof tmpSc.get(sentinel) === 'undefined') {
43773
+ step = 0;
43774
+ }
43690
43775
  }
43691
43776
 
43692
43777
  if (typeof filter === 'function') {
@@ -43713,6 +43798,14 @@ var stringify = function stringify(
43713
43798
  if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) {
43714
43799
  if (encoder) {
43715
43800
  var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, 'key', format);
43801
+ if (generateArrayPrefix === 'comma' && encodeValuesOnly) {
43802
+ var valuesArray = split.call(String(obj), ',');
43803
+ var valuesJoined = '';
43804
+ for (var i = 0; i < valuesArray.length; ++i) {
43805
+ valuesJoined += (i === 0 ? '' : ',') + formatter(encoder(valuesArray[i], defaults.encoder, charset, 'value', format));
43806
+ }
43807
+ return [formatter(keyValue) + '=' + valuesJoined];
43808
+ }
43716
43809
  return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset, 'value', format))];
43717
43810
  }
43718
43811
  return [formatter(prefix) + '=' + formatter(String(obj))];
@@ -43735,8 +43828,8 @@ var stringify = function stringify(
43735
43828
  objKeys = sort ? keys.sort(sort) : keys;
43736
43829
  }
43737
43830
 
43738
- for (var i = 0; i < objKeys.length; ++i) {
43739
- var key = objKeys[i];
43831
+ for (var j = 0; j < objKeys.length; ++j) {
43832
+ var key = objKeys[j];
43740
43833
  var value = typeof key === 'object' && key.value !== undefined ? key.value : obj[key];
43741
43834
 
43742
43835
  if (skipNulls && value === null) {
@@ -43747,8 +43840,9 @@ var stringify = function stringify(
43747
43840
  ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(prefix, key) : prefix
43748
43841
  : prefix + (allowDots ? '.' + key : '[' + key + ']');
43749
43842
 
43750
- sideChannel.set(object, true);
43843
+ sideChannel.set(object, step);
43751
43844
  var valueSideChannel = getSideChannel();
43845
+ valueSideChannel.set(sentinel, sideChannel);
43752
43846
  pushToArray(values, stringify(
43753
43847
  value,
43754
43848
  keyPrefix,
@@ -44089,6 +44183,7 @@ var encode = function encode(str, defaultEncoder, charset, kind, format) {
44089
44183
 
44090
44184
  i += 1;
44091
44185
  c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF));
44186
+ /* eslint operator-linebreak: [2, "before"] */
44092
44187
  out += hexTable[0xF0 | (c >> 18)]
44093
44188
  + hexTable[0x80 | ((c >> 12) & 0x3F)]
44094
44189
  + hexTable[0x80 | ((c >> 6) & 0x3F)]